diff options
author | Mats Kindahl <mats@sun.com> | 2008-11-03 12:14:48 +0100 |
---|---|---|
committer | Mats Kindahl <mats@sun.com> | 2008-11-03 12:14:48 +0100 |
commit | c3a5b59676a284232e4d3672f6c223a45023b9a6 (patch) | |
tree | 9965b6a65160a509a7a66a170bfc301ff715afba /sql/sql_class.cc | |
parent | e291aab7da9587f742291e7cc5e10e568846066e (diff) | |
download | mariadb-git-c3a5b59676a284232e4d3672f6c223a45023b9a6.tar.gz |
Bug #40360: Binlog related errors with binlog off
When statement-based replication is used, and the
transaction isolation level is READ-COMMITTED or stricter,
InnoDB will print an error because statement-based
replication might lead to inconsistency between master
and slave databases. However, when the binary log is not
engaged, this is not an issue and an error should
not be printed.
This patch makes thd_binlog_format() return BINLOG_FORMAT_
UNSPEC when the binary log is not engaged for the given
thread.
mysql-test/t/innodb_mysql.test:
Adding test that no error message is printed from inside
InnoDB when the binary log is turned off.
Diffstat (limited to 'sql/sql_class.cc')
-rw-r--r-- | sql/sql_class.cc | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/sql/sql_class.cc b/sql/sql_class.cc index e63eed2d23c..12b773c91d0 100644 --- a/sql/sql_class.cc +++ b/sql/sql_class.cc @@ -2852,7 +2852,10 @@ extern "C" int thd_non_transactional_update(const MYSQL_THD thd) extern "C" int thd_binlog_format(const MYSQL_THD thd) { - return (int) thd->variables.binlog_format; + if (mysql_bin_log.is_open() && (thd->options & OPTION_BIN_LOG)) + return (int) thd->variables.binlog_format; + else + return BINLOG_FORMAT_UNSPEC; } extern "C" void thd_mark_transaction_to_rollback(MYSQL_THD thd, bool all) |