diff options
Diffstat (limited to 'sql/log.cc')
-rw-r--r-- | sql/log.cc | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/sql/log.cc b/sql/log.cc index e61c33ec728..83201f7688e 100644 --- a/sql/log.cc +++ b/sql/log.cc @@ -11245,8 +11245,12 @@ Recovery_context::handle_maybe_committed(xid_recovery_member **ptr_member, DBUG_ASSERT(*ha_offset_max <= last_gtid_coord); DBUG_ASSERT(member->in_engine_prepare >= member->engines_no_binlog); DBUG_ASSERT(last_gtid_engines_no_binlog >= member->engines_no_binlog); - if (last_gtid_engines == 1 || - last_gtid_engines_no_binlog > + + /* + Check if the transaction has at least one commmitted branch + which can be only by an no-binlog-offset engine. + */ + if (last_gtid_engines_no_binlog > (member->in_engine_prepare - member->engines_no_binlog)) { member->decided_to_commit= true; // exists a committed branch |