Changeset: 30b704af90f3 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=30b704af90f3
Modified Files:
sql/server/rel_rel.c
sql/test/SQLancer/Tests/sqlancer06.sql
sql/test/SQLancer/Tests/sqlancer06.stable.out
Branch: Oct2020
Log Message:
Don't include imprints on the SQL layer. It doesn't handle this index
diffs (102 lines):
diff --git a/sql/server/rel_rel.c b/sql/server/rel_rel.c
--- a/sql/server/rel_rel.c
+++ b/sql/server/rel_rel.c
@@ -833,7 +833,7 @@ rel_basetable(mvc *sql, sql_table *t, co
char *iname = NULL;
/* do not include empty indices in the plan */
- if (hash_index(i->type) && list_length(i->columns) <= 1)
+ if ((hash_index(i->type) && list_length(i->columns) <=
1) || i->type == no_idx || i->type == imprints_idx)
continue;
if (i->type == join_idx)
diff --git a/sql/test/SQLancer/Tests/sqlancer06.sql
b/sql/test/SQLancer/Tests/sqlancer06.sql
--- a/sql/test/SQLancer/Tests/sqlancer06.sql
+++ b/sql/test/SQLancer/Tests/sqlancer06.sql
@@ -84,3 +84,16 @@ WHEN 'Q' THEN 0.81 END WHEN CAST(t2.c2 AS VARCHAR(32)) THEN
CASE 51854410 WHEN 0.6132552 THEN 134188918 END WHEN COALESCE('鈋', 'Nb|k',
's{%g.8Bj') THEN CAST(571120738 AS INT)
ELSE CAST(0.13 AS REAL) END) IS NOT NULL CROSS JOIN (SELECT ALL
COALESCE(t1.c0, t0.c0) FROM t0, t1) AS sub0) as res;
-- 54
ROLLBACK;
+
+START TRANSACTION;
+CREATE TABLE "sys"."t0" ("c0" BOOLEAN NOT NULL,CONSTRAINT "t0_c0_pkey" PRIMARY
KEY ("c0"),CONSTRAINT "t0_c0_unique" UNIQUE ("c0"));
+CREATE IMPRINTS INDEX "i0" ON "sys"."t0" ("c0");
+CREATE TABLE "sys"."t2" ("c0" BOOLEAN);
+
+SELECT 1 FROM t0 FULL OUTER JOIN t2 ON CASE WHEN TRUE THEN EXISTS (SELECT 1
FROM t2) END;
+ -- empty
+SELECT CAST(SUM(count) AS BIGINT) FROM (SELECT ALL CAST((CASE TIMESTAMP
'1970-01-23 00:06:34' WHEN TIMESTAMP '1970-01-15 23:55:20' THEN 0.1 ELSE 0.7
END) NOT IN (COALESCE(0.8, 0.2), COALESCE(0.4, 0.5, 0.9, 0.8)) AS INT) as count
+FROM t0 FULL OUTER JOIN t2 ON CASE WHEN t2.c0 THEN (DATE '1970-01-24') IN
(DATE '1970-01-11', DATE '1969-12-18') WHEN (t2.c0) NOT BETWEEN SYMMETRIC
(t0.c0) AND (CASE DATE '1970-01-01' WHEN DATE '1970-01-15' THEN TRUE ELSE t2.c0
END)
+THEN t0.c0 WHEN NOT (((t2.c0)<=(t2.c0))) THEN NOT EXISTS (SELECT DISTINCT
INTERVAL '903334778' SECOND FROM t2 WHERE t2.c0) END) as res;
+ -- empty
+ROLLBACK;
diff --git a/sql/test/SQLancer/Tests/sqlancer06.stable.out
b/sql/test/SQLancer/Tests/sqlancer06.stable.out
--- a/sql/test/SQLancer/Tests/sqlancer06.stable.out
+++ b/sql/test/SQLancer/Tests/sqlancer06.stable.out
@@ -52,6 +52,66 @@ stdout of test 'sqlancer06` in directory
#INSERT INTO t2(c1) VALUES(1807763525);
[ 1 ]
#DROP TABLE t2;
+#START TRANSACTION;
+#CREATE TABLE "sys"."t0" ("c0" DOUBLE,"c1" DOUBLE NOT NULL,CONSTRAINT
"t0_c1_c0_unique" UNIQUE ("c1", "c0"));
+#COPY 8 RECORDS INTO "sys"."t0" FROM stdin USING DELIMITERS E'\t',E'\n','"';
+#NULL 0.11556091558253245
+#0.29659357385748286 68693719
+#0.9191040589762235 0.5658689286027364
+#NULL 0.1019666413117839
+#NULL 0.64159659402381
+#NULL 0.06945707167931647
+#1696129939 1930440479
+#0.291412016319756 0.19803645886665644
+[ 8 ]
+#CREATE TABLE "sys"."t1" ("c1" DOUBLE,CONSTRAINT "t1_c1_unique" UNIQUE ("c1"));
+#select cast(sum(count) as bigint) from (select cast(not ((-307103413) in
(0.68224454, 0.9718348)) as int) as count from t0 right outer join t1
+#on (t0.c1) between symmetric (t1.c1) and (((-
(-1063131904))&(coalesce(-569972440, 1845997183))))) as res;
+% .%10 # table_name
+% %10 # name
+% bigint # type
+% 1 # length
+[ NULL ]
+#ROLLBACK;
+#START TRANSACTION;
+#CREATE TABLE "sys"."t0" ("c0" TIMESTAMP NOT NULL,CONSTRAINT "t0_c0_pkey"
PRIMARY KEY ("c0"),CONSTRAINT "t0_c0_unique" UNIQUE ("c0"));
+#COPY 3 RECORDS INTO "sys"."t0" FROM stdin USING DELIMITERS E'\t',E'\n','"';
+#"1970-01-12 10:04:08.000000"
+#"1970-01-06 03:09:33.000000"
+#"1970-01-19 10:03:56.000000"
+[ 3 ]
+#CREATE TABLE "sys"."t1" ("c0" TIMESTAMP);
+#COPY 3 RECORDS INTO "sys"."t1" FROM stdin USING DELIMITERS E'\t',E'\n','"';
+#"1970-01-16 15:26:07.000000"
+#"1970-01-21 09:11:00.000000"
+#"1969-12-24 08:07:10.000000"
+[ 3 ]
+#CREATE TABLE "sys"."t2" ("c0" INTERVAL MONTH,"c1" DOUBLE,"c2" BOOLEAN);
+#COPY 4 RECORDS INTO "sys"."t2" FROM stdin USING DELIMITERS E',',E'\n','"';
+#1293946112,0.3251224351379446,true
+#1293946112,0.3251224351379446,true
+#540568573,NULL,false
+#NULL,NULL,false
+[ 4 ]
+#ROLLBACK;
+#START TRANSACTION;
+#CREATE TABLE "sys"."t0" ("c0" BOOLEAN NOT NULL,CONSTRAINT "t0_c0_pkey"
PRIMARY KEY ("c0"),CONSTRAINT "t0_c0_unique" UNIQUE ("c0"));
+#CREATE IMPRINTS INDEX "i0" ON "sys"."t0" ("c0");
+#CREATE TABLE "sys"."t2" ("c0" BOOLEAN);
+#SELECT 1 FROM t0 FULL OUTER JOIN t2 ON CASE WHEN TRUE THEN EXISTS (SELECT 1
FROM t2) END;
+% .%33 # table_name
+% %33 # name
+% tinyint # type
+% 1 # length
+#SELECT CAST(SUM(count) AS BIGINT) FROM (SELECT ALL CAST((CASE TIMESTAMP
'1970-01-23 00:06:34' WHEN TIMESTAMP '1970-01-15 23:55:20' THEN 0.1 ELSE 0.7
END) NOT IN (COALESCE(0.8, 0.2), COALESCE(0.4, 0.5, 0.9, 0.8)) AS INT) as count
+#FROM t0 FULL OUTER JOIN t2 ON CASE WHEN t2.c0 THEN (DATE '1970-01-24') IN
(DATE '1970-01-11', DATE '1969-12-18') WHEN (t2.c0) NOT BETWEEN SYMMETRIC
(t0.c0) AND (CASE DATE '1970-01-01' WHEN DATE '1970-01-15' THEN TRUE ELSE t2.c0
END)
+#THEN t0.c0 WHEN NOT (((t2.c0)<=(t2.c0))) THEN NOT EXISTS (SELECT DISTINCT
INTERVAL '903334778' SECOND FROM t2 WHERE t2.c0) END) as res;
+% .%14 # table_name
+% %14 # name
+% bigint # type
+% 1 # length
+[ NULL ]
+#ROLLBACK;
# 19:38:32 >
# 19:38:32 > "Done."
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list