diff options
author | unknown <monty@hundin.mysql.fi> | 2001-10-30 16:31:35 +0200 |
---|---|---|
committer | unknown <monty@hundin.mysql.fi> | 2001-10-30 16:31:35 +0200 |
commit | 7b1cfb6353ee805326a22d8c9e71953b7ea8ed54 (patch) | |
tree | ae7c97d916cbedaec41df19869889814ef8f8688 /sql | |
parent | 859371bb5ffaf635d18552081a85c975278ab8e7 (diff) | |
download | mariadb-git-7b1cfb6353ee805326a22d8c9e71953b7ea8ed54.tar.gz |
Fix for gcc 3.0
Fix for using quoted table names with the SJIS character set.
BUILD/FINISH.sh:
Fix for gcc 3.0
BUILD/SETUP.sh:
Fix for gcc 3.0
Docs/manual.texi:
Changelog
innobase/include/univ.i:
Fix for gcc 3.0
sql/sql_lex.cc:
Fix for using quoted table names with the SJIS character set.
Diffstat (limited to 'sql')
-rw-r--r-- | sql/sql_lex.cc | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/sql/sql_lex.cc b/sql/sql_lex.cc index 5c63fa32293..7c3b933bbd7 100644 --- a/sql/sql_lex.cc +++ b/sql/sql_lex.cc @@ -601,8 +601,29 @@ int yylex(void *arg) case STATE_USER_VARIABLE_DELIMITER: lex->tok_start=lex->ptr; // Skipp first ` - while ((c=yyGet()) && state_map[c] != STATE_USER_VARIABLE_DELIMITER && - c != (uchar) NAMES_SEP_CHAR) ; +#ifdef USE_MB + if (use_mb(default_charset_info)) + { + while ((c=yyGet()) && state_map[c] != STATE_USER_VARIABLE_DELIMITER && + c != (uchar) NAMES_SEP_CHAR) + { + if (my_ismbhead(default_charset_info, c)) + { + int l; + if ((l = my_ismbchar(default_charset_info, + (const char *)lex->ptr-1, + (const char *)lex->end_of_query)) == 0) + break; + lex->ptr += l-1; + } + } + } + else +#endif + { + while ((c=yyGet()) && state_map[c] != STATE_USER_VARIABLE_DELIMITER && + c != (uchar) NAMES_SEP_CHAR) ; + } yylval->lex_str=get_token(lex,yyLength()); if (state_map[c] == STATE_USER_VARIABLE_DELIMITER) yySkip(); // Skipp end ` |