polardbxengine/mysql-test/suite/innodb/t/subpartition.test

173 lines
6.5 KiB
Plaintext

SET @file_per_table=@@global.innodb_file_per_table;
CREATE TABLESPACE table_level ADD DATAFILE 'table.ibd';
CREATE TABLESPACE partition_level ADD DATAFILE 'partition.ibd';
CREATE TABLESPACE subpartition_level ADD DATAFILE 'subpartition.ibd';
--mkdir $MYSQL_TMP_DIR/table
--mkdir $MYSQL_TMP_DIR/partition
--mkdir $MYSQL_TMP_DIR/subpartition
CREATE TABLE subpartitioned(a int auto_increment primary key)
TABLESPACE table_level
PARTITION BY RANGE (a)
SUBPARTITION BY HASH (a) SUBPARTITIONS 2
(PARTITION p0 VALUES LESS THAN (0) TABLESPACE partition_level
(SUBPARTITION sp0 TABLESPACE subpartition_level,
SUBPARTITION sp1),
PARTITION p1 VALUES LESS THAN (16)
(SUBPARTITION sp2,
SUBPARTITION sp3 TABLESPACE innodb_file_per_table),
PARTITION p2 VALUES LESS THAN (256) TABLESPACE innodb_file_per_table
(SUBPARTITION sp4 TABLESPACE subpartition_level,
SUBPARTITION sp5));
--echo # Subpartitions show the inherited TABLESPACE.
--echo # Bug#23219564 FIXME: the TABLESPACE of PARTITION should be shown!
SHOW CREATE TABLE subpartitioned;
--echo # The TABLESPACE of PARTITION/TABLE should be inherited for subpartitions
ALTER TABLE subpartitioned ADD PARTITION (PARTITION p3 VALUES LESS THAN (65536) (SUBPARTITION sp6 TABLESPACE innodb_file_per_table, SUBPARTITION sp7 TABLESPACE innodb_system));
SHOW CREATE TABLE subpartitioned;
ALTER TABLE subpartitioned REORGANIZE PARTITION p3 INTO (PARTITION p3 VALUES LESS THAN(65536) (SUBPARTITION sp6, SUBPARTITION sp7 TABLESPACE subpartition_level));
SHOW CREATE TABLE subpartitioned;
ALTER TABLE subpartitioned DROP PARTITION p3;
SHOW CREATE TABLE subpartitioned;
DROP TABLE subpartitioned;
CREATE TABLE partitioned(a int auto_increment primary key)
TABLESPACE table_level
PARTITION BY RANGE (a)
(PARTITION p0 VALUES LESS THAN (0) TABLESPACE partition_level,
PARTITION p1 VALUES LESS THAN (16),
PARTITION p2 VALUES LESS THAN (256) TABLESPACE innodb_file_per_table);
--echo # Bug#23219685 FIXME: PARTITION should show inherited TABLESPACE!
SHOW CREATE TABLE partitioned;
DROP TABLE partitioned;
SET GLOBAL innodb_file_per_table=ON;
--replace_result $MYSQL_TMP_DIR MYSQL_TMP_DIR
eval CREATE TABLE subpartitioned(a int auto_increment primary key)
DATA DIRECTORY '$MYSQL_TMP_DIR/table'
PARTITION BY RANGE (a)
SUBPARTITION BY HASH (a) SUBPARTITIONS 2
(PARTITION p0 VALUES LESS THAN (0) DATA DIRECTORY '$MYSQL_TMP_DIR/partition'
(SUBPARTITION sp0 DATA DIRECTORY '$MYSQL_TMP_DIR/subpartition',
SUBPARTITION sp1),
PARTITION p1 VALUES LESS THAN (16)
TABLESPACE innodb_file_per_table DATA DIRECTORY '$MYSQL_TMP_DIR/partition'
(SUBPARTITION sp2,
SUBPARTITION sp3 DATA DIRECTORY '$MYSQL_TMP_DIR/subpartition'),
PARTITION p2 VALUES LESS THAN (256)
(SUBPARTITION sp4 DATA DIRECTORY '$MYSQL_TMP_DIR/subpartition',
SUBPARTITION sp5));
--echo # Subpartitions show the inherited DATA DIRECTORY.
--echo # Bug#23219564 FIXME: the DATA DIRECTORY of PARTITION should be shown!
--replace_result $MYSQL_TMP_DIR MYSQL_TMP_DIR
SHOW CREATE TABLE subpartitioned;
DROP TABLE subpartitioned;
SET GLOBAL innodb_file_per_table=OFF;
SET innodb_strict_mode=OFF;
--replace_result $MYSQL_TMP_DIR MYSQL_TMP_DIR
eval CREATE TABLE subpartitioned(a int auto_increment primary key)
DATA DIRECTORY '$MYSQL_TMP_DIR/table'
PARTITION BY RANGE (a)
SUBPARTITION BY HASH (a) SUBPARTITIONS 2
(PARTITION p0 VALUES LESS THAN (0) DATA DIRECTORY '$MYSQL_TMP_DIR/partition'
(SUBPARTITION sp0 DATA DIRECTORY '$MYSQL_TMP_DIR/subpartition',
SUBPARTITION sp1),
PARTITION p1 VALUES LESS THAN (16)
TABLESPACE innodb_file_per_table DATA DIRECTORY '$MYSQL_TMP_DIR/partition'
(SUBPARTITION sp2,
SUBPARTITION sp3 DATA DIRECTORY '$MYSQL_TMP_DIR/subpartition'),
PARTITION p2 VALUES LESS THAN (256)
(SUBPARTITION sp4 DATA DIRECTORY '$MYSQL_TMP_DIR/subpartition',
SUBPARTITION sp5));
SET innodb_strict_mode=ON;
--echo # Subpartitions show the inherited DATA DIRECTORY.
--echo # Bug#23219564 FIXME: the DATA DIRECTORY of PARTITION should be shown!
--replace_result $MYSQL_TMP_DIR MYSQL_TMP_DIR
SHOW CREATE TABLE subpartitioned;
--echo # The DATA DIRECTORY of PARTITION/TABLE should be inherited for subpartitions
SET GLOBAL innodb_file_per_table=ON;
--replace_result $MYSQL_TMP_DIR MYSQL_TMP_DIR
eval ALTER TABLE subpartitioned ADD PARTITION (PARTITION p3 VALUES LESS THAN (65536) TABLESPACE innodb_file_per_table DATA DIRECTORY '$MYSQL_TMP_DIR/partition' (SUBPARTITION sp6, SUBPARTITION sp7));
--replace_result $MYSQL_TMP_DIR MYSQL_TMP_DIR
SHOW CREATE TABLE subpartitioned;
--replace_result $MYSQL_TMP_DIR MYSQL_TMP_DIR
eval ALTER TABLE subpartitioned REORGANIZE PARTITION p3 INTO (PARTITION p3 VALUES LESS THAN(65536) (SUBPARTITION sp6, SUBPARTITION sp7 DATA DIRECTORY '$MYSQL_TMP_DIR/subpartition'));
--replace_result $MYSQL_TMP_DIR MYSQL_TMP_DIR
SHOW CREATE TABLE subpartitioned;
--replace_result $MYSQL_TMP_DIR MYSQL_TMP_DIR
ALTER TABLE subpartitioned DROP PARTITION p3;
--replace_result $MYSQL_TMP_DIR MYSQL_TMP_DIR
SHOW CREATE TABLE subpartitioned;
DROP TABLE subpartitioned;
--replace_result $MYSQL_TMP_DIR MYSQL_TMP_DIR
eval CREATE TABLE partitioned(a int auto_increment primary key)
DATA DIRECTORY '$MYSQL_TMP_DIR/table'
PARTITION BY RANGE (a)
(PARTITION p0 VALUES LESS THAN (0) TABLESPACE innodb_file_per_table,
PARTITION p1 VALUES LESS THAN (16)
TABLESPACE innodb_file_per_table DATA DIRECTORY '$MYSQL_TMP_DIR/partition',
PARTITION p2 VALUES LESS THAN (256));
--echo # Bug#23219685 FIXME: PARTITION should show inherited DATA DIRECTORY!
--replace_result $MYSQL_TMP_DIR MYSQL_TMP_DIR
SHOW CREATE TABLE partitioned;
DROP TABLE partitioned;
SET GLOBAL innodb_file_per_table=OFF;
SET innodb_strict_mode=OFF;
--replace_result $MYSQL_TMP_DIR MYSQL_TMP_DIR
eval CREATE TABLE partitioned(a int auto_increment primary key)
DATA DIRECTORY '$MYSQL_TMP_DIR/table'
PARTITION BY RANGE (a)
(PARTITION p0 VALUES LESS THAN (0) TABLESPACE innodb_file_per_table,
PARTITION p1 VALUES LESS THAN (16)
TABLESPACE innodb_file_per_table DATA DIRECTORY '$MYSQL_TMP_DIR/partition',
PARTITION p2 VALUES LESS THAN (256));
SET innodb_strict_mode=ON;
--echo # Bug#23219685 FIXME: PARTITION should show inherited DATA DIRECTORY!
--replace_result $MYSQL_TMP_DIR MYSQL_TMP_DIR
SHOW CREATE TABLE partitioned;
DROP TABLE partitioned;
--rmdir $MYSQL_TMP_DIR/table/test
--rmdir $MYSQL_TMP_DIR/table
--rmdir $MYSQL_TMP_DIR/partition/test
--rmdir $MYSQL_TMP_DIR/partition
--rmdir $MYSQL_TMP_DIR/subpartition/test
--rmdir $MYSQL_TMP_DIR/subpartition
DROP TABLESPACE table_level;
DROP TABLESPACE partition_level;
DROP TABLESPACE subpartition_level;
SET GLOBAL innodb_file_per_table=@file_per_table;