FYI: "headless" means *dense* BAT heads (unless they are void-nil).

S.

----- Original Message -----
> Changeset: 3be4152afaa3 for MonetDB
> URL:
> http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=3be4152afaa3
> Modified Files:
>       gdk/gdk.h
>       gdk/gdk_bat.c
>       gdk/gdk_bat.h
>       monetdb5/mal/mal_dataflow.c
>       monetdb5/mal/mal_interpreter.c
> Branch: default
> Log Message:
> 
> Add HEADLESS warning flag
> During conversion towards :oid and col it would be nice to
> trap all cases where an 'alien' bat is created.
> A free bit in the debug flag is used for that purpose.
> 
> 
> diffs (71 lines):
> 
> diff --git a/gdk/gdk.h b/gdk/gdk.h
> --- a/gdk/gdk.h
> +++ b/gdk/gdk.h
> @@ -2334,6 +2334,8 @@ VALptr(const ValRecord *v)
>  */
>  #define PARMASK              (1<<7)
>  #define PARDEBUG     if (GDKdebug & PARMASK)
> +#define HEADLESSMASK (1<<8)
> +#define HEADLESSDEBUG        if ( GDKdebug & HEADLESSMASK)
>  /* TRGMASK not used anymore
>  #define TRGMASK              (1<<8)
>  #define TRGDEBUG     if (GDKdebug & TRGMASK)
> diff --git a/gdk/gdk_bat.c b/gdk/gdk_bat.c
> --- a/gdk/gdk_bat.c
> +++ b/gdk/gdk_bat.c
> @@ -89,6 +89,11 @@ BATcreatedesc(int ht, int tt, int heapna
>  
>       if (bs == NULL)
>               return NULL;
> +     HEADLESSDEBUG {
> +             if ( ht != TYPE_void && ht != TYPE_oid)
> +                     fprintf(stderr, "#headless violation in BATcreatedesc 
> %d\n", ht);
> +
> +     }
>       /*
>        * assert needed in the kernel to get symbol eprintf resolved.
>        * Else modules using assert fail to load.
> @@ -2799,7 +2804,7 @@ BATmode(BAT *b, int mode)
>   * is not actually used anywhere, but it is checked. */
>  
>  #ifndef NDEBUG
> -void
> +static void
>  BATassertHeadProps(BAT *b)
>  {
>       BATiter bi = bat_iterator(b);
> diff --git a/gdk/gdk_bat.h b/gdk/gdk_bat.h
> --- a/gdk/gdk_bat.h
> +++ b/gdk/gdk_bat.h
> @@ -23,7 +23,6 @@
>  gdk_export BUN void_replace_bat(BAT *b, BAT *u, bit force);
>  gdk_export int void_inplace(BAT *b, oid id, const void *val, bit
>  force);
>  gdk_export BAT *BATattach(int tt, const char *heapfile);
> -gdk_export void BATassertHeadProps(BAT *b);
>  
>  extern int default_ident(char *s);
>  extern oid MAXoid(BAT *i);
> diff --git a/monetdb5/mal/mal_dataflow.c
> b/monetdb5/mal/mal_dataflow.c
> --- a/monetdb5/mal/mal_dataflow.c
> +++ b/monetdb5/mal/mal_dataflow.c
> @@ -618,7 +618,7 @@ DFLOWstep(FlowTask *t, FlowStatus fs)
>  #if 0        /* when needed, enable */
>                                               if (i < pci->retc  && bid){
>                                                       BAT *b = 
> BATdescriptor(bid);
> -                                                     BATassertHeadProps(b);
> +                                                     BATassertProps(b);
>                                                       BBPunfix(b->batCacheid);
>                                               }
>  #endif
> diff --git a/monetdb5/mal/mal_interpreter.c
> b/monetdb5/mal/mal_interpreter.c
> --- a/monetdb5/mal/mal_interpreter.c
> +++ b/monetdb5/mal/mal_interpreter.c
> @@ -860,7 +860,7 @@ str runMALsequence(Client cntxt, MalBlkP
>  #if 0        /* when needed, enable */
>                                                       if (i < pci->retc  && 
> bid){
>                                                               BAT *b = 
> BATdescriptor(bid);
> -                                                             
> BATassertHeadProps(b);
> +                                                             
> BATassertProps(b);
>                                                               
> BBPunfix(b->batCacheid);
>                                                       }
>  #endif
> _______________________________________________
> Checkin-list mailing list
> [email protected]
> http://mail.monetdb.org/mailman/listinfo/checkin-list
> 
_______________________________________________
Checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list

Reply via email to