173 lines
6.5 KiB
Plaintext
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;
|