Changeset: f6a791995377 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/f6a791995377
Modified Files:
        sql/backends/monet5/sql_statement.c
Branch: pushcands
Log Message:

Defensive lines


diffs (48 lines):

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
@@ -1359,7 +1359,7 @@ stmt_genselect(backend *be, stmt *lops, 
 
                        if (!push_cands && sel && op->nrcols > 0 && !op->cand) 
/* don't push cands twice */
                                op = stmt_project_column_on_cand(be, sel, op);
-                       else if (push_cands)
+                       else if (push_cands && op->nrcols > 0)
                                all_cands_pushed &= op->cand != NULL;
                        q = pushArgument(mb, q, op->nr);
                }
@@ -1368,7 +1368,7 @@ stmt_genselect(backend *be, stmt *lops, 
 
                        if (!push_cands && sel && op->nrcols > 0 && !op->cand) 
/* don't push cands twice */
                                op = stmt_project_column_on_cand(be, sel, op);
-                       else if (push_cands)
+                       else if (push_cands && op->nrcols > 0)
                                all_cands_pushed &= op->cand != NULL;
                        q = pushArgument(mb, q, op->nr);
                }
@@ -1522,7 +1522,7 @@ stmt_uselect(backend *be, stmt *op1, stm
                                anti = !anti;
                        q = newStmtArgs(mb, algebraRef, selectRef, 9);
                        q = pushArgument(mb, q, l);
-                       if (!op1->cand && sel) /* don't push cands again */
+                       if (!op1->cand && op1->nrcols && sel) /* don't push 
cands again */
                                q = pushArgument(mb, q, sel->nr);
                        else
                                q = pushNil(mb, q, TYPE_bat);
@@ -1534,7 +1534,7 @@ stmt_uselect(backend *be, stmt *op1, stm
                } else {
                        q = newStmt(mb, algebraRef, thetaselectRef);
                        q = pushArgument(mb, q, l);
-                       if (!op1->cand && sel) /* don't push cands again */
+                       if (!op1->cand && op1->nrcols && sel) /* don't push 
cands again */
                                q = pushArgument(mb, q, sel->nr);
                        else
                                q = pushNil(mb, q, TYPE_bat);
@@ -1657,7 +1657,7 @@ select2_join2(backend *be, stmt *op1, st
                if (type == st_join2)
                        q = pushReturn(mb, q, newTmpVariable(mb, TYPE_any));
                q = pushArgument(mb, q, l);
-               if (!op1->cand && sel) /* don't push cands again */
+               if (!op1->cand && op1->nrcols && sel) /* don't push cands again 
*/
                        q = pushArgument(mb, q, sel->nr);
                if (rs) {
                        q = pushArgument(mb, q, rs);
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to