diff options
author | Sergey Glukhov <Sergey.Glukhov@sun.com> | 2009-10-15 17:23:43 +0500 |
---|---|---|
committer | Sergey Glukhov <Sergey.Glukhov@sun.com> | 2009-10-15 17:23:43 +0500 |
commit | d8c3f2263f3deaadff957a0047460e8058cffccf (patch) | |
tree | e38788d80d85437efb1819550af226f7b2e2c195 /sql/sql_yacc.yy | |
parent | 3929dddcd76130529cabfbd68cfff024e6b5c80d (diff) | |
download | mariadb-git-d8c3f2263f3deaadff957a0047460e8058cffccf.tar.gz |
WL#751 Error message construction, backport
Diffstat (limited to 'sql/sql_yacc.yy')
-rw-r--r-- | sql/sql_yacc.yy | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy index f8650d83bc6..dd384a3c45e 100644 --- a/sql/sql_yacc.yy +++ b/sql/sql_yacc.yy @@ -132,10 +132,13 @@ void my_parse_error(const char *s) Lex_input_stream *lip= & thd->m_parser_state->m_lip; const char *yytext= lip->get_tok_start(); + if (!yytext) + yytext= ""; + /* Push an error into the error stack */ + ErrConvString err(yytext, thd->variables.character_set_client); my_printf_error(ER_PARSE_ERROR, ER(ER_PARSE_ERROR), MYF(0), s, - (yytext ? yytext : ""), - lip->yylineno); + err.ptr(), lip->yylineno); } /** @@ -11480,8 +11483,9 @@ IDENT_sys: $1.length, &dummy_error); if (wlen < $1.length) { + ErrConvString err($1.str, $1.length, &my_charset_bin); my_error(ER_INVALID_CHARACTER_STRING, MYF(0), - cs->csname, $1.str + wlen); + cs->csname, err.ptr()); MYSQL_YYABORT; } $$= $1; |