summaryrefslogtreecommitdiff
path: root/sql/wsrep_var.cc
diff options
context:
space:
mode:
authorsjaakola <seppo.jaakola@iki.fi>2016-02-17 11:20:48 +0200
committerJan Lindström <jan.lindstrom@mariadb.com>2018-03-20 12:10:41 +0200
commit2a729b5f4b14f9f04cf81e1d8dd4eec4ad6cb7cd (patch)
tree1b9846faa0c7c980ff0c9fcada35cb83872387d7 /sql/wsrep_var.cc
parente390f7b67509e324033644d017e8d6408d277d02 (diff)
downloadmariadb-git-2a729b5f4b14f9f04cf81e1d8dd4eec4ad6cb7cd.tar.gz
refs MW-245 - merged wsrep_dirty_reads and wsrep_reject_queries from PXC
Diffstat (limited to 'sql/wsrep_var.cc')
-rw-r--r--sql/wsrep_var.cc25
1 files changed, 25 insertions, 0 deletions
diff --git a/sql/wsrep_var.cc b/sql/wsrep_var.cc
index ad1f4ec0eac..da53c0981af 100644
--- a/sql/wsrep_var.cc
+++ b/sql/wsrep_var.cc
@@ -34,6 +34,7 @@ const char* wsrep_node_name = 0;
const char* wsrep_node_address = 0;
const char* wsrep_node_incoming_address = 0;
const char* wsrep_start_position = 0;
+ulong wsrep_reject_queries;
static long wsrep_prev_slave_threads = wsrep_slave_threads;
@@ -384,6 +385,30 @@ void wsrep_provider_options_init(const char* value)
wsrep_provider_options = (value) ? my_strdup(value, MYF(0)) : NULL;
}
+bool wsrep_reject_queries_update(sys_var *self, THD* thd, enum_var_type type)
+{
+ switch (wsrep_reject_queries) {
+ case WSREP_REJECT_NONE:
+ wsrep_ready_set(TRUE);
+ WSREP_INFO("Allowing client queries due to manual setting");
+ break;
+ case WSREP_REJECT_ALL:
+ wsrep_ready_set(FALSE);
+ WSREP_INFO("Rejecting client queries due to manual setting");
+ break;
+ case WSREP_REJECT_ALL_KILL:
+ wsrep_ready_set(FALSE);
+ wsrep_close_client_connections(FALSE);
+ WSREP_INFO("Rejecting client queries and killing connections due to manual setting");
+ break;
+ default:
+ WSREP_INFO("Unknown value for wsrep_reject_queries: %lu",
+ wsrep_reject_queries);
+ return true;
+ }
+ return false;
+}
+
static int wsrep_cluster_address_verify (const char* cluster_address_str)
{
/* There is no predefined address format, it depends on provider. */