mariadb/mysql-test/suite
Alfranio Correia 6c2b32515e BUG#28976 Mixing trans and non-trans tables in one transaction results in incorrect
binlog

Mixing transactional (T) and non-transactional (N) tables on behalf of a
transaction may lead to inconsistencies among masters and slaves in STATEMENT
mode. The problem stems from the fact that although modifications done to
non-transactional tables on behalf of a transaction become immediately visible
to other connections they do not immediately get to the binary log and therefore
consistency is broken. Although there may be issues in mixing T and M tables in
STATEMENT mode, there are safe combinations that clients find useful.

In this bug, we fix the following issue. Mixing N and T tables in multi-level
(e.g. a statement that fires a trigger) or multi-table table statements (e.g.
update t1, t2...) were not handled correctly. In such cases, it was not possible
to distinguish when a T table was updated if the sequence of changes was N and T.
In a nutshell, just the flag "modified_non_trans_table" was not enough to reflect
that both a N and T tables were changed. To circumvent this issue, we check if an
engine is registered in the handler's list and changed something which means that
a T table was modified.

Check WL 2687 for a full-fledged patch that will make the use of either the MIXED or
ROW modes completely safe.

mysql-test/suite/binlog/r/binlog_row_mix_innodb_myisam.result:
  Truncate statement is wrapped in BEGIN/COMMIT.
mysql-test/suite/binlog/r/binlog_stm_mix_innodb_myisam.result:
  Truncate statement is wrapped in BEGIN/COMMIT.
2009-08-27 00:13:03 +01:00
..
binlog BUG#28976 Mixing trans and non-trans tables in one transaction results in incorrect 2009-08-27 00:13:03 +01:00
bugs Bug #38205 Row-based Replication (RBR) causes inconsistencies: HA_ERR_FOUND_DUPP_KEY 2009-04-09 16:05:41 +03:00
federated Merge 5.0-bugteam to 5.1-bugteam 2009-03-19 14:19:51 +05:30
funcs_1 Bug#37746: Arithmetic range ("int") is smaller than expected 2009-07-07 10:19:38 -04:00
funcs_2 merge 5.0-> 5.1 2009-04-24 13:00:17 -04:00
ibmdb2i Bug#45983 ibmdb2i_create_index_option=1 not working for primary key 2009-07-08 14:40:01 +05:30
im Move instance manager tests to it's own suite 2007-08-29 19:02:33 +02:00
innodb Update to innoplug-1.0.4. 2009-07-30 17:42:56 +05:00
jp fixed jp test failures 2009-02-02 14:42:33 +04:00
large_tests Bug#27029 alter table ... enable keys crashes mysqld on large table 2007-06-21 12:45:56 -04:00
manual manual merge for bug_29136, bug#29309. 2007-10-13 23:12:50 +03:00
ndb Define MASTER_MYSOCK for ndb tests. 2009-06-09 19:32:32 -03:00
ndb_team Merge BUG#43263 from 5.0-bugteam to 5.1-bugteam 2009-05-31 13:44:41 +08:00
parts Fixed two test cases for extended partitioning tests 2009-08-03 12:12:36 +02:00
rpl BUG#28976 Mixing trans and non-trans tables in one transaction results in incorrect 2009-08-27 00:13:03 +01:00
rpl_ndb Bug #45974: disable test case in 5.1-bugteam 2009-07-06 18:17:39 +03:00
stress Merge trift2.:/MySQL/M51/mysql-5.1 2008-02-22 16:14:27 +01:00
sys_vars Bug #42778: delete order by null global variable causes 2009-05-22 01:22:46 +05:00