--source include/have_ndb.inc --source include/have_binlog_format_mixed_or_row.inc --source suite/ndb_rpl/ndb_master-slave.inc # # Slave behaviour when replicating unique index operations # # --connection master CREATE TABLE t1 (pk int primary key, uk1 int not null, uk2 int not null, unique(uk1), unique(uk2)) engine=ndb; # Now perform some operations which do not result in uniqueness # violations when applied in-order, but which can result in them # when applied out-of-order # 5 distinct values chosen to increase the chance of different # fragments (and therefore potentially different SUMA->Binlog # orders) being seen. # insert into t1 values (1,1,1); insert into t1 values (2,2,2); insert into t1 values (3,3,3); insert into t1 values (4,4,4); insert into t1 values (5,5,5); --sorted_result select * from t1 where uk1 in (1,2,3,4,5); # Do a 'right shift' on the unique key values update t1 set uk1=uk1-1 order by pk; update t1 set uk2=uk2+1 order by pk desc; --sorted_result select * from t1 where uk1 in (0,1,2,3,4); --echo Master table contents select * from t1 order by pk; flush logs; --sync_slave_with_master --connection slave --echo Slave table contents select * from t1 order by pk; select * from t1 where uk1 in (0,1,2,3,4); --connection master drop table t1; --source include/rpl_end.inc