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 -- [email protected]
To unsubscribe send an email to [email protected]