diff options
author | unknown <malff/marcsql@weblab.(none)> | 2006-11-20 20:40:35 -0700 |
---|---|---|
committer | unknown <malff/marcsql@weblab.(none)> | 2006-11-20 20:40:35 -0700 |
commit | 77b7a86206508a074eb6750ba628dfbef3f39e74 (patch) | |
tree | 188d3023a83b186369be3c01d8cf8e758b3ad4b6 /sql/set_var.h | |
parent | 78be2cdcbe1ff173d4086b1339e5f79be5bc2914 (diff) | |
download | mariadb-git-77b7a86206508a074eb6750ba628dfbef3f39e74.tar.gz |
WL#3602 (SET GLOBAL READONLY)
Bug#11733 (COMMITs should not happen if read-only is set)
Bug#22009 (Can write to a read-only server under some circumstances)
See the work log for details
The change consist of
a) acquiring the global read lock in SET GLOBAL READONLY
b) honoring opt_readonly in ha_commit_trans(),
c) honoring opt_readonly in mysql_lock_tables().
a) takes care of the server stability,
b) makes the transactional tables safe (Bug 11733)
c) makes the non transactional tables safe (Bug 22009)
mysql-test/r/read_only.result:
WL#3602 (SET GLOBAL READONLY)
mysql-test/t/read_only.test:
WL#3602 (SET GLOBAL READONLY)
sql/handler.cc:
WL#3602 (SET GLOBAL READONLY)
sql/lock.cc:
WL#3602 (SET GLOBAL READONLY)
sql/set_var.cc:
WL#3602 (SET GLOBAL READONLY)
sql/set_var.h:
WL#3602 (SET GLOBAL READONLY)
mysql-test/r/read_only_innodb.result:
WL#3602 (SET GLOBAL READONLY)
mysql-test/t/read_only_innodb.test:
WL#3602 (SET GLOBAL READONLY)
Diffstat (limited to 'sql/set_var.h')
-rw-r--r-- | sql/set_var.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/sql/set_var.h b/sql/set_var.h index 01669b378e1..14792f4a7c8 100644 --- a/sql/set_var.h +++ b/sql/set_var.h @@ -905,6 +905,20 @@ public: }; +/** + Handler for setting the system variable --read-only. +*/ + +class sys_var_opt_readonly :public sys_var_bool_ptr +{ +public: + sys_var_opt_readonly(const char *name_arg, my_bool *value_arg) : + sys_var_bool_ptr(name_arg, value_arg) {}; + ~sys_var_opt_readonly() {}; + bool update(THD *thd, set_var *var); +}; + + class sys_var_thd_lc_time_names :public sys_var_thd { public: |