1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-29 05:21:33 +03:00

MDEV-11426 Remove InnoDB INFORMATION_SCHEMA.FILES implementation

MySQL 5.7 introduced WL#7943: InnoDB: Implement Information_Schema.Files
to provide a long-term alternative for accessing tablespace metadata.
The INFORMATION_SCHEMA.INNODB_* views are considered internal interfaces
that are subject to change or removal between releases. So, users should
refer to I_S.FILES instead of I_S.INNODB_SYS_TABLESPACES to fetch metadata
about CREATE TABLESPACE.

Because MariaDB 10.2 does not support CREATE TABLESPACE or
CREATE TABLE…TABLESPACE for InnoDB, it does not make sense to support
I_S.FILES either. So, let MariaDB 10.2 omit the code that was added in
MySQL 5.7. After this change, I_S.FILES will report the empty result,
unless some other storage engine in MariaDB 10.2 implements the interface.
(The I_S.FILES interface was originally created for the NDB Cluster.)
This commit is contained in:
Marko Mäkelä
2016-12-01 12:56:23 +02:00
parent 943baa3ba8
commit 0b66d3f70d
18 changed files with 196 additions and 683 deletions

View File

@ -0,0 +1,3 @@
--loose-innodb-sys-indexes
--loose-innodb-sys-tablespaces
--loose-innodb-sys-datafiles

View File

@ -169,11 +169,11 @@ CREATE TABLE t1 (a varchar(64) character set utf8,
SET SESSION innodb_strict_mode = ON;
--error ER_ILLEGAL_HA
--error ER_CANT_CREATE_TABLE
CREATE TABLE t1 (i int) ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=16;
SHOW WARNINGS;
--error ER_ILLEGAL_HA
--error ER_CANT_CREATE_TABLE
CREATE TABLE t1 ( i INT ) ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8;
SHOW WARNINGS;
@ -240,18 +240,18 @@ DROP TABLE t1;
SET SESSION innodb_strict_mode = ON;
SET GLOBAL innodb_file_per_table = OFF;
SHOW VARIABLES LIKE 'innodb_file_per_table';
--error ER_ILLEGAL_HA
--error ER_CANT_CREATE_TABLE
CREATE TABLE t4 (id int PRIMARY KEY) ENGINE=innodb KEY_BLOCK_SIZE=8;
SHOW WARNINGS;
--error ER_ILLEGAL_HA
--error ER_CANT_CREATE_TABLE
CREATE TABLE t5 (id int PRIMARY KEY) ENGINE=innodb KEY_BLOCK_SIZE=16;
SHOW WARNINGS;
SET GLOBAL innodb_file_per_table = ON;
SET GLOBAL innodb_file_format = `Antelope`;
--error ER_ILLEGAL_HA
--error ER_CANT_CREATE_TABLE
CREATE TABLE t4 (id int PRIMARY KEY) ENGINE=innodb KEY_BLOCK_SIZE=8;
SHOW WARNINGS;
--error ER_ILLEGAL_HA
--error ER_CANT_CREATE_TABLE
CREATE TABLE t5 (id int PRIMARY KEY) ENGINE=innodb KEY_BLOCK_SIZE=16;
SHOW WARNINGS;
SET GLOBAL innodb_file_format = `Barracuda`;

View File

@ -0,0 +1,3 @@
--loose-innodb-sys-indexes
--loose-innodb-sys-tablespaces
--loose-innodb-sys-datafiles

View File

@ -185,7 +185,7 @@ CREATE TABLE t1 (a varchar(128) character set utf8,
SET SESSION innodb_strict_mode = ON;
--error ER_ILLEGAL_HA
--error ER_CANT_CREATE_TABLE
CREATE TABLE t1 (i int) ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=16;
SHOW WARNINGS;
@ -257,18 +257,18 @@ DROP TABLE t1;
SET SESSION innodb_strict_mode = ON;
SET GLOBAL innodb_file_per_table = OFF;
SHOW VARIABLES LIKE 'innodb_file_per_table';
--error ER_ILLEGAL_HA
--error ER_CANT_CREATE_TABLE
CREATE TABLE t4 (id int PRIMARY KEY) ENGINE=innodb KEY_BLOCK_SIZE=8;
SHOW WARNINGS;
--error ER_ILLEGAL_HA
--error ER_CANT_CREATE_TABLE
CREATE TABLE t5 (id int PRIMARY KEY) ENGINE=innodb KEY_BLOCK_SIZE=16;
SHOW WARNINGS;
SET GLOBAL innodb_file_per_table = ON;
SET GLOBAL innodb_file_format = `Antelope`;
--error ER_ILLEGAL_HA
--error ER_CANT_CREATE_TABLE
CREATE TABLE t4 (id int PRIMARY KEY) ENGINE=innodb KEY_BLOCK_SIZE=8;
SHOW WARNINGS;
--error ER_ILLEGAL_HA
--error ER_CANT_CREATE_TABLE
CREATE TABLE t5 (id int PRIMARY KEY) ENGINE=innodb KEY_BLOCK_SIZE=16;
SHOW WARNINGS;
SET GLOBAL innodb_file_format = `Barracuda`;

View File

@ -10,7 +10,5 @@
#
##############################################################################
restart : Not supported by MariaDB 10.2 2/9/2016 jplindst
wl6650 : Not supported by MariaDB 10.2
wl6560 : Very long, timeout

View File

@ -0,0 +1,3 @@
--loose-innodb-sys-tables
--loose-innodb-sys-tablespaces
--loose-innodb-sys-datafiles

View File

@ -152,29 +152,6 @@ INSERT INTO t7_restart (SELECT 0, c2, c3, c4, c5 FROM t7_restart);
SHOW CREATE TABLE t7_restart;
SELECT count(*) FROM t7_restart;
--echo #
--echo # Create and insert records into a table that uses a general tablespace.
--echo #
CREATE TABLESPACE s1_restart ADD DATAFILE 's1_restart.ibd';
CREATE TABLE t8_restart(c1 DOUBLE AUTO_INCREMENT KEY, c2 CHAR(10), c3 VARCHAR(100), c4 DATE, c5 TEXT)
ROW_FORMAT=COMPACT ENGINE=InnoDB TABLESPACE=s1_restart;
INSERT INTO t8_restart VALUES (1000000000, 'MySQL', 'InnoDB', '2011-11-11', 'Read this after reboot');
INSERT INTO t8_restart (SELECT 0, c2, c3, c4, c5 FROM t2_restart);
INSERT INTO t8_restart (SELECT 0, c2, c3, c4, c5 FROM t2_restart);
INSERT INTO t8_restart (SELECT 0, c2, c3, c4, c5 FROM t2_restart);
INSERT INTO t8_restart (SELECT 0, c2, c3, c4, c5 FROM t2_restart);
SHOW CREATE TABLE t8_restart;
SELECT count(*) FROM t8_restart;
CREATE TABLE t9_restart(c1 DOUBLE AUTO_INCREMENT KEY, c2 CHAR(10), c3 VARCHAR(100), c4 DATE, c5 TEXT)
ROW_FORMAT=DYNAMIC ENGINE=InnoDB TABLESPACE=s1_restart;
INSERT INTO t9_restart VALUES (1000000000, 'MySQL', 'InnoDB', '2011-11-11', 'Read this after reboot');
INSERT INTO t9_restart (SELECT 0, c2, c3, c4, c5 FROM t2_restart);
INSERT INTO t9_restart (SELECT 0, c2, c3, c4, c5 FROM t2_restart);
INSERT INTO t9_restart (SELECT 0, c2, c3, c4, c5 FROM t2_restart);
INSERT INTO t9_restart (SELECT 0, c2, c3, c4, c5 FROM t2_restart);
SHOW CREATE TABLE t9_restart;
SELECT count(*) FROM t9_restart;
--echo #
--echo # Show these tables in information_schema.
--echo #
@ -211,8 +188,6 @@ SHOW CREATE TABLE t5_restart;
SHOW CREATE TABLE t6_restart;
--replace_result $MYSQL_TMP_DIR MYSQL_TMP_DIR
SHOW CREATE TABLE t7_restart;
SHOW CREATE TABLE t8_restart;
SHOW CREATE TABLE t9_restart;
INSERT INTO t1_restart (SELECT 0, c2, c3, c4, c5 FROM t1_restart);
INSERT INTO t2_restart (SELECT 0, c2, c3, c4, c5 FROM t2_restart);
@ -221,8 +196,6 @@ INSERT INTO t4_restart (SELECT 0, c2, c3, c4, c5 FROM t4_restart);
INSERT INTO t5_restart (SELECT 0, c2, c3, c4, c5 FROM t5_restart);
INSERT INTO t6_restart (SELECT 0, c2, c3, c4, c5 FROM t6_restart);
INSERT INTO t7_restart (SELECT 0, c2, c3, c4, c5 FROM t7_restart);
INSERT INTO t8_restart (SELECT 0, c2, c3, c4, c5 FROM t8_restart);
INSERT INTO t9_restart (SELECT 0, c2, c3, c4, c5 FROM t9_restart);
SELECT count(*) FROM t1_restart;
SELECT count(*) FROM t2_restart;
@ -231,8 +204,6 @@ SELECT count(*) FROM t4_restart;
SELECT count(*) FROM t5_restart;
SELECT count(*) FROM t6_restart;
SELECT count(*) FROM t7_restart;
SELECT count(*) FROM t8_restart;
SELECT count(*) FROM t9_restart;
--echo #
--echo # Show these tables in information_schema.
@ -247,9 +218,6 @@ DROP TABLE t3_restart;
# and an ISL file will be created not using InnoDB.
# Table t5_restart will be expanded.
# Tables t6_restart and t7_restart will be truncated.
DROP TABLE t8_restart;
DROP TABLE t9_restart;
DROP TABLESPACE s1_restart;
--echo #
--echo # Truncate the remote tablespaces.