Changeset: f42cbf6d0a39 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=f42cbf6d0a39
Modified Files:
        gdk/gdk_storage.c
Branch: default
Log Message:

Merge with Jul2015 branch.


diffs (40 lines):

diff --git a/gdk/gdk_storage.c b/gdk/gdk_storage.c
--- a/gdk/gdk_storage.c
+++ b/gdk/gdk_storage.c
@@ -797,20 +797,23 @@ BATsave(BAT *bd)
        if (err == GDK_SUCCEED) {
                bd->batCopiedtodisk = 1;
                DESCclean(bd);
-               if (bd->htype && bd->H->heap.storage == STORE_MMAP) {
-                       HEAPshrink(&bd->H->heap, bd->H->heap.free);
-                       if (bd->batCapacity > bd->H->heap.size >> bd->H->shift)
-                               bd->batCapacity = (BUN) (bd->H->heap.size >> 
bd->H->shift);
+               /* see comment with BATassertProps() at the top of this 
function */
+               if (BATmirror(bd)) {
+                       if (bd->htype && bd->H->heap.storage == STORE_MMAP) {
+                               HEAPshrink(&bd->H->heap, bd->H->heap.free);
+                               if (bd->batCapacity > bd->H->heap.size >> 
bd->H->shift)
+                                       bd->batCapacity = (BUN) 
(bd->H->heap.size >> bd->H->shift);
+                       }
+                       if (bd->ttype && bd->T->heap.storage == STORE_MMAP) {
+                               HEAPshrink(&bd->T->heap, bd->T->heap.free);
+                               if (bd->batCapacity > bd->T->heap.size >> 
bd->T->shift)
+                                       bd->batCapacity = (BUN) 
(bd->T->heap.size >> bd->T->shift);
+                       }
+                       if (bd->H->vheap && bd->H->vheap->storage == STORE_MMAP)
+                               HEAPshrink(bd->H->vheap, bd->H->vheap->free);
+                       if (bd->T->vheap && bd->T->vheap->storage == STORE_MMAP)
+                               HEAPshrink(bd->T->vheap, bd->T->vheap->free);
                }
-               if (bd->ttype && bd->T->heap.storage == STORE_MMAP) {
-                       HEAPshrink(&bd->T->heap, bd->T->heap.free);
-                       if (bd->batCapacity > bd->T->heap.size >> bd->T->shift)
-                               bd->batCapacity = (BUN) (bd->T->heap.size >> 
bd->T->shift);
-               }
-               if (bd->H->vheap && bd->H->vheap->storage == STORE_MMAP)
-                       HEAPshrink(bd->H->vheap, bd->H->vheap->free);
-               if (bd->T->vheap && bd->T->vheap->storage == STORE_MMAP)
-                       HEAPshrink(bd->T->vheap, bd->T->vheap->free);
                return GDK_SUCCEED;
        }
        return err;
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to