diff options
author | unknown <monty@mishka.local> | 2004-10-14 18:06:38 +0300 |
---|---|---|
committer | unknown <monty@mishka.local> | 2004-10-14 18:06:38 +0300 |
commit | 46b10a307fcaf3449f2bcf3b989feb0e1c53e7b6 (patch) | |
tree | 9616b70a88df88c50dde750a5d3caa05d5759819 /sql/sql_lex.cc | |
parent | 12e8c1fe9f1de90475aef0f38226b91871927207 (diff) | |
parent | 3307318917fb2995eaed4fa8530613cba08ea341 (diff) | |
download | mariadb-git-46b10a307fcaf3449f2bcf3b989feb0e1c53e7b6.tar.gz |
Merge bk-internal.mysql.com:/home/bk/mysql-4.1
into mishka.local:/home/my/mysql-4.1
sql/item_cmpfunc.h:
Auto merged
sql/item_strfunc.cc:
Auto merged
sql/sql_lex.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_prepare.cc:
Auto merged
sql/sql_table.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
Diffstat (limited to 'sql/sql_lex.cc')
-rw-r--r-- | sql/sql_lex.cc | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/sql/sql_lex.cc b/sql/sql_lex.cc index 856742d13bc..679ffb2140e 100644 --- a/sql/sql_lex.cc +++ b/sql/sql_lex.cc @@ -477,7 +477,6 @@ inline static uint int_token(const char *str,uint length) int yylex(void *arg, void *yythd) { reg1 uchar c; - bool space_ignored; int tokval, result_state; uint length; enum my_lex_states state; @@ -560,6 +559,7 @@ int yylex(void *arg, void *yythd) /* Fall through */ case MY_LEX_IDENT_OR_BIN: // TODO: Add binary string handling case MY_LEX_IDENT: + uchar *start; #if defined(USE_MB) && defined(USE_MB_IDENT) if (use_mb(cs)) { @@ -596,12 +596,16 @@ int yylex(void *arg, void *yythd) result_state= result_state & 0x80 ? IDENT_QUOTED : IDENT; } length= (uint) (lex->ptr - lex->tok_start)-1; - space_ignored= FALSE; + start= lex->ptr; if (lex->ignore_space) { - for (; state_map[c] == MY_LEX_SKIP ; space_ignored= TRUE, c= yyGet()); + /* + If we find a space then this can't be an identifier. We notice this + below by checking start != lex->ptr. + */ + for (; state_map[c] == MY_LEX_SKIP ; c= yyGet()); } - if (! space_ignored && c == '.' && ident_map[yyPeek()]) + if (start == lex->ptr && c == '.' && ident_map[yyPeek()]) lex->next_state=MY_LEX_IDENT_SEP; else { // '(' must follow directly if function |