mirror of
https://github.com/MariaDB/server.git
synced 2025-08-07 00:04:31 +03:00
MDEV-11636 Extra persistent columns on slave always gets NULL in RBR
Problem:- In replication if slave has extra persistent column then these column are not computed while applying write-set from master. Solution:- While applying row events from server, we will generate values for extra persistent columns.
This commit is contained in:
203
mysql-test/suite/rpl/r/rpl_alter_extra_persistent.result
Normal file
203
mysql-test/suite/rpl/r/rpl_alter_extra_persistent.result
Normal file
@@ -0,0 +1,203 @@
|
||||
include/master-slave.inc
|
||||
[connection master]
|
||||
connection master;
|
||||
create table t1(a int primary key);
|
||||
insert into t1 values(1);
|
||||
insert into t1 values(2);
|
||||
insert into t1 values(3);
|
||||
insert into t1 values(4);
|
||||
connection slave;
|
||||
select * from t1 order by a;
|
||||
a
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
alter table t1 add column z1 int as(a+1) virtual, add column z2 int as (a+2) persistent;
|
||||
select * from t1 order by a;
|
||||
a z1 z2
|
||||
1 2 3
|
||||
2 3 4
|
||||
3 4 5
|
||||
4 5 6
|
||||
connection master;
|
||||
insert into t1 values(5);
|
||||
insert into t1 values(6);
|
||||
connection slave;
|
||||
select * from t1 order by a;
|
||||
a z1 z2
|
||||
1 2 3
|
||||
2 3 4
|
||||
3 4 5
|
||||
4 5 6
|
||||
5 6 7
|
||||
6 7 8
|
||||
#UPDATE query
|
||||
connection master;
|
||||
update t1 set a = a+10;
|
||||
select * from t1 order by a;
|
||||
a
|
||||
11
|
||||
12
|
||||
13
|
||||
14
|
||||
15
|
||||
16
|
||||
connection slave;
|
||||
select * from t1 order by a;
|
||||
a z1 z2
|
||||
11 12 13
|
||||
12 13 14
|
||||
13 14 15
|
||||
14 15 16
|
||||
15 16 17
|
||||
16 17 18
|
||||
connection master;
|
||||
update t1 set a = a-10;
|
||||
select * from t1 order by a;
|
||||
a
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
connection slave;
|
||||
select * from t1 order by a;
|
||||
a z1 z2
|
||||
1 2 3
|
||||
2 3 4
|
||||
3 4 5
|
||||
4 5 6
|
||||
5 6 7
|
||||
6 7 8
|
||||
#DELETE quert
|
||||
connection master;
|
||||
delete from t1 where a > 2 and a < 4;
|
||||
select * from t1 order by a;
|
||||
a
|
||||
1
|
||||
2
|
||||
4
|
||||
5
|
||||
6
|
||||
connection slave;
|
||||
select * from t1 order by a;
|
||||
a z1 z2
|
||||
1 2 3
|
||||
2 3 4
|
||||
4 5 6
|
||||
5 6 7
|
||||
6 7 8
|
||||
#REPLACE query
|
||||
connection master;
|
||||
replace into t1 values(1);
|
||||
replace into t1 values(3);
|
||||
replace into t1 values(1);
|
||||
connection slave;
|
||||
select * from t1 order by a;
|
||||
a z1 z2
|
||||
1 2 3
|
||||
2 3 4
|
||||
3 4 5
|
||||
4 5 6
|
||||
5 6 7
|
||||
6 7 8
|
||||
#SELECT query
|
||||
connection master;
|
||||
select * from t1 where a > 2 and a < 4;
|
||||
a
|
||||
3
|
||||
connection slave;
|
||||
select * from t1 where a > 2 and a < 4;
|
||||
a z1 z2
|
||||
3 4 5
|
||||
#UPDATE with SELECT query
|
||||
connection master;
|
||||
update t1 set a = a + 10 where a > 2 and a < 4;
|
||||
select * from t1 order by a;
|
||||
a
|
||||
1
|
||||
2
|
||||
4
|
||||
5
|
||||
6
|
||||
13
|
||||
connection slave;
|
||||
select * from t1 order by a;
|
||||
a z1 z2
|
||||
1 2 3
|
||||
2 3 4
|
||||
4 5 6
|
||||
5 6 7
|
||||
6 7 8
|
||||
13 14 15
|
||||
connection master;
|
||||
update t1 set a = a - 10 where a = 13;
|
||||
select * from t1 order by a;
|
||||
a
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
connection slave;
|
||||
select * from t1 order by a;
|
||||
a z1 z2
|
||||
1 2 3
|
||||
2 3 4
|
||||
3 4 5
|
||||
4 5 6
|
||||
5 6 7
|
||||
6 7 8
|
||||
#Break Unique Constraint
|
||||
alter table t1 add column z4 int as (a % 6) persistent unique;
|
||||
connection master;
|
||||
#entering duplicate value for slave persistent column
|
||||
insert into t1 values(7);
|
||||
select * from t1 order by a;
|
||||
a
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
connection slave;
|
||||
include/wait_for_slave_sql_error.inc [errno=1062]
|
||||
select * from t1 order by a;
|
||||
a z1 z2 z4
|
||||
1 2 3 1
|
||||
2 3 4 2
|
||||
3 4 5 3
|
||||
4 5 6 4
|
||||
5 6 7 5
|
||||
6 7 8 0
|
||||
alter table t1 drop column z4;
|
||||
start slave;
|
||||
include/wait_for_slave_sql_to_start.inc
|
||||
connection master;
|
||||
connection slave;
|
||||
select * from t1 order by a;
|
||||
a z1 z2
|
||||
1 2 3
|
||||
2 3 4
|
||||
3 4 5
|
||||
4 5 6
|
||||
5 6 7
|
||||
6 7 8
|
||||
7 8 9
|
||||
connection master;
|
||||
select * from t1 order by a;
|
||||
a
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
drop table t1;
|
||||
include/rpl_end.inc
|
Reference in New Issue
Block a user