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
show variables where variable_name like "skip_show_database";
16
select * from information_schema.SCHEMATA where schema_name > 'm';
17
select schema_name from information_schema.schemata;
18
show databases like 't%';
20
show databases where `database` = 't%';
22
# Test for information_schema.tables &
25
create database mysqltest;
26
create table mysqltest.t1(a int, b VARCHAR(30), KEY string_data (b));
27
create table test.t2(a int);
28
create table t3(a int, KEY a_data (a));
29
create table mysqltest.t4(a int);
30
create table t5 (id int auto_increment primary key);
31
insert into t5 values (10);
33
select table_name from information_schema.TABLES
34
where table_schema = "mysqltest" and table_name like "t%";
36
select * from information_schema.STATISTICS where TABLE_SCHEMA = "mysqltest";
37
show keys from t3 where Key_name = "a_data";
39
show tables like 't%';
40
--replace_column 8 # 12 # 13 #
42
show full columns from t3 like "a%";
43
show full columns from mysql.db like "Insert%";
44
select * from information_schema.COLUMNS where table_name="t1"
46
show columns from mysqltest.t1 where field like "%a%";
48
connect (user3,localhost,mysqltest_2,,);
50
select table_name, column_name, privileges from information_schema.columns
51
where table_schema = 'mysqltest' and table_name = 't1';
52
show columns from mysqltest.t1;
53
connect (user4,localhost,mysqltest_3,,mysqltest);
57
drop tables mysqltest.t4, mysqltest.t1, t2, t3, t5;
58
drop database mysqltest;
60
# Test for information_schema.CHARACTER_SETS &
63
select * from information_schema.CHARACTER_SETS
64
where CHARACTER_SET_NAME like 'latin1%';
65
SHOW CHARACTER SET LIKE 'latin1%';
66
SHOW CHARACTER SET WHERE charset like 'latin1%';
68
# Test for information_schema.COLLATIONS &
72
select * from information_schema.COLLATIONS
73
where COLLATION_NAME like 'latin1%';
75
SHOW COLLATION LIKE 'latin1%';
77
SHOW COLLATION WHERE collation like 'latin1%';
79
select * from information_schema.COLLATION_CHARACTER_SET_APPLICABILITY
80
where COLLATION_NAME like 'latin1%';
83
# Bug#7213: information_schema: redundant non-standard TABLE_NAMES table
86
select * from information_schema.table_names;
89
# Bug#2719 information_schema: errors in "columns"
91
select column_type from information_schema.columns
92
where table_schema="information_schema" and table_name="COLUMNS" and
93
(column_name="character_set_name" or column_name="collation_name");
96
# Bug#2718 information_schema: errors in "tables"
98
select TABLE_ROWS from information_schema.tables where
99
table_schema="information_schema" and table_name="COLUMNS";
100
select table_type from information_schema.tables
101
where table_schema="mysql" and table_name="user";
103
# test for 'show open tables ... where'
104
show open tables where `table` like "user";
105
# test for 'show status ... where'
106
show status where variable_name like "%database%";
107
# test for 'show variables ... where'
108
show variables where variable_name like "skip_show_databas";
111
# Bug #7981:SHOW GLOBAL STATUS crashes server
113
# We don't actually care about the value, just that it doesn't crash.
115
show global status like "Threads_running";
118
# Bug #7215 information_schema: columns are longtext instead of varchar
119
# Bug #7217 information_schema: columns are varbinary() instead of timestamp
121
select table_schema,table_name, column_name from
122
information_schema.columns
123
where data_type = 'longtext';
124
select table_name, column_name, data_type from information_schema.columns
125
where data_type = 'datetime';
128
# Bug #8164 subquery with INFORMATION_SCHEMA.COLUMNS, 100 % CPU
130
SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES A
132
(SELECT * FROM INFORMATION_SCHEMA.COLUMNS B
133
WHERE A.TABLE_SCHEMA = B.TABLE_SCHEMA
134
AND A.TABLE_NAME = B.TABLE_NAME);
137
# Bug #9344 INFORMATION_SCHEMA, wrong content, numeric columns
144
x_decimal DECIMAL(5,3),
145
x_numeric NUMERIC(5,3),
148
x_double_precision DOUBLE PRECISION );
149
SELECT COLUMN_NAME, CHARACTER_MAXIMUM_LENGTH, CHARACTER_OCTET_LENGTH
150
FROM INFORMATION_SCHEMA.COLUMNS
151
WHERE TABLE_NAME= 't1';
155
# Bug #9404 information_schema: Weird error messages
156
# with SELECT SUM() ... GROUP BY queries
158
SELECT table_schema, count(*) FROM information_schema.TABLES
159
WHERE table_name NOT LIKE 'ndb_%' AND table_name NOT LIKE 'falcon%' GROUP BY TABLE_SCHEMA;
162
# Bug #9434 SHOW CREATE DATABASE information_schema;
164
show create database information_schema;
167
# Bug #11057 information_schema: columns table has some questionable contents
168
# Bug #12301 information_schema: NUMERIC_SCALE must be 0 for integer columns
170
create table t1(f1 LONGBLOB, f2 LONGTEXT);
171
select column_name,data_type,CHARACTER_OCTET_LENGTH,
172
CHARACTER_MAXIMUM_LENGTH
173
from information_schema.columns
174
where table_name='t1';
176
create table t1(f1 tinyint, f2 SMALLINT, f3 mediumint, f4 int,
177
f5 BIGINT, f6 BIT, f7 bit(64));
178
select column_name, NUMERIC_PRECISION, NUMERIC_SCALE
179
from information_schema.columns
180
where table_name='t1';
184
# Bug#12518 COLUMN_DEFAULT has wrong value if NOT NULL is set
186
create table t1 (a int not null, b int);
187
use information_schema;
188
select column_name, column_default from columns
189
where table_schema='test' and table_name='t1';
191
show columns from t1;
195
# Bug #12636: SHOW TABLE STATUS with where condition containing a subquery
196
# over information schema
199
CREATE TABLE t1 (a int);
200
CREATE TABLE t2 (b int);
202
--replace_column 8 # 12 # 13 #
203
SHOW TABLE STATUS FROM test
204
WHERE name IN ( SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
205
WHERE TABLE_SCHEMA='test' AND TABLE_TYPE='BASE TABLE');
210
# Bug #9846 Inappropriate error displayed while dropping table from 'INFORMATION_SCHEMA'
212
--error ER_PARSE_ERROR
213
alter database information_schema;
214
--error ER_DBACCESS_DENIED_ERROR
215
drop database information_schema;
217
drop table information_schema.tables;
219
alter table information_schema.tables;
221
# Bug #9683 INFORMATION_SCH: Creation of temporary table allowed in Information_schema DB
223
use information_schema;
225
create temporary table schemata(f1 char(10));
228
# Bug#14089 FROM list subquery always fails when information_schema is current database
231
create table t1(id int);
232
insert into t1(id) values (1);
233
select 1 from (select 1 from test.t1) a;
234
use information_schema;
235
select 1 from (select 1 from test.t1) a;
239
# Bug #14387 SHOW COLUMNS doesn't work on temporary tables
240
# Bug #15224 SHOW INDEX from temporary table doesn't work
241
# Bug #12770 DESC cannot display the info. about temporary table
243
create temporary table t1(f1 int, index(f1));
244
show columns from t1;
246
show indexes from t1;
250
# Bug#14271 I_S: columns has no size for (var)binary columns
252
create table t1(f1 binary(32), f2 varbinary(64));
253
select character_maximum_length, character_octet_length
254
from information_schema.columns where table_name='t1';
258
# Bug#15307 GROUP_CONCAT() with ORDER BY returns empty set on information_schema
260
select column_type, group_concat(table_schema, '.', table_name), count(*) as num
261
from information_schema.columns where
262
table_schema='information_schema' and
263
(column_type = 'varchar(7)' or column_type = 'varchar(20)'
264
or column_type = 'varchar(27)')
265
group by column_type order by num;
268
# Bug#19236 bad COLUMNS.CHARACTER_MAXIMUM_LENGHT and CHARACTER_OCTET_LENGTH
270
create table t1(f1 char(1) not null, f2 char(9) not null)
271
default character set utf8;
272
select CHARACTER_MAXIMUM_LENGTH, CHARACTER_OCTET_LENGTH from
273
information_schema.columns where table_schema='test' and table_name = 't1';
277
# Bug#19599 duplication of information_schema column value in a CONCAT expr with user var
280
create table t1(f1 char(5));
281
create table t2(f1 char(5));
282
select concat(@a, table_name), @a, table_name
283
from information_schema.tables where table_schema = 'test';
287
# Bug#18925: subqueries with MIN/MAX functions on INFORMARTION_SCHEMA
290
SELECT t.table_name, c1.column_name
291
FROM information_schema.tables t
293
information_schema.columns c1
294
ON t.table_schema = c1.table_schema AND
295
t.table_name = c1.table_name
296
WHERE t.table_schema = 'information_schema' AND
297
c1.ordinal_position =
298
( SELECT COALESCE(MIN(c2.ordinal_position),1)
299
FROM information_schema.columns c2
300
WHERE c2.table_schema = t.table_schema AND
301
c2.table_name = t.table_name AND
302
c2.column_name LIKE '%SCHEMA%'
304
AND t.table_name NOT LIKE 'falcon%';
305
SELECT t.table_name, c1.column_name
306
FROM information_schema.tables t
308
information_schema.columns c1
309
ON t.table_schema = c1.table_schema AND
310
t.table_name = c1.table_name
311
WHERE t.table_schema = 'information_schema' AND
312
c1.ordinal_position =
313
( SELECT COALESCE(MIN(c2.ordinal_position),1)
314
FROM information_schema.columns c2
315
WHERE c2.table_schema = 'information_schema' AND
316
c2.table_name = t.table_name AND
317
c2.column_name LIKE '%SCHEMA%'
319
AND t.table_name NOT LIKE 'falcon%';
322
# Bug#21231: query with a simple non-correlated subquery over
323
# INFORMARTION_SCHEMA.TABLES
326
SELECT MAX(table_name) FROM information_schema.tables;
327
SELECT table_name from information_schema.tables
328
WHERE table_name=(SELECT MAX(table_name)
329
FROM information_schema.tables);
331
# Bug#23299 Some queries against INFORMATION_SCHEMA with subqueries fail
333
create table t1 (f1 int(11));
334
create table t2 (f1 int(11), f2 int(11));
336
select table_name from information_schema.tables
337
where table_schema = 'test' and table_name not in
338
(select table_name from information_schema.columns
339
where table_schema = 'test' and column_name = 'f3');
344
# Bug#24630 Subselect query crashes mysqld
346
select 1 as f1 from information_schema.tables where "CHARACTER_SETS"=
347
(select cast(table_name as char) from information_schema.tables
348
order by table_name limit 1) limit 1;
350
select t.table_name, group_concat(t.table_schema, '.', t.table_name),
352
from information_schema.tables t
353
inner join information_schema.columns c1
354
on t.table_schema = c1.table_schema AND t.table_name = c1.table_name
355
where t.table_schema = 'information_schema' AND
356
t.table_name not like 'falcon%' AND
357
c1.ordinal_position =
358
(select isnull(c2.column_type) -
359
isnull(group_concat(c2.table_schema, '.', c2.table_name)) +
361
from information_schema.columns c2 where
362
c2.table_schema='information_schema' and
363
(c2.column_type = 'varchar(7)' or c2.column_type = 'varchar(20)')
364
group by c2.column_type order by num limit 1)
365
group by t.table_name order by num1, t.table_name;
368
# Bug#25859 ALTER DATABASE works w/o parameters
370
--error ER_PARSE_ERROR
372
--error ER_PARSE_ERROR
376
# Bug#27747 database metadata doesn't return sufficient column default info
380
f2 varchar(50) not null,
381
f3 varchar(50) default '',
382
f4 varchar(50) default NULL,
384
f6 bigint not null default 10,
385
f7 datetime not null,
386
f8 datetime default '2006-01-01'
388
select column_default from information_schema.columns where table_name= 't1';
389
show columns from t1;
393
# Bug#30079 A check for "hidden" I_S tables is flawed
396
show fields from information_schema.table_names;
398
show keys from information_schema.table_names;
400
SET max_heap_table_size = DEFAULT;
403
--echo End of 5.0 tests.
406
# Bug#30795 Query on INFORMATION_SCHEMA.SCHEMATA, wrong result
408
SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA
409
WHERE SCHEMA_NAME ='information_schema';
412
# Bug#31381 Error in retrieving Data from INFORMATION_SCHEMA
414
SELECT TABLE_COLLATION FROM INFORMATION_SCHEMA.TABLES
415
WHERE TABLE_SCHEMA='mysql' and TABLE_NAME= 'db';
418
# Bug#31633 Information schema = NULL queries crash the server
420
select * from information_schema.columns where table_schema = NULL;
421
select * from `information_schema`.`COLUMNS` where `TABLE_NAME` = NULL;
422
select * from `information_schema`.`KEY_COLUMN_USAGE` where `TABLE_SCHEMA` = NULL;
423
select * from `information_schema`.`KEY_COLUMN_USAGE` where `TABLE_NAME` = NULL;
424
select * from `information_schema`.`REFERENTIAL_CONSTRAINTS` where `CONSTRAINT_SCHEMA` = NULL;
425
select * from `information_schema`.`REFERENTIAL_CONSTRAINTS` where `TABLE_NAME` = NULL;
426
select * from information_schema.schemata where schema_name = NULL;
427
select * from `information_schema`.`STATISTICS` where `TABLE_SCHEMA` = NULL;
428
select * from `information_schema`.`STATISTICS` where `TABLE_NAME` = NULL;
429
select * from information_schema.tables where table_schema = NULL;
430
select * from information_schema.tables where table_catalog = NULL;
431
select * from information_schema.tables where table_name = NULL;
432
select * from `information_schema`.`TABLE_CONSTRAINTS` where `TABLE_SCHEMA` = NULL;
433
select * from `information_schema`.`TABLE_CONSTRAINTS` where `TABLE_NAME` = NULL;