Skip to content

Commit 75a27ee

Browse files
author
Nirbhay Choubey
committed
MDEV-4987: Sort by domain_id when list of GTIDs are output
Added logic to sort gtid list based on domain_id before populating them in string. Added a test case.
1 parent 34d86ac commit 75a27ee

File tree

4 files changed

+284
-15
lines changed

4 files changed

+284
-15
lines changed
Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
include/rpl_init.inc [topology=1->2]
2+
*** Test connecting with empty GTID state to start from very beginning of binlog ***
3+
include/stop_slave.inc
4+
RESET MASTER;
5+
RESET SLAVE;
6+
SHOW VARIABLES LIKE 'gtid_binlog_pos';
7+
Variable_name Value
8+
gtid_binlog_pos
9+
SHOW VARIABLES LIKE 'gtid_current_pos';
10+
Variable_name Value
11+
gtid_current_pos
12+
SHOW VARIABLES LIKE 'gtid_slave_pos';
13+
Variable_name Value
14+
gtid_slave_pos
15+
SHOW VARIABLES LIKE 'gtid_binlog_state';
16+
Variable_name Value
17+
gtid_binlog_state
18+
RESET MASTER;
19+
FLUSH LOGS;
20+
CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=InnoDB;
21+
SET @@SESSION.gtid_domain_id=1;
22+
INSERT INTO t1 VALUES(1);
23+
SET @@SESSION.gtid_domain_id=99999;
24+
INSERT INTO t1 VALUES(3);
25+
SET @@SESSION.gtid_domain_id=10;
26+
INSERT INTO t1 VALUES(4);
27+
SET @@SESSION.gtid_domain_id=100;
28+
INSERT INTO t1 VALUES(5);
29+
SET @@SESSION.gtid_domain_id=2147483648;
30+
INSERT INTO t1 VALUES(6);
31+
SET @@SESSION.gtid_domain_id=4294967295;
32+
INSERT INTO t1 VALUES(7);
33+
SHOW VARIABLES LIKE 'gtid_binlog_pos';
34+
Variable_name Value
35+
gtid_binlog_pos 0-1-1,1-1-1,10-1-1,100-1-1,99999-1-1,2147483648-1-1,4294967295-1-1
36+
SHOW VARIABLES LIKE 'gtid_current_pos';
37+
Variable_name Value
38+
gtid_current_pos 0-1-1,1-1-1,10-1-1,100-1-1,99999-1-1,2147483648-1-1,4294967295-1-1
39+
SHOW VARIABLES LIKE 'gtid_slave_pos';
40+
Variable_name Value
41+
gtid_slave_pos
42+
SHOW VARIABLES LIKE 'gtid_binlog_state';
43+
Variable_name Value
44+
gtid_binlog_state 0-1-1,1-1-1,10-1-1,100-1-1,99999-1-1,2147483648-1-1,4294967295-1-1
45+
SHOW VARIABLES LIKE 'gtid_binlog_pos';
46+
Variable_name Value
47+
gtid_binlog_pos
48+
SHOW VARIABLES LIKE 'gtid_current_pos';
49+
Variable_name Value
50+
gtid_current_pos
51+
SHOW VARIABLES LIKE 'gtid_slave_pos';
52+
Variable_name Value
53+
gtid_slave_pos
54+
SHOW VARIABLES LIKE 'gtid_binlog_state';
55+
Variable_name Value
56+
gtid_binlog_state
57+
CHANGE MASTER TO master_host = '127.0.0.1', master_port = MASTER_PORT,
58+
MASTER_USE_GTID=CURRENT_POS;
59+
include/start_slave.inc
60+
SHOW VARIABLES LIKE 'gtid_binlog_pos';
61+
Variable_name Value
62+
gtid_binlog_pos 0-1-1,1-1-1,10-1-1,100-1-1,99999-1-1,2147483648-1-1,4294967295-1-1
63+
SHOW VARIABLES LIKE 'gtid_current_pos';
64+
Variable_name Value
65+
gtid_current_pos 0-1-1,1-1-1,10-1-1,100-1-1,99999-1-1,2147483648-1-1,4294967295-1-1
66+
SHOW VARIABLES LIKE 'gtid_slave_pos';
67+
Variable_name Value
68+
gtid_slave_pos 0-1-1,1-1-1,10-1-1,100-1-1,99999-1-1,2147483648-1-1,4294967295-1-1
69+
SHOW VARIABLES LIKE 'gtid_binlog_state';
70+
Variable_name Value
71+
gtid_binlog_state 0-1-1,1-1-1,10-1-1,100-1-1,99999-1-1,2147483648-1-1,4294967295-1-1
72+
SELECT * FROM t1;
73+
a
74+
1
75+
3
76+
4
77+
5
78+
6
79+
7
80+
SET @@SESSION.gtid_domain_id=1000;
81+
INSERT INTO t1 VALUES(8);
82+
SET @@SESSION.gtid_domain_id=89;
83+
INSERT INTO t1 VALUES(9);
84+
SET @@SESSION.gtid_domain_id=10100000;
85+
INSERT INTO t1 VALUES(10);
86+
SHOW VARIABLES LIKE 'gtid_binlog_pos';
87+
Variable_name Value
88+
gtid_binlog_pos 0-1-1,1-1-1,10-1-1,89-2-1,100-1-1,1000-2-1,99999-1-1,10100000-2-1,2147483648-1-1,4294967295-1-1
89+
SHOW VARIABLES LIKE 'gtid_current_pos';
90+
Variable_name Value
91+
gtid_current_pos 0-1-1,1-1-1,10-1-1,89-2-1,100-1-1,1000-2-1,99999-1-1,10100000-2-1,2147483648-1-1,4294967295-1-1
92+
SHOW VARIABLES LIKE 'gtid_slave_pos';
93+
Variable_name Value
94+
gtid_slave_pos 0-1-1,1-1-1,10-1-1,100-1-1,99999-1-1,2147483648-1-1,4294967295-1-1
95+
SHOW VARIABLES LIKE 'gtid_binlog_state';
96+
Variable_name Value
97+
gtid_binlog_state 0-1-1,1-1-1,10-1-1,89-2-1,100-1-1,1000-2-1,99999-1-1,10100000-2-1,2147483648-1-1,4294967295-1-1
98+
DROP TABLE t1;
99+
include/rpl_end.inc
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
--source include/have_innodb.inc
2+
--let $rpl_topology=1->2
3+
--source include/rpl_init.inc
4+
5+
--echo *** Test connecting with empty GTID state to start from very beginning of binlog ***
6+
--connection server_2
7+
--source include/stop_slave.inc
8+
RESET MASTER;
9+
RESET SLAVE;
10+
SHOW VARIABLES LIKE 'gtid_binlog_pos';
11+
SHOW VARIABLES LIKE 'gtid_current_pos';
12+
SHOW VARIABLES LIKE 'gtid_slave_pos';
13+
SHOW VARIABLES LIKE 'gtid_binlog_state';
14+
15+
--connection server_1
16+
RESET MASTER;
17+
FLUSH LOGS;
18+
CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=InnoDB;
19+
SET @@SESSION.gtid_domain_id=1;
20+
INSERT INTO t1 VALUES(1);
21+
22+
SET @@SESSION.gtid_domain_id=99999;
23+
INSERT INTO t1 VALUES(3);
24+
25+
SET @@SESSION.gtid_domain_id=10;
26+
INSERT INTO t1 VALUES(4);
27+
28+
SET @@SESSION.gtid_domain_id=100;
29+
INSERT INTO t1 VALUES(5);
30+
31+
SET @@SESSION.gtid_domain_id=2147483648; # 0x80000000
32+
INSERT INTO t1 VALUES(6);
33+
34+
SET @@SESSION.gtid_domain_id=4294967295; # 0xFFFFFFFF
35+
INSERT INTO t1 VALUES(7);
36+
37+
SHOW VARIABLES LIKE 'gtid_binlog_pos';
38+
SHOW VARIABLES LIKE 'gtid_current_pos';
39+
SHOW VARIABLES LIKE 'gtid_slave_pos';
40+
SHOW VARIABLES LIKE 'gtid_binlog_state';
41+
--save_master_pos
42+
43+
--connection server_2
44+
SHOW VARIABLES LIKE 'gtid_binlog_pos';
45+
SHOW VARIABLES LIKE 'gtid_current_pos';
46+
SHOW VARIABLES LIKE 'gtid_slave_pos';
47+
SHOW VARIABLES LIKE 'gtid_binlog_state';
48+
--replace_result $MASTER_MYPORT MASTER_PORT
49+
eval CHANGE MASTER TO master_host = '127.0.0.1', master_port = $MASTER_MYPORT,
50+
MASTER_USE_GTID=CURRENT_POS;
51+
--source include/start_slave.inc
52+
--sync_with_master
53+
SHOW VARIABLES LIKE 'gtid_binlog_pos';
54+
SHOW VARIABLES LIKE 'gtid_current_pos';
55+
SHOW VARIABLES LIKE 'gtid_slave_pos';
56+
SHOW VARIABLES LIKE 'gtid_binlog_state';
57+
SELECT * FROM t1;
58+
59+
SET @@SESSION.gtid_domain_id=1000;
60+
INSERT INTO t1 VALUES(8);
61+
62+
SET @@SESSION.gtid_domain_id=89;
63+
INSERT INTO t1 VALUES(9);
64+
65+
SET @@SESSION.gtid_domain_id=10100000;
66+
INSERT INTO t1 VALUES(10);
67+
68+
SHOW VARIABLES LIKE 'gtid_binlog_pos';
69+
SHOW VARIABLES LIKE 'gtid_current_pos';
70+
SHOW VARIABLES LIKE 'gtid_slave_pos';
71+
SHOW VARIABLES LIKE 'gtid_binlog_state';
72+
73+
# Clean up.
74+
--connection server_1
75+
DROP TABLE t1;
76+
77+
--source include/rpl_end.inc

0 commit comments

Comments
 (0)