Changeset: d11eb1be9363 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=d11eb1be9363
Modified Files:
        gdk/gdk_bbp.mx
Branch: Apr2012
Log Message:

When increffing a view, make sure the parent bats are loaded.
Increffing the parent bat isn't enough since that by itself doesn't
cause it to be loaded.


diffs (41 lines):

diff --git a/gdk/gdk_bbp.mx b/gdk/gdk_bbp.mx
--- a/gdk/gdk_bbp.mx
+++ b/gdk/gdk_bbp.mx
@@ -2277,8 +2277,8 @@ incref(bat i, int logical, int lock)
                assert(!logical);
                if (hp) {
                        incref(hp, 0, lock);
+                       b = getBBPdescriptor(hp, lock);
                        if (!bs->P.lview) {
-                               b = getBBPdescriptor(hp, lock);
                                bs->B.H->heap.base = b->H->heap.base + (size_t) 
bs->B.H->heap.base;
                                /* if we shared the hash before, share
                                 * it again note that if the parent's
@@ -2290,9 +2290,9 @@ incref(bat i, int logical, int lock)
                }
                if (tp) {
                        incref(tp, 0, lock);
+                       b = getBBPdescriptor(tp, lock);
                        if (!bs->P.lview &&
                            bs->B.H != bs->B.T) {  /* mirror? */
-                               b = getBBPdescriptor(tp, lock);
                                bs->B.T->heap.base = b->H->heap.base + (size_t) 
bs->B.T->heap.base;
                                /* if we shared the hash before, share
                                 * it again note that if the parent's
@@ -2302,10 +2302,14 @@ incref(bat i, int logical, int lock)
                                        bs->B.T->hash = b->H->hash;
                        }
                }
-               if (hvp)
+               if (hvp) {
                        incref(hvp, 0, lock);
-               if (tvp)
+                       (void) getBBPdescriptor(hvp, lock);
+               }
+               if (tvp) {
                        incref(tvp, 0, lock);
+                       (void) getBBPdescriptor(tvp, lock);
+               }
                /* done loading, release descriptor */
                BBP_status_off(i, BBPLOADING, "BBPincref");
        }
_______________________________________________
Checkin-list mailing list
Checkin-list@monetdb.org
http://mail.monetdb.org/mailman/listinfo/checkin-list

Reply via email to