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