Changeset: 7b167218404c for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=7b167218404c Modified Files: sql/backends/monet5/generator/generator.c Branch: default Log Message:
Address compilation issue diffs (71 lines): diff --git a/sql/backends/monet5/generator/generator.c b/sql/backends/monet5/generator/generator.c --- a/sql/backends/monet5/generator/generator.c +++ b/sql/backends/monet5/generator/generator.c @@ -26,6 +26,7 @@ #include "opt_prelude.h" #include "generator.h" #include "mtime.h" +#include "math.h" static int @@ -666,7 +667,6 @@ str VLTgenerator_thetasubselect(Client c f = *(TPE*) getArgReference(stk,p, 1);\ l = *(TPE*) getArgReference(stk,p, 2);\ s = *(TPE*) getArgReference(stk,p, 3);\ -\ bn = BATnew(TYPE_void, TYPE_##TPE, cnt);\ if( bn == NULL){\ BBPreleaseref(bid);\ @@ -766,7 +766,7 @@ str VLTgenerator_leftfetchjoin(Client cn s = *(TPE*) getArgReference(stk,p, 3);\ for( ; cnt >0; cnt--,os++,o++){\ v = (TPE*) Tloc(bl,BUNfirst(bl));\ - w = (int) ((*v -f)/s);\ + w = floor((*v -f)/s);\ if ( *v >= f && *v < l && f + w * s == *v ){\ *or++ = (oid) w;\ *ol++ = *o;\ @@ -785,8 +785,6 @@ str VLTgenerator_join(Client cntxt, MalB (void) cntxt; // we assume at most one of the arguments to refer to the generator - p = findLastAssign(mb,pci,pci->argv[3]); - assert(p); bl = BATdescriptor(bid = *(int*) getArgReference(stk,pci,2)); if( bl == NULL) throw(MAL,"generator.join",RUNTIME_OBJECT_MISSING); @@ -796,6 +794,9 @@ str VLTgenerator_join(Client cntxt, MalB throw(MAL,"generator.join",RUNTIME_OBJECT_MISSING); } + p = findLastAssign(mb,pci,pci->argv[3]); + assert(p); + cnt = BATcount(bl); tpe = br->ttype; if( bl->ttype == TYPE_void) @@ -817,7 +818,22 @@ str VLTgenerator_join(Client cntxt, MalB /* The actual join code for generators be injected here */ switch(tpe){ - case TYPE_bte: VLTjoin(bte); break; + case TYPE_bte: //VLTjoin(bte); break; + { bte f,l,s; + bte *v,w; + f = *(bte*) getArgReference(stk,p, 1); + l = *(bte*) getArgReference(stk,p, 2); + s = *(bte*) getArgReference(stk,p, 3); + for( ; cnt >0; cnt--,os++,o++){ + v = (bte*) Tloc(bl,BUNfirst(bl)); + w = (int) ((*v -f)/s); + if ( *v >= f && *v < l && f + w * s == *v ){ + *or++ = (oid) w; + *ol++ = *o; + c++; + } + } } + break; case TYPE_sht: VLTjoin(sht); break; case TYPE_int: VLTjoin(int); break; case TYPE_lng: VLTjoin(lng); break; _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list