Changeset: 9b102131dc73 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=9b102131dc73
Modified Files:
        sql/src/backends/monet5/sql_scenario.mx
        sql/src/server/sql_mvc.mx
        sql/src/server/sql_parser.mx
        sql/src/server/sql_semantic.mx
Branch: default
Log Message:

disable literal -> variable rewrite with queries with basket expressions.
Solves problems when generating the basket functions later on in the process.


diffs (119 lines):

diff -r 93e4d15fe948 -r 9b102131dc73 sql/src/backends/monet5/sql_scenario.mx
--- a/sql/src/backends/monet5/sql_scenario.mx   Sun May 09 13:58:39 2010 +0200
+++ b/sql/src/backends/monet5/sql_scenario.mx   Mon May 10 07:39:56 2010 +0200
@@ -530,6 +530,7 @@
 static void
 SQLtrans(mvc *m)
 {
+       m->caching = m->cache;
        if (m && !m->session->active) 
                mvc_trans(m);
 }
diff -r 93e4d15fe948 -r 9b102131dc73 sql/src/server/sql_mvc.mx
--- a/sql/src/server/sql_mvc.mx Sun May 09 13:58:39 2010 +0200
+++ b/sql/src/server/sql_mvc.mx Mon May 10 07:39:56 2010 +0200
@@ -97,7 +97,6 @@
        atom **args;
        int argc;
        int argmax;
-       int argfixed;
        struct symbol *sym;
 
        int user_id;
@@ -107,6 +106,7 @@
        /* current session variables */
        int timezone;           /* minutes west of UTC */
        int cache;              /* some queries should not be cached ! */
+       int caching;            /* cache current query ? */
        int history;    /* queries statistics are kept  */
        int reply_size;         /* reply size */ 
        int debug;
@@ -293,7 +293,7 @@
                mvc *m = mvc_create(0, stk, 0, NULL, NULL);
 
                /* disable caching */
-               m->cache = 0;
+               m->caching = 0;
                /* disable history */
                m->history = 0;
                mvc_trans(m);
@@ -611,7 +611,6 @@
        m->argmax = MAXPARAMS;
        m->args = NEW_ARRAY(atom*,m->argmax);
        m->argc = 0;
-       m->argfixed = 0;
        m->sym = NULL;
 
        m->last_id = m->role_id = m->user_id = -1;
@@ -623,6 +622,7 @@
        m->reply_size = 100;
        m->debug = debug;
        m->cache = 1;
+       m->caching = m->cache;
        m->history = 0;
 
        m->label = 0;
@@ -692,6 +692,7 @@
        if (m->cache != 1)
                stack_set_number(m, "cache", 1);
        m->cache = 1;
+       m->caching = m->cache;
        if (m->history != 0)
                stack_set_number(m, "history", 0);
        m->history = 0;
diff -r 93e4d15fe948 -r 9b102131dc73 sql/src/server/sql_parser.mx
--- a/sql/src/server/sql_parser.mx      Sun May 09 13:58:39 2010 +0200
+++ b/sql/src/server/sql_parser.mx      Mon May 10 07:39:56 2010 +0200
@@ -2709,8 +2709,7 @@
         { 
           mvc *m = (mvc*)parm;
 
-          if (m->emode == m_normal && 
-             (!m->argfixed || m->argc < MAXPARAMS-2) && m->cache){
+         if (m->emode == m_normal && m->caching && m->argc < MAXPARAMS-2) {
                /* replace by argument */
                atom *a = atom_general( sql_bind_localtype("str"), NULL, 0);
 
@@ -3046,12 +3045,18 @@
 */
 
 /* Basket expression, TODO window */
- |  '[' select_no_parens ']' table_name        
+ |  '[' 
+       {
+               mvc *m = (mvc*)parm;
+               
+               m->caching = 0;
+       }
+       select_no_parens ']' table_name         
        {
                dlist *op = L();
 
-               append_symbol(op, $2);
-               append_symbol(op, $4);
+               append_symbol(op, $3);
+               append_symbol(op, $5);
                $$ = _symbol_create_list(SQL_TABLE_OPERATOR, op); 
        }
  ;
@@ -3667,8 +3672,7 @@
        { 
          mvc *m = (mvc*)parm;
        
-         if (m->emode == m_normal && 
-             (!m->argfixed || m->argc < MAXPARAMS-2) && m->cache){
+         if (m->emode == m_normal && m->caching && m->argc < MAXPARAMS-2) {
                /* replace by argument */
                AtomNode *an = (AtomNode*)$1;
        
diff -r 93e4d15fe948 -r 9b102131dc73 sql/src/server/sql_semantic.mx
--- a/sql/src/server/sql_semantic.mx    Sun May 09 13:58:39 2010 +0200
+++ b/sql/src/server/sql_semantic.mx    Mon May 10 07:39:56 2010 +0200
@@ -143,7 +143,6 @@
 sql_add_arg(mvc *sql, atom *v)
 {
        if (sql->argc == sql->argmax) {
-               assert(!sql->argfixed);
                sql->argmax *= 2;
                sql->args = RENEW_ARRAY(atom*,sql->args,sql->argmax);
        }
_______________________________________________
Checkin-list mailing list
Checkin-list@monetdb.org
http://mail.monetdb.org/mailman/listinfo/checkin-list

Reply via email to