1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-29 00:08:14 +03:00
Files
mariadb/mysql-test/include
Alfranio Correia dbcfef4cf2 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.
2009-08-27 00:13:03 +01:00
..
2003-08-28 06:08:17 +03:00
2008-11-24 16:56:48 -05:00
2008-03-17 14:26:00 +03:00
2005-07-06 17:16:22 +05:00
2007-12-12 18:19:24 +01:00
2007-06-28 21:34:54 +04:00
2007-06-28 21:34:54 +04:00
2007-06-28 21:34:54 +04:00
2008-08-04 07:04:47 +02:00
2006-01-12 19:51:02 +01:00
2007-06-28 21:34:54 +04:00
2009-06-15 17:36:51 +03:00
2008-12-02 11:05:56 +01:00
2008-05-08 20:13:39 +02:00
2007-12-12 18:19:24 +01:00
2007-02-19 15:31:55 +03:00
2009-03-15 18:39:48 -04:00
2007-09-05 18:02:46 +02:00
2007-12-12 18:19:24 +01:00
2007-12-12 18:19:24 +01:00
2007-04-10 18:01:29 +03:00
2006-01-12 19:51:02 +01:00
2004-12-13 21:00:43 +01:00
2008-09-20 17:00:05 +03:00
2006-08-16 19:29:49 +02:00
2009-08-12 13:31:56 +08:00
2007-06-21 21:58:59 +02:00
2008-01-14 15:38:02 +08:00
2008-01-14 15:38:02 +08:00
2008-01-14 15:38:02 +08:00
2006-11-20 22:42:06 +02:00
2006-12-11 11:44:03 -05:00
2007-12-12 18:19:24 +01:00
2007-06-21 21:58:59 +02:00
2007-06-21 21:58:59 +02:00
2008-06-25 16:59:38 +02:00
2009-04-04 01:33:13 +04:00
2008-12-02 11:05:56 +01:00