Changeset: 533920529330 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=533920529330
Modified Files:
gdk/gdk_storage.c
Branch: Jan2014
Log Message:
If HEAPextend fails, loading fails.
diffs (26 lines):
diff --git a/gdk/gdk_storage.c b/gdk/gdk_storage.c
--- a/gdk/gdk_storage.c
+++ b/gdk/gdk_storage.c
@@ -686,14 +686,20 @@ BATload_intern(bat i, int lock)
}
if (b->batCapacity != (b->T->heap.size >> b->T->shift)) {
BUN cap = b->batCapacity;
+ int h;
if (cap < (b->T->heap.size >> b->T->shift)) {
cap = (BUN) (b->T->heap.size >> b->T->shift);
HEAPDEBUG fprintf(stderr, "#HEAPextend in
BATload_inter %s " SZFMT " " SZFMT "\n", b->H->heap.filename, b->H->heap.size,
headsize(b, cap));
- HEAPextend(&b->H->heap, headsize(b, cap),
b->batRestricted == BAT_READ);
+ h = HEAPextend(&b->H->heap, headsize(b, cap),
b->batRestricted == BAT_READ);
b->batCapacity = cap;
} else {
HEAPDEBUG fprintf(stderr, "#HEAPextend in
BATload_intern %s " SZFMT " " SZFMT "\n", b->T->heap.filename, b->T->heap.size,
tailsize(b, cap));
- HEAPextend(&b->T->heap, tailsize(b, cap),
b->batRestricted == BAT_READ);
+ h = HEAPextend(&b->T->heap, tailsize(b, cap),
b->batRestricted == BAT_READ);
+ }
+ if (h < 0) {
+ HEAPfree(&b->H->heap);
+ HEAPfree(&b->T->heap);
+ return NULL;
}
}
} else {
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list