Changeset: d8379d4c22bd for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=d8379d4c22bd
Modified Files:
monetdb5/extras/jaql/jaql.c
monetdb5/extras/jaql/jaqlscenario.c
monetdb5/mal/mal_debugger.c
monetdb5/mal/mal_factory.c
monetdb5/mal/mal_interpreter.c
monetdb5/mal/mal_interpreter.h
monetdb5/mal/mal_session.c
sql/backends/monet5/sql.mx
sql/backends/monet5/sql_scenario.c
sql/scripts/25_debug.sql
Branch: default
Log Message:
Reduce the number of arguments
runMAL did not need/use all arguments.
diffs (198 lines):
diff --git a/monetdb5/extras/jaql/jaql.c b/monetdb5/extras/jaql/jaql.c
--- a/monetdb5/extras/jaql/jaql.c
+++ b/monetdb5/extras/jaql/jaql.c
@@ -1933,7 +1933,7 @@ JAQLexecute(Client cntxt, MalBlkPtr mb,
printFunction(cntxt->fdout, prg->def, 0,
LIST_MAL_STMT | LIST_MAPI);
} else {
- err = (str)runMAL(cntxt, prg->def, 0, 0, 0);
+ err = (str)runMAL(cntxt, prg->def, 0, 0);
freeMalBlk(prg->def);
if (err != MAL_SUCCEED) {
snprintf(j->err, sizeof(j->err), "%s",
err);
diff --git a/monetdb5/extras/jaql/jaqlscenario.c
b/monetdb5/extras/jaql/jaqlscenario.c
--- a/monetdb5/extras/jaql/jaqlscenario.c
+++ b/monetdb5/extras/jaql/jaqlscenario.c
@@ -284,7 +284,7 @@ JAQLengine(Client c)
} else if (MALcommentsOnly(c->curprg->def)) {
msg = MAL_SUCCEED;
} else {
- msg = runMAL(c, c->curprg->def, 0, 0, 0);
+ msg = runMAL(c, c->curprg->def, 0, 0);
}
if (msg) {
diff --git a/monetdb5/mal/mal_debugger.c b/monetdb5/mal/mal_debugger.c
--- a/monetdb5/mal/mal_debugger.c
+++ b/monetdb5/mal/mal_debugger.c
@@ -1296,7 +1296,7 @@ str
runMALDebugger(Client cntxt, Symbol s)
{
cntxt->itrace = 'n';
- runMAL(cntxt, s->def, 0, 0, 0);
+ runMAL(cntxt, s->def, 0, 0);
return MAL_SUCCEED;
}
diff --git a/monetdb5/mal/mal_factory.c b/monetdb5/mal/mal_factory.c
--- a/monetdb5/mal/mal_factory.c
+++ b/monetdb5/mal/mal_factory.c
@@ -379,7 +379,7 @@ runFactory(Client cntxt, MalBlkPtr mb, M
}
}
pl->stk->stkbot= mb->vtop; /* stack already initialized */
- msg = runMAL(cntxt, mb, 0, pl->stk, 0);
+ msg = runMAL(cntxt, mb, 0, pl->stk);
} else {
if( cmd && cntxt->timer == 0)
mdbStep(cntxt,mb,pl->stk,pl->pc);
diff --git a/monetdb5/mal/mal_interpreter.c b/monetdb5/mal/mal_interpreter.c
--- a/monetdb5/mal/mal_interpreter.c
+++ b/monetdb5/mal/mal_interpreter.c
@@ -356,15 +356,14 @@ prepareMALstack(MalBlkPtr mb, int size)
return stk;
}
-str runMAL(Client cntxt, MalBlkPtr mb, MalBlkPtr mbcaller,
- MalStkPtr env, InstrPtr pcicaller)
+str runMAL(Client cntxt, MalBlkPtr mb, MalBlkPtr mbcaller, MalStkPtr env)
{
MalStkPtr stk = NULL;
int i;
ValPtr lhs, rhs;
- InstrPtr pci = getInstrPtr(mb, 0);
str ret;
RuntimeProfileRecord runtimeProfile;
+ (void) mbcaller;
runtimeProfileInit(mb, &runtimeProfile, cntxt->flags & memoryFlag);
if (mb->errors) {
@@ -385,13 +384,12 @@ str runMAL(Client cntxt, MalBlkPtr mb, M
* allocate space for value stack
* the global stack should be large enough
*/
- if (mbcaller == NULL && env != NULL) {
+ if (env != NULL) {
stk = env;
if (mb != stk->blk)
showScriptException(cntxt->fdout, mb, 0, MAL,
"runMAL:misalignment of symbols\n");
if (mb->vtop > stk->stksize)
showScriptException(cntxt->fdout, mb, 0, MAL, "stack
too small\n");
- pci = pcicaller;
initStack(env->stkbot);
} else {
stk = prepareMALstack(mb, mb->vsize);
@@ -419,40 +417,10 @@ str runMAL(Client cntxt, MalBlkPtr mb, M
*/
}
- if (env && mbcaller) {
- InstrPtr pp;
- int k;
- /*
- * Moreover, we have to copy the result types to the stack for
later
- * use. The stack value has been cleared to avoid
misinterpretation of left-over
- * information. Since a stack frame may contain values of a
previous call,
- * we should first remove garbage.
- */
- pci = pcicaller;
- pp = getInstrPtr(mb, 0);
- /* set return types */
- for (i = 0; i < pci->retc; i++) {
- lhs = &stk->stk[pp->argv[i]];
- lhs->vtype = getVarGDKType(mb, i);
- }
- for (k = pp->retc; i < pci->argc; i++, k++) {
- lhs = &stk->stk[pp->argv[k]];
- /* variable arguments ? */
- if (k == pp->argc - 1)
- k--;
-
- rhs = &env->stk[pci->argv[i]];
- VALcopy(lhs, rhs);
- if (lhs->vtype == TYPE_bat)
- BBPincref(lhs->val.bval, TRUE);
- }
- stk->up = env;
- }
-
if (stk->cmd && env && stk->cmd != 'f')
stk->cmd = env->cmd;
runtimeProfileBegin(cntxt, mb, stk, 0, &runtimeProfile, 1);
- ret = runMALsequence(cntxt, mb, 1, 0, stk, env, pcicaller);
+ ret = runMALsequence(cntxt, mb, 1, 0, stk, env, 0);
runtimeProfile.ppc = 0; /* also finalize function call event */
runtimeProfileExit(cntxt, mb, stk, &runtimeProfile);
diff --git a/monetdb5/mal/mal_interpreter.h b/monetdb5/mal/mal_interpreter.h
--- a/monetdb5/mal/mal_interpreter.h
+++ b/monetdb5/mal/mal_interpreter.h
@@ -38,7 +38,7 @@
mal_export void showErrors(Client cntxt);
mal_export MalStkPtr prepareMALstack(MalBlkPtr mb, int size);
-mal_export str runMAL(Client c, MalBlkPtr mb, MalBlkPtr mbcaller, MalStkPtr
env, InstrPtr pcicaller);
+mal_export str runMAL(Client c, MalBlkPtr mb, MalBlkPtr mbcaller, MalStkPtr
env);
mal_export str runMALsequence(Client cntxt, MalBlkPtr mb, int startpc, int
stoppc, MalStkPtr stk, MalStkPtr env, InstrPtr pcicaller);
mal_export str reenterMAL(Client cntxt, MalBlkPtr mb, int startpc, int stoppc,
MalStkPtr stk, MalStkPtr env, InstrPtr pcicaller);
mal_export str callMAL(Client cntxt, MalBlkPtr mb, MalStkPtr *glb, ValPtr
argv[], char debug);
diff --git a/monetdb5/mal/mal_session.c b/monetdb5/mal/mal_session.c
--- a/monetdb5/mal/mal_session.c
+++ b/monetdb5/mal/mal_session.c
@@ -616,7 +616,7 @@ MALengine(Client c)
c->glb->keepAlive = TRUE; /* no garbage collection */
}
if (prg->def->errors == 0)
- msg = (str) runMAL(c, prg->def, 0, c->glb, 0);
+ msg = (str) runMAL(c, prg->def, 0, c->glb);
if (msg) {
/* ignore "internal" exceptions */
str fcn = getExceptionPlace(msg); /* retrieves from "first"
exception */
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
@@ -7317,7 +7317,7 @@ RAstatement(Client cntxt, MalBlkPtr mb,
backend_callinline(b, cntxt, s );
addQueryToCache(cntxt);
- msg = (str) runMAL(cntxt, cntxt->curprg->def, 0, 0, 0);
+ msg = (str) runMAL(cntxt, cntxt->curprg->def, 0, 0);
if (!msg) {
resetMalBlk(cntxt->curprg->def, oldstop);
freeVariables(cntxt,cntxt->curprg->def, cntxt->glb,
oldvtop);
diff --git a/sql/backends/monet5/sql_scenario.c
b/sql/backends/monet5/sql_scenario.c
--- a/sql/backends/monet5/sql_scenario.c
+++ b/sql/backends/monet5/sql_scenario.c
@@ -881,7 +881,7 @@ SQLstatementIntern(Client c, str *expr,
if ( execute) {
if (!output)
sql->out = NULL; /* no output */
- msg = (str) runMAL(c, c->curprg->def, 0, 0, 0);
+ msg = (str) runMAL(c, c->curprg->def, 0, 0);
MSresetInstructions(c->curprg->def, oldstop);
freeVariables(c,c->curprg->def, c->glb, oldvtop);
}
@@ -1813,7 +1813,7 @@ SQLengineIntern(Client c, backend *be)
if (MALcommentsOnly(c->curprg->def)) {
msg = MAL_SUCCEED;
} else {
- msg = (str) runMAL(c, c->curprg->def, 0, 0, 0);
+ msg = (str) runMAL(c, c->curprg->def, 0, 0);
}
cleanup_engine:
diff --git a/sql/scripts/25_debug.sql b/sql/scripts/25_debug.sql
--- a/sql/scripts/25_debug.sql
+++ b/sql/scripts/25_debug.sql
@@ -42,11 +42,6 @@ create function environment()
returns table ("name" string, value string)
external name sql.sql_environment;
--- The database foot print
-create function storage()
-returns table ("schema" string, "table" string, "column" string, location
string, "count" bigint, capacity bigint, width int, size bigint, hashsize
bigint, sorted boolean)
-external name sql.storage;
-
-- The BAT buffer pool overview
create function bbp ()
returns table (id int, name string, htype string,
_______________________________________________
Checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list