Changeset: 733dd3266674 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=733dd3266674
Modified Files:
        gdk/gdk.h
        gdk/gdk_align.c
        gdk/gdk_bat.c
        gdk/gdk_batop.c
        gdk/gdk_bbp.c
        gdk/gdk_delta.c
        gdk/gdk_delta.h
        gdk/gdk_group.c
        gdk/gdk_imprints.c
        gdk/gdk_logger.c
        gdk/gdk_orderidx.c
        gdk/gdk_private.h
        gdk/gdk_storage.c
        gdk/gdk_unique.c
        monetdb5/modules/kernel/bat5.c
        monetdb5/modules/kernel/status.c
        sql/backends/monet5/sql.c
Branch: default
Log Message:

Cleanup: remove some macros, remove code for non-existing head structures.
All stuff that's not needed anymore since head columns are always VOID.


diffs (truncated from 826 to 300 lines):

diff --git a/gdk/gdk.h b/gdk/gdk.h
--- a/gdk/gdk.h
+++ b/gdk/gdk.h
@@ -1337,14 +1337,10 @@ gdk_export BUN BUNfnd(BAT *b, const void
                         TYPE_oid : (b)->htype)
 #define BATttype(b)    ((b)->ttype == TYPE_void && (b)->tseqbase != oid_nil ? \
                         TYPE_oid : (b)->ttype)
-#define Hbase(b)       ((b)->H->vheap->base)
 #define Tbase(b)       ((b)->T->vheap->base)
 
-#define Hsize(b)       ((b)->H->width)
 #define Tsize(b)       ((b)->T->width)
 
-/* new semantics ! */
-#define headsize(b,p)  ((b)->H->type?((size_t)(p))<<(b)->H->shift:0)
 #define tailsize(b,p)  ((b)->T->type?((size_t)(p))<<(b)->T->shift:0)
 
 #define Tloc(b,p)      ((b)->T->heap.base+((p)<<(b)->T->shift))
@@ -1486,7 +1482,6 @@ gdk_export int BATgetaccess(BAT *b);
 #define BATdirty(b)    ((b)->batCopiedtodisk == 0 || (b)->batDirty ||  \
                         (b)->batDirtydesc ||                           \
                         (b)->H->heap.dirty || (b)->T->heap.dirty ||    \
-                        ((b)->H->vheap?(b)->H->vheap->dirty:0) ||      \
                         ((b)->T->vheap?(b)->T->vheap->dirty:0))
 
 #define PERSISTENT             0
@@ -1668,8 +1663,11 @@ gdk_export void GDKqsort_rev(void *h, vo
        } while (0)
 #define BATsettrivprop(b)                                              \
        do {                                                            \
+               assert((b)->htype == TYPE_void);                        \
+               assert((b)->hseqbase != oid_nil);                       \
                (b)->batDirtydesc = 1;  /* likely already set */        \
-               COLsettrivprop((b), (b)->H);                            \
+               (b)->hrevsorted = (b)->batCount <= 1;                   \
+               /* the other head properties should already be correct */ \
                COLsettrivprop((b), (b)->T);                            \
        } while (0)
 
@@ -2783,7 +2781,6 @@ gdk_export void ALIGNsetT(BAT *b1, BAT *
         ((x)->T->heap.parentid ||                                      \
          ((x)->T->vheap && (x)->T->vheap->parentid != (x)->batCacheid)))
 
-#define isVIEWCOMBINE(x) ((x)->H == (x)->T)
 #define VIEWtparent(x) ((x)->T->heap.parentid)
 #define VIEWvtparent(x)        ((x)->T->vheap == NULL || 
(x)->T->vheap->parentid == (x)->batCacheid ? 0 : (x)->T->vheap->parentid)
 
@@ -2856,7 +2853,7 @@ gdk_export void ALIGNsetT(BAT *b1, BAT *
 /*
  * @- hash-table supported loop over BUNs
  * The first parameter `b' is a BAT, the second (`h') should point to
- * `b->H->hash', and `v' a pointer to an atomic value (corresponding
+ * `b->T->hash', and `v' a pointer to an atomic value (corresponding
  * to the head column of `b'). The 'hb' is an integer index, pointing
  * out the `hb'-th BUN.
  */
diff --git a/gdk/gdk_align.c b/gdk/gdk_align.c
--- a/gdk/gdk_align.c
+++ b/gdk/gdk_align.c
@@ -204,9 +204,9 @@ VIEWcreate_(oid seq, BAT *b, int slice_v
                return NULL;
        bn = &bs->B;
 
-       tp = VIEWtparent(b);
+       tp = -VIEWtparent(b);
        if ((tp == 0 && b->ttype != TYPE_void) || b->T->heap.copied)
-               tp = -b->batCacheid;
+               tp = b->batCacheid;
        assert(b->ttype != TYPE_void || !tp);
        /* the H and T column descriptors are fully copied. We need
         * copies because in case of a mark, we are going to override
@@ -224,7 +224,7 @@ VIEWcreate_(oid seq, BAT *b, int slice_v
        }
 
        if (tp)
-               BBPshare(-tp);
+               BBPshare(tp);
        if (bn->T->vheap) {
                assert(b->T->vheap);
                assert(bn->T->vheap->parentid > 0);
@@ -240,7 +240,7 @@ VIEWcreate_(oid seq, BAT *b, int slice_v
 
        /* correct values after copy of head and tail info */
        if (tp)
-               bn->T->heap.parentid = tp;
+               bn->T->heap.parentid = -tp;
        BATinit_idents(bn);
        /* Some bits must be copied individually. */
        bn->batDirty = BATdirty(b);
@@ -339,7 +339,7 @@ static void
 VIEWunlink(BAT *b)
 {
        if (b) {
-               bat tp = VIEWtparent(b);
+               bat tp = -VIEWtparent(b);
                bat vtp = VIEWvtparent(b);
                BAT *tpb = NULL;
                BAT *vtpb = NULL;
@@ -347,9 +347,9 @@ VIEWunlink(BAT *b)
                assert(b->batCacheid > 0);
                assert(b->htype == TYPE_void);
                if (tp)
-                       tpb = BBP_cache(-tp);
+                       tpb = BBP_cache(tp);
                if (tp && !vtp)
-                       vtp = -tp;
+                       vtp = tp;
                if (vtp)
                        vtpb = BBP_cache(vtp);
 
@@ -455,6 +455,7 @@ VIEWreset(BAT *b)
                b->H->shift = 0;
                b->H->width = 0;
                b->H->seq = v->H->seq;
+               b->H->key = BOUND2BTRUE | 1;
 
                b->T->type = v->T->type;
                b->T->varsized = v->T->varsized;
@@ -465,8 +466,7 @@ VIEWreset(BAT *b)
                b->T->heap.parentid = 0;
                b->batRestricted = BAT_WRITE;
 
-               /* reset BOUND2KEY */
-               b->H->key = BAThkey(v);
+               /* reset BOUND2BTRUE */
                b->T->key = BATtkey(v);
 
                /* copy the heaps */
@@ -481,7 +481,7 @@ VIEWreset(BAT *b)
                        b->T->vheap->parentid = b->batCacheid;
                }
 
-               if (v->T->heap.parentid == -b->batCacheid) {
+               if (-v->T->heap.parentid == b->batCacheid) {
                        assert(tp == 0);
                        assert(b->batSharecnt > 0);
                        BBPunshare(b->batCacheid);
diff --git a/gdk/gdk_bat.c b/gdk/gdk_bat.c
--- a/gdk/gdk_bat.c
+++ b/gdk/gdk_bat.c
@@ -540,12 +540,10 @@ BATdestroy( BATstore *bs )
        if (bs->T.id && !default_ident(bs->T.id))
                GDKfree(bs->T.id);
        bs->T.id = BATstring_t;
-       if (bs->H.vheap)
-               GDKfree(bs->H.vheap);
+       assert(bs->H.vheap == NULL);
+       assert(bs->H.props == NULL);
        if (bs->T.vheap)
                GDKfree(bs->T.vheap);
-       if (bs->H.props)
-               PROPdestroy(bs->H.props);
        if (bs->T.props)
                PROPdestroy(bs->T.props);
        GDKfree(bs);
@@ -685,12 +683,11 @@ COLcopy(BAT *b, int tt, int writable, in
                        bunstocopy = cnt;
                } else if (isVIEW(b)) {
                        /* extra checks needed for views */
-                       bat tp = VIEWtparent(b);
+                       bat tp = -VIEWtparent(b);
 
-                       if (isVIEWCOMBINE(b) || /* oops, mirror view! */
-                           /* reduced slice view: do not copy too
-                            * much garbage */
-                           (tp != 0 && BATcapacity(BBP_cache(-tp)) > cnt + 
cnt))
+                       if (tp != 0 && BATcapacity(BBP_cache(tp)) > cnt + cnt)
+                               /* reduced slice view: do not copy too
+                                * much garbage */
                                bunstocopy = cnt;
                }
 
@@ -1397,11 +1394,8 @@ BATvmsize(BAT *b, int dirty)
        BATcheck(b, "BATvmsize", 0);
        if (b->batDirty || (b->batPersistence != TRANSIENT && 
!b->batCopiedtodisk))
                dirty = 0;
-       return (!dirty || b->H->heap.dirty ? HEAPvmsize(&b->H->heap) : 0) +
-               (!dirty || b->T->heap.dirty ? HEAPvmsize(&b->T->heap) : 0) +
-               ((!dirty || b->H->heap.dirty) && b->H->hash && b->H->hash != 
(Hash *) 1 ? HEAPvmsize(b->H->hash->heap) : 0) +
+       return (!dirty || b->T->heap.dirty ? HEAPvmsize(&b->T->heap) : 0) +
                ((!dirty || b->T->heap.dirty) && b->T->hash && b->T->hash != 
(Hash *) 1 ? HEAPvmsize(b->T->hash->heap) : 0) +
-               (b->H->vheap && (!dirty || b->H->vheap->dirty) ? 
HEAPvmsize(b->H->vheap) : 0) +
                (b->T->vheap && (!dirty || b->T->vheap->dirty) ? 
HEAPvmsize(b->T->vheap) : 0);
 }
 
@@ -1413,11 +1407,8 @@ BATmemsize(BAT *b, int dirty)
            (b->batPersistence != TRANSIENT && !b->batCopiedtodisk))
                dirty = 0;
        return (!dirty || b->batDirtydesc ? sizeof(BATstore) : 0) +
-               (!dirty || b->H->heap.dirty ? HEAPmemsize(&b->H->heap) : 0) +
                (!dirty || b->T->heap.dirty ? HEAPmemsize(&b->T->heap) : 0) +
-               ((!dirty || b->H->heap.dirty) && b->H->hash && b->H->hash != 
(Hash *) 1 ? HEAPmemsize(b->H->hash->heap) : 0) +
                ((!dirty || b->T->heap.dirty) && b->T->hash && b->T->hash != 
(Hash *) 1 ? HEAPmemsize(b->T->hash->heap) : 0) +
-               (b->H->vheap && (!dirty || b->H->vheap->dirty) ? 
HEAPmemsize(b->H->vheap) : 0) +
                (b->T->vheap && (!dirty || b->T->vheap->dirty) ? 
HEAPmemsize(b->T->vheap) : 0);
 }
 
@@ -1807,41 +1798,27 @@ gdk_return
 BATcheckmodes(BAT *b, int existing)
 {
        int wr = (b->batRestricted == BAT_WRITE);
-       storage_t m0 = STORE_MEM, m1 = STORE_MEM, m2 = STORE_MEM, m3 = 
STORE_MEM;
+       storage_t m1 = STORE_MEM, m3 = STORE_MEM;
        int dirty = 0;
 
        BATcheck(b, "BATcheckmodes", GDK_FAIL);
 
-       if (b->htype) {
-               m0 = HEAPcommitpersistence(&b->H->heap, wr, existing);
-               dirty |= (b->H->heap.newstorage != m0);
-       }
-
        if (b->ttype) {
                m1 = HEAPcommitpersistence(&b->T->heap, wr, existing);
                dirty |= (b->T->heap.newstorage != m1);
        }
 
-       if (b->H->vheap) {
-               int ha = (b->batRestricted == BAT_APPEND) && 
ATOMappendpriv(b->htype, b->H->vheap);
-               m2 = HEAPcommitpersistence(b->H->vheap, wr || ha, existing);
-               dirty |= (b->H->vheap->newstorage != m2);
-       }
        if (b->T->vheap) {
                int ta = (b->batRestricted == BAT_APPEND) && 
ATOMappendpriv(b->ttype, b->T->vheap);
                m3 = HEAPcommitpersistence(b->T->vheap, wr || ta, existing);
                dirty |= (b->T->vheap->newstorage != m3);
        }
-       if (m0 == STORE_INVALID || m1 == STORE_INVALID ||
-           m2 == STORE_INVALID || m3 == STORE_INVALID)
+       if (m1 == STORE_INVALID || m3 == STORE_INVALID)
                return GDK_FAIL;
 
        if (dirty) {
                b->batDirtydesc = 1;
-               b->H->heap.newstorage = m0;
                b->T->heap.newstorage = m1;
-               if (b->H->vheap)
-                       b->H->vheap->newstorage = m2;
                if (b->T->vheap)
                        b->T->vheap->newstorage = m3;
        }
@@ -1863,8 +1840,8 @@ BATsetaccess(BAT *b, int newmode)
                int existing = BBP_status(b->batCacheid) & BBPEXISTING;
                int wr = (newmode == BAT_WRITE);
                int rd = (bakmode == BAT_WRITE);
-               storage_t m0, m1, m2 = STORE_MEM, m3 = STORE_MEM;
-               storage_t b0, b1, b2 = STORE_MEM, b3 = STORE_MEM;
+               storage_t m1, m3 = STORE_MEM;
+               storage_t b1, b3 = STORE_MEM;
 
                if (b->batSharecnt && newmode != BAT_READ) {
                        BATDEBUG THRprintf(GDKout, "#BATsetaccess: %s has %d 
views; try creating a copy\n", BATgetId(b), b->batSharecnt);
@@ -1873,31 +1850,20 @@ BATsetaccess(BAT *b, int newmode)
                        return GDK_FAIL;
                }
 
-               b0 = b->H->heap.newstorage;
-               m0 = HEAPchangeaccess(&b->H->heap, ACCESSMODE(wr, rd), 
existing);
                b1 = b->T->heap.newstorage;
                m1 = HEAPchangeaccess(&b->T->heap, ACCESSMODE(wr, rd), 
existing);
-               if (b->H->vheap) {
-                       int ha = (newmode == BAT_APPEND && 
ATOMappendpriv(b->htype, b->H->vheap));
-                       b2 = b->H->vheap->newstorage;
-                       m2 = HEAPchangeaccess(b->H->vheap, ACCESSMODE(wr && ha, 
rd && ha), existing);
-               }
                if (b->T->vheap) {
                        int ta = (newmode == BAT_APPEND && 
ATOMappendpriv(b->ttype, b->T->vheap));
                        b3 = b->T->vheap->newstorage;
                        m3 = HEAPchangeaccess(b->T->vheap, ACCESSMODE(wr && ta, 
rd && ta), existing);
                }
-               if (m0 == STORE_INVALID || m1 == STORE_INVALID ||
-                   m2 == STORE_INVALID || m3 == STORE_INVALID)
+               if (m1 == STORE_INVALID || m3 == STORE_INVALID)
                        return GDK_FAIL;
 
                /* set new access mode and mmap modes */
                b->batRestricted = newmode;
                b->batDirtydesc = TRUE;
-               b->H->heap.newstorage = m0;
                b->T->heap.newstorage = m1;
-               if (b->H->vheap)
-                       b->H->vheap->newstorage = m2;
                if (b->T->vheap)
                        b->T->vheap->newstorage = m3;
 
@@ -1905,10 +1871,7 @@ BATsetaccess(BAT *b, int newmode)
                        /* roll back all changes */
                        b->batRestricted = bakmode;
                        b->batDirtydesc = bakdirty;
-                       b->H->heap.newstorage = b0;
                        b->T->heap.newstorage = b1;
-                       if (b->H->vheap)
-                               b->H->vheap->newstorage = b2;
                        if (b->T->vheap)
                                b->T->vheap->newstorage = b3;
                        return GDK_FAIL;
diff --git a/gdk/gdk_batop.c b/gdk/gdk_batop.c
--- a/gdk/gdk_batop.c
+++ b/gdk/gdk_batop.c
@@ -412,9 +412,7 @@ BATappend(BAT *b, BAT *n, bit force)
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to