summaryrefslogtreecommitdiff
path: root/sql/sql_yacc.yy
diff options
context:
space:
mode:
Diffstat (limited to 'sql/sql_yacc.yy')
-rw-r--r--sql/sql_yacc.yy23
1 files changed, 20 insertions, 3 deletions
diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy
index fa44e7799fa..9a0badda099 100644
--- a/sql/sql_yacc.yy
+++ b/sql/sql_yacc.yy
@@ -394,6 +394,7 @@ bool my_yyoverflow(short **a, YYSTYPE **b,int *yystacksize);
%token END
%token THEN_SYM
+%token SQL_ANSI_MODE
%token SQL_BIG_TABLES
%token SQL_BIG_SELECTS
%token SQL_SELECT_LIMIT
@@ -2603,6 +2604,18 @@ option_value:
else
Lex->options|= OPTION_NOT_AUTO_COMMIT;
}
+ | SQL_ANSI_MODE equal NUM
+ {
+ if(atoi($3.str) == 0)
+ {
+ Lex->options &= ~(OPTION_ANSI_MODE);
+ Lex->thd->state_map[(uchar) '"'] = STATE_STRING;
+ } else {
+ Lex->options |= OPTION_ANSI_MODE;
+ Lex->thd->state_map[(uchar) '"'] = STATE_USER_VARIABLE_DELIMITER;
+ }
+ }
+
| SQL_SELECT_LIMIT equal ULONG_NUM
{
Lex->select_limit= $3;
@@ -2697,16 +2710,20 @@ text_or_password:
}
set_option:
- SQL_BIG_TABLES { $$= OPTION_BIG_TABLES; }
+ SQL_BIG_TABLES { $$= OPTION_BIG_TABLES; }
| SQL_BIG_SELECTS { $$= OPTION_BIG_SELECTS; }
| SQL_LOG_OFF { $$= OPTION_LOG_OFF; }
| SQL_LOG_UPDATE
{
- $$= (opt_sql_bin_update)? OPTION_UPDATE_LOG|OPTION_BIN_LOG: OPTION_UPDATE_LOG ;
+ $$= (opt_sql_bin_update)?
+ OPTION_UPDATE_LOG|OPTION_BIN_LOG:
+ OPTION_UPDATE_LOG ;
}
| SQL_LOG_BIN
{
- $$= (opt_sql_bin_update)? OPTION_UPDATE_LOG|OPTION_BIN_LOG: OPTION_BIN_LOG ;
+ $$= (opt_sql_bin_update)?
+ OPTION_UPDATE_LOG|OPTION_BIN_LOG:
+ OPTION_BIN_LOG ;
}
| SQL_WARNINGS { $$= OPTION_WARNINGS; }
| SQL_LOW_PRIORITY_UPDATES { $$= OPTION_LOW_PRIORITY_UPDATES; }