Changeset: 7bbd977703b6 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=7bbd977703b6
Modified Files:
monetdb5/modules/mal/mosaic_linear.c
Branch: mosaic
Log Message:
revised changeset 79a38bb7fc34: further simplified & clarified code, avoiding
redundant work
diffs (52 lines):
diff --git a/monetdb5/modules/mal/mosaic_linear.c
b/monetdb5/modules/mal/mosaic_linear.c
--- a/monetdb5/modules/mal/mosaic_linear.c
+++ b/monetdb5/modules/mal/mosaic_linear.c
@@ -637,16 +637,16 @@ MOSleftfetchjoin_linear(Client cntxt, M
}
#define join_linear(TYPE)\
-{ TYPE *w;\
- TYPE val = *(TYPE*) linear_base(blk) ;\
+{ TYPE *w = (TYPE*) task->src;\
TYPE step = *(TYPE*) linear_step(task,blk);\
- w = (TYPE*) task->src;\
- for(n = task->elm, o = 0; n -- > 0; w++,o++)\
- for(oo= (oid) first, val = *(TYPE*) linear_base(blk); oo <
(oid) last; val+=step, oo++)\
- if ( *w == val){\
- BUNappend(task->lbat, &oo, FALSE);\
- BUNappend(task->rbat, &o, FALSE);\
- }\
+ for(n = task->elm, o = 0; n -- > 0; w++,o++) {\
+ TYPE val = *(TYPE*) linear_base(blk) ;\
+ for(oo= (oid) first; oo < (oid) last; val+=step, oo++)\
+ if ( *w == val){\
+ BUNappend(task->lbat, &oo, FALSE);\
+ BUNappend(task->rbat, &o, FALSE);\
+ }\
+ }\
}
str
@@ -674,17 +674,17 @@ MOSjoin_linear(Client cntxt, MOStask ta
case TYPE_flt: join_linear(flt); break;
case TYPE_dbl: join_linear(dbl); break;
case TYPE_int:
- { int *w;
+ { int *w = (int*) task->src;
+ int step = *(int*) linear_step(task,blk);
+ for(n = task->elm, o = 0; n -- > 0; w++,o++){
int val = *(int*) linear_base(blk) ;
- int step = *(int*) linear_step(task,blk);
- w = (int*) task->src;
- for(n = task->elm, o = 0; n -- > 0; w++,o++,
val+=step)
- for(oo= (oid) first, val = *(int*)
linear_base(blk); oo < (oid) last; val+=step, oo++)
+ for(oo= (oid) first; oo < (oid) last;
val+=step, oo++)
if ( *w == val){
BUNappend(task->lbat, &oo,
FALSE);
BUNappend(task->rbat, &o,
FALSE);
}
}
+ }
}
MOSskip_linear(cntxt,task);
return MAL_SUCCEED;
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list