summaryrefslogtreecommitdiff
path: root/sql/sql_lex.cc
diff options
context:
space:
mode:
authorunknown <konstantin@mysql.com>2005-07-15 00:31:09 +0400
committerunknown <konstantin@mysql.com>2005-07-15 00:31:09 +0400
commitb0641a3bdd518439a2bf8d5f66dda663942e40b6 (patch)
tree67dc52609b50b369c1fe7c45c4b20109d1c9bff2 /sql/sql_lex.cc
parent7750905037e9c1e64d5172819b746815ed268152 (diff)
parent73386c15a6698234d287525c2271b64756eb3354 (diff)
downloadmariadb-git-b0641a3bdd518439a2bf8d5f66dda663942e40b6.tar.gz
Merge mysql.com:/opt/local/work/mysql-4.1-root
into mysql.com:/opt/local/work/mysql-5.0-root regex/regerror.c: Auto merged sql/sql_lex.cc: Auto merged mysql-test/r/ps.result: Manual merge mysql-test/t/ps.test: Manual merge sql/sql_yacc.yy: Manual merge
Diffstat (limited to 'sql/sql_lex.cc')
-rw-r--r--sql/sql_lex.cc9
1 files changed, 9 insertions, 0 deletions
diff --git a/sql/sql_lex.cc b/sql/sql_lex.cc
index 218410eed81..a4293fa76bd 100644
--- a/sql/sql_lex.cc
+++ b/sql/sql_lex.cc
@@ -556,6 +556,15 @@ int yylex(void *arg, void *yythd)
lex->next_state= MY_LEX_START; // Allow signed numbers
if (c == ',')
lex->tok_start=lex->ptr; // Let tok_start point at next item
+ /*
+ Check for a placeholder: it should not precede a possible identifier
+ because of binlogging: when a placeholder is replaced with
+ its value in a query for the binlog, the query must stay
+ grammatically correct.
+ */
+ else if (c == '?' && ((THD*) yythd)->command == COM_PREPARE &&
+ !ident_map[cs, yyPeek()])
+ return(PARAM_MARKER);
return((int) c);
case MY_LEX_IDENT_OR_NCHAR: