Changeset: 75cc189d7046 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=75cc189d7046
Modified Files:
monetdb5/optimizer/opt_mergetable.c
Branch: in-value-list
Log Message:
Don't pack results from commands with mat input if the output is a candidate
list.
diffs (39 lines):
diff --git a/monetdb5/optimizer/opt_mergetable.c
b/monetdb5/optimizer/opt_mergetable.c
--- a/monetdb5/optimizer/opt_mergetable.c
+++ b/monetdb5/optimizer/opt_mergetable.c
@@ -497,9 +497,9 @@ mat_apply2(matlist_t *ml, MalBlkPtr mb,
for(l=0; l < p->retc; l++) {
int res = 0;
if (is_select)
- res = setPartnr(ml, getArg(q,p->retc+1),
getArg(q,l), k);
+ res = propagatePartnr(ml, getArg(q,p->retc+1),
getArg(q,l), k);
else
- res = setPartnr(ml, -1, getArg(q,l), k);
+ res = propagatePartnr(ml, -1, getArg(q,l), k);
if(res) {
for(l=0; l < k; l++)
freeInstruction(r[l]);
@@ -511,13 +511,12 @@ mat_apply2(matlist_t *ml, MalBlkPtr mb,
}
for(k=0; k < p->retc; k++) {
- if(mat_add_var(ml, r[k], NULL, getArg(r[k], 0), mat_type(ml->v,
m), -1, -1, 1)) {
+ if(mat_add_var(ml, r[k], NULL, getArg(r[k], 0), mat_type(ml->v,
m), -1, -1, 0)) {
for(l=0; l < k; l++)
freeInstruction(r[l]);
GDKfree(r);
return -1;
}
- pushInstruction(mb, r[k]);
}
GDKfree(r);
return 0;
@@ -612,7 +611,7 @@ mat_setop(MalBlkPtr mb, InstrPtr p, matl
getArg(s,0) = newTmpVariable(mb, getArgType(mb,
mat[n].mi, k));
for (j=1; j<mat[n].mi->argc; j++) {
- if (overlap(ml, getArg(mat[m].mi, k),
getArg(mat[n].mi, j), -1, -2, 1)){
+ if (overlap(ml, getArg(mat[m].mi, k),
getArg(mat[n].mi, j), k, j, 1)){
s =
pushArgument(mb,s,getArg(mat[n].mi,j));
}
}
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list