mariadb/mysql-test/suite/binlog/r
Alfranio Correia 678eb3d66f BUG#47287 RBR: replication diff on basic case with txn- and non-txn tables in a statement
Let
  - T be a transactional table and N non-transactional table.
  - B be begin, C commit and R rollback.
  - M be a mixed statement, i.e. a statement that updates both T and N.
  - M* be a mixed statement that fails while updating either T or N.

This patch restore the behavior presented in 5.1.37 for rows either produced in
the RBR or MIXED modes, when a M* statement that happened early in a transaction
had their changes written to the binary log outside the boundaries of the
transaction and wrapped in a BEGIN/ROLLBACK. This was done to keep the slave
consistent with with the master as the rollback would keep the changes on N and
undo them on T. In particular, we do what follows:

  . B M* T C would log - B M* R B T C.

Note that, we are not preserving history from the master as we are introducing a
rollback that never happened. However, this seems to be more acceptable than
making the slave diverge. We do not fix the following case:

  . B T M* C would log B T M* C.

The slave will diverge as the changes on T tables that originated from the M
statement are rolled back on the master but not on the slave. Unfortunately, we
cannot simply rollback the transaction as this would undo any uncommitted
changes on T tables.

SBR is not considered in this patch because a failing statement is written to
the binary along with the error code and a slave executes and then rolls back
the statement when it has an associated error code, thus undoing the effects
on T. In RBR and MBR, a full-fledged fix will be pushed after the WL 2687.
2009-10-06 01:38:58 +01:00
..
binlog_auto_increment_bug33029.result
binlog_base64_flag.result
binlog_database.result Merge BUG#43263 from 5.0-bugteam to 5.1-bugteam 2009-05-31 13:44:41 +08:00
binlog_grant.result
binlog_incident.result Bug#46010 main.ctype_gbk_binlog fails sporadically : Table 't2' already exists 2009-09-07 13:42:54 +08:00
binlog_index.result
binlog_innodb.result Merge BUG#43263 from 5.0-bugteam to 5.1-bugteam 2009-05-31 13:44:41 +08:00
binlog_innodb_row.result Merge BUG#43263 from 5.0-bugteam to 5.1-bugteam 2009-05-31 13:44:41 +08:00
binlog_killed.result
binlog_killed_simulate.result
binlog_mix_innodb_stat.result
binlog_mixed_failure_mixing_engines.result BUG#47287 RBR: replication diff on basic case with txn- and non-txn tables in a statement 2009-10-06 01:38:58 +01:00
binlog_multi_engine.result Merge BUG#43263 from 5.0-bugteam to 5.1-bugteam 2009-05-31 13:44:41 +08:00
binlog_old_versions.result
binlog_row_binlog.result Fix for bug#45998: database crashes when running 2009-07-14 20:07:29 +05:00
binlog_row_ctype_cp932.result
binlog_row_ctype_ucs.result Merge BUG#43263 from 5.0-bugteam to 5.1-bugteam 2009-05-31 13:44:41 +08:00
binlog_row_drop_tmp_tbl.result BUG #46572 DROP TEMPORARY table IF EXISTS does not have a consistent behavior in ROW mode 2009-09-28 10:23:06 +08:00
binlog_row_failure_mixing_engines.result BUG#47287 RBR: replication diff on basic case with txn- and non-txn tables in a statement 2009-10-06 01:38:58 +01:00
binlog_row_innodb_stat.result
binlog_row_insert_select.result Merge BUG#43263 from 5.0-bugteam to 5.1-bugteam 2009-05-31 13:44:41 +08:00
binlog_row_mix_innodb_myisam.result BUG#28976 Mixing trans and non-trans tables in one transaction results in incorrect 2009-08-27 00:13:03 +01:00
binlog_row_mysqlbinlog_db_filter.result BUG#42941: --database paramater to mysqlbinlog fails with RBR 2009-06-07 23:28:08 +01:00
binlog_sql_mode.result
binlog_start_comment.result
binlog_statement_insert_delayed.result
binlog_stm_binlog.result Addition to #45998 fix, result adjusted. 2009-07-15 15:25:44 +05:00
binlog_stm_blackhole.result Merge BUG#43263 from 5.0-bugteam to 5.1-bugteam 2009-05-31 13:44:41 +08:00
binlog_stm_ctype_cp932.result
binlog_stm_ctype_ucs.result
binlog_stm_drop_tmp_tbl.result BUG #46572 DROP TEMPORARY table IF EXISTS does not have a consistent behavior in ROW mode 2009-09-28 10:23:06 +08:00
binlog_stm_innodb_stat.result
binlog_stm_insert_select.result
binlog_stm_mix_innodb_myisam.result merge mysql-5.0-bugteam --> mysql-5.1-bugteam 2009-08-28 10:45:57 +01:00
binlog_stm_ps.result
binlog_stm_row.result Merge BUG#43263 from 5.0-bugteam to 5.1-bugteam 2009-05-31 13:44:41 +08:00
binlog_stm_unsafe_warning.result Bug#46265: Can not disable warning about unsafe statements for binary logging 2009-07-31 10:00:35 -03:00
binlog_tbl_metadata.result
binlog_tmp_table.result Bug#46010 main.ctype_gbk_binlog fails sporadically : Table 't2' already exists 2009-09-07 13:42:54 +08:00
binlog_truncate_innodb.result
binlog_truncate_myisam.result
binlog_unsafe.result