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 <sjoerd@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