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

Reply via email to