[Monetdb-developers] [Monetdb-pf-checkins] pathfinder/modules/pftijah pftijah.mx, , 1.228, 1.229

Sjoerd Mullender sjoerd at acm.org
Thu May 14 20:33:14 CEST 2009


It's slightly more complex than this.  At the MIL level you're right, 
you need to use wrd instead of int for bat counts.  On the C level 
however, you should use the BUN type and also check for overflow when 
converting a wrd parameter to BUN (if sizeof(wrd) > sizeof(BUN) which is 
entirely possible).

And then the real bug in your checkin: you use OIDFMT to print some 
value of type wrd.  This is incorrect.  You must use LLFMT together with 
a cast to lng for that.  (Better would be to use BUN and BUNFMT.)

I guess we could introduce a WRDFMT for printing wrd values, but we 
don't have that currently.

On 2009-05-14 19:42, Roberto Cornacchia wrote:
> Update of /cvsroot/monetdb/pathfinder/modules/pftijah
> In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv25786
> 
> Modified Files:
> 	pftijah.mx 
> Log Message:
> This commit is a temporary fix for the incorrect definition of count() mil proc:
> count(BAT b) : int
> 
> This should be instead:
> 
> count(BAT b) : wrd
> 
> !! Note	that the problem should	be solved properly in algebra.mx, changing the definition of count() and fixing all related code.
> 
> In addition, this commit fixes some more incorrect usage of the int type, for example all bat offsets should be wrd and not int.
> 
> 
> 
> U pftijah.mx
> Index: pftijah.mx
> ===================================================================
> RCS file: /cvsroot/monetdb/pathfinder/modules/pftijah/pftijah.mx,v
> retrieving revision 1.228
> retrieving revision 1.229
> diff -u -d -r1.228 -r1.229
> --- pftijah.mx	13 May 2009 07:35:03 -0000	1.228
> +++ pftijah.mx	14 May 2009 17:42:09 -0000	1.229
> @@ -117,7 +117,7 @@
>  		       : BAT[oid,oid] = CMDpf2tijah_node;
>   "Translate Pathfinder node sequence to tijah node sequence"
>  
> -.COMMAND offsetindex( BAT[void,oid] offset_tid, int res_size)
> +.COMMAND offsetindex( BAT[void,oid] offset_tid, wrd res_size)
>  		: BAT[void,oid] = CMDoffsetindex;
>  
>  "PARAMETERS:
> @@ -127,7 +127,7 @@
>  creates an offset index.
> [...972 lines suppressed...]
>          BATiter tidprei, tidsizei, oldindexi, oldprei, oldsizei;
>          oid *s_newindex, *lst_newindex, *s_newpre, *lst_newpre;
> @@ -5238,7 +5249,7 @@
>  	newsize = BATnew(TYPE_void, TYPE_int, ressize);
>          if (newsize == NULL) 
>          { 
> -            	GDKerror("%s: could not allocate a result BAT[void,int] of size %d.\n", name, ressize);
> +            	GDKerror("%s: could not allocate a result BAT[void,int] of size "OIDFMT".\n", name, ressize);
>              	BATfree(res);
>              	BATfree(newpre);
>              	return(GDK_FAIL);
> @@ -5248,7 +5259,7 @@
>  	newindex = BATnew(TYPE_void, TYPE_oid, ressize);
>          if (newindex == NULL) 
>          { 
> -            	GDKerror("%s: could not allocate a result BAT[void,oid] of size %d.\n", name, ressize);
> +            	GDKerror("%s: could not allocate a result BAT[void,oid] of size "OIDFMT".\n", name, ressize);
>              	BATfree(res);
>              	BATfree(newpre);
>              	BATfree(newsize);
> 
> 
> ------------------------------------------------------------------------------
> The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your
> production scanning environment may not be a perfect world - but thanks to
> Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700
> Series Scanner you'll get full speed at 300 dpi even with all image 
> processing features enabled. http://p.sf.net/sfu/kodak-com
> _______________________________________________
> Monetdb-pf-checkins mailing list
> Monetdb-pf-checkins at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/monetdb-pf-checkins


-- 
Sjoerd Mullender




More information about the developers-list mailing list