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