Changeset: 32c1c18252fb for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/32c1c18252fb Modified Files: sql/backends/monet5/sql_statement.c Branch: pushcands Log Message:
fixes stmt_genselect for push of candidates. diffs (44 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 @@ -1364,6 +1364,27 @@ stmt_genselect(backend *be, stmt *lops, all_cands_pushed &= op->cand != NULL; q = pushArgument(mb, q, op->nr); } + if (!all_cands_pushed && push_cands && sel) { + for (node *n = lops->op4.lval->h; n; n = n->next) { + stmt *op = n->data; + if (op->nrcols) { + if (op->cand) + q = pushNil(mb, q, TYPE_bat); + else + q = pushArgument(mb, q, sel->nr); + } + } + for (node *n = rops->op4.lval->h; n; n = n->next) { + stmt *op = n->data; + if (op->nrcols) { + if (op->cand) + q = pushNil(mb, q, TYPE_bat); + else + q = pushArgument(mb, q, sel->nr); + } + } + all_cands_pushed = 1; + } k = getDestVar(q); q = newStmtArgs(mb, algebraRef, selectRef, 9); @@ -1379,6 +1400,12 @@ stmt_genselect(backend *be, stmt *lops, q = pushBit(mb, q, TRUE); q = pushBit(mb, q, TRUE); q = pushBit(mb, q, anti); + if (all_cands_pushed && sel) { + int nr = getDestVar(q); + q = newStmt(mb, algebraRef, projectionRef); + q = pushArgument(mb, q, nr); + q = pushArgument(mb, q, sel->nr); + } } else { op = sa_strconcat(be->mvc->sa, op, selectRef); q = newStmtArgs(mb, mod, convertOperator(op), 9); _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list