On 2012-07-25 09:24, Stefan Manegold wrote: > 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) { \
Shouldn't that be: if (b->htype != TYPE_oid || !b->H->heap.xidcompressed) { ? You want the properties to be set if the heap is *not* compressed. > 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 > Checkin-list@monetdb.org > http://mail.monetdb.org/mailman/listinfo/checkin-list > -- Sjoerd Mullender <sjo...@monetdb.org> MonetDB: Column store pioneers <http://www.monetdb.org/> _______________________________________________ Checkin-list mailing list Checkin-list@monetdb.org http://mail.monetdb.org/mailman/listinfo/checkin-list