Changeset: c22501b31b39 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=c22501b31b39
Modified Files:
gdk/gdk_join.c
Branch: linear-hashing
Log Message:
Like in BATjoin, in leftjoin work on parent if view covers it completely.
diffs (31 lines):
diff --git a/gdk/gdk_join.c b/gdk/gdk_join.c
--- a/gdk/gdk_join.c
+++ b/gdk/gdk_join.c
@@ -3400,6 +3400,7 @@ leftjoin(BAT **r1p, BAT **r2p, BAT *l, B
BUN lcnt, rcnt;
struct canditer lci, rci;
bool phash = false;
+ bat parent;
/* only_misses implies left output only */
assert(!only_misses || r2p == NULL);
@@ -3413,6 +3414,19 @@ leftjoin(BAT **r1p, BAT **r2p, BAT *l, B
if (joinparamcheck(l, r, NULL, sl, sr, func) != GDK_SUCCEED)
return GDK_FAIL;
+ if ((parent = VIEWtparent(l)) != 0) {
+ BAT *b = BBPdescriptor(parent);
+ if (l->hseqbase == b->hseqbase &&
+ BATcount(l) == BATcount(b))
+ l = b;
+ }
+ if ((parent = VIEWtparent(r)) != 0) {
+ BAT *b = BBPdescriptor(parent);
+ if (r->hseqbase == b->hseqbase &&
+ BATcount(r) == BATcount(b))
+ r = b;
+ }
+
lcnt = canditer_init(&lci, l, sl);
rcnt = canditer_init(&rci, r, sr);
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list