Changeset: 21e0511e2ab9 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/21e0511e2ab9 Modified Files: sql/server/rel_rewriter.c sql/server/rel_unnest.c sql/test/BugTracker-2021/Tests/All Branch: default Log Message:
Merged with Jul2021 diffs (60 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 @@ -1220,6 +1220,19 @@ push_up_select_l(mvc *sql, sql_rel *rel) return rel; } +static void +bind_join_vars(mvc *sql, sql_rel *rel) +{ + if (list_empty(rel->exps)) + return; + for(node *n = rel->exps->h; n; n = n->next){ + sql_exp *e = n->data; + + if (exp_has_freevar(sql, e)) + rel_bind_var(sql, rel->l, e); + } +} + static sql_rel * push_up_join(mvc *sql, sql_rel *rel, list *ad) { @@ -1229,6 +1242,7 @@ push_up_join(mvc *sql, sql_rel *rel, lis if (j->op == op_join && !rel_is_ref(rel) && !rel_is_ref(j) && j->exps) { rel->exps = rel->exps?list_merge(rel->exps, j->exps, (fdup)NULL):j->exps; j->exps = NULL; + bind_join_vars(sql, rel); return rel; } } diff --git a/sql/test/BugTracker-2021/Tests/All b/sql/test/BugTracker-2021/Tests/All --- a/sql/test/BugTracker-2021/Tests/All +++ b/sql/test/BugTracker-2021/Tests/All @@ -11,7 +11,7 @@ lowercase-cryllic.Bug-7126 unnest-union.Bug-7127 subquery-missing.Bug-7128 batcalc-between-undefined.Bug-7129 -KNOWNFAIL?batappend-undefined.Bug-7130 +batappend-undefined.Bug-7130 WITH-alias-DELETE-1.deletes-wrong-tuples.Bug-7133 WITH-alias-DELETE-2.deletes-too-many-tuples.Bug-7133 merge-delete.Bug-7136 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 @@ -57,11 +57,11 @@ 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: BATsubcross: more than one match +statement error GDK reported error: mergejoin: 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) -statement error GDK reported error: BATsubcross: more than one match +statement error GDK reported error: mergejoin: 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 2 <> (select 1 from t_qh where EXISTS(select 3 as c0 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 https://www.monetdb.org/mailman/listinfo/checkin-list