summaryrefslogtreecommitdiff
path: root/sql/set_var.h
diff options
context:
space:
mode:
authorunknown <malff/marcsql@weblab.(none)>2006-11-20 20:40:35 -0700
committerunknown <malff/marcsql@weblab.(none)>2006-11-20 20:40:35 -0700
commit77b7a86206508a074eb6750ba628dfbef3f39e74 (patch)
tree188d3023a83b186369be3c01d8cf8e758b3ad4b6 /sql/set_var.h
parent78be2cdcbe1ff173d4086b1339e5f79be5bc2914 (diff)
downloadmariadb-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.h14
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: