Changeset: 418ccd7a912f for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=418ccd7a912f
Modified Files:
        gdk/gdk_join.c
Branch: default
Log Message:

Some small fixes to new join code.
BATproject must deal with empty left operand.
Some strings were incorrect.


diffs (41 lines):

diff --git a/gdk/gdk_join.c b/gdk/gdk_join.c
--- a/gdk/gdk_join.c
+++ b/gdk/gdk_join.c
@@ -963,7 +963,7 @@ BATsubjoin(BAT **r1p, BAT **r2p, BAT *l,
 
        *r1p = NULL;
        *r2p = NULL;
-       if (joinparamcheck(l, r, sl, sr, "BATsubleftjoin") == GDK_FAIL)
+       if (joinparamcheck(l, r, sl, sr, "BATsubjoin") == GDK_FAIL)
                return GDK_FAIL;
        lcount = BATcount(l);
        if (sl)
@@ -982,7 +982,7 @@ BATsubjoin(BAT **r1p, BAT **r2p, BAT *l,
                *r2p = r2;
                return GDK_SUCCEED;
        }
-       if (joininitresults(&r1, &r2, estimate != BUN_NONE ? estimate : sl ? 
BATcount(sl) : BATcount(l), "BATsubleftjoin") == GDK_FAIL)
+       if (joininitresults(&r1, &r2, estimate != BUN_NONE ? estimate : sl ? 
BATcount(sl) : BATcount(l), "BATsubjoin") == GDK_FAIL)
                return GDK_FAIL;
        *r1p = r1;
        *r2p = r2;
@@ -1034,7 +1034,7 @@ BATproject(BAT *l, BAT *r)
        assert(BAThdense(r));
        assert(l->ttype == TYPE_void || l->ttype == TYPE_oid);
 
-       if (BATtdense(l)) {
+       if (BATtdense(l) && BATcount(l) > 0) {
                lo = l->tseqbase;
                hi = l->tseqbase + BATcount(l);
                if (lo < r->hseqbase || hi > r->hseqbase + BATcount(r)) {
@@ -1046,8 +1046,8 @@ BATproject(BAT *l, BAT *r)
                        return NULL;
                return BATseqbase(bn, l->hseqbase + (lo - l->tseqbase));
        }
-       if (l->ttype == TYPE_void) {
-               assert(l->tseqbase == oid_nil);
+       if (l->ttype == TYPE_void || BATcount(l) == 0) {
+               assert(BATcount(l) == 0 || l->tseqbase == oid_nil);
                bn = BATconstant(r->ttype, nil, BATcount(l));
                if (bn != NULL)
                        bn = BATseqbase(bn, l->hseqbase);
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
http://mail.monetdb.org/mailman/listinfo/checkin-list

Reply via email to