Changeset: b13a7e625cab for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/b13a7e625cab
Modified Files:
gdk/gdk_bbp.c
Branch: Jul2021
Log Message:
When checking for correct heap files, prefer tail with width for string bats.
diffs (46 lines):
diff --git a/gdk/gdk_bbp.c b/gdk/gdk_bbp.c
--- a/gdk/gdk_bbp.c
+++ b/gdk/gdk_bbp.c
@@ -751,6 +751,34 @@ BBPcheckbats(unsigned bbpversion)
path = GDKfilepath(0, BATDIR, b->theap->filename, NULL);
if (path == NULL)
return GDK_FAIL;
+#if 1
+ /* first check string offset heap with width,
+ * then without */
+ if (MT_stat(path, &statb) < 0) {
+#ifdef GDKLIBRARY_TAILN
+ if (b->ttype == TYPE_str &&
+ b->twidth < SIZEOF_VAR_T) {
+ size_t taillen = strlen(path) - 1;
+ char tailsave = path[taillen];
+ path[taillen] = 0;
+ if (MT_stat(path, &statb) < 0) {
+ GDKsyserror("cannot stat file
%s%c or %s (expected size %zu)\n",
+ path, tailsave,
path, b->theap->free);
+ GDKfree(path);
+ return GDK_FAIL;
+ }
+ } else
+#endif
+ {
+ GDKsyserror("cannot stat file %s
(expected size %zu)\n",
+ path, b->theap->free);
+ GDKfree(path);
+ return GDK_FAIL;
+ }
+ }
+#else
+ /* first check string offset heap without widht,
+ * then with */
#ifdef GDKLIBRARY_TAILN
/* if bbpversion > GDKLIBRARY_TAILN, the offset heap can
* exist with either name .tail1 (etc) or .tail, if <=
@@ -780,6 +808,7 @@ BBPcheckbats(unsigned bbpversion)
GDKfree(path);
return GDK_FAIL;
}
+#endif
if ((size_t) statb.st_size < b->theap->free) {
GDKerror("file %s too small (expected %zu,
actual %zu)\n", path, b->theap->free, (size_t) statb.st_size);
GDKfree(path);
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list