Changeset: af07612a5c50 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=af07612a5c50 Modified Files: monetdb5/extras/jaql/jaqlscenario.c Branch: jacqueline Log Message:
jaqlscenario: avoid re-initing all the time Make sure mserver5 also knows the client was already initialised, so we don't a) leak like mad for every query, and b) can actually store and recall variables. diffs (38 lines): 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 @@ -80,25 +80,31 @@ JAQLinitClient(Client c) str msg = MAL_SUCCEED; j = GDKzalloc(sizeof(jc)); - c->state[MAL_SCENARIO_OPTIMIZE] = j; jaqllex_init_extra(j, &j->scanner); optimizerInit(); /* for all xxxRef vars in dumpcode */ + /* Set state, this indicates an initialized client scenario */ + c->state[MAL_SCENARIO_READER] = c; + c->state[MAL_SCENARIO_PARSER] = c; + c->state[MAL_SCENARIO_OPTIMIZE] = j; + return msg; } str JAQLexitClient(Client c) { - if (c->state[MAL_SCENARIO_PARSER] != NULL) { - jc *j = (jc *) c->state[MAL_SCENARIO_PARSER]; + if (c->state[MAL_SCENARIO_OPTIMIZE] != NULL) { + jc *j = (jc *) c->state[MAL_SCENARIO_OPTIMIZE]; jaqllex_destroy(j->scanner); j->scanner = NULL; freevars(j->vars); + c->state[MAL_SCENARIO_READER] = NULL; c->state[MAL_SCENARIO_PARSER] = NULL; + c->state[MAL_SCENARIO_OPTIMIZE] = NULL; } return MAL_SUCCEED; _______________________________________________ Checkin-list mailing list Checkin-list@monetdb.org http://mail.monetdb.org/mailman/listinfo/checkin-list