Changeset: ddc9b535b7b2 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/ddc9b535b7b2
Modified Files:
sql/server/rel_select.c
sql/test/SQLancer/Tests/sqlancer14.test
Branch: default
Log Message:
Here comparison expressions must be generated
diffs (105 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
@@ -2675,8 +2675,19 @@ rel_logical_exp(sql_query *query, sql_re
}
case SQL_ATOM: {
/* TRUE or FALSE */
+ sql_rel *or = rel;
AtomNode *an = (AtomNode *) sc;
sql_exp *e = exp_atom(sql->sa, atom_dup(sql->sa, an->a));
+
+ if (e) {
+ sql_subtype bt;
+
+ sql_find_subtype(&bt, "boolean", 0, 0);
+ e = exp_check_type(sql, &bt, rel, e, type_equal);
+ }
+ if (!e || or != rel)
+ return NULL;
+ e = exp_compare(sql->sa, e, exp_atom_bool(sql->sa, 1),
cmp_equal);
return rel_select_push_exp_down(sql, rel, e, e, e, e, e, NULL,
f);
}
case SQL_IDENT:
@@ -2692,6 +2703,7 @@ rel_logical_exp(sql_query *query, sql_re
}
if (!e || or != rel)
return NULL;
+ e = exp_compare(sql->sa, e, exp_atom_bool(sql->sa, 1),
cmp_equal);
return rel_select_push_exp_down(sql, rel, e, e, e, e, e, NULL,
f);
}
case SQL_UNION:
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
@@ -619,3 +619,70 @@ DROP TABLE t0
statement ok
DROP TABLE t1
+
+statement ok
+START TRANSACTION
+
+statement ok
+CREATE TABLE "sys"."t2" ("c1" INTERVAL MONTH NOT NULL,"c3" VARCHAR(55) NOT
NULL,"c4" DOUBLE NOT NULL, CONSTRAINT "t2_c1_pkey" PRIMARY KEY ("c1"))
+
+statement ok
+COPY 7 RECORDS INTO "sys"."t2" FROM stdin USING DELIMITERS E'\t',E'\n','"'
+<COPY_INTO_DATA>
+7 "836999245" 0.5209641695747843
+5 "F~\\v\0156" 0.9120966504084695
+6 "" 0.20943431967236137
+4 "zz-N" 1
+8 "" 1420885136
+0 "-366705317" -3
+3 "" 0.12048574302018378
+
+query T rowsort
+SELECT t2.c1 FROM t2 FULL OUTER JOIN (SELECT 1 FROM t2) AS sub0 ON '1' AND
t2.c1 <> ALL(VALUES (INTERVAL '5' MONTH))
+----
+0
+0
+0
+0
+0
+0
+0
+3
+3
+3
+3
+3
+3
+3
+4
+4
+4
+4
+4
+4
+4
+5
+6
+6
+6
+6
+6
+6
+6
+7
+7
+7
+7
+7
+7
+7
+8
+8
+8
+8
+8
+8
+8
+
+statement ok
+ROLLBACK
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list