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
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list