Changeset: 18cd5efc7681 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=18cd5efc7681
Modified Files:
        sql/backends/monet5/rel_bin.c
        sql/backends/monet5/sql_statement.c
        sql/test/pg_regress/Tests/timestamp.stable.out
        sql/test/pg_regress/Tests/timestamptz.stable.out
Branch: default
Log Message:

Fixes for crashing SQLancer queries (there's more to do)


diffs (80 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
@@ -1071,7 +1071,7 @@ exp_bin(backend *be, sql_exp *e, stmt *l
                } else {
                        if (r2) { /* handle all cases in stmt_uselect,
                                                 reducing, non reducing, scalar 
etc */
-                               if (l->nrcols == 0)
+                               if (l->nrcols == 0 && left)
                                        l = stmt_const(be, bin_first_column(be, 
left), l);
                                s = stmt_uselect2(be, l, r, r2, 
(comp_type)e->flag, sel, is_anti(e), reduce);
                        } else {
diff --git a/sql/backends/monet5/sql_statement.c 
b/sql/backends/monet5/sql_statement.c
--- a/sql/backends/monet5/sql_statement.c
+++ b/sql/backends/monet5/sql_statement.c
@@ -1425,7 +1425,7 @@ stmt_genselect(backend *be, stmt *lops, 
                s->op2 = rops;
                s->op3 = sub;
                s->flag = cmp_filter;
-               s->nrcols = (lops->nrcols == 2) ? 2 : 1;
+               s->nrcols = lops->nrcols;
                s->nr = getDestVar(q);
                s->q = q;
                s->cand = sub;
@@ -1582,7 +1582,7 @@ stmt_uselect(backend *be, stmt *op1, stm
                s->op2 = op2;
                s->op3 = sub;
                s->flag = cmptype;
-               s->nrcols = (op1->nrcols == 2) ? 2 : 1;
+               s->nrcols = op1->nrcols;
                s->nr = getDestVar(q);
                s->q = q;
                s->cand = sub;
@@ -1822,7 +1822,7 @@ stmt_uselect2(backend *be, stmt *op1, st
                s->op3 = op3;
                s->op4.stval = sub;
                s->flag = cmp;
-               s->nrcols = (op1->nrcols == 2) ? 2 : 1;
+               s->nrcols = op1->nrcols;
                s->nr = getDestVar(q);
                s->q = q;
                s->cand = sub;
diff --git a/sql/test/pg_regress/Tests/timestamp.stable.out 
b/sql/test/pg_regress/Tests/timestamp.stable.out
--- a/sql/test/pg_regress/Tests/timestamp.stable.out
+++ b/sql/test/pg_regress/Tests/timestamp.stable.out
@@ -74,13 +74,13 @@ stdout of test 'timestamp` in directory 
 % 1 # length
 [ 1 ]
 #SELECT count(*) AS One FROM TIMESTAMP_TBL WHERE d1 = cast((select 
test_current_date from test_current_date) + interval '1' DAY as timestamp);
-% sys. # table_name
+% . # table_name
 % one # name
 % bigint # type
 % 1 # length
 [ 1    ]
 #SELECT count(*) AS One FROM TIMESTAMP_TBL WHERE d1 = cast((select 
test_current_date from test_current_date) - interval '1' DAY as timestamp);
-% sys. # table_name
+% . # table_name
 % one # name
 % bigint # type
 % 1 # length
diff --git a/sql/test/pg_regress/Tests/timestamptz.stable.out 
b/sql/test/pg_regress/Tests/timestamptz.stable.out
--- a/sql/test/pg_regress/Tests/timestamptz.stable.out
+++ b/sql/test/pg_regress/Tests/timestamptz.stable.out
@@ -43,13 +43,13 @@ stdout of test 'timestamptz` in director
 % 1 # length
 [ 1 ]
 #SELECT count(*) AS One FROM TIMESTAMPTZ_TBL WHERE d1 = cast((select 
test_current_date from test_current_date) + interval '1' DAY as timestamp);
-% sys. # table_name
+% . # table_name
 % one # name
 % bigint # type
 % 1 # length
 [ 1    ]
 #SELECT count(*) AS One FROM TIMESTAMPTZ_TBL WHERE d1 = cast((select 
test_current_date from test_current_date) - interval '1' DAY as timestamp);
-% sys. # table_name
+% . # table_name
 % one # name
 % bigint # type
 % 1 # length
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to