1
# Test for data_dictionary.schemas &
5
DROP TABLE IF EXISTS t0,t1,t2,t3,t4,t5;
8
# Test for data_dictionary.tables &
11
create database mysqltest;
12
create table mysqltest.t1(a int, b VARCHAR(30), KEY string_data (b));
13
create table test.t2(a int);
14
create table t3(a int, KEY a_data (a));
15
create table mysqltest.t4(a int);
16
create table t5 (id int auto_increment primary key);
17
insert into t5 values (10);
20
select table_name from data_dictionary.tables
21
where table_schema = "mysqltest" and table_name like "t%";
23
select * from data_dictionary.indexes where TABLE_SCHEMA = "mysqltest";
25
show tables like 't%';
26
--replace_column 1 # 6 # 7 # 8 # 9 # 10 #
28
show columns from t3 like "a%";
30
select * from data_dictionary.columns where table_name="t1"
33
connect (user3,localhost,mysqltest_2,,);
36
select table_name, column_name from data_dictionary.columns
37
where table_schema = 'mysqltest' and table_name = 't1';
38
show columns from mysqltest.t1;
39
connect (user4,localhost,mysqltest_3,,mysqltest);
43
drop tables mysqltest.t4, mysqltest.t1, t2, t3, t5;
44
drop database mysqltest;
47
# Bug#2719 information_schema: errors in "columns"
50
select column_type from data_dictionary.columns
51
where table_schema="data_dictionary" and table_name="COLUMNS" and
52
(column_name="character_set_name" or column_name="collation_name");
55
# Bug#2718 information_schema: errors in "tables"
59
select count(*) from data_dictionary.tables where
60
table_schema="data_dictionary" and table_name="COLUMNS";
64
select count(*) from data_dictionary.tables
65
where table_schema="mysql" and table_name="user";
68
# Bug #7215 information_schema: columns are longtext instead of varchar
69
# Bug #7217 information_schema: columns are varbinary() instead of timestamp
72
select table_schema, table_name, column_name from data_dictionary.columns where data_type = 'longtext';
74
select table_name, column_name, data_type from data_dictionary.columns where data_type = 'datetime';
77
# Bug #8164 subquery with data_dictionary.COLUMNS, 100 % CPU
80
SELECT COUNT(*) FROM data_dictionary.tables A
82
(SELECT * FROM data_dictionary.columns B
83
WHERE A.TABLE_SCHEMA = B.TABLE_SCHEMA
84
AND A.TABLE_NAME = B.TABLE_NAME);
87
# Bug #9344 INFORMATION_SCHEMA, wrong content, numeric columns
94
x_decimal DECIMAL(5,3),
95
x_numeric NUMERIC(5,3),
98
x_double_precision DOUBLE PRECISION );
100
SELECT COLUMN_NAME, CHARACTER_MAXIMUM_LENGTH, CHARACTER_OCTET_LENGTH
101
FROM data_dictionary.columns
102
WHERE TABLE_NAME= 't1';
106
# Bug #9404 information_schema: Weird error messages
107
# with SELECT SUM() ... GROUP BY queries
110
SELECT table_schema, count(*) FROM data_dictionary.tables
111
WHERE table_name NOT LIKE 'ndb_%' AND
112
table_name NOT LIKE 'falcon%'
113
GROUP BY TABLE_SCHEMA ORDER BY table_schema;
116
# Bug #11057 information_schema: columns table has some questionable contents
117
# Bug #12301 information_schema: NUMERIC_SCALE must be 0 for integer columns
119
create table t1(f1 LONGBLOB, f2 LONGTEXT);
121
select column_name,data_type,CHARACTER_OCTET_LENGTH,
122
CHARACTER_MAXIMUM_LENGTH
123
from data_dictionary.columns
124
where table_name='t1';
126
create table t1(f1 int, f2 int, f3 BIGINT, f4 int,
127
f5 BIGINT, f6 int, f7 int);
129
select column_name, NUMERIC_PRECISION, NUMERIC_SCALE
130
from data_dictionary.columns
131
where table_name='t1';
135
# Bug#12518 COLUMN_DEFAULT has wrong value if NOT NULL is set
137
create table t1 (a int not null, b int);
139
select column_name, column_default from data_dictionary.columns
140
where table_schema='test' and table_name='t1';
142
show columns from t1;
147
# Bug#14089 FROM list subquery always fails when information_schema is current database
150
create table t1(id int);
151
insert into t1(id) values (1);
153
select 1 from (select 1 from test.t1) a;
156
select 1 from (select 1 from test.t1) a;
161
# Bug#14271 I_S: columns has no size for (var)binary columns
163
create table t1(f1 varbinary(32), f2 varbinary(64));
165
select character_maximum_length, character_octet_length
166
from data_dictionary.columns where table_name='t1';
170
## Bug#15307 GROUP_CONCAT() with ORDER BY returns empty set on information_schema
172
select column_type, group_concat(table_schema, '.', table_name), count(*) as num
173
from data_dictionary.columns where
174
table_schema='data_dictionary' and
175
(column_type = 'varchar(7)' or column_type = 'varchar(20)'
176
or column_type = 'varchar(27)')
177
group by column_type order by column_type, num;
180
# Bug#19236 bad COLUMNS.CHARACTER_MAXIMUM_LENGHT and CHARACTER_OCTET_LENGTH
182
create table t1(f1 char(1) not null, f2 char(9) not null);
184
select CHARACTER_MAXIMUM_LENGTH, CHARACTER_OCTET_LENGTH from
185
data_dictionary.columns where table_schema='test' and table_name = 't1';
189
# Bug#19599 duplication of information_schema column value in a CONCAT expr with user var
192
create table t1(f1 char(5));
193
create table t2(f1 char(5));
195
select concat(@a, table_name), @a, table_name
196
from data_dictionary.tables where table_schema = 'test';
200
# Bug#18925: subqueries with MIN/MAX functions on INFORMARTION_SCHEMA
203
SELECT t.table_name, c1.column_name
204
FROM data_dictionary.tables t
206
data_dictionary.columns c1
207
ON t.table_schema = c1.table_schema AND
208
t.table_name = c1.table_name
209
WHERE t.table_schema = 'data_dictionary' AND
210
c1.ordinal_position =
211
( SELECT COALESCE(MIN(c2.ordinal_position),1)
212
FROM data_dictionary.columns c2
213
WHERE c2.table_schema = t.table_schema AND
214
c2.table_name = t.table_name AND
215
c2.column_name LIKE '%SCHEMA%'
217
AND t.table_name NOT LIKE 'falcon%'
218
ORDER BY t.table_name, c1.column_name;
220
SELECT t.table_name, c1.column_name
221
FROM data_dictionary.tables t
223
data_dictionary.columns c1
224
ON t.table_schema = c1.table_schema AND
225
t.table_name = c1.table_name
226
WHERE t.table_schema = 'data_dictionary' AND
227
c1.ordinal_position =
228
( SELECT COALESCE(MIN(c2.ordinal_position),1)
229
FROM data_dictionary.columns c2
230
WHERE c2.table_schema = 'data_dictionary' AND
231
c2.table_name = t.table_name AND
232
c2.column_name LIKE '%SCHEMA%'
234
AND t.table_name NOT LIKE 'falcon%'
235
ORDER BY t.table_name, c1.column_name;
238
# Bug#21231: query with a simple non-correlated subquery over
239
# INFORMARTION_SCHEMA.TABLES
242
SELECT MAX(table_name) FROM data_dictionary.tables;
243
SELECT table_name from data_dictionary.tables
244
WHERE table_name=(SELECT MAX(table_name)
245
FROM data_dictionary.tables)
248
# Bug#23299 Some queries against INFORMATION_SCHEMA with subqueries fail
250
create table t1 (f1 int);
251
create table t2 (f1 int, f2 int);
253
#select table_name from data_dictionary.tables
254
#where table_schema = 'test' and table_name not in
255
#(select table_name from data_dictionary.columns
256
# where table_schema = 'test' and column_name = 'f3')
257
#ORDER BY table_name;
263
# Bug#24630 Subselect query crashes mysqld
266
select 1 as f1 from data_dictionary.tables where "CHARACTER_SETS"=
267
(select cast(table_name as char) from data_dictionary.tables WHERE TABLE_SCHEMA=schema()
268
AND TABLE_NAME = "CHARACTER_SETS"
269
order by table_name limit 1) AND TABLE_SCHEMA=schema() limit 1;
271
select t.table_name, group_concat(t.table_schema, '.', t.table_name),
273
from data_dictionary.tables t
274
inner join data_dictionary.columns c1
275
on t.table_schema = c1.table_schema AND t.table_name = c1.table_name
276
where t.table_schema = 'data_dictionary' AND
277
t.table_name not like 'falcon%' AND
278
c1.ordinal_position =
279
(select isnull(c2.column_type) -
280
isnull(group_concat(c2.table_schema, '.', c2.table_name)) +
282
from data_dictionary.columns c2 where
283
c2.table_schema='data_dictionary' and
284
(c2.column_type = 'varchar(7)' or c2.column_type = 'varchar(20)')
285
group by c2.column_type order by num limit 1)
286
group by t.table_name order by num1, t.table_name;
289
# Bug#25859 ALTER DATABASE works w/o parameters
291
--error ER_PARSE_ERROR
293
--error ER_PARSE_ERROR
297
# Bug#27747 database metadata doesn't return sufficient column default info
301
f2 varchar(50) not null,
302
f3 varchar(50) default '',
303
f4 varchar(50) default NULL,
305
f6 bigint not null default 10,
306
f7 datetime not null,
307
f8 datetime default '2006-01-01'
309
#select column_default from data_dictionary.columns where table_name= 't1' ORDER BY column_default;
310
show columns from t1;
313
SET max_heap_table_size = DEFAULT;
316
--echo End of 5.0 tests.
319
# Bug#30795 Query on data_dictionary.schemas, wrong result
322
SELECT SCHEMA_NAME FROM data_dictionary.schemas
323
WHERE SCHEMA_NAME ='data_dictionary';
326
# Bug#31381 Error in retrieving Data from INFORMATION_SCHEMA
329
SELECT TABLE_COLLATION FROM data_dictionary.tables
330
WHERE TABLE_SCHEMA='mysql' and TABLE_NAME= 'db';
333
--echo # Test that the query is visible to self and others.
337
SELECT info FROM data_dictionary.processlist WHERE id = CONNECTION_ID();
340
# do a query on the PROCESSLIST table in I_S to ensure it works correctly
343
SELECT info, command, db
344
FROM data_dictionary.processlist
345
WHERE id = CONNECTION_ID();
350
#SELECT table_schema, table_name
351
#FROM data_dictionary.tables
352
#WHERE table_schema="data_dictionary"
353
#ORDER BY table_name;