Changeset: 2bb69b5569ff for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/2bb69b5569ff
Modified Files:
        sql/server/rel_unnest.c
        sql/test/BugTracker-2021/Tests/batappend-undefined.Bug-7130.test
Branch: default
Log Message:

fix projection around semijoin


diffs (32 lines):

diff --git a/sql/server/rel_unnest.c b/sql/server/rel_unnest.c
--- a/sql/server/rel_unnest.c
+++ b/sql/server/rel_unnest.c
@@ -4080,12 +4080,10 @@ rewrite_rel(visitor *v, sql_rel *rel)
                        assert(is_project(nr->op));
                        if (!rel_is_ref(nr))
                                nr = nr->l;
-                       sql_rel *n = rel_project(v->sql->sa, nr->l, nr->exps);
-                       nr->l = n;
-                       nr->r = ir;
-                       nr->exps = exps;
-                       nr->op = op_semi;
-                       set_dependent(nr);
+                       sql_rel *s = rel_crossproduct(v->sql->sa, nr->l, ir, 
op_semi);
+                       s->exps = exps;
+                       set_dependent(s);
+                       nr->l = s;
                        e = exp_rel_update_exp(v->sql, e, false);
                        exp_reset_props(nr, e, true);
                        v->changes++;
diff --git a/sql/test/BugTracker-2021/Tests/batappend-undefined.Bug-7130.test 
b/sql/test/BugTracker-2021/Tests/batappend-undefined.Bug-7130.test
--- a/sql/test/BugTracker-2021/Tests/batappend-undefined.Bug-7130.test
+++ b/sql/test/BugTracker-2021/Tests/batappend-undefined.Bug-7130.test
@@ -60,7 +60,7 @@ select (select (select 1 where subq_0.c0
 statement error GDK reported error: BATsubcross: more than one match
 select 1 from t_qh left outer join (select 2) as subq_0(c1) on EXISTS(select 1 
from t_qh as ref_6 where 2 = (select 1 from t_qh where ref_6.c_f = 1 or 
subq_0.c1 is NULL))
 
-statement error GDK reported error: mergejoin: more than one match
+statement error GDK reported error: BATsubcross: more than one match
 select EXISTS(select 1 from t_qh left outer join (select cast(2 as INTEGER) 
from t_qh) as subq_0(c1) on true <> EXISTS(select 1 from t_qh as ref_6 where 2 <
 (select subq_0.c1 as c0 from t_qh where (1 <> ref_6.c_f) or (subq_0.c1 is 
NULL)))) from (select 30 from t_qh) as subq_0(c1)
 
_______________________________________________
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org

Reply via email to