Changeset: e8b72a1c0715 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=e8b72a1c0715
Modified Files:
monetdb5/modules/mal/mosaic.c
Branch: mosaic
Log Message:
Forcing the BATsave
but it didn't help surviving the server restart
diffs (39 lines):
diff --git a/monetdb5/modules/mal/mosaic.c b/monetdb5/modules/mal/mosaic.c
--- a/monetdb5/modules/mal/mosaic.c
+++ b/monetdb5/modules/mal/mosaic.c
@@ -254,10 +254,6 @@ MOScompressInternal(Client cntxt, int *r
// use a size overshoot. Also be aware of possible dictionary headers
//if (inplace)
bsrc = BATcopy(bcompress, bcompress->htype, bcompress->ttype,
TRUE,TRANSIENT);
- if( !inplace)
- bsrc = BATextend(bsrc, BATgrows(bsrc)+MosaicHdrSize);
- else
- bcompress = BATextend(bcompress,
BATgrows(bcompress)+MosaicHdrSize);
if (bsrc == NULL) {
BBPreleaseref(bcompress->batCacheid);
@@ -300,6 +296,11 @@ MOScompressInternal(Client cntxt, int *r
}
} else {
// initialize local compressed copy
+ bsrc = BATextend(bsrc, BATgrows(bsrc)+MosaicHdrSize);
+ if( bsrc == NULL){
+ BBPreleaseref(bcompress->batCacheid);
+ throw(MAL,"mosaic.compress", MAL_MALLOC_FAIL);
+ }
task->src = Tloc(bcompress, BUNfirst(bcompress));
task->elm = BATcount(bcompress);
task->stop = BATcount(bsrc);
@@ -461,10 +462,12 @@ MOScompressInternal(Client cntxt, int *r
// TODO
if( inplace){
+ bcompress->batDirty = 1;
bcompress->T->heap.dirty = 1;
bcompress->T->heap.free = (size_t) (task->dst -
Tloc(bcompress,BUNfirst(bcompress)) );
bcompress->T->heap.compressed= 1;
MCexitMaintenance(cntxt);
+ BATsave(bcompress);
BBPkeepref(*ret = bcompress->batCacheid);
BBPreleaseref(bsrc->batCacheid);
} else {
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list