Changeset: 67c56b242f30 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=67c56b242f30
Modified Files:
        MonetDB5/src/optimizer/opt_mergetable.mx
Branch: default
Log Message:

removed not used code


diffs (188 lines):

diff -r a369a007a73d -r 67c56b242f30 MonetDB5/src/optimizer/opt_mergetable.mx
--- a/MonetDB5/src/optimizer/opt_mergetable.mx  Wed Dec 01 22:27:25 2010 +0100
+++ b/MonetDB5/src/optimizer/opt_mergetable.mx  Wed Dec 01 22:36:42 2010 +0100
@@ -481,32 +481,6 @@
        return mtop+1;
 }
 
-/* mat_semijoin handles special case for update delta's which need 
-to be spread of the partion (second arg) */
-static InstrPtr
-mat_semijoin(MalBlkPtr mb, InstrPtr p, mat_t *mat, int m)
-{
-       int tpe, k;
-       InstrPtr r = NULL, mi = mat[m].mi;
-
-       r = newInstruction(mb, ASSIGNsymbol);
-       setModuleId(r,matRef);
-       setFunctionId(r,newRef);
-       getArg(r,0) = getArg(p,0);
-       tpe = getArgType(mb,p,0);
-
-       for(k=1; k<mi->argc; k++) {
-               InstrPtr q = copyInstruction(p);
-
-               getArg(q,2) = getArg(mi,k);
-               getArg(q,0) = newTmpVariable(mb, tpe);
-               propagateProp(mb, q, getArg(mi, k));
-               pushInstruction(mb,q);
-               r = pushArgument(mb,r,getArg(q,0));
-       }
-       return r;
-}
-
 static void
 mat_update(MalBlkPtr mb, InstrPtr p, mat_t *mat, int m, int var)
 {
@@ -1759,25 +1733,6 @@
                        r = pushArgument(mb, r, vm);
                }
        } else {
-               /* if right overlaps full range of left we first semijoin */
-               /* assume if first overlaps all do ? */
-               if (0 && m >= 0 && Hoverlap(mb, 
getArg(mat[m].mi,1),p->argv[2])) {
-                       /* push in between a b.semijoin(mat) */ 
-                       InstrPtr semi = copyInstruction(p), bc;
-
-                       semi->argv[0] = p->argv[2];
-                       semi->argv[1] = p->argv[2];
-                       semi->argv[2] = p->argv[1];
-                       getFunctionId(semi) = semijoinRef;
-                       m = isMATalias(getArg(semi,2), mat, mtop);
-                       if ((bc = mat_semijoin(mb, semi, mat, m)) != NULL)
-                               mtop = mat_add(mat, mtop, bc, NULL, mat_none );
-                       /* now use semijoin result as input to union */
-                       p->argv[2] = semi->argv[0];
-                       m = isMATalias(getArg(p,1), mat, mtop);
-                       n = isMATalias(getArg(p,2), mat, mtop);
-                       return mat_union(mb, p, mat, mtop, m, n);
-               }
                if (m >= 0) {
                        for(k=1; k<mat[m].mi->argc; k++) 
                                r = pushArgument(mb, r, getArg(mat[m].mi,k));
@@ -1919,99 +1874,17 @@
 }
 
 
-/* 
-       2) semijoin cases
-               1) both mats and aligned (pair wise)
-               2) else merge both !
-               3) semi(mat,bat) (pair wise)
-
-               4) semi(bat,mat) ?
-       3) kdiff cases
-               1) both mats and aligned (pair wise)
-               2) kdiff(mat,bat) (pair wise)
-                       In case 2 we expect a union(mat, b) to,
-                       so we want to rewrite into
-                       m1.diff(b).union( b.semijoin(m1));
-               3) kdiff(bat,mat) (kdiff(bat,m1).kdiff(m2).kdiff(m3) etc
-                       returns bat !
-*/
 static int
-mat_setop(MalBlkPtr mb, InstrPtr p, InstrPtr *old, int oldtop, int cur, mat_t 
*mat, int *Mtop )
+mat_setop(MalBlkPtr mb, InstrPtr p, mat_t *mat, int *Mtop )
 {
        int m, n;
-       InstrPtr q = old[cur+1];
-       InstrPtr u = old[cur+2];
        InstrPtr bc;
        int mtop = *Mtop;
 
        m = isMATalias(getArg(p,1), mat, mtop);
        n = isMATalias(getArg(p,2), mat, mtop);
-
-       /* recognize kdiff(u).union(u) but also kdiff(u).union(select(u, ..)) */
-       if (0 && getFunctionId(p) == kdifferenceRef &&
-           cur + 2 < oldtop && 
-           (getModuleId(u) == algebraRef || getModuleId(u) == pcreRef) && 
getFunctionId(u) == kunionRef &&
-           isSelect(q) &&
-           p->argv[0] == u->argv[1] && 
-           p->argv[2] == q->argv[1] &&
-           u->argv[2] == q->argv[0]) { 
-               int i;
-               InstrPtr semi;
-
-               /* Kdiff(mat, b) */
-               if ((bc = mat_apply(mb, p, mat, &mtop, m, n, 0)) != NULL)
-                       mtop = mat_add(mat, mtop, bc, NULL, mat_none );
-               /* push select */
-               pushInstruction(mb, q = copyInstruction(q));
-
-               /* push in between a select(u ..).semijoin(mat) */ 
-               semi = copyInstruction(p);
-               semi->argv[0] = newTmpVariable(mb, getArgType(mb,q,0));
-               semi->argv[1] = q->argv[0];
-               semi->argv[2] = p->argv[1];
-               /* use values before select */
-               for (i=cur-1; i>0; i--)
-                       if (isSelect(old[i]) && old[i]->argv[0] == p->argv[1])
-                               break;
-               if (i > 0)
-                       semi->argv[2] = old[i]->argv[1];
-               getFunctionId(semi) = semijoinRef;
-               m = isMATalias(getArg(semi,2), mat, mtop);
-               if ((bc = mat_semijoin(mb, semi, mat, m)) != NULL)
-                       mtop = mat_add(mat, mtop, bc, NULL, mat_none );
-                       /* Kunion(mat, b) */
-               u = copyInstruction(u);
-               u->argv[2] = semi->argv[0];
-               m = isMATalias(getArg(u,1), mat, mtop);
-               n = isMATalias(getArg(u,2), mat, mtop);
-               *Mtop = mat_union(mb, u, mat, mtop, m, n);
-               return 2;
-       } else if (0 && getFunctionId(p) == kdifferenceRef &&
-               cur + 1 < oldtop &&
-               getModuleId(q) == algebraRef && getFunctionId(q) == kunionRef &&
-               p->argv[0] == q->argv[1] && p->argv[2] == q->argv[2]) { 
-               InstrPtr semi;
-
-               /* Kdiff(mat, b) */
-               if ((bc = mat_apply(mb, p, mat, &mtop, m, n, 0)) != NULL)
-                       mtop = mat_add(mat, mtop, bc, NULL, mat_none );
-               /* push in between a b.semijoin(mat) */ 
-               semi = copyInstruction(p);
-               semi->argv[0] = p->argv[2];
-               semi->argv[1] = p->argv[2];
-               semi->argv[2] = p->argv[1];
-               getFunctionId(semi) = semijoinRef;
-               m = isMATalias(getArg(semi,2), mat, mtop);
-               if ((bc = mat_semijoin(mb, semi, mat, m)) != NULL)
-                       mtop = mat_add(mat, mtop, bc, NULL, mat_none );
-               /* Kunion(mat, b) */
-               m = isMATalias(getArg(q,1), mat, mtop);
-               n = isMATalias(getArg(q,2), mat, mtop);
-               *Mtop = mat_union(mb, q, mat, mtop, m, n);
-               return 1;
-       } else if ((bc = mat_apply(mb, p, mat, Mtop, m, n, 0)) != NULL) {
+       if ((bc = mat_apply(mb, p, mat, Mtop, m, n, 0)) != NULL) 
                *Mtop = mat_add(mat, *Mtop, bc, NULL, useMatType(mat, n) );
-       }
        return 0;
 }
 
@@ -2172,22 +2045,10 @@
                    (getModuleId(p) == algebraRef && 
                     ((getFunctionId(p) == semijoinRef && match == 2) ||
                      (getFunctionId(p) == kdifferenceRef)))) { 
-                       i += mat_setop(mb, p, old, oldtop, i, mat, &mtop); 
+                       i += mat_setop(mb, p, mat, &mtop); 
                        actions++;
                        continue;
                }
-#if 0
-               if (match == 1 && getModuleId(p) == algebraRef && 
getFunctionId(p) == semijoinRef &&
-                       ((m=isMATalias(getArg(p,2), mat, mtop)) >= 0) &&
-                       varGetProp(mb, getArg(p,1), hlbProp)) {
-                       InstrPtr bc;
-
-                       if ((bc = mat_semijoin(mb, p, mat, m)) != NULL) 
-                               mtop = mat_add(mat, mtop, bc, NULL, mat_none );
-                       actions++;
-                       continue;
-               }
-#endif
 @- 
 Now we handle group, derive and aggregation statements. 
 @c
_______________________________________________
Checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list

Reply via email to