File: gr_perfschema_group_members_additional_columns.test

package info (click to toggle)
mysql-8.0 8.0.43-3
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 1,273,924 kB
  • sloc: cpp: 4,684,605; ansic: 412,450; pascal: 108,398; java: 83,641; perl: 30,221; cs: 27,067; sql: 26,594; sh: 24,181; python: 21,816; yacc: 17,169; php: 11,522; xml: 7,388; javascript: 7,076; makefile: 2,194; lex: 1,075; awk: 670; asm: 520; objc: 183; ruby: 97; lisp: 86
file content (152 lines) | stat: -rw-r--r-- 7,498 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
################################################################################
# Verify performance_schema.replication_group_members for new columns
#
# Test:
# 1.  Assert MEMBER_ROLE and MEMBER_VERSION after start of GR
# 1A. Store server_uuid and member_version for future reference
# 1B. Assert MEMBER_ROLE and MEMBER_VERSION are correct on server1
# 2.  Assert MEMBER_ROLE and MEMBER_VERSION before start of GR
# 2A. Assert MEMBER_ROLE and MEMBER_VERSION are not set on server2
# 2B. Start GR on server2
# 2C. Store server_uuid and member_version for future reference
# 3.  Assert MEMBER_ROLE and MEMBER_VERSION are correct on server1 and server2
# 4.  Shutdown GR
################################################################################


--source include/have_group_replication_plugin.inc
--let $rpl_skip_group_replication_start= 1
--let $rpl_group_replication_single_primary_mode=1
--source include/group_replication.inc

--echo
--echo #####################################################################
--echo # 1. Assert MEMBER_ROLE and MEMBER_VERSION after start of GR
--echo #####################################################################
--source include/start_and_bootstrap_group_replication.inc

## Store server_uuid and member_version of server1 for future reference
# Store server1_uuid
--let $server1_uuid= query_get_value(SELECT @@SERVER_UUID, @@SERVER_UUID, 1)
# Store server1_version
--let $_member_version_= query_get_value(SELECT MEMBER_VERSION FROM performance_schema.replication_group_members where member_id='$server1_uuid', MEMBER_VERSION, 1)
--let $_member_version_2= query_get_value(SELECT @@version as version, version, 1)
--let $server_version= query_get_value("SELECT LEFT('$_member_version_2',CHAR_LENGTH('$_member_version_')) AS VERSION", VERSION, 1)

## Assert server_version is not empty string
--let $assert_text= 'MEMBER_VERSION is not empty'
--let $assert_cond= [SELECT CHAR_LENGTH("$server_version") >= 5 AS VERSION, VERSION, 1] = 1
--source include/assert.inc

## Assert MEMBER_ROLE and MEMBER_VERSION are correct on server1

# Assert MEMBER_ROLE
--let $_member_role_= query_get_value(SELECT MEMBER_ROLE FROM performance_schema.replication_group_members where member_id='$server1_uuid', MEMBER_ROLE, 1)
--let $assert_text= 'Server1 MEMBER_ROLE should be PRIMARY'
--let $assert_cond= "$_member_role_"= "PRIMARY"
--source include/assert.inc

# Assert MEMBER_VERSION
--let $_member_version_= query_get_value(SELECT MEMBER_VERSION FROM performance_schema.replication_group_members where member_id='$server1_uuid', MEMBER_VERSION, 1)
--let $assert_text= 'Server1 MEMBER_VERSION should match with SELECT @@server_version'
--let $assert_cond= "$_member_version_"= "$server_version"
--source include/assert.inc

--echo
--echo #####################################################################
--echo # 2.  Assert MEMBER_ROLE and MEMBER_VERSION before start of GR
--echo #####################################################################
## Start server2
--let $rpl_connection_name= server2
--source include/rpl_connection.inc

## Assert MEMBER_ROLE and MEMBER_VERSION are not set on server2

# Assert MEMBER_ROLE
--let $_member_role_= query_get_value(SELECT MEMBER_ROLE FROM performance_schema.replication_group_members, MEMBER_ROLE, 1)
--let $assert_text= 'Server2 MEMBER_ROLE should not be set when GR is starting'
--let $assert_cond= "$_member_role_"= ""
--source include/assert.inc

# Assert MEMBER_VERSION
--let $_member_version_= query_get_value(SELECT MEMBER_VERSION FROM performance_schema.replication_group_members, MEMBER_VERSION, 1)
--let $assert_text= 'Server2 MEMBER_VERSION should not be set when GR is starting'
--let $assert_cond= "$_member_version_"= ""
--source include/assert.inc

## Start GR on server2
--source include/start_group_replication.inc

## Store server_uuid and member_version of server2 for future reference
# Store server2_uuid
--let $server2_uuid= query_get_value(SELECT @@SERVER_UUID, @@SERVER_UUID, 1)

--echo
--echo ##############################################################################
--echo # 3.  Assert MEMBER_ROLE and MEMBER_VERSION are correct on server1 and server2
--echo ##############################################################################

## Assert MEMBER_ROLE and MEMBER_VERSION are correct on server1
--let $rpl_connection_name= server1
--source include/rpl_connection.inc

# Assert MEMBER_ROLE
--let $_member_role_= query_get_value(SELECT MEMBER_ROLE FROM performance_schema.replication_group_members where member_id='$server1_uuid', MEMBER_ROLE, 1)
--let $assert_text= 'Server1 MEMBER_ROLE should be PRIMARY'
--let $assert_cond= "$_member_role_"= "PRIMARY"
--source include/assert.inc

# Assert MEMBER_ROLE
--let $_member_role_= query_get_value(SELECT MEMBER_ROLE FROM performance_schema.replication_group_members where member_id='$server2_uuid', MEMBER_ROLE, 1)
--let $assert_text= 'Server2 MEMBER_ROLE should be SECONDARY'
--let $assert_cond= "$_member_role_"= "SECONDARY"
--source include/assert.inc


# Assert MEMBER_VERSION
--let $_member_version_= query_get_value(SELECT MEMBER_VERSION FROM performance_schema.replication_group_members where member_id='$server1_uuid', MEMBER_VERSION, 1)
--let $assert_text= 'Server1 MEMBER_VERSION should match with SELECT @@server_version'
--let $assert_cond= "$_member_version_"= "$server_version"
--source include/assert.inc

# Assert MEMBER_VERSION
--let $_member_version_= query_get_value(SELECT MEMBER_VERSION FROM performance_schema.replication_group_members where member_id='$server2_uuid', MEMBER_VERSION, 1)
--let $assert_text= 'Server2 MEMBER_VERSION should match with SELECT @@server_version'
--let $assert_cond= "$_member_version_"= "$server_version"
--source include/assert.inc


## Assert MEMBER_ROLE and MEMBER_VERSION are correct on server2
--let $rpl_connection_name= server2
--source include/rpl_connection.inc

# Assert MEMBER_ROLE
--let $_member_role_= query_get_value(SELECT MEMBER_ROLE FROM performance_schema.replication_group_members where member_id='$server1_uuid', MEMBER_ROLE, 1)
--let $assert_text= 'Server1 MEMBER_ROLE should be PRIMARY'
--let $assert_cond= "$_member_role_"= "PRIMARY"
--source include/assert.inc

# Assert MEMBER_ROLE
--let $_member_role_= query_get_value(SELECT MEMBER_ROLE FROM performance_schema.replication_group_members where member_id='$server2_uuid', MEMBER_ROLE, 1)
--let $assert_text= 'Server2 MEMBER_ROLE should be SECONDARY'
--let $assert_cond= "$_member_role_"= "SECONDARY"
--source include/assert.inc

# Assert MEMBER_VERSION
--let $_member_version_= query_get_value(SELECT MEMBER_VERSION FROM performance_schema.replication_group_members where member_id='$server1_uuid', MEMBER_VERSION, 1)
--let $assert_text= 'Server1 MEMBER_VERSION should match with SELECT @@server_version'
--let $assert_cond= "$_member_version_"= "$server_version"
--source include/assert.inc

# Assert MEMBER_VERSION
--let $_member_version_= query_get_value(SELECT MEMBER_VERSION FROM performance_schema.replication_group_members where member_id='$server2_uuid', MEMBER_VERSION, 1)
--let $assert_text= 'Server2 MEMBER_VERSION should match with SELECT @@server_version'
--let $assert_cond= "$_member_version_"= "$server_version"
--source include/assert.inc

--echo
--echo ##########################################################################
--echo # 4.  Shutdown GR
--echo ##########################################################################
--source include/group_replication_end.inc