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:
@@ -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;
|
||||
|
||||
|
@@ -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()));
|
||||
}
|
||||
|
||||
/*
|
||||
|
@@ -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);
|
||||
|
Reference in New Issue
Block a user