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