diff options
author | Ramil Kalimullin <ramil@mysql.com> | 2010-12-07 20:08:54 +0300 |
---|---|---|
committer | Ramil Kalimullin <ramil@mysql.com> | 2010-12-07 20:08:54 +0300 |
commit | 7e4961bd51c5aefcaa9a5491dd99251343bc57b3 (patch) | |
tree | c696b862453a3634c852c69a8c823e445624e159 /sql/sys_vars.cc | |
parent | 6bad2a2a44328be23cbc4306408dcdbebfcd64f0 (diff) | |
download | mariadb-git-7e4961bd51c5aefcaa9a5491dd99251343bc57b3.tar.gz |
Fix for bug #58669: read_only not enforced on 5.5.x
merged from mysql-5.5.8-release tree,
revision: ramil@mysql.com-20101203174908-217tdkn150vieha9
Diffstat (limited to 'sql/sys_vars.cc')
-rw-r--r-- | sql/sys_vars.cc | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/sql/sys_vars.cc b/sql/sys_vars.cc index ed2c44fb03f..68bb77d467f 100644 --- a/sql/sys_vars.cc +++ b/sql/sys_vars.cc @@ -1452,7 +1452,6 @@ static Sys_var_ulong Sys_read_buff_size( VALID_RANGE(IO_SIZE*2, INT_MAX32), DEFAULT(128*1024), BLOCK_SIZE(IO_SIZE)); -static my_bool read_only; static bool check_read_only(sys_var *self, THD *thd, set_var *var) { /* Prevent self dead-lock */ @@ -1536,6 +1535,16 @@ static bool fix_read_only(sys_var *self, THD *thd, enum_var_type type) read_only= opt_readonly; DBUG_RETURN(result); } + + +/** + The read_only boolean is always equal to the opt_readonly boolean except + during fix_read_only(); when that function is entered, opt_readonly is + the pre-update value and read_only is the post-update value. + fix_read_only() compares them and runs needed operations for the + transition (especially when transitioning from false to true) and + synchronizes both booleans in the end. +*/ static Sys_var_mybool Sys_readonly( "read_only", "Make all non-temporary tables read-only, with the exception for " |