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