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

Reply via email to