Changeset: 4b4623152417 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/4b4623152417
Modified Files:
        gdk/gdk_strimps.c
Branch: string_imprints
Log Message:

Attempt to make filtering mitosis-aware

This needs still more work.


diffs (59 lines):

diff --git a/gdk/gdk_strimps.c b/gdk/gdk_strimps.c
--- a/gdk/gdk_strimps.c
+++ b/gdk/gdk_strimps.c
@@ -455,18 +455,17 @@ STRMPfilter(BAT *b, char *q)
        BUN i;
        uint64_t qbmask;
        uint64_t *ptr;
-       int zz = 0;
-
 
        if (b->tstrimps == NULL)
                goto sfilter_fail;
 
-       r = COLnew(0, TYPE_oid, b->batCount, TRANSIENT);
+       r = COLnew(b->hseqbase, TYPE_oid, b->batCount, TRANSIENT);
        if (r == NULL) {
                goto sfilter_fail;
        }
 
        if (!BATcheckstrimps(b)) {
+               BBPunfix(r->batCacheid);
                goto sfilter_fail;
        }
        qbmask = STRMPmakebitstring(q, b->tstrimps);
@@ -478,18 +477,13 @@ STRMPfilter(BAT *b, char *q)
                        if (BUNappend(r, &pos, false) != GDK_SUCCEED)
                                goto sfilter_fail;
                }
-               else {
-                       zz++;
-               }
        }
-       printf("filtered out: %d entries\n", zz);
 
        r->tkey = true;
        return virtualize(r);
 
 
  sfilter_fail:
-       BBPunfix(r->batCacheid);
        return NULL;
 }
 
@@ -579,9 +573,15 @@ STRMPcreate(BAT *b)
        assert(b->ttype == TYPE_str);
        TRC_DEBUG_IF(ALGO) t0 = GDKusec();
 
+
        if (BATcheckstrimps(b))
                return GDK_SUCCEED;
 
+       if (VIEWtparent(b)) {
+               assert(b->tstrimps == NULL);
+               b = BBPdescriptor(VIEWtparent(b));
+       }
+
        if ((h = STRMPcreateStrimpHeap(b)) == NULL) {
                return GDK_FAIL;
        }
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to