mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 12:02:42 +01:00
3ab0ddc294
fixed layout sql/filesort.cc: fixed layout sql/gstream.cc: fixed layout sql/item.cc: postreview fix sql/item.h: postreview fix sql/item_cmpfunc.cc: postreview fix sql/item_cmpfunc.h: fixed layout sql/item_func.h: fixed layout sql/item_row.h: fixed layout sql/item_strfunc.cc: fixed layout sql/item_subselect.cc: postreview fix sql/item_subselect.h: postreview fix sql/nt_servc.cc: fixed layout sql/opt_range.cc: fixed layout sql/password.c: fixed layout sql/spatial.cc: fixed layout sql/sql_help.cc: fixed layout sql/sql_lex.cc: fixed layout sql/sql_olap.cc: fixed layout sql/sql_select.cc: fixed layout sql/sql_show.cc: fixed layout sql/sql_string.cc: fixed layout sql/sql_table.cc: fixed layout sql/stacktrace.c: fixed layout
139 lines
2.1 KiB
C++
139 lines
2.1 KiB
C++
#include "mysql_priv.h"
|
|
|
|
int GTextReadStream::get_next_toc_type() const
|
|
{
|
|
const char *cur = m_cur;
|
|
while ((*cur)&&(strchr(" \t\r\n",*cur)))
|
|
{
|
|
cur++;
|
|
}
|
|
if (!(*cur))
|
|
{
|
|
return eostream;
|
|
}
|
|
|
|
if (((*cur>='a') && (*cur<='z')) || ((*cur>='A') && (*cur<='Z')) ||
|
|
(*cur=='_'))
|
|
{
|
|
return word;
|
|
}
|
|
|
|
if (((*cur>='0') && (*cur<='9')) || (*cur=='-') || (*cur=='+') ||
|
|
(*cur=='.'))
|
|
{
|
|
return numeric;
|
|
}
|
|
|
|
if (*cur == '(')
|
|
{
|
|
return l_bra;
|
|
}
|
|
|
|
if (*cur == ')')
|
|
{
|
|
return r_bra;
|
|
}
|
|
|
|
if (*cur == ',')
|
|
{
|
|
return comma;
|
|
}
|
|
|
|
return unknown;
|
|
}
|
|
|
|
const char *GTextReadStream::get_next_word(int *word_len)
|
|
{
|
|
const char *cur = m_cur;
|
|
while ((*cur)&&(strchr(" \t\r\n",*cur)))
|
|
{
|
|
cur++;
|
|
}
|
|
m_last_text_position = cur;
|
|
|
|
if (!(*cur))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
const char *wd_start = cur;
|
|
|
|
if (((*cur<'a') || (*cur>'z')) && ((*cur<'A') || (*cur>'Z')) && (*cur!='_'))
|
|
{
|
|
return NULL;
|
|
}
|
|
|
|
++cur;
|
|
|
|
while (((*cur>='a') && (*cur<='z')) || ((*cur>='A') && (*cur<='Z')) ||
|
|
(*cur=='_') || ((*cur>='0') && (*cur<='9')))
|
|
{
|
|
++cur;
|
|
}
|
|
|
|
*word_len = cur - wd_start;
|
|
|
|
m_cur = cur;
|
|
|
|
return wd_start;
|
|
}
|
|
|
|
int GTextReadStream::get_next_number(double *d)
|
|
{
|
|
const char *cur = m_cur;
|
|
while ((*cur)&&(strchr(" \t\r\n",*cur)))
|
|
{
|
|
cur++;
|
|
}
|
|
|
|
m_last_text_position = cur;
|
|
if (!(*cur))
|
|
{
|
|
set_error_msg("Numeric constant expected");
|
|
return 1;
|
|
}
|
|
|
|
if (((*cur<'0') || (*cur>'9')) && (*cur!='-') && (*cur!='+') && (*cur!='.'))
|
|
{
|
|
set_error_msg("Numeric constant expected");
|
|
return 1;
|
|
}
|
|
|
|
char *endptr;
|
|
|
|
*d = strtod(cur, &endptr);
|
|
|
|
if (endptr)
|
|
{
|
|
m_cur = endptr;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
char GTextReadStream::get_next_symbol()
|
|
{
|
|
const char *cur = m_cur;
|
|
while ((*cur)&&(strchr(" \t\r\n",*cur)))
|
|
{
|
|
cur++;
|
|
}
|
|
if (!(*cur))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
m_cur = cur + 1;
|
|
m_last_text_position = cur;
|
|
|
|
return *cur;
|
|
}
|
|
|
|
void GTextReadStream::set_error_msg(const char *msg)
|
|
{
|
|
size_t len = strlen(msg);
|
|
m_err_msg = (char *)my_realloc(m_err_msg, len + 1, MYF(MY_ALLOW_ZERO_PTR));
|
|
memcpy(m_err_msg, msg, len + 1);
|
|
}
|
|
|
|
|