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
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list