diff options
author | Alexander Nozdrin <alik@sun.com> | 2010-04-27 13:58:21 +0400 |
---|---|---|
committer | Alexander Nozdrin <alik@sun.com> | 2010-04-27 13:58:21 +0400 |
commit | e642701c325e7b557d1a16d98f110581c26c2f28 (patch) | |
tree | 6fc830df498046ca29b2381fb809726faeb04f52 /sql/sys_vars.cc | |
parent | a0f8951963443db308d072dbc0794bb93d2fcf45 (diff) | |
parent | b6dcd0ecbee17787297e882ed63cf4e13d981943 (diff) | |
download | mariadb-git-e642701c325e7b557d1a16d98f110581c26c2f28.tar.gz |
Manual merge from mysql-trunk.
Conflicts:
- mysql-test/suite/rpl/r/rpl_stm_mixing_engines.result
Diffstat (limited to 'sql/sys_vars.cc')
-rw-r--r-- | sql/sys_vars.cc | 47 |
1 files changed, 23 insertions, 24 deletions
diff --git a/sql/sys_vars.cc b/sql/sys_vars.cc index 49d272af8d3..c6481891ca1 100644 --- a/sql/sys_vars.cc +++ b/sql/sys_vars.cc @@ -258,6 +258,12 @@ static bool check_has_super(sys_var *self, THD *thd, set_var *var) } static bool binlog_format_check(sys_var *self, THD *thd, set_var *var) { + if (check_has_super(self, thd, var)) + return true; + + if (var->type == OPT_GLOBAL) + return false; + /* If RBR and open temporary tables, their CREATE TABLE may not be in the binlog, so we can't toggle to SBR in this connection. @@ -289,18 +295,12 @@ static bool binlog_format_check(sys_var *self, THD *thd, set_var *var) /* Make the session variable 'binlog_format' read-only inside a transaction. */ - if (thd->active_transaction() && (var->type == OPT_SESSION)) + if (thd->active_transaction()) { my_error(ER_INSIDE_TRANSACTION_PREVENTS_SWITCH_BINLOG_FORMAT, MYF(0)); return true; } - if (check_has_super(self, thd, var)) - return true; - if (var->type == OPT_GLOBAL || - (thd->variables.binlog_format == var->save_result.ulonglong_value)) - return false; - return false; } @@ -329,32 +329,31 @@ static Sys_var_enum Sys_binlog_format( static bool binlog_direct_check(sys_var *self, THD *thd, set_var *var) { + if (check_has_super(self, thd, var)) + return true; + + if (var->type == OPT_GLOBAL) + return false; + /* Makes the session variable 'binlog_direct_non_transactional_updates' - read-only inside a transaction. + read-only if within a procedure, trigger or function. */ - if (thd->active_transaction() && (var->type == OPT_SESSION)) + if (thd->in_sub_stmt) { - my_error(ER_INSIDE_TRANSACTION_PREVENTS_SWITCH_BINLOG_DIRECT, MYF(0)); - return 1; + my_error(ER_STORED_FUNCTION_PREVENTS_SWITCH_BINLOG_DIRECT, MYF(0)); + return true; } /* Makes the session variable 'binlog_direct_non_transactional_updates' - read-only if within a procedure, trigger or function. + read-only inside a transaction. */ - if (thd->in_sub_stmt) + if (thd->active_transaction()) { - my_error(ER_STORED_FUNCTION_PREVENTS_SWITCH_BINLOG_DIRECT, MYF(0)); - return 1; + my_error(ER_INSIDE_TRANSACTION_PREVENTS_SWITCH_BINLOG_DIRECT, MYF(0)); + return true; } - if (check_has_super(self, thd, var)) - return true; - if (var->type == OPT_GLOBAL || - (thd->variables.binlog_direct_non_trans_update == - static_cast<my_bool>(var->save_result.ulonglong_value))) - return false; - return false; } @@ -1930,7 +1929,7 @@ static Sys_var_set Sys_sql_mode( sql_mode_names, DEFAULT(0), NO_MUTEX_GUARD, NOT_IN_BINLOG, ON_CHECK(check_sql_mode), ON_UPDATE(fix_sql_mode)); -#ifdef HAVE_OPENSSL +#if defined(HAVE_OPENSSL) && !defined(EMBEDDED_LIBRARY) #define SSL_OPT(X) CMD_LINE(REQUIRED_ARG,X) #else #define SSL_OPT(X) NO_CMD_LINE @@ -2827,7 +2826,7 @@ static Sys_var_charptr Sys_slave_load_tmpdir( static bool fix_slave_net_timeout(sys_var *self, THD *thd, enum_var_type type) { mysql_mutex_lock(&LOCK_active_mi); - DBUG_PRINT("info", ("slave_net_timeout=%lu mi->heartbeat_period=%.3f", + DBUG_PRINT("info", ("slave_net_timeout=%u mi->heartbeat_period=%.3f", slave_net_timeout, (active_mi? active_mi->heartbeat_period : 0.0))); if (active_mi && slave_net_timeout < active_mi->heartbeat_period) |