Update of /cvsroot/monetdb/sql/src/server
In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv24401/src/server
Modified Files:
Tag: SQL_2-18
rel_select.mx sql_parser.mx sql_select.mx
Log Message:
fixed bug [ 1757923 ] SQL: Prepared statement type mismatch
(parameters are now added during the parsing (solves the order issue))
Index: rel_select.mx
===================================================================
RCS file: /cvsroot/monetdb/sql/src/server/rel_select.mx,v
retrieving revision 1.49.2.1
retrieving revision 1.49.2.2
diff -u -d -r1.49.2.1 -r1.49.2.2
--- rel_select.mx 8 Jun 2007 09:48:27 -0000 1.49.2.1
+++ rel_select.mx 12 Aug 2007 21:34:38 -0000 1.49.2.2
@@ -3349,14 +3349,9 @@
}
break;
case SQL_PARAMETER:{
- char n[BUFSIZ];
-
if (sql->mode != m_prepare)
return sql_error(sql, 02, "SELECT: parameters ('?') not
allowed in normal queries, use PREPARE");
- snprintf(n, BUFSIZ, "A%d",
- (sql->params)?list_length(sql->params):0);
- sql_add_param(sql, n, NULL);
- return exp_param(n, NULL);
+ return exp_param(se->data.sval, NULL);
}
case SQL_ATOM:{
AtomNode *an = (AtomNode *) se;
Index: sql_parser.mx
===================================================================
RCS file: /cvsroot/monetdb/sql/src/server/sql_parser.mx,v
retrieving revision 1.247
retrieving revision 1.247.2.1
diff -u -d -r1.247 -r1.247.2.1
--- sql_parser.mx 21 May 2007 18:14:30 -0000 1.247
+++ sql_parser.mx 12 Aug 2007 21:34:38 -0000 1.247.2.1
@@ -3142,7 +3142,14 @@
| string_funcs
| case_exp
| cast_exp
- | '?' { $$ = _symbol_create( SQL_PARAMETER, NULL ); }
+ | '?'
+ { mvc *m = (mvc*)parm;
+ int nr = (m->params)?list_length(m->params):0, l = 2 + ((nr+8)>>3);
+ char *n = sa_alloc(m->sa, l);
+
+ snprintf(n, l, "A%d", nr);
+ sql_add_param(m, n, NULL);
+ $$ = _symbol_create( SQL_PARAMETER, n ); }
;
/*
Index: sql_select.mx
===================================================================
RCS file: /cvsroot/monetdb/sql/src/server/sql_select.mx,v
retrieving revision 1.191.2.3
retrieving revision 1.191.2.4
diff -u -d -r1.191.2.3 -r1.191.2.4
--- sql_select.mx 2 Jul 2007 15:30:57 -0000 1.191.2.3
+++ sql_select.mx 12 Aug 2007 21:34:39 -0000 1.191.2.4
@@ -1724,14 +1724,9 @@
}
break;
case SQL_PARAMETER:{
- char n[BUFSIZ];
-
if (sql->mode != m_prepare)
return sql_error(sql, 02, "SELECT: parameters ('?') not
allowed in normal queries, use PREPARE");
- snprintf(n, BUFSIZ, "A%d",
- (sql->params)?list_length(sql->params):0);
- sql_add_param(sql, n, NULL);
- return stmt_var(_strdup(n), NULL, 0, 0);
+ return stmt_var(_strdup(se->data.sval), NULL, 0, 0);
}
case SQL_NULL:
return stmt_atom(atom_general(sql_bind_localtype("str"), NULL,
0));
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
Monetdb-sql-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-sql-checkins