summaryrefslogtreecommitdiff
path: root/sql/sql_class.cc
diff options
context:
space:
mode:
authorMats Kindahl <mats@sun.com>2008-11-03 12:14:48 +0100
committerMats Kindahl <mats@sun.com>2008-11-03 12:14:48 +0100
commitc3a5b59676a284232e4d3672f6c223a45023b9a6 (patch)
tree9965b6a65160a509a7a66a170bfc301ff715afba /sql/sql_class.cc
parente291aab7da9587f742291e7cc5e10e568846066e (diff)
downloadmariadb-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.cc5
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)