Changeset: 396bfceb1a5a for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=396bfceb1a5a
Modified Files:
        gdk/gdk_bbp.c
        gdk/gdk_private.h
Branch: default
Log Message:

When dumping the BBP contents (BBPdump) dump all bats, not just cached ones.


diffs (89 lines):

diff --git a/gdk/gdk_bbp.c b/gdk/gdk_bbp.c
--- a/gdk/gdk_bbp.c
+++ b/gdk/gdk_bbp.c
@@ -1490,39 +1490,42 @@ BBPdump(void)
        int n = 0, nc = 0;
 
        for (i = 0; i < (bat) ATOMIC_GET(&BBPsize); i++) {
-               BAT *b = BBP_cache(i);
-               if (b == NULL)
+               if (BBP_refs(i) == 0 && BBP_lrefs(i) == 0)
                        continue;
+               BAT *b = BBP_desc(i);
                fprintf(stderr,
-                       "# %d: " ALGOBATFMT " "
+                       "# %d: " ALGOOPTBATFMT " "
                        "refs=%d lrefs=%d "
-                       "status=%u",
+                       "status=%u%s",
                        i,
-                       ALGOBATPAR(b),
+                       ALGOOPTBATPAR(b),
                        BBP_refs(i),
                        BBP_lrefs(i),
-                       BBP_status(i));
+                       BBP_status(i),
+                       BBP_cache(i) ? "" : " not cached");
                if (b->batSharecnt > 0)
                        fprintf(stderr, " shares=%d", b->batSharecnt);
                if (b->batDirtydesc)
                        fprintf(stderr, " DirtyDesc");
-               if (b->theap->parentid != b->batCacheid) {
-                       fprintf(stderr, " Theap -> %d", b->theap->parentid);
-               } else {
-                       fprintf(stderr,
-                               " Theap=[%zu,%zu,f=%d]%s",
-                               HEAPmemsize(b->theap),
-                               HEAPvmsize(b->theap),
-                               b->theap->farmid,
-                               b->theap->dirty ? "(Dirty)" : "");
-                       if (BBP_logical(i) && BBP_logical(i)[0] == '.') {
-                               cmem += HEAPmemsize(b->theap);
-                               cvm += HEAPvmsize(b->theap);
-                               nc++;
+               if (b->theap) {
+                       if (b->theap->parentid != b->batCacheid) {
+                               fprintf(stderr, " Theap -> %d", 
b->theap->parentid);
                        } else {
-                               mem += HEAPmemsize(b->theap);
-                               vm += HEAPvmsize(b->theap);
-                               n++;
+                               fprintf(stderr,
+                                       " Theap=[%zu,%zu,f=%d]%s",
+                                       HEAPmemsize(b->theap),
+                                       HEAPvmsize(b->theap),
+                                       b->theap->farmid,
+                                       b->theap->dirty ? "(Dirty)" : "");
+                               if (BBP_logical(i) && BBP_logical(i)[0] == '.') 
{
+                                       cmem += HEAPmemsize(b->theap);
+                                       cvm += HEAPvmsize(b->theap);
+                                       nc++;
+                               } else {
+                                       mem += HEAPmemsize(b->theap);
+                                       vm += HEAPvmsize(b->theap);
+                                       n++;
+                               }
                        }
                }
                if (b->tvheap) {
diff --git a/gdk/gdk_private.h b/gdk/gdk_private.h
--- a/gdk/gdk_private.h
+++ b/gdk/gdk_private.h
@@ -280,7 +280,7 @@ BAT *virtualize(BAT *bn)
        b ? "[" : "",                                                   \
        b ? ATOMname(b->ttype) : "",                                    \
        b ? "]" : "",                                                   \
-       b ? !b->batTransient ? "P" : b->theap->parentid ? "V" : b->tvheap && 
b->tvheap->parentid != b->batCacheid ? "v" : "T" : "",     \
+       b ? !b->batTransient ? "P" : b->theap && b->theap->parentid ? "V" : 
b->tvheap && b->tvheap->parentid != b->batCacheid ? "v" : "T" : "", \
        b ? BATtdense(b) ? "D" : b->ttype == TYPE_void && b->tvheap ? "X" : 
ATOMstorage(b->ttype) == TYPE_str && GDK_ELIMDOUBLES(b->tvheap) ? "E" : "" : 
"", \
        b ? b->tsorted ? "S" : b->tnosorted ? "!s" : "" : "",           \
        b ? b->trevsorted ? "R" : b->tnorevsorted ? "!r" : "" : "",     \
@@ -288,7 +288,7 @@ BAT *virtualize(BAT *bn)
        b && b->tnonil ? "N" : "",                                      \
        b && b->thash ? "H" : "",                                       \
        b && b->torderidx ? "O" : "",                                   \
-       b ? b->timprints ? "I" : b->theap->parentid && 
BBP_cache(b->theap->parentid)->timprints ? "(I)" : "" : ""
+       b ? b->timprints ? "I" : b->theap && b->theap->parentid && 
BBP_cache(b->theap->parentid) && BBP_cache(b->theap->parentid)->timprints ? 
"(I)" : "" : ""
 
 #define BBP_BATMASK    (128 * SIZEOF_SIZE_T - 1)
 #define BBP_THREADMASK 63
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to