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

Reply via email to