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

Reply via email to