Changeset: 301e1a2ef519 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=301e1a2ef519
Modified Files:
        monetdb5/optimizer/opt_octopus.mx
        monetdb5/optimizer/opt_pipes.mx
        sql/backends/monet5/sql.mx
Branch: default
Log Message:

Adaptation of octopus code for new mitosis using (part nr, number of parts).


diffs (138 lines):

diff --git a/monetdb5/optimizer/opt_octopus.mx 
b/monetdb5/optimizer/opt_octopus.mx
--- a/monetdb5/optimizer/opt_octopus.mx
+++ b/monetdb5/optimizer/opt_octopus.mx
@@ -183,8 +183,10 @@
 typedef struct MALPART {
        str sch;
        str tab;
-       oid low;
-       oid hgh;
+       /*      oid low;
+       oid hgh;*/
+       int part_nr;
+       int nr_parts;
        int *ret;
        int retcnt;
        wrd rows;
@@ -232,20 +234,20 @@
 }
 
 static int
-OCTgetMalPart(str sch, str tab, oid low, oid hgh)
+OCTgetMalPart(str sch, str tab, int pn, int np)
 {
        int i;
 
        for (i = 0; i < octClCnt; i++)
                if ( strcmp(tab, octCluster[i].tab) == 0  &&
-                       low == octCluster[i].low &&     hgh == 
octCluster[i].hgh )
+                       pn == octCluster[i].part_nr &&  np == 
octCluster[i].nr_parts )
                        break;
        if ( i < octClCnt )
                return i;
        octCluster[i].sch = GDKstrdup(sch);
        octCluster[i].tab = GDKstrdup(tab);
-       octCluster[i].low = low;
-       octCluster[i].hgh = hgh;
+       octCluster[i].part_nr = pn;
+       octCluster[i].nr_parts = np;
        octCluster[i].ret = (int*) GDKzalloc( sizeof(int) * octClResSize);
        octCluster[i].retcnt = 0;
        octClCnt++;
@@ -960,7 +962,7 @@
        InstrPtr p, *old, sig, q, *pref = NULL;
        bte *set = NULL, *bnd = NULL;
        int *malPart = NULL, *alias = NULL, *src = NULL;
-       oid l,h;
+       int pn, np;
        str tnm, tblname = NULL;
        char rname[BUFSIZ];
        MalBlkPtr *tentacle = NULL;
@@ -1037,7 +1039,7 @@
 
        /* create cluster 0 for instructions to be executed at the head */
        OCTinitMalPart();
-       OCTgetMalPart("","",(oid) 0, (oid) 0);
+       OCTgetMalPart("","",1, 1);
 
        malPart = (int*) GDKzalloc(mb->vtop * sizeof(int)); /* mask for cluster 
inclusion */
        memset((char *) malPart,~(char)0,mb->vtop * sizeof(int));
@@ -1055,9 +1057,9 @@
                        bnd[getArg(p,0)] = 1;
                        if ( p->argc >= 7 ){
                                tnm = (str) getVarValue(mb,getArg(p,3));
-                               l = *(oid*) getVarValue(mb,getArg(p,6));
-                               h = *(oid*) getVarValue(mb,getArg(p,7));
-                               malPart[getArg(p,0)] = (int)1 << 
OCTgetMalPart("",tnm,l,h);
+                               pn = *(int*) getVarValue(mb,getArg(p,6));
+                               np = *(int*) getVarValue(mb,getArg(p,7));
+                               malPart[getArg(p,0)] = (int)1 << 
OCTgetMalPart("",tnm,pn,np);
                                continue;
                        }
                }
diff --git a/monetdb5/optimizer/opt_pipes.mx b/monetdb5/optimizer/opt_pipes.mx
--- a/monetdb5/optimizer/opt_pipes.mx
+++ b/monetdb5/optimizer/opt_pipes.mx
@@ -92,7 +92,7 @@
 /*
  * The Octopus pipeline for distributed processing (Merovingian enabled 
platforms only)
 */
-{"octopus_pipe",       
"inline,remap,evaluate,costModel,coercions,emptySet,aliases,mitosis,mergetable,deadcode,constants,commonTerms,joinPath,octopus,deadcode,reduce,dataflow,history,multiplex,garbageCollector"},
+{"octopus_pipe",       
"inline,remap,evaluate,costModel,coercions,emptySet,aliases,mitosis,mergetable,deadcode,commonTerms,joinPath,reorder,deadcode,costModel,octopus,reduce,dataflow,history,multiplex,garbageCollector"},
 
 /* The default + datacyclotron*/
 {"datacyclotron_pipe", 
"inline,remap,evaluate,costModel,coercions,emptySet,aliases,datacyclotron,mergetable,deadcode,commonTerms,joinPath,reorder,deadcode,reduce,dataflow,history,replication,multiplex,garbageCollector"},
diff --git a/sql/backends/monet5/sql.mx b/sql/backends/monet5/sql.mx
--- a/sql/backends/monet5/sql.mx
+++ b/sql/backends/monet5/sql.mx
@@ -995,6 +995,50 @@
        b:bat[:oid,:oid]:= remote.get(conn,bh);
        return bind_idxbat:= b;
 end octopus.bind_idxbat;
+@-
+Octopus.bind signatures adjusted to new mitosis sql.bind (part_nr, nr_parts)
+@mal
+function octopus.bind(mvc:int, sch:str, tab:str,col:str,kind:int,
+               part_nr:int, nr_parts:int, version:int) :bat[:oid,:any_1];
+       b:bat[:oid,:any_1]:= sql.bind(mvc,sch,tab,col,kind,part_nr,nr_parts);
+       return bind:= b;
+end bind;
+
+function octopus.bind(conn:str, sch:str, tab:str,col:str,kind:int,
+part_nr:int, nr_parts:int, version:int):bat[:oid,:any_1];
+       b:bat[:oid,:any_1] := nil:bat[:oid,:any_1];
+       m := nil:int;
+       rm := remote.put(conn,m);
+       rm := remote.exec(conn,"sql","mvc");
+       s := remote.put(conn,sch);
+       t := remote.put(conn,tab);
+       c := remote.put(conn,col);
+       k := remote.put(conn,kind);
+       v := remote.put(conn,version);
+       l := remote.put(conn,part_nr);
+       h := remote.put(conn,nr_parts);
+       rb:= remote.put(conn,b);
+       rb:= remote.exec(conn,"sql","bind",rm,s,t,c,k,l,h);
+       b:bat[:oid,:any_1]:= remote.get(conn,rb);
+       return bind:= b;
+end octopus.bind;
+
+function octopus.bind_idxbat(conn:str, sch:str, tab:str, index:str, 
access:int, part_nr:int, nr_parts:int, version:int):bat[:oid,:oid];
+       b:bat[:oid,:oid] := nil:bat[:oid,:oid];
+       m := nil:int;
+       rm := remote.put(conn,m);
+       rm := remote.exec(conn,"sql","mvc");
+       s := remote.put(conn,sch);
+       t := remote.put(conn,tab);
+       i := remote.put(conn,index);
+       a := remote.put(conn,access);
+       l := remote.put(conn,part_nr);
+       h := remote.put(conn,nr_parts);
+       bh:= remote.put(conn,b);
+       bh:= remote.exec(conn,"sql","bind_idxbat",rm,s,t,i,a,l,h);
+       b:bat[:oid,:oid]:= remote.get(conn,bh);
+       return bind_idxbat:= b;
+end octopus.bind_idxbat;
 
 function octopus.getVariable(conn:str,name:str):any_1;
        s := remote.put(conn,name);
_______________________________________________
Checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list

Reply via email to