• Alfranio Correia's avatar
    BUG#59338 Inconsistency in binlog for statements that don't change any rows STATEMENT SBR · 6f12ed4a
    Alfranio Correia authored
    In SBR, if a statement does not fail, it is always written to the binary
    log, regardless if rows are changed or not. If there is a failure, a
    statement is only written to the binary log if a non-transactional (.e.g.
    MyIsam) engine is updated.
    
    INSERT ON DUPLICATE KEY UPDATE and INSERT IGNORE were not following the
    rule above and were not written to the binary log, if then engine was
    Innodb.
    
    mysql-test/extra/rpl_tests/rpl_insert_duplicate.test:
      Added test case.
    mysql-test/extra/rpl_tests/rpl_insert_ignore.test:
      Updated test case.
    mysql-test/include/commit.inc:
      Updated test case as the calls to the binary log have changed
      for INSERT ON DUPLICATE and INSERT IGNORE.
    mysql-test/r/commit_1innodb.result:
      Updated result file.
    mysql-test/suite/rpl/r/rpl_insert_duplicate.result:
      Added test case.
    mysql-test/suite/rpl/r/rpl_insert_ignore.result:
      Updated result file.
    mysql-test/suite/rpl/t/rpl_insert_duplicate.test:
      Added test case.
    mysql-test/suite/rpl/t/rpl_insert_ignore.test:
      Improved test case.
    6f12ed4a
commit.inc 20.5 KB