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

Reply via email to