Changeset: 4da710a71d6f for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=4da710a71d6f
Modified Files:
        gdk/gdk.h
        gdk/gdk_bat.c
Branch: xid
Log Message:

BATderiveHeadProps & COLsettrivprop: do not set/derive properties for 
xid-compressed BATs
their content is known and designed to not match their properties
see also changesets 805110fd0096 & b33eba6cfb09


diffs (36 lines):

diff --git a/gdk/gdk.h b/gdk/gdk.h
--- a/gdk/gdk.h
+++ b/gdk/gdk.h
@@ -1699,8 +1699,10 @@ gdk_export void GDKqsort_rev(void *h, vo
 #define BATtkey(b)     (b->tkey != FALSE || BATtdense(b))
 
 /* set some properties that are trivial to deduce */
+/* but not for xid-compressed BATs */
 #define COLsettrivprop(b, col)                                         \
        do {                                                            \
+           if (b->htype == TYPE_oid && b->H->heap.xidcompressed) {     \
                if ((col)->type == TYPE_void) {                         \
                        if ((col)->seq == oid_nil) {                    \
                                if (!(col)->nil && (b)->batCount >= 1) { \
@@ -1772,6 +1774,7 @@ gdk_export void GDKqsort_rev(void *h, vo
                                (b)->batDirtydesc = 1;                  \
                        }                                               \
                }                                                       \
+           }                                                           \
        } while (0)
 #define BATsettrivprop(b)                      \
        do {                                    \
diff --git a/gdk/gdk_bat.c b/gdk/gdk_bat.c
--- a/gdk/gdk_bat.c
+++ b/gdk/gdk_bat.c
@@ -3096,6 +3096,10 @@ BATderiveHeadProps(BAT *b, int expensive
        assert(b != NULL);
        if (b == NULL)
                return;
+       if (b->htype == TYPE_oid && b->H->heap.xidcompressed) {
+               /* avoid property deriving on xid-compressed BATs */
+               return;
+       }
        assert((b->hkey & BOUND2BTRUE) == 0);
        COLsettrivprop(b, b->H);
        cmpf = BATatoms[b->htype].atomCmp;
_______________________________________________
Checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list

Reply via email to