Changeset: 5a6224e3b33c for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/5a6224e3b33c
Modified Files:
        clients/Tests/exports.stable.out
        monetdb5/mal/mal_client.h
        monetdb5/mal/mal_scenario.c
        monetdb5/mal/mal_scenario.h
        monetdb5/mal/mal_session.c
        monetdb5/mal/mal_session.h
        sql/backends/monet5/sql_scenario.c
        sql/backends/monet5/sql_scenario.h
        tools/monetdbe/monetdbe.c
Branch: simplify_scenario
Log Message:

engine is now void returning function.


diffs (206 lines):

diff --git a/clients/Tests/exports.stable.out b/clients/Tests/exports.stable.out
--- a/clients/Tests/exports.stable.out
+++ b/clients/Tests/exports.stable.out
@@ -742,7 +742,7 @@ str GRPsubgroup5(bat *ngid, bat *next, b
 int MAL_MAXCLIENTS;
 int MALcommentsOnly(MalBlkPtr mb);
 lng MALdebug;
-str MALengine(Client c);
+void MALengine(Client c);
 str MALexitClient(Client c);
 str MALinitClient(Client c);
 str MALparser(Client c);
@@ -1345,8 +1345,9 @@ str SHPimport(Client cntxt, MalBlkPtr mb
 str SHPpartialimport(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
 str SQLautocommit(mvc *m);
 void SQLdestroyResult(res_table *destroy);
-str SQLengine(Client c);
+void SQLengine(Client c);
 str SQLengineIntern(Client c, backend *be);
+str SQLengine_(Client c);
 str SQLescapeString(str s);
 str SQLexitClient(Client c);
 str SQLinitClient(Client c, const char *passwd, const char *challenge, const 
char *algo);
diff --git a/monetdb5/mal/mal_client.h b/monetdb5/mal/mal_client.h
--- a/monetdb5/mal/mal_client.h
+++ b/monetdb5/mal/mal_client.h
@@ -46,6 +46,7 @@ typedef struct CLIENT_INPUT {
 
 typedef struct CLIENT *Client;
 typedef str (*init_client)(Client, const char *, const char *, const char *);
+typedef void (*engine_fptr)(Client);
 
 typedef struct CLIENT {
        int idx;        /* entry in mal_clients (-1 if free) */
@@ -60,7 +61,7 @@ typedef struct CLIENT {
         * provided to temporarily switch to another scenario.
         */
        str     scenario;  /* scenario management references */
-       MALfcn engine;
+       engine_fptr engine;
        init_client initClient;
        MALfcn exitClient;
                                                /* if set to 'S' it will put 
the process to sleep */
diff --git a/monetdb5/mal/mal_scenario.c b/monetdb5/mal/mal_scenario.c
--- a/monetdb5/mal/mal_scenario.c
+++ b/monetdb5/mal/mal_scenario.c
@@ -82,7 +82,7 @@ static struct SCENARIO scenarioRec[MAXSC
                .exitClient = "MALexitClient",
                .exitClientCmd = (MALfcn) MALexitClient,
                .engine = "MALengine",
-               .engineCmd = (MALfcn) MALengine,
+               .engineCmd = (engine_fptr)MALengine,
        },
        {
                .name = NULL,
@@ -125,21 +125,18 @@ defaultScenario(Client c)
  *
  */
 static void
-print_scenarioCommand(stream *f, str cmd, MALfcn funcptr)
+print_scenarioCommand(stream *f, str cmd)
 {
-    if (cmd)
-       mnstr_printf(f," \"%s%s\",", cmd, (funcptr?"":"?"));
-    else
-       mnstr_printf(f," nil,");
+       mnstr_printf(f," \"%s\",", cmd);
 }
 
 void
 showScenario(stream *f, Scenario scen)
 {
        mnstr_printf(f, "[ \"%s\",", scen->name);
-       print_scenarioCommand(f, scen->initClient, scen->initClientCmd);
-       print_scenarioCommand(f, scen->exitClient, scen->exitClientCmd);
-       print_scenarioCommand(f, scen->engine, scen->engineCmd);
+       print_scenarioCommand(f, scen->initClient);
+       print_scenarioCommand(f, scen->exitClient);
+       print_scenarioCommand(f, scen->engine);
        mnstr_printf(f, "]\n");
 }
 
@@ -275,19 +272,14 @@ resetScenario(Client c)
 static str
 runScenarioBody(Client c)
 {
-       str msg = MAL_SUCCEED;
-
        MT_thread_setworking("engine");
        while (c->mode > FINISHCLIENT && !GDKexiting()) {
-               if (c->mode <= FINISHCLIENT || (msg = c->engine(c)) != 
MAL_SUCCEED)
-                       goto wrapup;
-       wrapup:
-               if( GDKerrbuf && GDKerrbuf[0])
-                       mnstr_printf(c->fdout,"!GDKerror: %s\n",GDKerrbuf);
+               c->engine(c);
                assert(c->curprg->def->errors == NULL);
        }
-       msg = c->exitClient(c);
-       return msg;
+       if (!GDKexiting() && GDKerrbuf && GDKerrbuf[0])
+               mnstr_printf(c->fdout,"!GDKerror: %s\n",GDKerrbuf);
+       return c->exitClient(c);
 }
 
 str
diff --git a/monetdb5/mal/mal_scenario.h b/monetdb5/mal/mal_scenario.h
--- a/monetdb5/mal/mal_scenario.h
+++ b/monetdb5/mal/mal_scenario.h
@@ -30,7 +30,7 @@ typedef struct SCENARIO {
        str exitClient;
        MALfcn exitClientCmd;
        str engine;
-       MALfcn engineCmd;
+       engine_fptr engineCmd;
 } *Scenario;
 
 mal_export Scenario getFreeScenario(void);
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
@@ -846,7 +846,7 @@ MALengine_(Client c)
        return msg;
 }
 
-str
+void
 MALengine(Client c)
 {
        str msg = MALengine_(c);
@@ -867,7 +867,6 @@ MALengine(Client c)
                }
                freeException(msg);
        }
-       return MAL_SUCCEED;
 }
 
 /* Hypothetical, optimizers may massage the plan in such a way
diff --git a/monetdb5/mal/mal_session.h b/monetdb5/mal/mal_session.h
--- a/monetdb5/mal/mal_session.h
+++ b/monetdb5/mal/mal_session.h
@@ -21,7 +21,7 @@ mal_export void MSscheduleClient(str com
 mal_export str MALinitClient(Client c);
 mal_export str MALexitClient(Client c);
 mal_export str MALparser(Client c);
-mal_export str MALengine(Client c);
+mal_export void MALengine(Client c);
 mal_export void MSresetInstructions(MalBlkPtr mb, int start);
 mal_export void MSresetVariables(MalBlkPtr mb);
 mal_export void MSresetStack(Client cntxt, MalBlkPtr mb, MalStkPtr glb);
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
@@ -1444,7 +1444,7 @@ finalize:
        return msg;
 }
 
-static str
+str
 SQLengine_(Client c)
 {
        backend *be = (backend *) c->sqlcontext;
@@ -1482,7 +1482,7 @@ SQLengine_(Client c)
        return SQLengineIntern(c, be);
 }
 
-str
+void
 SQLengine(Client c)
 {
        char *msg = SQLengine_(c);
@@ -1498,9 +1498,7 @@ SQLengine(Client c)
                        }
                }
                freeException(msg);
-               return MAL_SUCCEED;
        }
-       return MAL_SUCCEED;
 }
 
 str
diff --git a/sql/backends/monet5/sql_scenario.h 
b/sql/backends/monet5/sql_scenario.h
--- a/sql/backends/monet5/sql_scenario.h
+++ b/sql/backends/monet5/sql_scenario.h
@@ -23,7 +23,8 @@ sql5_export str SQLexitClient(Client c);
 sql5_export str SQLresetClient(Client c);
 sql5_export str SQLinitClient(Client c, const char *passwd, const char 
*challenge, const char *algo);
 sql5_export str SQLinitClientFromMAL(Client c, const char *passwd, const char 
*challenge, const char *algo);
-sql5_export str SQLengine(Client c);
+sql5_export str SQLengine_(Client c);
+sql5_export void SQLengine(Client c);
 extern str handle_error(mvc *m, int pstatus, str msg);
 
 extern str SQLstatement(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr 
pci);
diff --git a/tools/monetdbe/monetdbe.c b/tools/monetdbe/monetdbe.c
--- a/tools/monetdbe/monetdbe.c
+++ b/tools/monetdbe/monetdbe.c
@@ -407,7 +407,7 @@ monetdbe_query_internal(monetdbe_databas
        if (prepare_id)
                m->emode = m_prepare;
        c->fdout = NULL;
-       if ((mdbe->msg = SQLengine(c)) != MAL_SUCCEED)
+       if ((mdbe->msg = SQLengine_(c)) != MAL_SUCCEED)
                goto cleanup;
        if (m->emode == m_prepare && prepare_id)
                *prepare_id = b->q->id;
_______________________________________________
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org

Reply via email to