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

Reply via email to