Re: [Monetdb-developers] MonetDB: xid - BATderiveHeadProps & COLsettrivprop: do not set/d...
yep. thanks! testing just reminded me as well ;-) fix on its way. Sorry for premature checking! Stefan ----- Original Message -----
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
MonetDB: Column store pioneers http://www.monetdb.org/ _______________________________________________ Checkin-list mailing list Checkin-list@monetdb.org http://mail.monetdb.org/mailman/listinfo/checkin-list
participants (1)
-
Stefan Manegold