Changeset: b68d86bd670f for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/b68d86bd670f
Modified Files:
        sql/server/rel_unnest.c
        sql/test/SQLancer/Tests/sqlancer22.test
Branch: Jan2022
Log Message:

Look for projections without a back relation, also do a more defensive copy


diffs (36 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
@@ -816,8 +816,10 @@ push_up_project(mvc *sql, sql_rel *rel, 
 {
        sql_rel *r = rel->r;
 
+       assert(is_simple_project(r->op));
        if (rel_is_ref(r)) {
-               sql_rel *nr = rel_project(sql->sa, rel_dup(r->l), 
exps_copy(sql, r->exps));
+               sql_rel *nr = rel_project(sql->sa, r->l ? rel_dup(r->l) : NULL, 
exps_copy(sql, r->exps));
+               nr->r = exps_copy(sql, r->r);
                rel_destroy(r);
                rel->r = r = nr;
        }
diff --git a/sql/test/SQLancer/Tests/sqlancer22.test 
b/sql/test/SQLancer/Tests/sqlancer22.test
--- a/sql/test/SQLancer/Tests/sqlancer22.test
+++ b/sql/test/SQLancer/Tests/sqlancer22.test
@@ -71,3 +71,17 @@ CREATE VIEW v2(vc0, vc1, vc2) AS (WITH c
 
 statement ok
 ROLLBACK
+
+statement ok
+START TRANSACTION
+
+statement ok
+CREATE TABLE t0(c0 INT)
+
+query I nosort
+with x(x) as (select 4) select 2 > all(select 3 from t0 full outer join 
(values (x.x)) as y(y) on false) from x
+----
+0
+
+statement ok
+ROLLBACK
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to