Changeset: 1c33bc4ce55c for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=1c33bc4ce55c Removed Files: sql/test/SQLancer/Tests/sqlancer10.sql sql/test/SQLancer/Tests/sqlancer11.sql Modified Files: sql/server/rel_unnest.c sql/test/SQLancer/Tests/sqlancer10.test sql/test/SQLancer/Tests/sqlancer11.test Branch: default Log Message:
Merged with Oct2020 diffs (truncated from 443 to 300 lines): diff --git a/gdk/gdk_project.c b/gdk/gdk_project.c --- a/gdk/gdk_project.c +++ b/gdk/gdk_project.c @@ -612,7 +612,7 @@ BATproject2(BAT *restrict l, BAT *restri } if (!stringtrick && tpe != TYPE_oid) - tpe = ATOMstorage(tpe); + tpe = ATOMbasetype(tpe); switch (tpe) { case TYPE_bte: res = project_bte(bn, l, lci, r1, r2); 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 @@ -1995,7 +1995,7 @@ rewrite_or_exp(visitor *v, sql_rel *rel) if (exps_have_rel_exp(e->l) || exps_have_rel_exp(e->r)) { /* rewrite into setop */ list_remove_node(rel->exps, NULL, n); /* remove or expression */ - if (is_select(rel->op) && list_empty(rel->exps)) { /* remove empty select if that's the case */ + if (is_select(rel->op) && list_empty(rel->exps) && !(rel_is_ref(rel))) { /* remove empty select if that's the case */ sql_rel *l = rel->l; rel->l = NULL; rel_destroy(rel); diff --git a/sql/test/SQLancer/Tests/sqlancer10.test b/sql/test/SQLancer/Tests/sqlancer10.test --- a/sql/test/SQLancer/Tests/sqlancer10.test +++ b/sql/test/SQLancer/Tests/sqlancer10.test @@ -138,6 +138,26 @@ 1 statement ok ROLLBACK +statement ok +START TRANSACTION + +statement ok +CREATE TABLE "t0" ("c0" TINYINT NOT NULL,"c1" TINYINT NOT NULL,"c3" BOOLEAN,"c4" INT,"c5" BIGINT) + +statement ok +CREATE TABLE "t1" ("c0" INT,"c3" VARCHAR(32)) + +statement ok +INSERT INTO "t1" VALUES (NULL, ''),(NULL, 'E5E0'),(NULL, '396B34AC'),(NULL, '68AB5D04'),(NULL, ''),(0, NULL),(NULL, 'D5E5'),(NULL, '4E') + +query T rowsort +select case t0.c1 = any(select 2 from t1) when false then 'a' when true then 'b' end from t0 +---- + + +statement ok +ROLLBACK + query I rowsort select case 3 <> any(select 4) when true then 2 when false then 8 end; ---- diff --git a/sql/test/SQLancer/Tests/sqlancer11.test b/sql/test/SQLancer/Tests/sqlancer11.test --- a/sql/test/SQLancer/Tests/sqlancer11.test +++ b/sql/test/SQLancer/Tests/sqlancer11.test @@ -118,14 +118,14 @@ INSERT INTO "t2" VALUES (4, 0, 6, NULL), (0.39272912837466945, 8, NULL, NULL),(NULL, NULL, 4, NULL),(2, 0, 6, NULL),(-1596101049, 0, 6, NULL),(-1951243968, 0, 6, NULL),(NULL, 0, 6, NULL), (NULL, 0, 6, NULL),(NULL, 0, 6, NULL),(NULL, 0, 6, NULL) -query I rowsort +query T rowsort SELECT 4 = ANY(SELECT t2.c2 FROM t2) FROM t0 ---- -1 -1 -1 -1 -1 +True +True +True +True +True statement ok ROLLBACK @@ -158,12 +158,12 @@ NULL NULL NULL -query I rowsort +query T rowsort SELECT FALSE BETWEEN t0.c3 = ANY(SELECT t0.c0 FROM t0 WHERE t0.c1) AND TRUE FROM t2, t0 ---- -1 -1 -1 +True +True +True statement ok ROLLBACK @@ -212,33 +212,33 @@ F4BECB7E F4BECB7E F4BECB7E -query I rowsort +query T rowsort SELECT 4 NOT IN (6, 1.7976931348623157E308, 0) FROM t1, t0 ---- -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +True +True +True +True +True +True +True +True +True +True +True +True +True +True +True +True +True +True +True +True +True +True +True +True statement ok ROLLBACK @@ -263,16 +263,16 @@ cTR' Abp cTR' Abp cTR' Abp -query I rowsort +query T rowsort SELECT CASE 3 WHEN ((SELECT 0.48) INTERSECT DISTINCT (SELECT -1.2)) THEN FALSE ELSE TRUE END FROM t1 ---- -1 -1 -1 -1 -1 -1 -1 +True +True +True +True +True +True +True statement ok ROLLBACK @@ -387,102 +387,102 @@ 9 9 9 -query I rowsort +query T rowsort SELECT (EXISTS (SELECT 1)) OR greatest(TRUE, FALSE) FROM t1 FULL OUTER JOIN (SELECT 3.3 FROM t2) AS sub0 ON true ---- -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +True +True +True +True +True +True +True +True +True +True +True +True +True +True +True +True +True +True +True +True +True +True +True _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list