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 -- [email protected]
To unsubscribe send an email to [email protected]