Changeset: 1ad50162d546 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/1ad50162d546
Modified Files:
        sql/server/rel_exp.c
        sql/test/BugTracker-2025/Tests/7614_join_reordering.test
        sql/test/BugTracker-2025/Tests/7615_join_reordering_2.test
        sql/test/BugTracker-2025/Tests/7616_join_reordering_3.test
Branch: nested
Log Message:

we cannot use [] for filters anymore


diffs (61 lines):

diff --git a/sql/server/rel_exp.c b/sql/server/rel_exp.c
--- a/sql/server/rel_exp.c
+++ b/sql/server/rel_exp.c
@@ -199,7 +199,11 @@ exp_filter(allocator *sa, list *l, list 
        if (!r) { /* split l */
                list *nl = sa_list(sa), *nr = sa_list(sa);
                node *n = l->h;
-               append(nl, n->data); /* sofar only first is left */
+               append(nl, n->data); /* split 1, 3 */
+               if (list_length(l) > 4) {
+                       n = n->next;
+                       append(nl, n->data); /* split 2, 3 */
+               }
                for(n = n->next; n; n = n->next)
                        append(nr, n->data);
                l = nl;
diff --git a/sql/test/BugTracker-2025/Tests/7614_join_reordering.test 
b/sql/test/BugTracker-2025/Tests/7614_join_reordering.test
--- a/sql/test/BugTracker-2025/Tests/7614_join_reordering.test
+++ b/sql/test/BugTracker-2025/Tests/7614_join_reordering.test
@@ -14,7 +14,7 @@ statement ok
 CREATE VIEW t4 AS SELECT t3.a1 AS a1, t3.a2 AS a2, t2.p AS a3, t2.p AS p FROM 
t3, t2 WHERE t3.a2 = t2.a1;
 
 query T nosort
-PLAN SELECT COUNT(*) FROM (SELECT t1.a1 AS a1, t1.a2 AS a2, t4.a1 AS a3, t4.a2 
AS a4, t4.a3 AS a5, t1.p AS p FROM t1, t4 WHERE [t1.a1,t1.a2] maxlev_helper 
[t4.a1,t4.a2,t4.a3]) AS foo;
+PLAN SELECT COUNT(*) FROM (SELECT t1.a1 AS a1, t1.a2 AS a2, t4.a1 AS a3, t4.a2 
AS a4, t4.a3 AS a5, t1.p AS p FROM t1, t4 WHERE maxlev_helper (t1.a1, t1.a2, 
t4.a1,t4.a2,t4.a3)) AS foo;
 ----
 project (
 | group by (
diff --git a/sql/test/BugTracker-2025/Tests/7615_join_reordering_2.test 
b/sql/test/BugTracker-2025/Tests/7615_join_reordering_2.test
--- a/sql/test/BugTracker-2025/Tests/7615_join_reordering_2.test
+++ b/sql/test/BugTracker-2025/Tests/7615_join_reordering_2.test
@@ -17,7 +17,7 @@ statement ok
 CREATE VIEW x5 AS SELECT x4.a1 AS a1, x4.a2 as a2, x4.a3 as a3, x4.p as p from 
x4, (select case when a1 = a2 then 1 else 0 end as a1, 1.0e0 as p from (select 
foox0.a1 as a1, foox1.a1 as a2, foox0.p * foox1.p as p from (select count(a1) 
as a1, max(p) as p from x3) as foox0, (select count(a1) as a1, max(p) as p from 
x4) as foox1) as foox2) as foox3 where foox3.a1 = 1
 
 statement ok
-CREATE VIEW result AS SELECT x1.a1 AS a1, x1.a2 AS a2, x5.a1 AS a3, x5.a2 AS 
a4, x5.a3 AS a5, x1.p * x5.p as p from x1, x5 where [x1.a1,x1.a2] maxlevhelper 
[x5.a1,x5.a2,x5.a3]
+CREATE VIEW result AS SELECT x1.a1 AS a1, x1.a2 AS a2, x5.a1 AS a3, x5.a2 AS 
a4, x5.a3 AS a5, x1.p * x5.p as p from x1, x5 where maxlevhelper( x1.a1,x1.a2, 
x5.a1,x5.a2,x5.a3)
 
 query T nosort
 plan select * from result;
diff --git a/sql/test/BugTracker-2025/Tests/7616_join_reordering_3.test 
b/sql/test/BugTracker-2025/Tests/7616_join_reordering_3.test
--- a/sql/test/BugTracker-2025/Tests/7616_join_reordering_3.test
+++ b/sql/test/BugTracker-2025/Tests/7616_join_reordering_3.test
@@ -5,7 +5,7 @@ statement ok
 CREATE TABLE y (a1 INTEGER, p DOUBLE)
 
 query T nosort
-PLAN SELECT a1, p FROM (SELECT y.a1 AS a1, foo_x3.a1 AS a2, y.p * foo_x3.p AS 
p FROM y, (SELECT a1, p FROM (SELECT foo_x0.a1 AS a1, foo_x0.a2 AS a2, 
foo_x1.a1 AS a3, foo_x0.p AS p FROM (SELECT a1, a3 AS a2, p FROM x) AS foo_x0, 
(VALUES ('bar',1.0e0)) AS foo_x1(a1,p) WHERE [foo_x0.a2] contains 
[foo_x1.a1,true]) AS foo_x2) AS foo_x3 WHERE y.a1 = foo_x3.a1) AS foo_x4
+PLAN SELECT a1, p FROM (SELECT y.a1 AS a1, foo_x3.a1 AS a2, y.p * foo_x3.p AS 
p FROM y, (SELECT a1, p FROM (SELECT foo_x0.a1 AS a1, foo_x0.a2 AS a2, 
foo_x1.a1 AS a3, foo_x0.p AS p FROM (SELECT a1, a3 AS a2, p FROM x) AS foo_x0, 
(VALUES ('bar',1.0e0)) AS foo_x1(a1,p) WHERE contains( foo_x0.a2, 
foo_x1.a1,true)) AS foo_x2) AS foo_x3 WHERE y.a1 = foo_x3.a1) AS foo_x4
 ----
 project (
 | project (
@@ -15,7 +15,7 @@ project (
 | | | | | table("sys"."x") [ "x"."a1" NOT NULL UNIQUE, "x"."a3" NOT NULL 
UNIQUE, "x"."p" NOT NULL UNIQUE ]
 | | | | ) [ "x"."a1" NOT NULL UNIQUE as "foo_x0"."a1", "x"."a3" NOT NULL 
UNIQUE as "foo_x0"."a2", "x"."p" NOT NULL UNIQUE as "foo_x0"."p" ],
 | | | |  [  [ varchar(3) "bar" ] as "foo_x1"."a1" ]
-| | | ) [ ("foo_x0"."a2" NOT NULL UNIQUE) FILTER 
"sys"."contains"(varchar["foo_x1"."a1" NOT NULL] NOT NULL, boolean(1) "true") ],
+| | | ) [ ("foo_x0"."a2" NOT NULL UNIQUE) FILTER 
"sys"."contains"("foo_x1"."a1" NOT NULL, boolean(1) "true") ],
 | | | table("sys"."y") [ "y"."a1" NOT NULL UNIQUE, "y"."p" NOT NULL UNIQUE ]
 | | ) [ ("y"."a1" NOT NULL UNIQUE) = ("foo_x0"."a1" NOT NULL) ]
 | ) [ "y"."a1" NOT NULL as "foo_x4"."a1", "sys"."sql_mul"("y"."p" NOT NULL, 
"foo_x0"."p" NOT NULL) NOT NULL as "foo_x4"."p" ]
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to