Changeset: ab5e2572bd29 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/ab5e2572bd29
Branch: dict
Log Message:

merged with default


diffs (182 lines):

diff --git a/sql/server/rel_optimizer.c b/sql/server/rel_optimizer.c
--- a/sql/server/rel_optimizer.c
+++ b/sql/server/rel_optimizer.c
@@ -9810,6 +9810,7 @@ need_optimization(mvc *sql, sql_rel *rel
 {
        if (rel && rel->card <= CARD_ATOM) {
                if (is_insert(rel->op)) {
+                       int opt = 0;
                        sql_rel *l = (sql_rel *) rel->l;
 
                        if (is_basetable(l->op)) {
@@ -9820,9 +9821,9 @@ need_optimization(mvc *sql, sql_rel *rel
                                assert(!isRemote(t) && !isReplicaTable(t));
                                /* If the plan has a merge table or a child of 
a partitioned one, then optimization cannot be skipped */
                                if (isMergeTable(t) || (t->s && t->s->parts && 
(pt = partition_find_part(sql->session->tr, t, NULL))))
-                                       return 1;
-                       }
-                       return rel->r ? need_optimization(sql, rel->r) : 0;
+                                       opt = 1;
+                       }
+                       return rel->r ? MAX(need_optimization(sql, rel->r), 
opt) : opt;
                }
                if (is_simple_project(rel->op))
                        return rel->l ? need_optimization(sql, rel->l) : 0;
diff --git a/sql/test/SQLancer/Tests/sqlancer18.test 
b/sql/test/SQLancer/Tests/sqlancer18.test
--- a/sql/test/SQLancer/Tests/sqlancer18.test
+++ b/sql/test/SQLancer/Tests/sqlancer18.test
@@ -348,6 +348,154 @@ select greatest(1, (select (select vy.vc
 statement ok
 DROP VIEW vy
 
+statement error 42000!SELECT: subquery uses ungrouped column "vz.c0" from 
outer query
+SELECT 1 FROM (select 0,1) vz(c0,c1) GROUP BY c1 HAVING sum(1) < ANY(SELECT 
vz.c0 FROM t1)
+
 statement ok
 DROP TABLE t1
 
+statement ok
+START TRANSACTION
+
+statement ok
+CREATE TABLE "t1" ("c0" INTERVAL MONTH)
+
+statement ok rowcount 128
+COPY 128 RECORDS INTO "t1" FROM stdin USING DELIMITERS E'\t',E'\n','"'
+<COPY_INTO_DATA>
+13
+3
+7
+9
+1
+NULL
+3
+5
+1
+8
+5
+0
+6
+5
+1
+7
+3
+1
+4
+4
+13
+NULL
+9
+NULL
+7
+6
+0
+5
+3
+0
+8
+9
+0
+5
+4
+NULL
+9
+2
+6
+1
+7
+6
+9
+2
+5
+0
+1
+5
+-4
+3
+9
+6
+-4
+3
+5
+7
+8
+7
+1
+-13
+-3
+-7
+-9
+-1
+NULL
+-3
+-5
+-1
+-8
+-5
+0
+-6
+-5
+-1
+-7
+-3
+-1
+-4
+-4
+-13
+NULL
+-9
+NULL
+-7
+-6
+0
+-5
+-3
+0
+-8
+-9
+0
+-5
+-4
+NULL
+-9
+-2
+-6
+-1
+-7
+-6
+-9
+-2
+-5
+0
+-1
+-5
+4
+-3
+-9
+-6
+4
+-3
+-5
+-7
+-8
+-7
+-1
+3
+8
+5
+1
+5
+0
+5
+7
+0
+3
+
+query I nosort
+SELECT SUM(1) FROM t1, t1 as t2
+----
+16384
+
+statement ok
+ROLLBACK
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to