Loading mysql-test/r/variables.result +4 −0 Original line number Diff line number Diff line Loading @@ -515,3 +515,7 @@ show warnings; Level Code Message Warning 1329 No data to FETCH drop table t1; set @@warning_count=1; ERROR HY000: Variable 'warning_count' is a read only variable set @@global.error_count=1; ERROR HY000: Variable 'error_count' is a read only variable mysql-test/t/variables.test +8 −0 Original line number Diff line number Diff line Loading @@ -387,3 +387,11 @@ select a into @x from t1; show warnings; drop table t1; # # Bug #10339: read only variables. # --error 1238 set @@warning_count=1; --error 1238 set @@global.error_count=1; sql/set_var.cc +5 −0 Original line number Diff line number Diff line Loading @@ -2954,6 +2954,11 @@ bool not_all_support_one_shot(List<set_var_base> *var_list) int set_var::check(THD *thd) { if (var->is_readonly()) { my_error(ER_INCORRECT_GLOBAL_LOCAL_VAR, MYF(0), var->name, "read only"); return -1; } if (var->check_type(type)) { int err= type == OPT_GLOBAL ? ER_LOCAL_VARIABLE : ER_GLOBAL_VARIABLE; Loading sql/set_var.h +2 −0 Original line number Diff line number Diff line Loading @@ -75,6 +75,7 @@ class sys_var { return option_limits == 0; } Item *item(THD *thd, enum_var_type type, LEX_STRING *base); virtual bool is_struct() { return 0; } virtual bool is_readonly() const { return 0; } }; Loading Loading @@ -699,6 +700,7 @@ class sys_var_readonly: public sys_var return (*value_ptr_func)(thd); } SHOW_TYPE type() { return show_type; } bool is_readonly() const { return 1; } }; class sys_var_thd_time_zone :public sys_var_thd Loading Loading
mysql-test/r/variables.result +4 −0 Original line number Diff line number Diff line Loading @@ -515,3 +515,7 @@ show warnings; Level Code Message Warning 1329 No data to FETCH drop table t1; set @@warning_count=1; ERROR HY000: Variable 'warning_count' is a read only variable set @@global.error_count=1; ERROR HY000: Variable 'error_count' is a read only variable
mysql-test/t/variables.test +8 −0 Original line number Diff line number Diff line Loading @@ -387,3 +387,11 @@ select a into @x from t1; show warnings; drop table t1; # # Bug #10339: read only variables. # --error 1238 set @@warning_count=1; --error 1238 set @@global.error_count=1;
sql/set_var.cc +5 −0 Original line number Diff line number Diff line Loading @@ -2954,6 +2954,11 @@ bool not_all_support_one_shot(List<set_var_base> *var_list) int set_var::check(THD *thd) { if (var->is_readonly()) { my_error(ER_INCORRECT_GLOBAL_LOCAL_VAR, MYF(0), var->name, "read only"); return -1; } if (var->check_type(type)) { int err= type == OPT_GLOBAL ? ER_LOCAL_VARIABLE : ER_GLOBAL_VARIABLE; Loading
sql/set_var.h +2 −0 Original line number Diff line number Diff line Loading @@ -75,6 +75,7 @@ class sys_var { return option_limits == 0; } Item *item(THD *thd, enum_var_type type, LEX_STRING *base); virtual bool is_struct() { return 0; } virtual bool is_readonly() const { return 0; } }; Loading Loading @@ -699,6 +700,7 @@ class sys_var_readonly: public sys_var return (*value_ptr_func)(thd); } SHOW_TYPE type() { return show_type; } bool is_readonly() const { return 1; } }; class sys_var_thd_time_zone :public sys_var_thd Loading