summaryrefslogtreecommitdiff
path: root/mysql-test/suite/engines/funcs/t/rpl_multi_update4.test
diff options
context:
space:
mode:
Diffstat (limited to 'mysql-test/suite/engines/funcs/t/rpl_multi_update4.test')
-rw-r--r--mysql-test/suite/engines/funcs/t/rpl_multi_update4.test45
1 files changed, 45 insertions, 0 deletions
diff --git a/mysql-test/suite/engines/funcs/t/rpl_multi_update4.test b/mysql-test/suite/engines/funcs/t/rpl_multi_update4.test
new file mode 100644
index 00000000000..4991a385f6f
--- /dev/null
+++ b/mysql-test/suite/engines/funcs/t/rpl_multi_update4.test
@@ -0,0 +1,45 @@
+# Let's verify that multi-update is not always skipped by slave if
+# some replicate-* rules exist.
+# (BUG#15699)
+
+source include/master-slave.inc;
+
+### Clean-up
+
+connection master;
+--disable_warnings
+drop database if exists d1;
+drop database if exists d2;
+
+connection slave;
+drop database if exists d2;
+--enable_warnings
+
+### Do on master
+
+connection master;
+create database d1; # accepted by slave
+create table d1.t0 (id int);
+create database d2; # ignored by slave
+use d2;
+create table t1 (id int);
+create table t2 (id int);
+insert into t1 values (1), (2), (3), (4), (5);
+insert into t2 select id + 3 from t1;
+# a problematic query which must be filter out by slave
+update t1 join t2 using (id) set t1.id = 0;
+insert into d1.t0 values (0); # replication works
+
+### Check on slave
+
+sync_slave_with_master;
+use d1;
+select * from t0 where id=0; # must find
+
+### Clean-up
+connection master;
+drop database d1;
+drop database d2;
+sync_slave_with_master;
+
+# End of test