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