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

Reply via email to