1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-26 01:44:06 +03:00
Files
mariadb/mysql-test/t
Alfranio Correia e662b51eef BUG#53259 Unsafe statement binlogged in statement format w/MyIsam temp tables
BUG#54872 MBR: replication failure caused by using tmp table inside transaction 
      
Changed criteria to classify a statement as unsafe in order to reduce the
number of spurious warnings. So a statement is classified as unsafe when
there is on-going transaction at any point of the execution if:

1. The mixed statement is about to update a transactional table and
a non-transactional table.

2. The mixed statement is about to update a temporary transactional
table and a non-transactional table.
      
3. The mixed statement is about to update a transactional table and
read from a non-transactional table.

4. The mixed statement is about to update a temporary transactional
table and read from a non-transactional table.

5. The mixed statement is about to update a non-transactional table
and read from a transactional table when the isolation level is
lower than repeatable read.

After updating a transactional table if:

6. The mixed statement is about to update a non-transactional table
and read from a temporary transactional table.
 
7. The mixed statement is about to update a non-transactional table
 and read from a temporary transactional table.

8. The mixed statement is about to update a non-transactionala table
   and read from a temporary non-transactional table.
     
9. The mixed statement is about to update a temporary non-transactional
table and update a non-transactional table.
     
10. The mixed statement is about to update a temporary non-transactional
table and read from a non-transactional table.
     
11. A statement is about to update a non-transactional table and the
option variables.binlog_direct_non_trans_update is OFF.

The reason for this is that locks acquired may not protected a concurrent
transaction of interfering in the current execution and by consequence in
the result. So the patch reduced the number of spurious unsafe warnings.

Besides we fixed a regression caused by BUG#51894, which makes temporary
tables to go into the trx-cache if there is an on-going transaction. In
MIXED mode, the patch for BUG#51894 ignores that the trx-cache may have
updates to temporary non-transactional tables that must be written to the
binary log while rolling back the transaction.
      
So we fix this problem by writing the content of the trx-cache to the
binary log while rolling back a transaction if a non-transactional
temporary table was updated and the binary logging format is MIXED.
2010-06-30 16:25:13 +01:00
..
2010-05-31 18:33:38 +05:00
2010-02-25 23:13:11 +04:00
2010-01-11 18:47:27 -07:00
2010-02-24 16:52:27 +03:00
2010-05-26 22:34:25 +08:00
2010-02-24 13:15:34 +04:00
2010-02-24 13:15:34 +04:00
2010-02-24 13:15:34 +04:00
2010-02-02 02:22:16 +03:00
2010-04-13 19:04:45 +04:00
2010-04-13 19:04:45 +04:00
2010-04-13 19:04:45 +04:00
2010-02-11 18:32:53 +01:00
2010-06-11 10:15:55 +02:00
2010-01-15 15:42:15 +04:00
2010-01-15 15:42:15 +04:00
2010-06-01 11:54:06 +04:00
2010-04-27 00:46:52 +04:00
2010-06-09 11:41:24 +03:00
2010-05-26 22:34:25 +08:00
2010-04-20 10:51:50 +02:00
2009-12-24 10:56:13 +03:00
2010-04-13 19:04:45 +04:00
2010-05-28 09:47:58 +04:00
2010-02-24 00:22:19 -07:00
2009-12-29 15:19:05 +03:00
2010-02-06 13:28:06 +03:00
2010-05-26 22:34:25 +08:00
2009-12-29 15:19:05 +03:00
2010-04-19 15:35:13 +02:00
2010-04-13 19:04:45 +04:00
2010-04-13 19:04:45 +04:00
2010-04-13 19:04:45 +04:00
2010-04-13 19:04:45 +04:00
2010-04-13 19:04:45 +04:00
2010-06-04 19:09:50 +03:00