Browse Source
Temporarily backout the Information Schema System Table Information Schema
Temporarily backout the Information Schema System Table Information Schema
interface related change, will put back in once gain approval.pull/374/head
7 changed files with 7 additions and 1871 deletions
-
26mysql-test/r/mysqlshow.result
-
110mysql-test/suite/innodb/r/innodb-system-table-view.result
-
3mysql-test/suite/innodb/t/innodb-system-table-view-master.opt
-
94mysql-test/suite/innodb/t/innodb-system-table-view.test
-
10storage/innobase/handler/ha_innodb.cc
-
1628storage/innobase/handler/i_s.cc
-
7storage/innobase/handler/i_s.h
@ -1,110 +0,0 @@ |
|||
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES; |
|||
TABLE_ID NAME FLAG N_COLS SPACE |
|||
11 SYS_FOREIGN 0 7 0 |
|||
12 SYS_FOREIGN_COLS 0 7 0 |
|||
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_INDEXES; |
|||
INDEX_ID NAME TABLE_ID TYPE N_FIELDS PAGE_NO SPACE |
|||
11 ID_IND 11 3 1 302 0 |
|||
12 FOR_IND 11 0 1 303 0 |
|||
13 REF_IND 11 0 1 304 0 |
|||
14 ID_IND 12 3 2 305 0 |
|||
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_COLUMNS; |
|||
TABLE_ID NAME POS MTYPE PRTYPE LEN |
|||
11 ID 0 1 524292 0 |
|||
11 FOR_NAME 1 1 524292 0 |
|||
11 REF_NAME 2 1 524292 0 |
|||
11 N_COLS 3 6 0 4 |
|||
12 ID 0 1 524292 0 |
|||
12 POS 1 6 0 4 |
|||
12 FOR_COL_NAME 2 1 524292 0 |
|||
12 REF_COL_NAME 3 1 524292 0 |
|||
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_FIELDS; |
|||
INDEX_ID NAME POS |
|||
11 ID 0 |
|||
12 FOR_NAME 0 |
|||
13 REF_NAME 0 |
|||
14 ID 0 |
|||
14 POS 1 |
|||
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_FOREIGN; |
|||
ID FOR_NAME REF_NAME N_COLS TYPE |
|||
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_FOREIGN_COLS; |
|||
ID FOR_COL_NAME REF_COL_NAME POS |
|||
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS; |
|||
TABLE_ID NAME STATS_INITIALIZED NUM_ROWS CLUST_INDEX_SIZE OTHER_INDEX_SIZE MODIFIED_COUNTER AUTOINC MYSQL_HANDLES_OPENED |
|||
11 SYS_FOREIGN Uninitialized 0 0 0 0 0 0 |
|||
12 SYS_FOREIGN_COLS Uninitialized 0 0 0 0 0 0 |
|||
CREATE TABLE parent (id INT NOT NULL, |
|||
PRIMARY KEY (id)) ENGINE=INNODB; |
|||
CREATE TABLE child (id INT, parent_id INT, |
|||
INDEX par_ind (parent_id), |
|||
CONSTRAINT constraint_test |
|||
FOREIGN KEY (parent_id) REFERENCES parent(id) |
|||
ON DELETE CASCADE) ENGINE=INNODB; |
|||
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_FOREIGN; |
|||
ID FOR_NAME REF_NAME N_COLS TYPE |
|||
test/constraint_test test/child test/parent 1 1 |
|||
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_FOREIGN_COLS; |
|||
ID FOR_COL_NAME REF_COL_NAME POS |
|||
test/constraint_test parent_id id 0 |
|||
INSERT INTO parent VALUES(1); |
|||
SELECT name, num_rows, mysql_handles_opened |
|||
FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS |
|||
WHERE name LIKE "%parent"; |
|||
name num_rows mysql_handles_opened |
|||
test/parent 1 1 |
|||
SELECT NAME, FLAG, N_COLS, SPACE FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES; |
|||
NAME FLAG N_COLS SPACE |
|||
SYS_FOREIGN 0 7 0 |
|||
SYS_FOREIGN_COLS 0 7 0 |
|||
test/child 1 5 0 |
|||
test/parent 1 4 0 |
|||
SELECT name, n_fields |
|||
from INFORMATION_SCHEMA.INNODB_SYS_INDEXES |
|||
WHERE table_id In (SELECT table_id from |
|||
INFORMATION_SCHEMA.INNODB_SYS_TABLES |
|||
WHERE name LIKE "%parent%"); |
|||
name n_fields |
|||
PRIMARY 1 |
|||
SELECT name, n_fields |
|||
from INFORMATION_SCHEMA.INNODB_SYS_INDEXES |
|||
WHERE table_id In (SELECT table_id from |
|||
INFORMATION_SCHEMA.INNODB_SYS_TABLES |
|||
WHERE name LIKE "%child%"); |
|||
name n_fields |
|||
GEN_CLUST_INDEX 0 |
|||
par_ind 1 |
|||
SELECT name, pos, mtype, len |
|||
from INFORMATION_SCHEMA.INNODB_SYS_COLUMNS |
|||
WHERE table_id In (SELECT table_id from |
|||
INFORMATION_SCHEMA.INNODB_SYS_TABLES |
|||
WHERE name LIKE "%child%"); |
|||
name pos mtype len |
|||
id 0 6 4 |
|||
parent_id 1 6 4 |
|||
DROP TABLE child; |
|||
DROP TABLE parent; |
|||
CREATE TABLE parent (id INT NOT NULL, newid INT NOT NULL, |
|||
PRIMARY KEY (id, newid)) ENGINE=INNODB; |
|||
CREATE TABLE child (id INT, parent_id INT, |
|||
INDEX par_ind (parent_id), |
|||
CONSTRAINT constraint_test |
|||
FOREIGN KEY (id, parent_id) REFERENCES parent(id, newid) |
|||
ON DELETE CASCADE) ENGINE=INNODB; |
|||
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_FOREIGN; |
|||
ID FOR_NAME REF_NAME N_COLS TYPE |
|||
test/constraint_test test/child test/parent 2 1 |
|||
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_FOREIGN_COLS; |
|||
ID FOR_COL_NAME REF_COL_NAME POS |
|||
test/constraint_test id id 0 |
|||
test/constraint_test parent_id newid 1 |
|||
INSERT INTO parent VALUES(1, 9); |
|||
SELECT * FROM parent WHERE id IN (SELECT id FROM parent); |
|||
id newid |
|||
1 9 |
|||
SELECT name, num_rows, mysql_handles_opened |
|||
FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS |
|||
WHERE name LIKE "%parent"; |
|||
name num_rows mysql_handles_opened |
|||
test/parent 1 2 |
|||
DROP TABLE child; |
|||
DROP TABLE parent; |
|||
@ -1,3 +0,0 @@ |
|||
--default-storage-engine=MyISAM |
|||
--innodb-strict-mode=0 |
|||
--innodb-file-per-table=0 |
|||
@ -1,94 +0,0 @@ |
|||
# This is the test for Information Schema System Table View |
|||
# that displays the InnoDB system table content through |
|||
# information schema tables. |
|||
|
|||
--source include/have_innodb.inc |
|||
|
|||
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES; |
|||
|
|||
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_INDEXES; |
|||
|
|||
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_COLUMNS; |
|||
|
|||
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_FIELDS; |
|||
|
|||
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_FOREIGN; |
|||
|
|||
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_FOREIGN_COLS; |
|||
|
|||
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS; |
|||
|
|||
# Create a foreign key constraint, and verify the information |
|||
# in INFORMATION_SCHEMA.INNODB_SYS_FOREIGN and |
|||
# INFORMATION_SCHEMA.INNODB_SYS_FOREIGN_COLS |
|||
CREATE TABLE parent (id INT NOT NULL, |
|||
PRIMARY KEY (id)) ENGINE=INNODB; |
|||
|
|||
CREATE TABLE child (id INT, parent_id INT, |
|||
INDEX par_ind (parent_id), |
|||
CONSTRAINT constraint_test |
|||
FOREIGN KEY (parent_id) REFERENCES parent(id) |
|||
ON DELETE CASCADE) ENGINE=INNODB; |
|||
|
|||
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_FOREIGN; |
|||
|
|||
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_FOREIGN_COLS; |
|||
|
|||
# Insert a row in the table "parent", and see whether that reflected in |
|||
# INNODB_SYS_TABLESTATS |
|||
INSERT INTO parent VALUES(1); |
|||
|
|||
SELECT name, num_rows, mysql_handles_opened |
|||
FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS |
|||
WHERE name LIKE "%parent"; |
|||
|
|||
SELECT NAME, FLAG, N_COLS, SPACE FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES; |
|||
|
|||
SELECT name, n_fields |
|||
from INFORMATION_SCHEMA.INNODB_SYS_INDEXES |
|||
WHERE table_id In (SELECT table_id from |
|||
INFORMATION_SCHEMA.INNODB_SYS_TABLES |
|||
WHERE name LIKE "%parent%"); |
|||
|
|||
SELECT name, n_fields |
|||
from INFORMATION_SCHEMA.INNODB_SYS_INDEXES |
|||
WHERE table_id In (SELECT table_id from |
|||
INFORMATION_SCHEMA.INNODB_SYS_TABLES |
|||
WHERE name LIKE "%child%"); |
|||
|
|||
SELECT name, pos, mtype, len |
|||
from INFORMATION_SCHEMA.INNODB_SYS_COLUMNS |
|||
WHERE table_id In (SELECT table_id from |
|||
INFORMATION_SCHEMA.INNODB_SYS_TABLES |
|||
WHERE name LIKE "%child%"); |
|||
|
|||
DROP TABLE child; |
|||
|
|||
DROP TABLE parent; |
|||
|
|||
# Create table with 2 columns in the foreign key constraint |
|||
CREATE TABLE parent (id INT NOT NULL, newid INT NOT NULL, |
|||
PRIMARY KEY (id, newid)) ENGINE=INNODB; |
|||
|
|||
CREATE TABLE child (id INT, parent_id INT, |
|||
INDEX par_ind (parent_id), |
|||
CONSTRAINT constraint_test |
|||
FOREIGN KEY (id, parent_id) REFERENCES parent(id, newid) |
|||
ON DELETE CASCADE) ENGINE=INNODB; |
|||
|
|||
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_FOREIGN; |
|||
|
|||
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_FOREIGN_COLS; |
|||
|
|||
INSERT INTO parent VALUES(1, 9); |
|||
|
|||
# Nested query will open the table handle twice |
|||
SELECT * FROM parent WHERE id IN (SELECT id FROM parent); |
|||
|
|||
SELECT name, num_rows, mysql_handles_opened |
|||
FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS |
|||
WHERE name LIKE "%parent"; |
|||
|
|||
DROP TABLE child; |
|||
|
|||
DROP TABLE parent; |
|||
1628
storage/innobase/handler/i_s.cc
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
Write
Preview
Loading…
Cancel
Save
Reference in new issue