diff options
Diffstat (limited to 'sql/sql_yacc.yy')
-rw-r--r-- | sql/sql_yacc.yy | 23 |
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; } |