Changeset: 72a366f0d7c4 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=72a366f0d7c4
Modified Files:
        sql/backends/monet5/rel_bin.c
        sql/test/SQLancer/Tests/sqlancer04.sql
        sql/test/SQLancer/Tests/sqlancer04.stable.out
Branch: Oct2020
Log Message:

Don't push candidate lists at 'in' expressions


diffs (54 lines):

diff --git a/sql/backends/monet5/rel_bin.c b/sql/backends/monet5/rel_bin.c
--- a/sql/backends/monet5/rel_bin.c
+++ b/sql/backends/monet5/rel_bin.c
@@ -395,9 +395,9 @@ handle_in_exps(backend *be, sql_exp *ce,
                        if(!i)
                                return NULL;
 
-                       i = stmt_binop(be, c, i, sel, cmp);
+                       i = stmt_binop(be, c, i, NULL, cmp);
                        if (s)
-                               s = stmt_binop(be, s, i, sel, a);
+                               s = stmt_binop(be, s, i, NULL, a);
                        else
                                s = i;
 
diff --git a/sql/test/SQLancer/Tests/sqlancer04.sql 
b/sql/test/SQLancer/Tests/sqlancer04.sql
--- a/sql/test/SQLancer/Tests/sqlancer04.sql
+++ b/sql/test/SQLancer/Tests/sqlancer04.sql
@@ -386,3 +386,12 @@ least(-650735786, -1123683253) ELSE 1414
 (CAST(TRUE AS TINYINT))), r'u''A#{' FROM v28, v32, v3) AS sub0 ON 
(((TRUE)AND(TRUE))) = TRUE
 WHERE ((v7.vc1)ILIKE(upper(v43.vc1))) GROUP BY "second"(TIME '10:50:47');
 ROLLBACK;
+
+CREATE TABLE t2(c0 DOUBLE);
+INSERT INTO t2(c0) VALUES(852.0), (-0.31015700674852054), (45), (null), 
(-1.936408526E9), (0.12208305626734062), (-1.707045885E9);
+INSERT INTO t2(c0) VALUES(1660989841);
+DELETE FROM t2 WHERE TRUE;
+INSERT INTO t2(c0) VALUES(null);
+UPDATE t2 SET c0 = 0.2818413675323882 WHERE 
sql_min((0.0194696766772712859250304973102174699306488037109375)
+BETWEEN (t2.c0) AND (0.8918001896191873), (t2.c0) NOT IN (-682776732));
+DROP TABLE t2;
diff --git a/sql/test/SQLancer/Tests/sqlancer04.stable.out 
b/sql/test/SQLancer/Tests/sqlancer04.stable.out
--- a/sql/test/SQLancer/Tests/sqlancer04.stable.out
+++ b/sql/test/SQLancer/Tests/sqlancer04.stable.out
@@ -488,6 +488,19 @@ stdout of test 'sqlancer04` in directory
 % double,      int # type
 % 24,  1 # length
 #ROLLBACK;
+#CREATE TABLE t2(c0 DOUBLE);
+#INSERT INTO t2(c0) VALUES(852.0), (-0.31015700674852054), (45), (null), 
(-1.936408526E9), (0.12208305626734062), (-1.707045885E9);
+[ 7    ]
+#INSERT INTO t2(c0) VALUES(1660989841);
+[ 1    ]
+#DELETE FROM t2 WHERE TRUE;
+[ 8    ]
+#INSERT INTO t2(c0) VALUES(null);
+[ 1    ]
+#UPDATE t2 SET c0 = 0.2818413675323882 WHERE 
sql_min((0.0194696766772712859250304973102174699306488037109375)
+#BETWEEN (t2.c0) AND (0.8918001896191873), (t2.c0) NOT IN (-682776732));
+[ 0    ]
+#DROP TABLE t2;
 
 # 09:44:50 >  
 # 09:44:50 >  "Done."
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to