Update of /cvsroot/monetdb/sql/src/backends/monet5
In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv25496

Modified Files:
        sql.mx sql_bpm.mx sql_scenario.mx 
Log Message:
prepare for parallel execution. We cannot use the MCgetClient call but
need to pass the client record via 'patterns'. So converted the commands which
need client information into patterns.


U sql_scenario.mx
Index: sql_scenario.mx
===================================================================
RCS file: /cvsroot/monetdb/sql/src/backends/monet5/sql_scenario.mx,v
retrieving revision 1.309
retrieving revision 1.310
diff -u -d -r1.309 -r1.310
--- sql_scenario.mx     6 Jun 2008 20:25:16 -0000       1.309
+++ sql_scenario.mx     9 Jul 2008 18:32:37 -0000       1.310
@@ -1154,18 +1154,20 @@
        printFunction(GDKout, ((Symbol)q->code)->def, LIST_MAL_ALL);
 #endif
        mb = ((Symbol)q->code)->def;
-       pci= getInstrPtr(mb,0);
+       pci = getInstrPtr(mb,0);
        if( pci->argc >= MAXARG)
-               argv= (ValPtr *) GDKmalloc(sizeof(ValPtr) * pci->argc);
-       else argv= argvbuffer;
+               argv = (ValPtr *) GDKmalloc(sizeof(ValPtr) * pci->argc);
+       else 
+               argv = argvbuffer;
 
        if( pci->retc >= MAXARG)
-               argrec= (ValRecord *)GDKmalloc(sizeof(ValRecord) * pci->retc);
-       else argrec= argrecbuffer;
+               argrec = (ValRecord *)GDKmalloc(sizeof(ValRecord) * pci->retc);
+       else 
+               argrec = argrecbuffer;
 
        /* prepare the target variables */
-       for(i=0;i<pci->retc; i++){
-               argv[i]= argrec+i;
+       for(i=0; i<pci->retc; i++){
+               argv[i] = argrec+i;
                argv[i]->vtype= getVarGDKType(mb,i);
        }
 

U sql.mx
Index: sql.mx
===================================================================
RCS file: /cvsroot/monetdb/sql/src/backends/monet5/sql.mx,v
retrieving revision 1.266
retrieving revision 1.267
diff -u -d -r1.266 -r1.267
--- sql.mx      23 Jun 2008 14:27:28 -0000      1.266
+++ sql.mx      9 Jul 2008 18:32:36 -0000       1.267
@@ -39,10 +39,10 @@
 address SQLinitEnvironment
 comment "Initialize the environment for MAL";
 
-command commit():void
-address SQLcommit_wrap;
-command rollback():void
-address SQLrollback_wrap;
+pattern commit():void
+address SQLcommit;
+pattern rollback():void
[...989 lines suppressed...]
+
+       if (msg)
+               return msg;
+       s = mvc_bind_schema(m, *sname);
+       t = mvc_bind_table(m, s, *tname);
+       if (!s || !t || !t->columns.set->h)
+                throw(SQL, "calc.rowid", "Cannot find column");
+       c = t->columns.set->h->data;
+       /* HACK, get insert bat */
+       b = store_funcs.bind_col(m->session->tr, c, RD_INS);
+       /* UGH (move into storage backends!!) */
+       d = c->data;
+       *rid = d->ibase + BATcount(b);
+       BBPunfix(b->batCacheid);
+       return MAL_SUCCEED;
+}
+
 @= rnk
 str 
 [EMAIL PROTECTED](bat *rid, bat *bid, bat *gid, bat *gpe)

U sql_bpm.mx
Index: sql_bpm.mx
===================================================================
RCS file: /cvsroot/monetdb/sql/src/backends/monet5/sql_bpm.mx,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -d -r1.8 -r1.9
--- sql_bpm.mx  21 Jan 2008 08:12:28 -0000      1.8
+++ sql_bpm.mx  9 Jul 2008 18:32:37 -0000       1.9
@@ -19,32 +19,32 @@
 
 module mat;
 
-command bind(sname:str, tname:str, cname:str, access:int, part:int) 
:bat[:oid,:any_1]
+pattern bind(sname:str, tname:str, cname:str, access:int, part:int) 
:bat[:oid,:any_1]
 address mat_bind_wrap
 comment "Bind the bat tname.cname into the focus with specific access mode";
 
-command bind_idxbat(sname:str, tname:str, iname:str, access:int, 
part:int):bat[:oid,:any_1]
+pattern bind_idxbat(sname:str, tname:str, iname:str, access:int, 
part:int):bat[:oid,:any_1]
 address mat_bind_idxbat_wrap
 comment "Bind the idx bat, tname.idx
        with specific accsess modes";
 
-command inc_parts(sname:str, tname:str):void
+pattern inc_parts(sname:str, tname:str):void
 address inc_parts_wrap
 comment "Increment the number of partions";
 
 module constraints;
 
-command parts(sname:str, tname:str, cname:str, access:int, nrparts:int):void
+pattern parts(sname:str, tname:str, cname:str, access:int, nrparts:int):void
 address Cparts
 comment "Check if the number of partions is still valid";
 
 module distribution;
 
-command bindHost(sname:str, tname:str, cname:str, part:int):int
+pattern bindHost(sname:str, tname:str, cname:str, part:int):int
 address dist_bindHost_wrap
 comment "Bind location id for a partition fragment";
 
-command setHost(sname:str, tname:str, cname:str, part:int, host:int):int
+pattern setHost(sname:str, tname:str, cname:str, part:int, host:int):int
 address dist_setHost_wrap
 comment "Set location id for a partition fragment";
 
@@ -56,7 +56,7 @@
 address dist_reconnect_wrap
 comment "Reconnect to a remote host using the location information associated 
to id";
 
-command send(mid:int, sname:str, tname:str, cname:str, part:int):int
+pattern send(mid:int, sname:str, tname:str, cname:str, part:int):int
 address dist_send_wrap
 comment "Send a fragment to a remote location";
 
@@ -65,17 +65,15 @@
 #define _SQL_BPM_H_
 #include "sql.h"
 
-sql5_export str mat_bind_wrap(int *bid, str *sname, str *tname, str *cname, 
int *access, int *part);
-sql5_export str mat_bind_idxbat_wrap(int *bid, str *sname, str *tname, str 
*cname, int *access, int *part);
-sql5_export str inc_parts_wrap(int *d, str *sname, str *tname);
-sql5_export str Cparts(int *d, str *sname, str *tname, str *cname, int 
*access, int *parts);
-sql5_export str dist_bindHost_wrap(int *host, str *sname, str *tname, str 
*cname, int *part);
-sql5_export str dist_setHost_wrap(int *bid, str *sname, str *tname, str 
*cname, int *part, int *host);
+sql5_export str mat_bind_wrap(MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
+sql5_export str mat_bind_idxbat_wrap(MalBlkPtr mb, MalStkPtr stk, InstrPtr 
pci);
+sql5_export str inc_parts_wrap(MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
+sql5_export str Cparts(MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
+sql5_export str dist_bindHost_wrap(MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
+sql5_export str dist_setHost_wrap(MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
 sql5_export str dist_addHost_wrap(int *id, str *host, int *port, str *dbname, 
str *user, str *passwd);
 sql5_export str dist_reconnect_wrap(int *mid, int *id);
-sql5_export str dist_send_wrap(int *mid, str *sname, str *tname, str *cname, 
int *part);
-
-
+sql5_export str dist_send_wrap(MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
 
 #endif /* _SQL_BPM_H_ */
 
@@ -112,12 +110,19 @@
        }
 }
 
+/* str mat_bind_wrap(int *bid, str *sname, str *tname, str *cname, int 
*access, int *part); */
 str
-mat_bind_wrap(int *bid, str *sname, str *tname, str *cname, int *access, int 
*part)
+mat_bind_wrap(MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
 {
        BAT *b = NULL;
        mvc *m = NULL;
-       str msg = getContext(&m, NULL);
+       str msg = getContext(mb, &m, NULL);
+       int *bid = (int *)getArgReference(stk, pci, 0);
+       str *sname = (str *)getArgReference(stk, pci, 1);
+       str *tname = (str *)getArgReference(stk, pci, 2);
+       str *cname = (str *)getArgReference(stk, pci, 3);
+       int *access = (int *)getArgReference(stk, pci, 4);
+       int *part = (int *)getArgReference(stk, pci, 5);
 
        if (msg)
                return msg;
@@ -147,12 +152,19 @@
        }
 }
 
+/* str mat_bind_idxbat_wrap(int *bid, str *sname, str *tname, str *cname, int 
*access, int *part); */
 str
-mat_bind_idxbat_wrap(int *bid, str *sname, str *tname, str *cname, int 
*access, int *part)
+mat_bind_idxbat_wrap(MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
 {
        BAT *b = NULL;
        mvc *m = NULL;
-       str msg = getContext(&m, NULL);
+       str msg = getContext(mb, &m, NULL);
+       int *bid = (int *)getArgReference(stk, pci, 0);
+       str *sname = (str *)getArgReference(stk, pci, 1);
+       str *tname = (str *)getArgReference(stk, pci, 2);
+       str *cname = (str *)getArgReference(stk, pci, 3);
+       int *access = (int *)getArgReference(stk, pci, 4);
+       int *part = (int *)getArgReference(stk, pci, 5);
 
        if (msg)
                return msg;
@@ -165,16 +177,23 @@
        throw(SQL, "mat.bind", "limitation in transaction scope");
 }
 
+/* str Cparts(int *d, str *sname, str *tname, str *cname, int *access, int 
*parts); */
 str
-Cparts(int *d, str *sname, str *tname, str *cname, int *access, int *parts)
+Cparts(MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
 {
        mvc *m = NULL;
-       str msg = getContext(&m, NULL);
+       str msg = getContext(mb, &m, NULL);
        sql_schema *s;
        sql_table *t;
        sql_column *c;
        sql_bpm *p;
        int err = 0;
+       int *d = (int *)getArgReference(stk, pci, 0);
+       str *sname = (str *)getArgReference(stk, pci, 1);
+       str *tname = (str *)getArgReference(stk, pci, 2);
+       str *cname = (str *)getArgReference(stk, pci, 3);
+       int *access = (int *)getArgReference(stk, pci, 4);
+       int *parts = (int *)getArgReference(stk, pci, 5);
 
        (void)d;
        if (msg)
@@ -224,15 +243,17 @@
        }
 }
 
+/* str inc_parts_wrap(int *d, str *sname, str *tname); */
 str
-inc_parts_wrap(int *d, str *sname, str *tname)
+inc_parts_wrap(MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
 {
        mvc *m = NULL;
-       str msg = getContext(&m, NULL);
+       str msg = getContext(mb, &m, NULL);
        sql_schema *s;
        sql_table *t;
+       str *sname = (str *)getArgReference(stk, pci, 1);
+       str *tname = (str *)getArgReference(stk, pci, 2);
 
-       (void)d;
        if (msg)
                return msg;
 
@@ -266,12 +287,17 @@
        }
 }
 
-
+/* str dist_bindHost_wrap(int *host, str *sname, str *tname, str *cname, int 
*part); */
 str
-dist_bindHost_wrap(int *host, str *sname, str *tname, str *cname, int *part)
+dist_bindHost_wrap(MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
 {
        mvc *m = NULL;
-       str msg = getContext(&m, NULL);
+       str msg = getContext(mb, &m, NULL);
+       int *host = (int *)getArgReference(stk, pci, 0);
+       str *sname = (str *)getArgReference(stk, pci, 1);
+       str *tname = (str *)getArgReference(stk, pci, 2);
+       str *cname = (str *)getArgReference(stk, pci, 3);
+       int *part = (int *)getArgReference(stk, pci, 4);
 
        if (msg)
                return msg;
@@ -296,11 +322,18 @@
        }
 }
 
+/* str dist_setHost_wrap(int *bid, str *sname, str *tname, str *cname, int 
*part, int *host); */
 str 
-dist_setHost_wrap(int *bid, str *sname, str *tname, str *cname, int *part, int 
*host)
+dist_setHost_wrap(MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
 {
        mvc *m = NULL;
-       str msg = getContext(&m, NULL);
+       str msg = getContext(mb, &m, NULL);
+       int *bid = (int *)getArgReference(stk, pci, 0);
+       str *sname = (str *)getArgReference(stk, pci, 1);
+       str *tname = (str *)getArgReference(stk, pci, 2);
+       str *cname = (str *)getArgReference(stk, pci, 3);
+       int *part = (int *)getArgReference(stk, pci, 4);
+       int *host = (int *)getArgReference(stk, pci, 5);
        
        if (msg)
                return msg;
@@ -352,11 +385,17 @@
        return NULL;    
 }
 
+/* str dist_send_wrap(int *mid, str *sname, str *tname, str *cname, int 
*part); */
 str 
-dist_send_wrap(int *mid, str *sname, str *tname, str *cname, int *part)
+dist_send_wrap(MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
 {
        mvc *m = NULL;
-       str msg = getContext(&m, NULL);
+       str msg = getContext(mb, &m, NULL);
+       int *mid = (int *)getArgReference(stk, pci, 0);
+       str *sname = (str *)getArgReference(stk, pci, 1);
+       str *tname = (str *)getArgReference(stk, pci, 2);
+       str *cname = (str *)getArgReference(stk, pci, 3);
+       int *part = (int *)getArgReference(stk, pci, 4);
        
        if (msg)
                return msg;


-------------------------------------------------------------------------
Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW!
Studies have shown that voting for your favorite open source project,
along with a healthy diet, reduces your potential for chronic lameness
and boredom. Vote Now at http://www.sourceforge.net/community/cca08
_______________________________________________
Monetdb-sql-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-sql-checkins

Reply via email to