1
# This is the test for Information Schema System Table View
2
# that displays the InnoDB system table content through
3
# information schema tables.
5
--source include/have_innodb.inc
7
SELECT * FROM DATA_DICTIONARY.INNODB_SYS_TABLES;
9
SELECT * FROM DATA_DICTIONARY.INNODB_SYS_INDEXES;
11
SELECT * FROM DATA_DICTIONARY.INNODB_SYS_COLUMNS;
13
SELECT * FROM DATA_DICTIONARY.INNODB_SYS_FIELDS;
15
SELECT * FROM DATA_DICTIONARY.INNODB_SYS_FOREIGN;
17
SELECT * FROM DATA_DICTIONARY.INNODB_SYS_FOREIGN_COLS;
19
SELECT * FROM DATA_DICTIONARY.INNODB_SYS_TABLESTATS;
21
# Create a foreign key constraint, and verify the information
22
# in DATA_DICTIONARY.INNODB_SYS_FOREIGN and
23
# DATA_DICTIONARY.INNODB_SYS_FOREIGN_COLS
24
CREATE TABLE parent (id INT NOT NULL,
25
PRIMARY KEY (id)) ENGINE=INNODB;
27
CREATE TABLE child (id INT, parent_id INT,
28
INDEX par_ind (parent_id),
29
CONSTRAINT constraint_test
30
FOREIGN KEY (parent_id) REFERENCES parent(id)
31
ON DELETE CASCADE) ENGINE=INNODB;
33
SELECT * FROM DATA_DICTIONARY.INNODB_SYS_FOREIGN;
35
SELECT * FROM DATA_DICTIONARY.INNODB_SYS_FOREIGN_COLS;
37
# Insert a row in the table "parent", and see whether that reflected in
38
# INNODB_SYS_TABLESTATS
39
INSERT INTO parent VALUES(1);
41
SELECT name, num_rows, handles_opened
42
FROM DATA_DICTIONARY.INNODB_SYS_TABLESTATS
43
WHERE name LIKE "%parent";
45
SELECT NAME, FLAG, N_COLS, SPACE FROM DATA_DICTIONARY.INNODB_SYS_TABLES;
48
from DATA_DICTIONARY.INNODB_SYS_INDEXES
49
WHERE table_id In (SELECT table_id from
50
DATA_DICTIONARY.INNODB_SYS_TABLES
51
WHERE name LIKE "%parent%");
54
from DATA_DICTIONARY.INNODB_SYS_INDEXES
55
WHERE table_id In (SELECT table_id from
56
DATA_DICTIONARY.INNODB_SYS_TABLES
57
WHERE name LIKE "%child%");
59
SELECT name, pos, mtype, len
60
from DATA_DICTIONARY.INNODB_SYS_COLUMNS
61
WHERE table_id In (SELECT table_id from
62
DATA_DICTIONARY.INNODB_SYS_TABLES
63
WHERE name LIKE "%child%");
69
# Create table with 2 columns in the foreign key constraint
70
CREATE TABLE parent (id INT NOT NULL, newid INT NOT NULL,
71
PRIMARY KEY (id, newid)) ENGINE=INNODB;
73
CREATE TABLE child (id INT, parent_id INT,
74
INDEX par_ind (parent_id),
75
CONSTRAINT constraint_test
76
FOREIGN KEY (id, parent_id) REFERENCES parent(id, newid)
77
ON DELETE CASCADE) ENGINE=INNODB;
79
SELECT * FROM DATA_DICTIONARY.INNODB_SYS_FOREIGN;
81
SELECT * FROM DATA_DICTIONARY.INNODB_SYS_FOREIGN_COLS;
83
INSERT INTO parent VALUES(1, 9);
85
# Nested query will open the table handle twice
86
SELECT * FROM parent WHERE id IN (SELECT id FROM parent);
88
SELECT name, num_rows, handles_opened
89
FROM DATA_DICTIONARY.INNODB_SYS_TABLESTATS
90
WHERE name LIKE "%parent";