Changeset: d7bad993d469 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/d7bad993d469 Modified Files: gdk/gdk_join.c Branch: groupjoin Log Message:
Fix mergejoin implementation of markjoin when there are nils at the l end.
diffs (35 lines):
diff --git a/gdk/gdk_join.c b/gdk/gdk_join.c
--- a/gdk/gdk_join.c
+++ b/gdk/gdk_join.c
@@ -2279,21 +2279,27 @@ mergejoin(BAT **r1p, BAT **r2p, BAT **r3
}
if (maybeextend(r1, r2, r3, nlx,
lci->next, lci->ncand, maxsize) != GDK_SUCCEED)
goto bailout;
+ if (r3)
+ r3->tnil = false;
while (nlx > 0) {
lv = canditer_next(lci);
if (mlci == NULL ||
canditer_contains(mlci, lv)) {
APPEND(r1, lv);
if (r2)
APPEND(r2,
oid_nil);
- if (r3)
- ((bit *)
r3->theap->base)[r3->batCount++] = defmark;
+ if (r3) {
+ if (rhasnil ||
cmp(VALUE(l, lv - l->hseqbase), nil) == 0) {
+ ((bit
*) r3->theap->base)[r3->batCount++] = bit_nil;
+
r3->tnil = true;
+ } else {
+ ((bit
*) r3->theap->base)[r3->batCount++] = 0;
+ }
+ }
}
nlx--;
}
if (r1->trevsorted && BATcount(r1) > 1)
r1->trevsorted = false;
- if (r3)
- r3->tnil = rhasnil;
} else {
canditer_setidx(lci, lci->next + nlx);
}
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]
