Changeset: 4d0ab0b685b1 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/4d0ab0b685b1
Modified Files:
sql/server/rel_select.c
sql/test/SQLancer/Tests/sqlancer15.test
sql/test/sys-schema/Tests/webExamplesLogicalFunctionsOperators.test
Branch: Jul2021
Log Message:
After 'not' symbol, the expression deepness will be > 0, so don't call
rel_logical_value_exp because the expression won't be bound into a comparison
diffs (67 lines):
diff --git a/sql/server/rel_select.c b/sql/server/rel_select.c
--- a/sql/server/rel_select.c
+++ b/sql/server/rel_select.c
@@ -2441,7 +2441,7 @@ rel_logical_value_exp(sql_query *query,
sc->data.sym = negate_symbol_tree(sql, sc->data.sym);
return rel_logical_value_exp(query, rel, sc->data.sym,
f, ek);
}
- sql_exp *le = rel_logical_value_exp(query, rel, sc->data.sym,
f, ek);
+ sql_exp *le = rel_value_exp(query, rel, sc->data.sym, f, ek);
if (!le)
return NULL;
diff --git a/sql/test/SQLancer/Tests/sqlancer15.test
b/sql/test/SQLancer/Tests/sqlancer15.test
--- a/sql/test/SQLancer/Tests/sqlancer15.test
+++ b/sql/test/SQLancer/Tests/sqlancer15.test
@@ -396,3 +396,39 @@ 1
statement ok
ROLLBACK
+
+statement ok
+START TRANSACTION
+
+statement ok
+CREATE TABLE "t1" ("c0" REAL,"c1" REAL,CONSTRAINT "t1_c1_c0_unique" UNIQUE
("c1", "c0"))
+
+statement ok rowcount 9
+INSERT INTO "t1" VALUES (0.05303705, 0.012799261),(0.8875537,
0.81233525),(-0.26150206, 1.6048732e+09),(NULL, 0.75787866),(0.6425521,
NULL),(NULL, -0.8071348),(0.18594263, NULL),(0.35998943, NULL),(0.70466465,
NULL)
+
+statement ok
+CREATE TABLE "t2" ("c0" TIME NOT NULL,"c3" INT)
+
+statement ok rowcount 4
+INSERT INTO "t2" VALUES (TIME '01:00:11', 2),(TIME '14:47:53', NULL),(TIME
'23:26:05', NULL),(TIME '10:49:08', NULL)
+
+query R rowsort
+SELECT t1.c1 FROM t1 WHERE NOT (least((SELECT DISTINCT TRUE FROM t2 WHERE
FALSE), (VALUES (FALSE))))
+----
+-0.807
+0.013
+0.758
+0.812
+1604873200.000
+NULL
+NULL
+NULL
+NULL
+
+query I rowsort
+SELECT CAST(SUM(count) AS BIGINT) FROM (SELECT CAST(NOT (least((SELECT
DISTINCT TRUE FROM t2 WHERE FALSE), (VALUES (FALSE)))) AS INT) as count FROM
t1) as res
+----
+9
+
+statement ok
+ROLLBACK
diff --git
a/sql/test/sys-schema/Tests/webExamplesLogicalFunctionsOperators.test
b/sql/test/sys-schema/Tests/webExamplesLogicalFunctionsOperators.test
--- a/sql/test/sys-schema/Tests/webExamplesLogicalFunctionsOperators.test
+++ b/sql/test/sys-schema/Tests/webExamplesLogicalFunctionsOperators.test
@@ -220,7 +220,7 @@ True
query T rowsort
plan select not(true), not(null), not(false), "and"(true, false), "or"(true,
false), "xor"(true, false), "all"(true, false, true), "any"(true, false, true)
----
-) [ "sys"."not"(boolean "true") NOT NULL, "sys"."not"("sys"."="(boolean
"NULL", boolean "true")), "sys"."not"(boolean "false") NOT NULL,
"sys"."and"(boolean "true", boolean "false"), "sys"."or"(boolean "true",
boolean "false"), "sys"."xor"(boolean "true", boolean "false") NOT NULL,
"sys"."all"(boolean "true", boolean "false", boolean "true"),
"sys"."any"(boolean "true", boolean "false", boolean "true") ]
+) [ "sys"."not"(boolean "true") NOT NULL, "sys"."not"(boolean "NULL"),
"sys"."not"(boolean "false") NOT NULL, "sys"."and"(boolean "true", boolean
"false"), "sys"."or"(boolean "true", boolean "false"), "sys"."xor"(boolean
"true", boolean "false") NOT NULL, "sys"."all"(boolean "true", boolean "false",
boolean "true"), "sys"."any"(boolean "true", boolean "false", boolean "true") ]
project (
| [ boolean "true" ]
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list