1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-29 05:21:33 +03:00

Reversed SQL_ANSI_MODE per Monty's request.

BitKeeper/etc/logging_ok:
  Logging to logging@openlogging.org accepted
This commit is contained in:
unknown
2001-03-14 07:15:45 -06:00
parent 8187e5e8f8
commit 79924f27ef
9 changed files with 27 additions and 68 deletions

View File

@ -75,7 +75,7 @@ inline int lex_casecmp(const char *s, const char *t, uint len)
#include "lex_hash.h"
uchar global_state_map[256];
static uchar state_map[256];
void lex_init(void)
@ -89,49 +89,42 @@ void lex_init(void)
VOID(pthread_key_create(&THR_LEX,NULL));
/* Fill global_state_map with states to get a faster parser */
/* Fill state_map with states to get a faster parser */
for (i=0; i < 256 ; i++)
{
if (isalpha(i))
global_state_map[i]=(uchar) STATE_IDENT;
state_map[i]=(uchar) STATE_IDENT;
else if (isdigit(i))
global_state_map[i]=(uchar) STATE_NUMBER_IDENT;
state_map[i]=(uchar) STATE_NUMBER_IDENT;
#if defined(USE_MB) && defined(USE_MB_IDENT)
else if (use_mb(default_charset_info) && my_ismbhead(default_charset_info, i))
global_state_map[i]=(uchar) STATE_IDENT;
state_map[i]=(uchar) STATE_IDENT;
#endif
else if (!isgraph(i))
global_state_map[i]=(uchar) STATE_SKIP;
state_map[i]=(uchar) STATE_SKIP;
else
global_state_map[i]=(uchar) STATE_CHAR;
state_map[i]=(uchar) STATE_CHAR;
}
global_state_map[(uchar)'_']=
global_state_map[(uchar)'$']=(uchar) STATE_IDENT;
global_state_map[(uchar)'\'']=
global_state_map[(uchar)'"']=(uchar) STATE_STRING;
global_state_map[(uchar)'-']=
global_state_map[(uchar)'+']=(uchar) STATE_SIGNED_NUMBER;
global_state_map[(uchar)'.']=(uchar) STATE_REAL_OR_POINT;
global_state_map[(uchar)'>']=
global_state_map[(uchar)'=']=
global_state_map[(uchar)'!']= (uchar) STATE_CMP_OP;
global_state_map[(uchar)'<']= (uchar) STATE_LONG_CMP_OP;
global_state_map[(uchar)'&']=global_state_map[(uchar)'|']=(uchar) STATE_BOOL;
global_state_map[(uchar)'#']=(uchar) STATE_COMMENT;
global_state_map[(uchar)';']=(uchar) STATE_COLON;
global_state_map[(uchar)':']=(uchar) STATE_SET_VAR;
global_state_map[0]=(uchar) STATE_EOL;
global_state_map[(uchar)'\\']= (uchar) STATE_ESCAPE;
global_state_map[(uchar)'/']= (uchar) STATE_LONG_COMMENT;
global_state_map[(uchar)'*']= (uchar) STATE_END_LONG_COMMENT;
global_state_map[(uchar)'@']= (uchar) STATE_USER_END;
global_state_map[(uchar) '`']= (uchar) STATE_USER_VARIABLE_DELIMITER;
state_map[(uchar)'_']=state_map[(uchar)'$']=(uchar) STATE_IDENT;
state_map[(uchar)'\'']=state_map[(uchar)'"']=(uchar) STATE_STRING;
state_map[(uchar)'-']=state_map[(uchar)'+']=(uchar) STATE_SIGNED_NUMBER;
state_map[(uchar)'.']=(uchar) STATE_REAL_OR_POINT;
state_map[(uchar)'>']=state_map[(uchar)'=']=state_map[(uchar)'!']= (uchar) STATE_CMP_OP;
state_map[(uchar)'<']= (uchar) STATE_LONG_CMP_OP;
state_map[(uchar)'&']=state_map[(uchar)'|']=(uchar) STATE_BOOL;
state_map[(uchar)'#']=(uchar) STATE_COMMENT;
state_map[(uchar)';']=(uchar) STATE_COLON;
state_map[(uchar)':']=(uchar) STATE_SET_VAR;
state_map[0]=(uchar) STATE_EOL;
state_map[(uchar)'\\']= (uchar) STATE_ESCAPE;
state_map[(uchar)'/']= (uchar) STATE_LONG_COMMENT;
state_map[(uchar)'*']= (uchar) STATE_END_LONG_COMMENT;
state_map[(uchar)'@']= (uchar) STATE_USER_END;
state_map[(uchar) '`']= (uchar) STATE_USER_VARIABLE_DELIMITER;
if (thd_startup_options & OPTION_ANSI_MODE)
{
global_state_map[(uchar) '"'] = STATE_USER_VARIABLE_DELIMITER;
state_map[(uchar) '"'] = STATE_USER_VARIABLE_DELIMITER;
}
DBUG_VOID_RETURN;
}
@ -425,7 +418,6 @@ int yylex(void *arg)
uint length;
enum lex_states state,prev_state;
LEX *lex=current_lex;
uchar *state_map = lex->thd->state_map;
YYSTYPE *yylval=(YYSTYPE*) arg;
lex->yylval=yylval; // The global state