Commit f2539a49 authored by unknown's avatar unknown

Addition to the fix for #11207 (SET GLOBAL TRANSACTION ISOLATION LEVEL)


sql/sql_yacc.yy:
  exact types specified for opt_var_type and similar
parent d1b163ec
...@@ -88,6 +88,7 @@ inline Item *is_truth_value(Item *A, bool v1, bool v2) ...@@ -88,6 +88,7 @@ inline Item *is_truth_value(Item *A, bool v1, bool v2)
udf_func *udf; udf_func *udf;
LEX_USER *lex_user; LEX_USER *lex_user;
struct sys_var_with_base variable; struct sys_var_with_base variable;
enum enum_var_type var_type;
Key::Keytype key_type; Key::Keytype key_type;
enum ha_key_alg key_alg; enum ha_key_alg key_alg;
enum db_type db_type; enum db_type db_type;
...@@ -696,11 +697,11 @@ bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize); ...@@ -696,11 +697,11 @@ bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize);
%type <num> %type <num>
type int_type real_type order_dir lock_option type int_type real_type order_dir lock_option
udf_type if_exists opt_local opt_table_options table_options udf_type if_exists opt_local opt_table_options table_options
table_option opt_if_not_exists opt_no_write_to_binlog opt_var_type table_option opt_if_not_exists opt_no_write_to_binlog
opt_var_ident_type delete_option opt_temporary all_or_any opt_distinct delete_option opt_temporary all_or_any opt_distinct
opt_ignore_leaves fulltext_options spatial_type union_option opt_ignore_leaves fulltext_options spatial_type union_option
start_transaction_opts opt_chain opt_release start_transaction_opts opt_chain opt_release
union_opt select_derived_init option_type option_type2 union_opt select_derived_init option_type2
%type <ulong_num> %type <ulong_num>
ulong_num raid_types merge_insert_types ulong_num raid_types merge_insert_types
...@@ -732,6 +733,9 @@ bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize); ...@@ -732,6 +733,9 @@ bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize);
expr_list udf_expr_list udf_expr_list2 when_list expr_list udf_expr_list udf_expr_list2 when_list
ident_list ident_list_arg ident_list ident_list_arg
%type <var_type>
option_type opt_var_type opt_var_ident_type
%type <key_type> %type <key_type>
key_type opt_unique_or_fulltext constraint_key_type key_type opt_unique_or_fulltext constraint_key_type
...@@ -4356,7 +4360,7 @@ simple_expr: ...@@ -4356,7 +4360,7 @@ simple_expr:
yyerror(ER(ER_SYNTAX_ERROR)); yyerror(ER(ER_SYNTAX_ERROR));
YYABORT; YYABORT;
} }
if (!($$= get_system_var(YYTHD, (enum_var_type) $3, $4, $5))) if (!($$= get_system_var(YYTHD, $3, $4, $5)))
YYABORT; YYABORT;
Lex->variables_used= 1; Lex->variables_used= 1;
} }
...@@ -6395,7 +6399,7 @@ show_param: ...@@ -6395,7 +6399,7 @@ show_param:
LEX *lex= Lex; LEX *lex= Lex;
lex->sql_command= SQLCOM_SELECT; lex->sql_command= SQLCOM_SELECT;
lex->orig_sql_command= SQLCOM_SHOW_STATUS; lex->orig_sql_command= SQLCOM_SHOW_STATUS;
lex->option_type= (enum_var_type) $1; lex->option_type= $1;
if (prepare_schema_table(YYTHD, lex, 0, SCH_STATUS)) if (prepare_schema_table(YYTHD, lex, 0, SCH_STATUS))
YYABORT; YYABORT;
} }
...@@ -6410,7 +6414,7 @@ show_param: ...@@ -6410,7 +6414,7 @@ show_param:
LEX *lex= Lex; LEX *lex= Lex;
lex->sql_command= SQLCOM_SELECT; lex->sql_command= SQLCOM_SELECT;
lex->orig_sql_command= SQLCOM_SHOW_VARIABLES; lex->orig_sql_command= SQLCOM_SHOW_VARIABLES;
lex->option_type= (enum_var_type) $1; lex->option_type= $1;
if (prepare_schema_table(YYTHD, lex, 0, SCH_VARIABLES)) if (prepare_schema_table(YYTHD, lex, 0, SCH_VARIABLES))
YYABORT; YYABORT;
} }
...@@ -7783,7 +7787,7 @@ sys_option_value: ...@@ -7783,7 +7787,7 @@ sys_option_value:
else if ($2.var) else if ($2.var)
{ /* System variable */ { /* System variable */
if ($1) if ($1)
lex->option_type= (enum_var_type)$1; lex->option_type= $1;
lex->var_list.push_back(new set_var(lex->option_type, $2.var, lex->var_list.push_back(new set_var(lex->option_type, $2.var,
&$2.base_name, $4)); &$2.base_name, $4));
} }
...@@ -7818,7 +7822,7 @@ sys_option_value: ...@@ -7818,7 +7822,7 @@ sys_option_value:
{ {
LEX *lex=Lex; LEX *lex=Lex;
if ($1) if ($1)
lex->option_type= (enum_var_type)$1; lex->option_type= $1;
lex->var_list.push_back(new set_var(lex->option_type, lex->var_list.push_back(new set_var(lex->option_type,
find_sys_var("tx_isolation"), find_sys_var("tx_isolation"),
&null_lex_str, &null_lex_str,
...@@ -7834,8 +7838,7 @@ option_value: ...@@ -7834,8 +7838,7 @@ option_value:
| '@' '@' opt_var_ident_type internal_variable_name equal set_expr_or_default | '@' '@' opt_var_ident_type internal_variable_name equal set_expr_or_default
{ {
LEX *lex=Lex; LEX *lex=Lex;
lex->var_list.push_back(new set_var((enum_var_type) $3, $4.var, lex->var_list.push_back(new set_var($3, $4.var, &$4.base_name, $6));
&$4.base_name, $6));
} }
| charset old_or_new_charset_name_or_default | charset old_or_new_charset_name_or_default
{ {
......
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