1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-08 11:22:35 +03:00

BUG#51291 Unfortunate effect around variable binlog_direct_non_transactional_updates

Post-merge fix.
This commit is contained in:
Alfranio Correia
2010-04-01 00:16:22 +01:00
parent 2b48577cc2
commit ec6c56ef5a
3 changed files with 3 additions and 2 deletions

View File

@@ -15,6 +15,7 @@ call mtr.add_suppression("Unsafe statement binlogged in statement format since B
connection slave;
call mtr.add_suppression("Master server does not support semi-sync");
call mtr.add_suppression("Semi-sync slave .* reply");
call mtr.add_suppression("Unsafe statement binlogged in statement format since BINLOG_FORMAT = STATEMENT.");
enable_query_log;
connection master;

View File

@@ -4245,7 +4245,7 @@ bool use_trans_cache(const THD* thd, bool is_transactional)
return
((thd->variables.binlog_format != BINLOG_FORMAT_STMT ||
thd->variables.binlog_direct_non_trans_update) ? is_transactional :
(is_transactional || cache_mngr->trx_cache.empty()));
(is_transactional || !cache_mngr->trx_cache.empty()));
}
/*

View File

@@ -3748,7 +3748,7 @@ int THD::decide_logging_format(TABLE_LIST *tables)
isolation level but if we have pure repeatable read or serializable the
lock history on the slave will be different from the master.
*/
if (!trans_non_trans_access_engines)
if (trans_non_trans_access_engines)
lex->set_stmt_unsafe(LEX::BINLOG_STMT_UNSAFE_MIXED_STATEMENT);
else if (trans_has_updated_trans_table(this) && !all_trans_write_engines)
lex->set_stmt_unsafe(LEX::BINLOG_STMT_UNSAFE_NONTRANS_AFTER_TRANS);