Changeset: b4925bb84e5c for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/b4925bb84e5c
Modified Files:
sql/server/rel_unnest.c
sql/test/SQLancer/Tests/sqlancer14.test
Branch: Jul2021
Log Message:
Here a comparison must be generated on select relations with depth=0
diffs (42 lines):
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
@@ -2895,8 +2895,11 @@ rewrite_compare(visitor *v, sql_rel *rel
set_has_no_nil(lnull);
le = exp_compare_func(v->sql, le, re,
op, 0);
le = rel_nop_(v->sql, rel, le, lnull,
rnull, NULL, "sys", (quantifier==1)?"any":"all", card_value);
- if (is_notequal_func(sf))
+ if (is_select(rel->op) && depth == 0) {
+ le = exp_compare(v->sql->sa,
le, exp_atom_bool(v->sql->sa, is_notequal_func(sf) ? 0 : 1), cmp_equal);
+ } else if (is_notequal_func(sf)) {
le = rel_unop_(v->sql, rel, le,
"sys", "not", card_value);
+ }
} else if (is_project(rel->op) || depth) {
le = exp_compare_func(v->sql, le, re,
op, 0);
} else {
diff --git a/sql/test/SQLancer/Tests/sqlancer14.test
b/sql/test/SQLancer/Tests/sqlancer14.test
--- a/sql/test/SQLancer/Tests/sqlancer14.test
+++ b/sql/test/SQLancer/Tests/sqlancer14.test
@@ -761,3 +761,22 @@ False
statement ok
DROP TABLE t0
+
+statement ok
+START TRANSACTION
+
+statement ok
+CREATE TABLE "t0"("c0" CHARACTER LARGE OBJECT, "c4" INTERVAL DAY)
+
+statement ok
+CREATE TABLE "t2"("c0" CHARACTER LARGE OBJECT)
+
+statement ok rowcount 2
+INSERT INTO "t2" VALUES ('X'), ('')
+
+query I rowsort
+select 1 from t0 where t0.c4 <= all(select interval '4' day) and t0.c0 <>
all(select t2.c0 from t2)
+----
+
+statement ok
+ROLLBACK
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list