Changeset: 53cff246e0de for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=53cff246e0de
Modified Files:
monetdb5/modules/kernel/algebra.mal
sql/backends/monet5/sql_statement.c
Branch: mbedded
Log Message:
removed antijoin function, which just called thetajoin.
We now generate a thetajoin also in this case.
diffs (54 lines):
diff --git a/monetdb5/modules/kernel/algebra.mal
b/monetdb5/modules/kernel/algebra.mal
--- a/monetdb5/modules/kernel/algebra.mal
+++ b/monetdb5/modules/kernel/algebra.mal
@@ -210,12 +210,6 @@ command thetajoin(l:bat[:any_1],r:bat[:a
address ALGthetajoin
comment "Theta join with candidate lists";
-function
antijoin(l:bat[:any_1],r:bat[:any_1],sl:bat[:oid],sr:bat[:oid],nil_matches:bit,estimate:lng)
(:bat[:oid],:bat[:oid]);
- # JOIN_NE == -3
- (r1,r2) := thetajoin(l,r,sl,sr,-3:int,nil_matches,estimate);
- return (r1,r2);
-end antijoin;
-
command
bandjoin(l:bat[:any_1],r:bat[:any_1],sl:bat[:oid],sr:bat[:oid],c1:any_1,c2:any_1,li:bit,hi:bit,estimate:lng)
(:bat[:oid],:bat[:oid])
address ALGbandjoin
comment "Band join: values in l and r match if r - c1 <[=] l <[=] r + c2";
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
@@ -1943,23 +1943,6 @@ stmt_join_cand(backend *be, stmt *op1, s
return NULL;
break;
case cmp_notequal:
- q = newStmt(mb, algebraRef, antijoinRef);
- q = pushReturn(mb, q, newTmpVariable(mb, TYPE_any));
- q = pushArgument(mb, q, op1->nr);
- q = pushArgument(mb, q, op2->nr);
- if (!lcand)
- q = pushNil(mb, q, TYPE_bat);
- else
- q = pushArgument(mb, q, lcand->nr);
- if (!rcand)
- q = pushNil(mb, q, TYPE_bat);
- else
- q = pushArgument(mb, q, rcand->nr);
- q = pushBit(mb, q, FALSE);
- q = pushNil(mb, q, TYPE_lng);
- if (q == NULL)
- return NULL;
- break;
case cmp_lt:
case cmp_lte:
case cmp_gt:
@@ -1984,7 +1967,9 @@ stmt_join_cand(backend *be, stmt *op1, s
q = pushInt(mb, q, 1);
else if (cmptype == cmp_gte)
q = pushInt(mb, q, 2);
- q = pushBit(mb, q, TRUE);
+ else if (cmptype == cmp_notequal)
+ q = pushInt(mb, q, -3);
+ q = pushBit(mb, q, cmp_notequal?FALSE:TRUE);
q = pushNil(mb, q, TYPE_lng);
if (q == NULL)
return NULL;
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list