mirror of
https://github.com/MariaDB/server.git
synced 2025-01-18 21:12:26 +01:00
74ef292dc2
is possible): When skipping the beginning of a transaction starting with BEGIN, the OPTION_BEGIN flag was not set correctly, which caused the slave to not recognize that it was inside a group. This patch sets the OPTION_BEGIN flag for BEGIN, COMMIT, ROLLBACK, and XID events. It also adds checks if inside a group before decreasing the slave skip counter to zero. Begin_query_log_event was not marked that it could not end a group, which is now corrected. mysql-test/extra/rpl_tests/rpl_extraSlave_Col.test: Correcting slave skip counter to get the correct behaviour. mysql-test/suite/rpl/r/rpl_slave_skip.result: Result change. mysql-test/suite/rpl/t/rpl_slave_skip.test: Adding tests to check that skipping works for transactions: - Skipping one group with BEGIN first - Skipping two groups with BEGIN first - Skipping one group without BEGIN first but with AUTOCOMMIT=0 - LOAD DATA INFILE under statement-based replication mysql-test/suite/rpl_ndb/r/rpl_ndb_extraCol.result: Result change. sql/log_event.cc: Adding checks if we're in a group when the slave skip counter is 1. In that case, we should keep going. Adding helping member function Log_event::continue_group() denoting that this event cannot end a group, and if the skip counter indicates that the group ends after this event, it should not decrease the skip counter. Query_log_event will change the OPTION_BEGIN flag for BEGIN, COMMIT, and ROLLBACK, even when skipping because of a positive skip count, and Xid_log_event will also affect the OPTION_BEGIN flag, even when being skipped. Begin_load_query_log_event cannot end a group, so it is marked to continue the group. sql/log_event.h: Adding helper function Log_event::continue_group(). sql/rpl_rli.h: Adding Relay_log_info::get_flag() to get the value of a replication flag. sql/slave.cc: Adding debug output and changing debug message. mysql-test/suite/rpl/data/rpl_bug28618.dat: New BitKeeper file ``mysql-test/suite/rpl/data/rpl_bug28618.dat'' mysql-test/suite/rpl/t/rpl_slave_skip-slave.opt: New BitKeeper file ``mysql-test/suite/rpl/t/rpl_slave_skip-slave.opt'' |
||
---|---|---|
.. | ||
rpl_auto_increment.test | ||
rpl_commit_after_flush.test | ||
rpl_ddl.test | ||
rpl_deadlock.test | ||
rpl_delete_no_where.test | ||
rpl_EE_err.test | ||
rpl_extraMaster_Col.test | ||
rpl_extraSlave_Col.test | ||
rpl_failed_optimize.test | ||
rpl_flsh_tbls.test | ||
rpl_foreign_key.test | ||
rpl_insert_delayed.test | ||
rpl_insert_id.test | ||
rpl_insert_id_pk.test | ||
rpl_insert_ignore.test | ||
rpl_loaddata.test | ||
rpl_log.test | ||
rpl_max_relay_size.test | ||
rpl_multi_query.test | ||
rpl_multi_update.test | ||
rpl_multi_update2.test | ||
rpl_multi_update3.test | ||
rpl_ndb_2multi_basic.test | ||
rpl_ndb_2multi_eng.test | ||
rpl_ndb_apply_status.test | ||
rpl_partition.test | ||
rpl_relayrotate.test | ||
rpl_reset_slave.test | ||
rpl_row_001.test | ||
rpl_row_basic.test | ||
rpl_row_blob.test | ||
rpl_row_charset.test | ||
rpl_row_delayed_ins.test | ||
rpl_row_func003.test | ||
rpl_row_sp002.test | ||
rpl_row_sp003.test | ||
rpl_row_sp006.test | ||
rpl_row_sp007.test | ||
rpl_row_tabledefs.test | ||
rpl_row_UUID.test | ||
rpl_stm_000001.test | ||
rpl_stm_charset.test | ||
rpl_stm_EE_err2.test | ||
rpl_sv_relay_space.test | ||
rpl_trig004.test | ||
rpl_truncate.test | ||
rpl_truncate_helper.test |