Changeset: f52a12f95b3b for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=f52a12f95b3b Modified Files: sql/backends/monet5/sql_optimizer.c sql/backends/monet5/sql_optimizer.h sql/backends/monet5/sql_scenario.c Branch: default Log Message:
call same optimizers with and without caching (or recursive calls). diffs (89 lines): diff --git a/sql/backends/monet5/sql_optimizer.c b/sql/backends/monet5/sql_optimizer.c --- a/sql/backends/monet5/sql_optimizer.c +++ b/sql/backends/monet5/sql_optimizer.c @@ -240,7 +240,7 @@ addOptimizers(Client c, MalBlkPtr mb, ch if (msg) GDKfree(msg); /* what to do with an error? */ /* point queries do not require mitosis and dataflow */ - if (be->mvc->point_query) + if (be->mvc->point_query) { for (i = mb->stop - 1; i > 0; i--) { q = getInstrPtr(mb, i); if (q->token == ENDsymbol) @@ -248,13 +248,16 @@ addOptimizers(Client c, MalBlkPtr mb, ch if (getFunctionId(q) == mitosisRef || getFunctionId(q) == dataflowRef) q->token = REMsymbol; /* they are ignored */ } + } + SQLgetStatistics(c, be->mvc, mb); + if (be->mvc->emod & mod_debug) + addtoMalBlkHistory(mb, "getStatistics"); } void addQueryToCache(Client c) { MalBlkPtr mb; - mvc *m; backend *be; str msg = 0, pipe; @@ -267,7 +270,6 @@ addQueryToCache(Client c) c->blkmode = 0; mb = c->curprg->def; chkProgram(c->fdout, c->nspace, mb); - m = ((backend *) c->sqlcontext)->mvc; #ifdef _SQL_OPTIMIZER_DEBUG mnstr_printf(GDKout, "ADD QUERY TO CACHE\n"); printFunction(GDKout, mb, 0, LIST_MAL_ALL); @@ -282,7 +284,7 @@ addQueryToCache(Client c) if (c->listing) printFunction(c->fdout, mb, 0, c->listing); - if (m->debug) { + if (be->mvc->debug) { msg = runMALDebugger(c, c->curprg); if (msg != MAL_SUCCEED) GDKfree(msg); /* ignore error */ @@ -290,10 +292,6 @@ addQueryToCache(Client c) return; } addOptimizers(c, mb, pipe); - SQLgetStatistics(c, m, mb); - if (m->emod & mod_debug) - addtoMalBlkHistory(mb, "getStatistics"); - msg = optimizeMALBlock(c, mb); if (msg != MAL_SUCCEED) { showScriptException(c->fdout, mb, 0, MAL, "%s", msg); diff --git a/sql/backends/monet5/sql_optimizer.h b/sql/backends/monet5/sql_optimizer.h --- a/sql/backends/monet5/sql_optimizer.h +++ b/sql/backends/monet5/sql_optimizer.h @@ -16,6 +16,6 @@ sql5_export void addQueryToCache(Client sql5_export str SQLoptimizer(Client c); sql5_export void SQLsetAccessMode(Client c); sql5_export str getSQLoptimizer(mvc *m); +sql5_export void addOptimizers(Client c, MalBlkPtr mb, char *pipe); -sql5_export void addOptimizers(Client c, MalBlkPtr mb, char *pipe); #endif /* _SQL_OPTIMIZER_H_ */ 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 @@ -37,6 +37,7 @@ #include "sql_readline.h" #include "sql_user.h" #include "sql_datetime.h" +#include "sql_optimizer.h" #include "mal_io.h" #include "mal_parser.h" #include "mal_builder.h" @@ -1207,7 +1208,7 @@ recompilequery: trimMalBlk(mb); chkProgram(c->fdout, c->nspace, mb); - addOptimizerPipe(c, mb, "default_pipe"); + addOptimizers(c, mb, "default_pipe"); msg = optimizeMALBlock(c, mb); if (msg != MAL_SUCCEED) { sqlcleanup(m, err); _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list