Changeset: e3015ebc2462 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=e3015ebc2462
Modified Files:
        sql/server/rel_select.c
        sql/test/SQLancer/Tests/sqlancer07.sql
Branch: Oct2020
Log Message:

Making SQLancer happy. If rs2 is set and is atomic as well, there's no push 
down to be done


diffs (28 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
@@ -1548,7 +1548,7 @@ rel_select_push_exp_down(mvc *sql, sql_r
                return rel_select(sql->sa, rel, e);
        if (rs->card <= CARD_ATOM && (exp_is_atom(rs) || exp_has_freevar(sql, 
rs) || exp_has_freevar(sql, ls)) &&
           (!rs2 || (rs2->card <= CARD_ATOM && (exp_is_atom(rs2) || 
exp_has_freevar(sql, rs2))))) {
-               if ((ls->card == rs->card && !rs2) || rel->processed)  /* bin 
compare op */
+               if ((ls->card == rs->card && (!rs2 || ls->card == rs2->card)) 
|| rel->processed)  /* bin compare op */
                        return rel_select(sql->sa, rel, e);
 
                return push_select_exp(sql, rel, e, ls, L, f);
diff --git a/sql/test/SQLancer/Tests/sqlancer07.sql 
b/sql/test/SQLancer/Tests/sqlancer07.sql
--- a/sql/test/SQLancer/Tests/sqlancer07.sql
+++ b/sql/test/SQLancer/Tests/sqlancer07.sql
@@ -122,3 +122,12 @@ SELECT t1.c0 FROM t1;
        -- 0.3946154725285108
        -- 0.3946154725285108
 ROLLBACK;
+
+START TRANSACTION;
+CREATE TABLE "t0" ("c0" DECIMAL(18,3) NOT NULL,"c1" DOUBLE PRECISION NOT NULL);
+CREATE TABLE "t1" ("c1" DOUBLE PRECISION);
+CREATE TABLE "t2" ("c0" DECIMAL(18,3),"c1" DOUBLE PRECISION);
+
+SELECT (SELECT 1 FROM t1, t2, t0 JOIN (SELECT 1) AS sub0 ON (t1.c1) BETWEEN 
(t2.c1) AND (t1.c1)) FROM t2, t0 CROSS JOIN t1;
+       -- empty
+ROLLBACK;
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to