diff options
Diffstat (limited to 'sql/wsrep_var.cc')
-rw-r--r-- | sql/wsrep_var.cc | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/sql/wsrep_var.cc b/sql/wsrep_var.cc index 815a65ff240..01e9d022cfb 100644 --- a/sql/wsrep_var.cc +++ b/sql/wsrep_var.cc @@ -88,10 +88,11 @@ static bool refresh_provider_options() } } -static void wsrep_set_wsrep_on() +void wsrep_set_wsrep_on() { - WSREP_ON_= global_system_variables.wsrep_on && wsrep_provider && - strcmp(wsrep_provider, WSREP_NONE); + WSREP_PROVIDER_EXISTS_= wsrep_provider && + strncasecmp(wsrep_provider, WSREP_NONE, FN_REFLEN); + WSREP_ON_= global_system_variables.wsrep_on && WSREP_PROVIDER_EXISTS_; } /* This is intentionally declared as a weak global symbol, so that @@ -146,6 +147,13 @@ bool wsrep_on_check(sys_var *self, THD* thd, set_var* var) " innodb_lock_schedule_algorithm=FCFS and restart.", MYF(0)); return true; } + + if (thd->in_active_multi_stmt_transaction()) + { + my_error(ER_CANT_DO_THIS_DURING_AN_TRANSACTION, MYF(0)); + return true; + } + return false; } |