• Alfranio Correia's avatar
    BUG#55625 RBR breaks on failing 'CREATE TABLE' · a94f5b60
    Alfranio Correia authored
    A CREATE...SELECT that fails is written to the binary log if a non-transactional
    statement is updated. If the logging format is ROW, the CREATE statement and the
    changes are written to the binary log as distinct events and by consequence the
    created table is not rolled back in the slave.
    
    In this patch, we opted to let the slave goes out of sync by not writting to the
    binary log the CREATE statement. We do this by simply reseting the binary log's
    cache.
    
    mysql-test/suite/rpl/r/rpl_drop.result:
      Added a test case.
    mysql-test/suite/rpl/t/rpl_drop.test:
      Added a test case.
    sql/log.cc:
      Introduced a function to clean up the cache.
    sql/log.h:
      Introduced a function to clean up the cache.
    sql/sql_insert.cc:
      Cleaned up the binary log cache if a CREATE...SELECT fails.
    a94f5b60
rpl_drop.test 2.04 KB