Commit f05d5c84 authored by unknown's avatar unknown

a little optimization in yylex

(case MY_LEX_USER_VARIABLE_DELIMITER for multichar strings)
and my_mbcharlen


include/m_ctype.h:
  a trivial optimization of my_mbcharlen (case !USE_MB)
sql/sql_lex.cc:
  a little optimization in yylex 
  (case MY_LEX_USER_VARIABLE_DELIMITER for multichar strings)
parent 9a3a0d7d
......@@ -391,7 +391,11 @@ extern my_bool my_parse_charset_xml(const char *bug, uint len,
#define use_mb(s) ((s)->cset->ismbchar != NULL)
#define my_ismbchar(s, a, b) ((s)->cset->ismbchar((s), (a), (b)))
#ifdef USE_MB
#define my_mbcharlen(s, a) ((s)->cset->mbcharlen((s),(a)))
#else
#define my_mbcharlen(s, a) 1
#endif
#define my_caseup(s, a, l) ((s)->cset->caseup((s), (a), (l)))
#define my_casedn(s, a, l) ((s)->cset->casedn((s), (a), (l)))
......
......@@ -694,10 +694,9 @@ int yylex(void *arg, void *yythd)
char quote_char= c; // Used char
lex->tok_start=lex->ptr; // Skip first `
while ((c=yyGet()))
{
#ifdef USE_MB
if (my_mbcharlen(cs, c) == 1)
#endif
{
int l;
if ((l= my_mbcharlen(cs, c)) == 1)
{
if (c == (uchar) NAMES_SEP_CHAR)
break; /* Old .frm format can't handle this char */
......@@ -711,15 +710,12 @@ int yylex(void *arg, void *yythd)
}
}
#ifdef USE_MB
else
else if (l > 1)
{
int l;
if ((l = my_ismbchar(cs,
(const char *)lex->ptr-1,
(const char *)lex->end_of_query)) == 0)
break;
lex->ptr += l-1;
}
else
break;
#endif
}
if (double_quotes)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment