• Mats Kindahl's avatar
    Bug #40116: Uncommited changes are replicated and stay on slave · 82757fdf
    Mats Kindahl authored
    after rollback on master
    
    When starting a transaction with a statement containing changes
    to both transactional tables and non-transactional tables, the
    statement is considered as non-transactional and is therefore
    written directly to the binary log. This behaviour was present
    in 5.0, and has propagated to 5.1.
    
    If a trigger containing a change of a non-transactional table is
    added to a transactional table, any changes to the transactional
    table is "tainted" as non-transactional.
    
    This patch solves the problem by removing the existing "hack" that
    allows non-transactional statements appearing first in a transaction
    to be written directly to the binary log. Instead, anything inside
    a transaction is treaded as part of the transaction and not written
    to the binary log until the transaction is committed.
    82757fdf
rpl_row_create_table.test 7.69 KB