Changeset: 58181fbe20f4 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=58181fbe20f4
Modified Files:
monetdb5/modules/mosaic/mosaic_delta.c
Branch: mosaic
Log Message:
Fix delta joins
diffs (46 lines):
diff --git a/monetdb5/modules/mosaic/mosaic_delta.c
b/monetdb5/modules/mosaic/mosaic_delta.c
--- a/monetdb5/modules/mosaic/mosaic_delta.c
+++ b/monetdb5/modules/mosaic/mosaic_delta.c
@@ -714,12 +714,14 @@ MOSprojection_delta(Client cntxt, MOSta
}
#define join_delta(TPE)\
-{ TPE *v, *w;\
- v = (TPE*) (((char*) task->blk) + MosaicBlkSize);\
- for(oo= (oid) first; first < last; first++, v++, oo++){\
+{ TPE *w,base;\
+ bte *v;\
+ base = *(int*) (((char*) task->blk) + MosaicBlkSize);\
+ v = (bte*) (((char*) task->blk) + MosaicBlkSize + sizeof(int));\
+ for(oo= (oid) first; first < last; first++, base += *v,v++, oo++){\
w = (TPE*) task->src;\
for(n = task->elm, o = 0; n -- > 0; w++,o++)\
- if ( *w == *v){\
+ if ( *w == base){\
BUNappend(task->lbat, &oo, FALSE);\
BUNappend(task->rbat, &o, FALSE);\
}\
@@ -745,23 +747,6 @@ MOSsubjoin_delta(Client cntxt, MOStask
#ifdef HAVE_HGE
case TYPE_hge: join_delta(hge); break;
#endif
-/*
- case TYPE_int:
- { int *w,base;
- bte *v;
- base = *(int*) (((char*) task->blk) + MosaicBlkSize);
- v = (bte*) (((char*) task->blk) + MosaicBlkSize +
sizeof(int));
- for(oo= (oid) first; first < last; first++, base +=
*v,v++, oo++){
- w = (int*) task->src;
- for(n = task->elm, o = 0; n -- > 0; w++,o++)
- if ( *w == base){
- BUNappend(task->lbat, &oo, FALSE);
- BUNappend(task->rbat, &o, FALSE);
- }
- }
- }
- break;
-*/
case TYPE_str:
// we only have to look at the index width, not the values
switch(task->bsrc->twidth){
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list