Changeset: b82dc476a040 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/b82dc476a040 Modified Files: gdk/gdk_bbp.c gdk/gdk_strimps.c Branch: string_imprints Log Message:
Fix strimp persistence diffs (40 lines): diff --git a/gdk/gdk_bbp.c b/gdk/gdk_bbp.c --- a/gdk/gdk_bbp.c +++ b/gdk/gdk_bbp.c @@ -4038,6 +4038,11 @@ BBPdiskscan(const char *parent, size_t b #else delete = true; #endif + } else if (strncmp(p + 1, "tstrimps", 8) == 0) { + BAT *b = getdesc(bid); + delete = b == NULL; + if (!delete) + b->tstrimps = (Strimps *)1; } else if (strncmp(p + 1, "new", 3) != 0) { ok = false; } diff --git a/gdk/gdk_strimps.c b/gdk/gdk_strimps.c --- a/gdk/gdk_strimps.c +++ b/gdk/gdk_strimps.c @@ -78,7 +78,7 @@ * first 8 bytes of the heap. */ #define NPAIRS(d) (((d) & (0xff << 8)) >> 8) -#define HSIZE(d) (((d) & (0xffff << 16)) >> 16) +#define HSIZE(d) (((d) & (0xffff << 15)) >> 15) #undef UTF8STRINGS /* Not using utf8 for now */ #ifdef UTF8STRINGS @@ -426,9 +426,9 @@ BATcheckstrimps(BAT *b) /* bitmasks */ BATcount(b)*(npairs/8)) && HEAPload(&hp->strimps, nme, "tstrimps", false) == GDK_SUCCEED) { - hp->sizes_base = (uint8_t *)hp + 8; /* sizes start just after the descriptor */ - hp->pairs_base = hp->sizes_base + npairs; /* pairs start after the offsets */ - hp->strimps_base = hp->sizes_base + hsize; /* bitmasks start after the pairs */ + hp->sizes_base = (uint8_t *)hp->strimps.base + 8; /* sizes just after the descriptor */ + hp->pairs_base = hp->sizes_base + npairs; /* pairs just after the offsets */ + hp->strimps_base = hp->sizes_base + hsize; /* bitmasks just after the pairs */ close(fd); hp->strimps.parentid = b->batCacheid; _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list