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
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list