55 lines
1.3 KiB
Plaintext
55 lines
1.3 KiB
Plaintext
--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
|