Changeset: 99aa0caa3cb2 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/99aa0caa3cb2
Modified Files:
sql/backends/monet5/sql_statement.c
Branch: setjoins
Log Message:
make sure we handle notin properly
diffs (36 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
@@ -1454,13 +1454,16 @@ stmt_uselect(backend *be, stmt *op1, stm
const char *mod = calcRef;
const char *op = "=";
int k;
+ int notin = 0;
switch (cmptype) {
case mark_in:
- case mark_notin:
case cmp_equal:
op = "=";
break;
+ case mark_notin:
+ notin = 1;
+ /* fall through */
case cmp_notequal:
op = "!=";
break;
@@ -1498,6 +1501,14 @@ stmt_uselect(backend *be, stmt *op1, stm
q = pushBit(mb, q, TRUE);
k = getDestVar(q);
+ if (notin) {
+ q = newStmt(mb, batcalcRef, "ifthenelse");
+ q = pushArgument(mb, q, k);
+ q = pushBit(mb, q, FALSE);
+ q = pushBit(mb, q, TRUE);
+ k = getDestVar(q);
+ }
+
q = newStmtArgs(mb, algebraRef, selectRef, 9);
q = pushArgument(mb, q, k);
if (sub)
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list