Changeset: e93389d23d92 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=e93389d23d92
Modified Files:
        sql/backends/monet5/sql_scenario.c
Branch: default
Log Message:

Comments


diffs (48 lines):

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
@@ -1020,7 +1020,9 @@ cachable(mvc *m, stmt *s)
 {
        if (m->emode == m_prepare)
                return 1;
-       if (m->emode == m_plan || m->type == Q_TRANS || /*m->type == Q_SCHEMA 
|| cachable to make sure we have trace on alter statements  */
+       if (m->emode == m_plan)
+               return 0;
+       if (m->type == Q_TRANS ||       /*m->type == Q_SCHEMA || cachable to 
make sure we have trace on alter statements  */
            (s && s->type == st_none) || sa_size(m->sa) > MAX_QUERY)
                return 0;
        return 1;
@@ -1198,6 +1200,7 @@ SQLparser(Client c)
                m->emode = m_inplace;
                scanner_query_processed(&(m->scanner));
        } else if (caching(m) && cachable(m, NULL) && m->emode != m_prepare && 
(be->q = qc_match(m->qc, m->sym, m->args, m->argc, m->scanner.key ^ 
m->session->schema->base.id)) != NULL) {
+               /* query template was found in the query cache be */
                SQLsetDebugger(c, m, TRUE);
                SQLsetTrace(c, m, TRUE);
                if (!(m->emod & (mod_explain | mod_debug | mod_trace )))
@@ -1255,6 +1258,7 @@ SQLparser(Client c)
 
                        /* register name in the namespace */
                        be->q->name = putName(be->q->name, strlen(be->q->name));
+                       /* unless a query modifier has been set, we directly 
call the cached plan */
                        if (m->emode == m_normal && m->emod == mod_none)
                                m->emode = m_inplace;
                }
@@ -1269,7 +1273,7 @@ SQLparser(Client c)
                                err = mvc_export_prepare(m, c->fdout, be->q, 
"");
                        else if (m->emode == m_inplace) {
                                /* everything ready for a fast call */
-                       } else {        
+                       } else if( m->emode == m_execute || m->emode == 
m_normal || m->emode == m_plan){
                                /* call procedure generation (only in cache 
mode) */
                                backend_call(be, c, be->q);
                        }
@@ -1282,6 +1286,8 @@ SQLparser(Client c)
 
                /* check the query wrapper for errors */
                chkTypes(c->fdout, c->nspace, c->curprg->def, TRUE);
+
+               /* in case we had produced a non-cachable plan, the optimizer 
should be called */
                if (opt && !c->curprg->def->errors ) {
                        str msg = optimizeQuery(c);
 
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to