diff --git a/mysql-test/suite/rpl/r/ignore_table_autoinc-9737.result b/mysql-test/suite/rpl/r/ignore_table_autoinc-9737.result new file mode 100644 index 00000000000..b036bde349a --- /dev/null +++ b/mysql-test/suite/rpl/r/ignore_table_autoinc-9737.result @@ -0,0 +1,19 @@ +include/master-slave.inc +[connection master] +call mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT"); +create table t1(id int auto_increment primary key); +create table t2(id int auto_increment primary key); +create table slave_only(id int auto_increment primary key); +insert into slave_only values(NULL); +create trigger t1i after insert on t1 for each row insert into slave_only values(NULL); +stop slave; +set global replicate_ignore_table="test.t2"; +start slave; +insert into t2 values(NULL); +insert into t1 values(NULL); +drop table t1, t2, slave_only; +stop slave; +set global replicate_ignore_table=""; +start slave; +drop table t1, t2; +include/rpl_end.inc diff --git a/mysql-test/suite/rpl/t/ignore_table_autoinc-9737.test b/mysql-test/suite/rpl/t/ignore_table_autoinc-9737.test new file mode 100644 index 00000000000..405d1a929f1 --- /dev/null +++ b/mysql-test/suite/rpl/t/ignore_table_autoinc-9737.test @@ -0,0 +1,35 @@ +# +# MDEV-9737 Duplicate error in replication with slave triggers and auto increment +# +source include/master-slave.inc; +call mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT"); + + +create table t1(id int auto_increment primary key); +create table t2(id int auto_increment primary key); + +sync_slave_with_master; +create table slave_only(id int auto_increment primary key); +insert into slave_only values(NULL); +create trigger t1i after insert on t1 for each row insert into slave_only values(NULL); + +stop slave; +set global replicate_ignore_table="test.t2"; +start slave; + +connection master; +insert into t2 values(NULL); +insert into t1 values(NULL); + +sync_slave_with_master; + +drop table t1, t2, slave_only; +stop slave; +set global replicate_ignore_table=""; +start slave; + +connection master; +drop table t1, t2; + +source include/rpl_end.inc; + diff --git a/sql/log_event.cc b/sql/log_event.cc index b4be9c740d2..98165cc4797 100644 --- a/sql/log_event.cc +++ b/sql/log_event.cc @@ -7463,6 +7463,7 @@ bool slave_execute_deferred_events(THD *thd) return res; res= rgi->deferred_events->execute(rgi); + rgi->deferred_events->rewind(); return res; }