1
# check that CSV engine was compiled in, as the result of the test depends
2
# on the presence of the log tables (which are CSV-based).
3
--source include/have_csv.inc
5
# Test for information_schema.schemata &
9
DROP TABLE IF EXISTS t0,t1,t2,t3,t4,t5;
13
select * from information_schema.SCHEMATA where schema_name > 'm';
14
select schema_name from information_schema.schemata;
15
show databases like 't%';
18
# Test for information_schema.tables &
21
create database mysqltest;
22
create table mysqltest.t1(a int, b VARCHAR(30), KEY string_data (b));
23
create table test.t2(a int);
24
create table t3(a int, KEY a_data (a));
25
create table mysqltest.t4(a int);
26
create table t5 (id int auto_increment primary key);
27
insert into t5 values (10);
29
select table_name from information_schema.TABLES
30
where table_schema = "mysqltest" and table_name like "t%";
32
select * from information_schema.STATISTICS where TABLE_SCHEMA = "mysqltest";
34
show tables like 't%';
35
--replace_column 8 # 12 # 13 #
37
show full columns from t3 like "a%";
38
select * from information_schema.COLUMNS where table_name="t1"
41
connect (user3,localhost,mysqltest_2,,);
43
select table_name, column_name, privileges from information_schema.columns
44
where table_schema = 'mysqltest' and table_name = 't1';
45
show columns from mysqltest.t1;
46
connect (user4,localhost,mysqltest_3,,mysqltest);
50
drop tables mysqltest.t4, mysqltest.t1, t2, t3, t5;
51
drop database mysqltest;
53
# Test for information_schema.CHARACTER_SETS &
56
select * from information_schema.CHARACTER_SETS
57
where CHARACTER_SET_NAME like 'latin1%';
59
# Test for information_schema.COLLATIONS &
63
select * from information_schema.COLLATIONS
64
where COLLATION_NAME like 'latin1%';
66
select * from information_schema.COLLATION_CHARACTER_SET_APPLICABILITY
67
where COLLATION_NAME like 'latin1%';
70
# Bug#7213: information_schema: redundant non-standard TABLE_NAMES table
73
select * from information_schema.table_names;
76
# Bug#2719 information_schema: errors in "columns"
78
select column_type from information_schema.columns
79
where table_schema="information_schema" and table_name="COLUMNS" and
80
(column_name="character_set_name" or column_name="collation_name");
83
# Bug#2718 information_schema: errors in "tables"
85
select TABLE_ROWS from information_schema.tables where
86
table_schema="information_schema" and table_name="COLUMNS";
87
select table_type from information_schema.tables
88
where table_schema="mysql" and table_name="user";
91
# Bug #7981:SHOW GLOBAL STATUS crashes server
93
# We don't actually care about the value, just that it doesn't crash.
95
show global status like "Threads_running";
98
# Bug #7215 information_schema: columns are longtext instead of varchar
99
# Bug #7217 information_schema: columns are varbinary() instead of timestamp
101
select table_schema,table_name, column_name from
102
information_schema.columns
103
where data_type = 'longtext';
104
select table_name, column_name, data_type from information_schema.columns
105
where data_type = 'datetime';
108
# Bug #8164 subquery with INFORMATION_SCHEMA.COLUMNS, 100 % CPU
110
SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES A
112
(SELECT * FROM INFORMATION_SCHEMA.COLUMNS B
113
WHERE A.TABLE_SCHEMA = B.TABLE_SCHEMA
114
AND A.TABLE_NAME = B.TABLE_NAME);
117
# Bug #9344 INFORMATION_SCHEMA, wrong content, numeric columns
124
x_decimal DECIMAL(5,3),
125
x_numeric NUMERIC(5,3),
128
x_double_precision DOUBLE PRECISION );
129
SELECT COLUMN_NAME, CHARACTER_MAXIMUM_LENGTH, CHARACTER_OCTET_LENGTH
130
FROM INFORMATION_SCHEMA.COLUMNS
131
WHERE TABLE_NAME= 't1';
135
# Bug #9404 information_schema: Weird error messages
136
# with SELECT SUM() ... GROUP BY queries
138
SELECT table_schema, count(*) FROM information_schema.TABLES
139
WHERE table_name NOT LIKE 'ndb_%' AND table_name NOT LIKE 'falcon%' GROUP BY TABLE_SCHEMA;
142
# Bug #9434 SHOW CREATE DATABASE information_schema;
144
show create database information_schema;
147
# Bug #11057 information_schema: columns table has some questionable contents
148
# Bug #12301 information_schema: NUMERIC_SCALE must be 0 for integer columns
150
create table t1(f1 LONGBLOB, f2 LONGTEXT);
151
select column_name,data_type,CHARACTER_OCTET_LENGTH,
152
CHARACTER_MAXIMUM_LENGTH
153
from information_schema.columns
154
where table_name='t1';
156
create table t1(f1 int, f2 int, f3 BIGINT, f4 int,
157
f5 BIGINT, f6 int, f7 int);
158
select column_name, NUMERIC_PRECISION, NUMERIC_SCALE
159
from information_schema.columns
160
where table_name='t1';
164
# Bug#12518 COLUMN_DEFAULT has wrong value if NOT NULL is set
166
create table t1 (a int not null, b int);
167
use information_schema;
168
select column_name, column_default from columns
169
where table_schema='test' and table_name='t1';
171
show columns from t1;
175
# Bug #9846 Inappropriate error displayed while dropping table from 'INFORMATION_SCHEMA'
177
--error ER_PARSE_ERROR
178
alter database information_schema;
179
--error ER_DBACCESS_DENIED_ERROR
180
drop database information_schema;
182
drop table information_schema.tables;
184
alter table information_schema.tables;
186
# Bug #9683 INFORMATION_SCH: Creation of temporary table allowed in Information_schema DB
188
use information_schema;
190
create temporary table schemata(f1 char(10));
193
# Bug#14089 FROM list subquery always fails when information_schema is current database
196
create table t1(id int);
197
insert into t1(id) values (1);
198
select 1 from (select 1 from test.t1) a;
199
use information_schema;
200
select 1 from (select 1 from test.t1) a;
204
# Bug #14387 SHOW COLUMNS doesn't work on temporary tables
205
# Bug #15224 SHOW INDEX from temporary table doesn't work
206
# Bug #12770 DESC cannot display the info. about temporary table
208
create temporary table t1(f1 int, index(f1));
209
show columns from t1;
211
show indexes from t1;
215
# Bug#14271 I_S: columns has no size for (var)binary columns
217
create table t1(f1 varbinary(32), f2 varbinary(64));
218
select character_maximum_length, character_octet_length
219
from information_schema.columns where table_name='t1';
223
# Bug#15307 GROUP_CONCAT() with ORDER BY returns empty set on information_schema
225
select column_type, group_concat(table_schema, '.', table_name), count(*) as num
226
from information_schema.columns where
227
table_schema='information_schema' and
228
(column_type = 'varchar(7)' or column_type = 'varchar(20)'
229
or column_type = 'varchar(27)')
230
group by column_type order by num;
233
# Bug#19236 bad COLUMNS.CHARACTER_MAXIMUM_LENGHT and CHARACTER_OCTET_LENGTH
235
create table t1(f1 char(1) not null, f2 char(9) not null);
236
select CHARACTER_MAXIMUM_LENGTH, CHARACTER_OCTET_LENGTH from
237
information_schema.columns where table_schema='test' and table_name = 't1';
241
# Bug#19599 duplication of information_schema column value in a CONCAT expr with user var
244
create table t1(f1 char(5));
245
create table t2(f1 char(5));
246
select concat(@a, table_name), @a, table_name
247
from information_schema.tables where table_schema = 'test';
251
# Bug#18925: subqueries with MIN/MAX functions on INFORMARTION_SCHEMA
254
SELECT t.table_name, c1.column_name
255
FROM information_schema.tables t
257
information_schema.columns c1
258
ON t.table_schema = c1.table_schema AND
259
t.table_name = c1.table_name
260
WHERE t.table_schema = 'information_schema' AND
261
c1.ordinal_position =
262
( SELECT COALESCE(MIN(c2.ordinal_position),1)
263
FROM information_schema.columns c2
264
WHERE c2.table_schema = t.table_schema AND
265
c2.table_name = t.table_name AND
266
c2.column_name LIKE '%SCHEMA%'
268
AND t.table_name NOT LIKE 'falcon%';
269
SELECT t.table_name, c1.column_name
270
FROM information_schema.tables t
272
information_schema.columns c1
273
ON t.table_schema = c1.table_schema AND
274
t.table_name = c1.table_name
275
WHERE t.table_schema = 'information_schema' AND
276
c1.ordinal_position =
277
( SELECT COALESCE(MIN(c2.ordinal_position),1)
278
FROM information_schema.columns c2
279
WHERE c2.table_schema = 'information_schema' AND
280
c2.table_name = t.table_name AND
281
c2.column_name LIKE '%SCHEMA%'
283
AND t.table_name NOT LIKE 'falcon%';
286
# Bug#21231: query with a simple non-correlated subquery over
287
# INFORMARTION_SCHEMA.TABLES
290
SELECT MAX(table_name) FROM information_schema.tables;
291
SELECT table_name from information_schema.tables
292
WHERE table_name=(SELECT MAX(table_name)
293
FROM information_schema.tables);
295
# Bug#23299 Some queries against INFORMATION_SCHEMA with subqueries fail
297
create table t1 (f1 int);
298
create table t2 (f1 int, f2 int);
300
select table_name from information_schema.tables
301
where table_schema = 'test' and table_name not in
302
(select table_name from information_schema.columns
303
where table_schema = 'test' and column_name = 'f3');
308
# Bug#24630 Subselect query crashes mysqld
310
select 1 as f1 from information_schema.tables where "CHARACTER_SETS"=
311
(select cast(table_name as char) from information_schema.tables
312
order by table_name limit 1) limit 1;
314
select t.table_name, group_concat(t.table_schema, '.', t.table_name),
316
from information_schema.tables t
317
inner join information_schema.columns c1
318
on t.table_schema = c1.table_schema AND t.table_name = c1.table_name
319
where t.table_schema = 'information_schema' AND
320
t.table_name not like 'falcon%' AND
321
c1.ordinal_position =
322
(select isnull(c2.column_type) -
323
isnull(group_concat(c2.table_schema, '.', c2.table_name)) +
325
from information_schema.columns c2 where
326
c2.table_schema='information_schema' and
327
(c2.column_type = 'varchar(7)' or c2.column_type = 'varchar(20)')
328
group by c2.column_type order by num limit 1)
329
group by t.table_name order by num1, t.table_name;
332
# Bug#25859 ALTER DATABASE works w/o parameters
334
--error ER_PARSE_ERROR
336
--error ER_PARSE_ERROR
340
# Bug#27747 database metadata doesn't return sufficient column default info
344
f2 varchar(50) not null,
345
f3 varchar(50) default '',
346
f4 varchar(50) default NULL,
348
f6 bigint not null default 10,
349
f7 datetime not null,
350
f8 datetime default '2006-01-01'
352
select column_default from information_schema.columns where table_name= 't1';
353
show columns from t1;
357
# Bug#30079 A check for "hidden" I_S tables is flawed
360
show fields from information_schema.table_names;
362
show keys from information_schema.table_names;
364
SET max_heap_table_size = DEFAULT;
367
--echo End of 5.0 tests.
370
# Bug#30795 Query on INFORMATION_SCHEMA.SCHEMATA, wrong result
372
SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA
373
WHERE SCHEMA_NAME ='information_schema';
376
# Bug#31381 Error in retrieving Data from INFORMATION_SCHEMA
378
SELECT TABLE_COLLATION FROM INFORMATION_SCHEMA.TABLES
379
WHERE TABLE_SCHEMA='mysql' and TABLE_NAME= 'db';
382
# Bug#31633 Information schema = NULL queries crash the server
384
select * from information_schema.columns where table_schema = NULL;
385
select * from `information_schema`.`COLUMNS` where `TABLE_NAME` = NULL;
386
select * from `information_schema`.`KEY_COLUMN_USAGE` where `TABLE_SCHEMA` = NULL;
387
select * from `information_schema`.`KEY_COLUMN_USAGE` where `TABLE_NAME` = NULL;
388
select * from `information_schema`.`REFERENTIAL_CONSTRAINTS` where `CONSTRAINT_SCHEMA` = NULL;
389
select * from `information_schema`.`REFERENTIAL_CONSTRAINTS` where `TABLE_NAME` = NULL;
390
select * from information_schema.schemata where schema_name = NULL;
391
select * from `information_schema`.`STATISTICS` where `TABLE_SCHEMA` = NULL;
392
select * from `information_schema`.`STATISTICS` where `TABLE_NAME` = NULL;
393
select * from information_schema.tables where table_schema = NULL;
394
select * from information_schema.tables where table_catalog = NULL;
395
select * from information_schema.tables where table_name = NULL;
396
select * from `information_schema`.`TABLE_CONSTRAINTS` where `TABLE_SCHEMA` = NULL;
397
select * from `information_schema`.`TABLE_CONSTRAINTS` where `TABLE_NAME` = NULL;