Changeset: c06ee03df112 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/c06ee03df112 Modified Files: gdk/gdk_strimps.c gdk/gdk_strimps.h Branch: strimps_update Log Message:
Refuse to create strimps on small bats diffs (35 lines): diff --git a/gdk/gdk_strimps.c b/gdk/gdk_strimps.c --- a/gdk/gdk_strimps.c +++ b/gdk/gdk_strimps.c @@ -725,6 +725,12 @@ BATsetstrimps(BAT *b) pb = b; } + if (pb->batCount < STRIMP_CREATION_THRESHOLD) { + GDKerror("Cannot create strimps index on columns with fewer than %ud elements\n", STRIMP_CREATION_THRESHOLD); + return GDK_FAIL; + } + + MT_lock_set(&pb->batIdxLock); if (pb->tstrimps == NULL) { pb->tstrimps = (Strimps *)2; @@ -742,6 +748,7 @@ BATsetstrimps(BAT *b) #define STRIMP_COMPLETE(b) \ b->tstrimps != NULL && \ b->tstrimps != (Strimps *)1 && \ + b->tstrimps != (Strimps *)2 && \ ((b->tstrimps->strimps.free - ((char *)b->tstrimps->bitstrings_base - b->tstrimps->strimps.base)) == b->batCount*sizeof(uint64_t)) diff --git a/gdk/gdk_strimps.h b/gdk/gdk_strimps.h --- a/gdk/gdk_strimps.h +++ b/gdk/gdk_strimps.h @@ -16,6 +16,7 @@ #define STRIMP_HISTSIZE 256*256 #define STRIMP_HEADER_SIZE 64 #define STRIMP_PAIRS (STRIMP_HEADER_SIZE - 1) +#define STRIMP_CREATION_THRESHOLD 5000 typedef struct { uint8_t *pbytes; _______________________________________________ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org