Skip to content

Commit a34fafe

Browse files
gopshankdahlerlend
authored andcommitted
WL#6599 - New Data Dictionary and I_S integration.
Make main.dd_is_concurrency test work without using mysql_version_id, else the test case would be broken everytime we bump the version number.
1 parent e4b07ce commit a34fafe

File tree

2 files changed

+93
-88
lines changed

2 files changed

+93
-88
lines changed

mysql-test/r/dd_is_concurrency.result

Lines changed: 56 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -1,45 +1,46 @@
11
SET GLOBAL debug= '+d,skip_dd_table_access_check';
22
use test;
3+
CREATE TABLE t1 (f1 int) COMMENT='abc';
34
CREATE VIEW not_system_view AS
4-
SELECT name as table_name, mysql_version_id FROM mysql.tables;
5+
SELECT name as table_name, comment FROM mysql.tables;
56
SHOW CREATE VIEW not_system_view;
67
View Create View character_set_client collation_connection
7-
not_system_view CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `not_system_view` AS select `mysql`.`tables`.`name` AS `table_name`,`mysql`.`tables`.`mysql_version_id` AS `mysql_version_id` from `mysql`.`tables` latin1 latin1_swedish_ci
8+
not_system_view CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `not_system_view` AS select `mysql`.`tables`.`name` AS `table_name`,`mysql`.`tables`.`comment` AS `comment` from `mysql`.`tables` latin1 latin1_swedish_ci
89
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
910
START TRANSACTION;
1011
connect con1,localhost,root,,;
1112
START TRANSACTION;
12-
UPDATE mysql.tables SET mysql_version_id=2;
13+
UPDATE mysql.tables SET comment='mno' where name='t1';
1314
connection default;
14-
SELECT table_name, version
15+
SELECT table_name, table_comment
1516
FROM INFORMATION_SCHEMA.TABLES
16-
WHERE table_name='db';
17-
TABLE_NAME VERSION
18-
db 10
19-
SELECT table_name, mysql_version_id FROM not_system_view WHERE table_name='db';;
17+
WHERE table_name='t1';
18+
TABLE_NAME TABLE_COMMENT
19+
t1 abc
20+
SELECT table_name, comment FROM not_system_view WHERE table_name='t1';;
2021
connection con1;
2122
rollback;
2223
connection default;
23-
table_name mysql_version_id
24-
db 80000
24+
table_name comment
25+
t1 abc
2526
commit;
2627
connection default;
2728
SET TRANSACTION ISOLATION LEVEL REPEATABLE READ;
2829
START TRANSACTION;
2930
connection con1;
3031
START TRANSACTION;
31-
UPDATE mysql.tables SET mysql_version_id=2;
32+
UPDATE mysql.tables SET comment='mno' where name='t1';
3233
connection default;
33-
SELECT table_name, version
34+
SELECT table_name, table_comment
3435
FROM INFORMATION_SCHEMA.TABLES
35-
WHERE table_name='db';
36-
TABLE_NAME VERSION
37-
db 10
38-
SELECT table_name, mysql_version_id
36+
WHERE table_name='t1';
37+
TABLE_NAME TABLE_COMMENT
38+
t1 abc
39+
SELECT table_name, comment
3940
FROM not_system_view
40-
WHERE table_name='db';
41-
table_name mysql_version_id
42-
db 80000
41+
WHERE table_name='t1';
42+
table_name comment
43+
t1 abc
4344
commit;
4445
connection con1;
4546
rollback;
@@ -48,18 +49,18 @@ SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
4849
START TRANSACTION;
4950
connection con1;
5051
START TRANSACTION;
51-
UPDATE mysql.tables SET mysql_version_id=2;
52+
UPDATE mysql.tables SET comment='mno' where name='t1';
5253
connection default;
53-
SELECT table_name, version
54+
SELECT table_name, table_comment
5455
FROM INFORMATION_SCHEMA.TABLES
55-
WHERE table_name='db';
56-
TABLE_NAME VERSION
57-
db 10
58-
SELECT table_name, mysql_version_id
56+
WHERE table_name='t1';
57+
TABLE_NAME TABLE_COMMENT
58+
t1 abc
59+
SELECT table_name, comment
5960
FROM not_system_view
60-
WHERE table_name='db';
61-
table_name mysql_version_id
62-
db 80000
61+
WHERE table_name='t1';
62+
table_name comment
63+
t1 abc
6364
commit;
6465
connection con1;
6566
rollback;
@@ -68,18 +69,18 @@ SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
6869
START TRANSACTION;
6970
connection con1;
7071
START TRANSACTION;
71-
UPDATE mysql.tables SET mysql_version_id=2;
72+
UPDATE mysql.tables SET comment='mno' where name='t1';
7273
connection default;
73-
SELECT table_name, version
74+
SELECT table_name, table_comment
7475
FROM INFORMATION_SCHEMA.TABLES
75-
WHERE table_name='db';
76-
TABLE_NAME VERSION
77-
db 10
78-
SELECT table_name, mysql_version_id
76+
WHERE table_name='t1';
77+
TABLE_NAME TABLE_COMMENT
78+
t1 mno
79+
SELECT table_name, comment
7980
FROM not_system_view
80-
WHERE table_name='db';
81-
table_name mysql_version_id
82-
db 2
81+
WHERE table_name='t1';
82+
table_name comment
83+
t1 mno
8384
commit;
8485
connection con1;
8586
rollback;
@@ -88,46 +89,47 @@ SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
8889
START TRANSACTION;
8990
connection con1;
9091
START TRANSACTION;
91-
UPDATE mysql.tables SET mysql_version_id=2;
92+
UPDATE mysql.tables SET comment='mno' where name='t1';
9293
connection default;
93-
SELECT table_name, version
94+
SELECT table_name, table_comment
9495
FROM INFORMATION_SCHEMA.TABLES
95-
WHERE table_name='db'
96+
WHERE table_name='t1'
9697
LOCK IN SHARE MODE;
9798
ERROR HY000: Information schema queries do not support the 'LOCK IN SHARE MODE' clause.
98-
SELECT table_name, version
99+
SELECT table_name, table_comment
99100
FROM INFORMATION_SCHEMA.TABLES
100-
WHERE table_name='db'
101+
WHERE table_name='t1'
101102
FOR UPDATE;
102103
ERROR HY000: Information schema queries do not support the 'FOR UPDATE' clause.
103104
connection con1;
104105
rollback;
105106
connection default;
106-
SELECT table_name, version
107+
SELECT table_name, table_comment
107108
FROM INFORMATION_SCHEMA.TABLES
108-
WHERE table_name='db'
109+
WHERE table_name='t1'
109110
LOCK IN SHARE MODE;
110111
ERROR HY000: Information schema queries do not support the 'LOCK IN SHARE MODE' clause.
111-
SELECT table_name, version
112+
SELECT table_name, table_comment
112113
FROM INFORMATION_SCHEMA.TABLES
113-
WHERE table_name='db'
114+
WHERE table_name='t1'
114115
FOR UPDATE;
115116
ERROR HY000: Information schema queries do not support the 'FOR UPDATE' clause.
116-
SELECT table_name, mysql_version_id
117+
SELECT table_name, comment
117118
FROM not_system_view
118-
WHERE table_name='db'
119+
WHERE table_name='t1'
119120
LOCK IN SHARE MODE;
120-
table_name mysql_version_id
121-
db 80000
122-
SELECT table_name, mysql_version_id
121+
table_name comment
122+
t1 abc
123+
SELECT table_name, comment
123124
FROM not_system_view
124-
WHERE table_name='db'
125+
WHERE table_name='t1'
125126
FOR UPDATE;
126-
table_name mysql_version_id
127-
db 80000
127+
table_name comment
128+
t1 abc
128129
commit;
129130
connection con1;
130131
disconnect con1;
131132
connection default;
132133
DROP VIEW not_system_view;
134+
DROP TABLE t1;
133135
SET GLOBAL debug= '-d,skip_dd_table_access_check';

mysql-test/t/dd_is_concurrency.test

Lines changed: 37 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,11 @@ SET GLOBAL debug= '+d,skip_dd_table_access_check';
1414
#
1515
use test;
1616

17+
CREATE TABLE t1 (f1 int) COMMENT='abc';
18+
1719
# Create a non system view
1820
CREATE VIEW not_system_view AS
19-
SELECT name as table_name, mysql_version_id FROM mysql.tables;
21+
SELECT name as table_name, comment FROM mysql.tables;
2022

2123
SHOW CREATE VIEW not_system_view;
2224

@@ -31,24 +33,24 @@ START TRANSACTION;
3133
# Start thread1 which updates 'mysql.tables' DD table.
3234
connect(con1,localhost,root,,);
3335
START TRANSACTION;
34-
UPDATE mysql.tables SET mysql_version_id=2;
36+
UPDATE mysql.tables SET comment='mno' where name='t1';
3537

3638
# In 'default thread' execute SELECT on views.
3739
connection default;
3840

3941
# Test that SELECT on a system view does not hang.
40-
SELECT table_name, version
42+
SELECT table_name, table_comment
4143
FROM INFORMATION_SCHEMA.TABLES
42-
WHERE table_name='db';
44+
WHERE table_name='t1';
4345

4446
# Test that SELECT on non system view hangs.
45-
--send SELECT table_name, mysql_version_id FROM not_system_view WHERE table_name='db';
47+
--send SELECT table_name, comment FROM not_system_view WHERE table_name='t1';
4648

4749
connection con1;
4850
let $wait_condition=
4951
SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.PROCESSLIST
5052
WHERE STATE="Sending data" AND
51-
INFO = "SELECT table_name, mysql_version_id FROM not_system_view WHERE table_name='db'";
53+
INFO = "SELECT table_name, comment FROM not_system_view WHERE table_name='t1'";
5254
--source include/wait_condition.inc
5355

5456
rollback;
@@ -70,18 +72,18 @@ START TRANSACTION;
7072
# Start thread1 which updates 'mysql.tables' DD table.
7173
connection con1;
7274
START TRANSACTION;
73-
UPDATE mysql.tables SET mysql_version_id=2;
75+
UPDATE mysql.tables SET comment='mno' where name='t1';
7476

7577
# In 'default thread' execute SELECT on views.
7678
connection default;
7779

7880
# Test that SELECT on a system view and non system view does not hang.
79-
SELECT table_name, version
81+
SELECT table_name, table_comment
8082
FROM INFORMATION_SCHEMA.TABLES
81-
WHERE table_name='db';
82-
SELECT table_name, mysql_version_id
83+
WHERE table_name='t1';
84+
SELECT table_name, comment
8385
FROM not_system_view
84-
WHERE table_name='db';
86+
WHERE table_name='t1';
8587

8688
commit;
8789
connection con1;
@@ -99,18 +101,18 @@ START TRANSACTION;
99101
# Start thread1 which updates 'mysql.tables' DD table.
100102
connection con1;
101103
START TRANSACTION;
102-
UPDATE mysql.tables SET mysql_version_id=2;
104+
UPDATE mysql.tables SET comment='mno' where name='t1';
103105

104106
# In 'default thread' execute SELECT on views.
105107
connection default;
106108

107109
# Test that SELECT on a system view and non system view does not hang.
108-
SELECT table_name, version
110+
SELECT table_name, table_comment
109111
FROM INFORMATION_SCHEMA.TABLES
110-
WHERE table_name='db';
111-
SELECT table_name, mysql_version_id
112+
WHERE table_name='t1';
113+
SELECT table_name, comment
112114
FROM not_system_view
113-
WHERE table_name='db';
115+
WHERE table_name='t1';
114116

115117
commit;
116118
connection con1;
@@ -128,18 +130,18 @@ START TRANSACTION;
128130
# Start thread1 which updates 'mysql.tables' DD table.
129131
connection con1;
130132
START TRANSACTION;
131-
UPDATE mysql.tables SET mysql_version_id=2;
133+
UPDATE mysql.tables SET comment='mno' where name='t1';
132134

133135
# In 'default thread' execute SELECT on views.
134136
connection default;
135137

136138
# Test that SELECT on a system view and non system view does not hang.
137-
SELECT table_name, version
139+
SELECT table_name, table_comment
138140
FROM INFORMATION_SCHEMA.TABLES
139-
WHERE table_name='db';
140-
SELECT table_name, mysql_version_id
141+
WHERE table_name='t1';
142+
SELECT table_name, comment
141143
FROM not_system_view
142-
WHERE table_name='db';
144+
WHERE table_name='t1';
143145

144146
commit;
145147
connection con1;
@@ -159,23 +161,23 @@ START TRANSACTION;
159161
# Start thread1 which updates 'mysql.tables' DD table.
160162
connection con1;
161163
START TRANSACTION;
162-
UPDATE mysql.tables SET mysql_version_id=2;
164+
UPDATE mysql.tables SET comment='mno' where name='t1';
163165

164166
# In 'default thread' execute SELECT on views while UPDATE in progress
165167
connection default;
166168

167169
# Test that SELECT on a system view with LOCK IN SHARE MODE fails.
168170
--error ER_IS_QUERY_INVALID_CLAUSE
169-
SELECT table_name, version
171+
SELECT table_name, table_comment
170172
FROM INFORMATION_SCHEMA.TABLES
171-
WHERE table_name='db'
173+
WHERE table_name='t1'
172174
LOCK IN SHARE MODE;
173175

174176
# Test that SELECT on a system view with FOR UPDATE fails.
175177
--error ER_IS_QUERY_INVALID_CLAUSE
176-
SELECT table_name, version
178+
SELECT table_name, table_comment
177179
FROM INFORMATION_SCHEMA.TABLES
178-
WHERE table_name='db'
180+
WHERE table_name='t1'
179181
FOR UPDATE;
180182

181183
# Rollback UPDATE operation
@@ -190,28 +192,28 @@ connection default;
190192

191193
# Test that SELECT on a system view with LOCK IN SHARE MODE fails.
192194
--error ER_IS_QUERY_INVALID_CLAUSE
193-
SELECT table_name, version
195+
SELECT table_name, table_comment
194196
FROM INFORMATION_SCHEMA.TABLES
195-
WHERE table_name='db'
197+
WHERE table_name='t1'
196198
LOCK IN SHARE MODE;
197199

198200
# Test that SELECT on a system view with FOR UPDATE fails.
199201
--error ER_IS_QUERY_INVALID_CLAUSE
200-
SELECT table_name, version
202+
SELECT table_name, table_comment
201203
FROM INFORMATION_SCHEMA.TABLES
202-
WHERE table_name='db'
204+
WHERE table_name='t1'
203205
FOR UPDATE;
204206

205207
# Test that SELECT on a non system view with 'LOCK IN SHARE MODE' succeeds.
206-
SELECT table_name, mysql_version_id
208+
SELECT table_name, comment
207209
FROM not_system_view
208-
WHERE table_name='db'
210+
WHERE table_name='t1'
209211
LOCK IN SHARE MODE;
210212

211213
# Test that SELECT on a non system view with 'FOR UPDATE' succeeds
212-
SELECT table_name, mysql_version_id
214+
SELECT table_name, comment
213215
FROM not_system_view
214-
WHERE table_name='db'
216+
WHERE table_name='t1'
215217
FOR UPDATE;
216218

217219
commit;
@@ -224,6 +226,7 @@ connection con1;
224226
disconnect con1;
225227
connection default;
226228
DROP VIEW not_system_view;
229+
DROP TABLE t1;
227230

228231

229232

0 commit comments

Comments
 (0)