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
> checkin-l...@monetdb.org
> http://mail.monetdb.org/mailman/listinfo/checkin-list
> 

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Monetdb-developers mailing list
Monetdb-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/monetdb-developers

Reply via email to