[Monetdb-developers] MonetDB: xid - BATderiveHeadProps & COLsettrivprop: do not set/d...

Stefan Manegold Stefan.Manegold at cwi.nl
Wed Jul 25 10:10:35 CEST 2012


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 at monetdb.org
> > http://mail.monetdb.org/mailman/listinfo/checkin-list
> > 
> 
> 
> --
> Sjoerd Mullender <sjoerd at monetdb.org>
> MonetDB: Column store pioneers <http://www.monetdb.org/>
> 
> 
> _______________________________________________
> Checkin-list mailing list
> Checkin-list at monetdb.org
> http://mail.monetdb.org/mailman/listinfo/checkin-list
> 




More information about the developers-list mailing list