1494 lines
46 KiB
Plaintext
1494 lines
46 KiB
Plaintext
SET @old_innodb_file_per_table = @@innodb_file_per_table;
|
||
SET GLOBAL innodb_file_per_table = 1;
|
||
SELECT @@innodb_file_per_table;
|
||
@@innodb_file_per_table
|
||
1
|
||
# Following testcases are created from JET cases (where import
|
||
# export instance are different servers)
|
||
# Here test will be run on same import and export instance.
|
||
#
|
||
# case 1 Simple export, discard and import.
|
||
#
|
||
CREATE TABLE t1 (c1 INT) ENGINE = InnoDB
|
||
PARTITION BY HASH(c1) PARTITIONS 3;
|
||
INSERT INTO t1 VALUES (1),(123),(331);
|
||
SELECT c1 FROM t1;
|
||
c1
|
||
123
|
||
1
|
||
331
|
||
FLUSH TABLES t1 FOR EXPORT;
|
||
SELECT * FROM t1 ORDER BY c1;
|
||
c1
|
||
1
|
||
123
|
||
331
|
||
backup: t1#P#p0
|
||
backup: t1#P#p1
|
||
backup: t1#P#p2
|
||
UNLOCK TABLES;
|
||
DROP TABLE t1;
|
||
CREATE TABLE t1 (c1 INT) ENGINE = InnoDB
|
||
PARTITION BY HASH(c1) PARTITIONS 3;
|
||
ALTER TABLE t1 DISCARD TABLESPACE;
|
||
restore: t1#P#p0 .ibd and .cfg files
|
||
restore: t1#P#p1 .ibd and .cfg files
|
||
restore: t1#P#p2 .ibd and .cfg files
|
||
ALTER TABLE t1 IMPORT TABLESPACE;
|
||
SELECT * FROM t1 ORDER BY c1;
|
||
c1
|
||
1
|
||
123
|
||
331
|
||
DROP TABLE t1;
|
||
#
|
||
# case 2 With indexes and more datatypes.
|
||
#
|
||
CREATE TABLE t1 (
|
||
col1 BIT(1),
|
||
col2 BOOLEAN,
|
||
col3 TINYINT,
|
||
col4 SMALLINT,
|
||
col5 MEDIUMINT,
|
||
col6 INT,
|
||
col7 BIGINT,
|
||
col8 FLOAT (14,3),
|
||
col9 DOUBLE (14,3),
|
||
col10 VARCHAR(20),
|
||
col11 TEXT,
|
||
col12 ENUM('a','b','c'),
|
||
col13 TEXT,
|
||
col14 CHAR(20),
|
||
col15 VARBINARY (400),
|
||
col16 BINARY(40),
|
||
col17 BLOB (400),
|
||
col18 INT NOT NULL PRIMARY KEY,
|
||
col19 DATE,
|
||
col20 DATETIME,
|
||
col21 TIMESTAMP NULL,
|
||
col22 TIME,
|
||
col23 YEAR) ENGINE = InnoDB
|
||
PARTITION BY RANGE (col18)
|
||
SUBPARTITION BY HASH (col18) SUBPARTITIONS 3
|
||
(PARTITION `First_partition` VALUES LESS THAN (10),
|
||
PARTITION `Last_partition` VALUES LESS THAN MAXVALUE);
|
||
Warnings:
|
||
Warning 1681 Specifying number of digits for floating point data types is deprecated and will be removed in a future release.
|
||
Warning 1681 Specifying number of digits for floating point data types is deprecated and will be removed in a future release.
|
||
CREATE INDEX idx1 ON t1(col18);
|
||
CREATE INDEX prefix_idx ON t1(col14 (10));
|
||
INSERT INTO t1 VALUES
|
||
(1,1,-128,32767,-8388608,2147483647,-9223372036854775808, 92233720368.222,
|
||
-92233720368.222,'aaa', + 'aaaaaaaaaa','b','bbbbb','ccccc',
|
||
REPEAT('d',40),REPEAT('d',40),REPEAT('d',40),1,'1000-01-01',
|
||
'3000-12-31 23:59:59.99','1990-01-01 00:00:01.00',
|
||
'01:59:59.00','1901');
|
||
INSERT INTO t1 VALUES
|
||
(NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
|
||
NULL,NULL,NULL,3,NULL,NULL,NULL,NULL,NULL);
|
||
INSERT INTO t1 VALUES (NULL,NULL,NULL,NULL,NULL,NULL,NULL,
|
||
NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
|
||
ERROR 23000: Column 'col18' cannot be null
|
||
INSERT INTO t1 VALUES (NULL,NULL,NULL,NULL,NULL,NULL,NULL,
|
||
NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,NULL,NULL,NULL,NULL);
|
||
ERROR 23000: Duplicate entry '1' for key 'PRIMARY'
|
||
FLUSH TABLES t1 WITH READ LOCK;
|
||
SELECT * FROM t1;
|
||
col1 col2 col3 col4 col5 col6 col7 col8 col9 col10 col11 col12 col13 col14 col15 col16 col17 col18 col19 col20 col21 col22 col23
|
||
NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 3 NULL NULL NULL NULL NULL
|
||
1 -128 32767 -8388608 2147483647 -9223372036854775808 92233719808.000 -92233720368.222 aaa aaaaaaaaaa b bbbbb ccccc dddddddddddddddddddddddddddddddddddddddd dddddddddddddddddddddddddddddddddddddddd dddddddddddddddddddddddddddddddddddddddd 1 1000-01-01 3001-01-01 00:00:00 1990-01-01 00:00:01 01:59:59 1901
|
||
backup: t1#P#First_partition#SP#First_partitionsp0
|
||
backup: t1#P#First_partition#SP#First_partitionsp1
|
||
backup: t1#P#First_partition#SP#First_partitionsp2
|
||
backup: t1#P#Last_partition#SP#Last_partitionsp0
|
||
backup: t1#P#Last_partition#SP#Last_partitionsp1
|
||
backup: t1#P#Last_partition#SP#Last_partitionsp2
|
||
UNLOCK TABLES;
|
||
DROP TABLE t1;
|
||
CREATE TABLE t1 (
|
||
col1 BIT(1),
|
||
col2 BOOLEAN,
|
||
col3 TINYINT,
|
||
col4 SMALLINT,
|
||
col5 MEDIUMINT,
|
||
col6 INT,
|
||
col7 BIGINT,
|
||
col8 FLOAT (14,3),
|
||
col9 DOUBLE (14,3),
|
||
col10 VARCHAR(20),
|
||
col11 TEXT,
|
||
col12 ENUM('a','b','c'),
|
||
col13 TEXT,
|
||
col14 CHAR(20),
|
||
col15 VARBINARY (400),
|
||
col16 BINARY(40),
|
||
col17 BLOB (400),
|
||
col18 INT NOT NULL PRIMARY KEY,
|
||
col19 DATE,
|
||
col20 DATETIME,
|
||
col21 TIMESTAMP NULL,
|
||
col22 TIME,
|
||
col23 YEAR) ENGINE = InnoDB
|
||
PARTITION BY RANGE (col18)
|
||
SUBPARTITION BY HASH (col18) SUBPARTITIONS 3
|
||
(PARTITION `First_partition` VALUES LESS THAN (10),
|
||
PARTITION `Last_partition` VALUES LESS THAN MAXVALUE);
|
||
Warnings:
|
||
Warning 1681 Specifying number of digits for floating point data types is deprecated and will be removed in a future release.
|
||
Warning 1681 Specifying number of digits for floating point data types is deprecated and will be removed in a future release.
|
||
CREATE INDEX idx1 ON t1(col18);
|
||
CREATE INDEX prefix_idx ON t1(col14 (10));
|
||
ALTER TABLE t1 DISCARD TABLESPACE;
|
||
restore: t1#P#First_partition#SP#First_partitionsp0 .ibd and .cfg files
|
||
restore: t1#P#First_partition#SP#First_partitionsp1 .ibd and .cfg files
|
||
restore: t1#P#First_partition#SP#First_partitionsp2 .ibd and .cfg files
|
||
restore: t1#P#Last_partition#SP#Last_partitionsp0 .ibd and .cfg files
|
||
restore: t1#P#Last_partition#SP#Last_partitionsp1 .ibd and .cfg files
|
||
restore: t1#P#Last_partition#SP#Last_partitionsp2 .ibd and .cfg files
|
||
ALTER TABLE t1 IMPORT TABLESPACE;
|
||
CHECK TABLE t1;
|
||
Table Op Msg_type Msg_text
|
||
test.t1 check status OK
|
||
SELECT * FROM t1;
|
||
col1 col2 col3 col4 col5 col6 col7 col8 col9 col10 col11 col12 col13 col14 col15 col16 col17 col18 col19 col20 col21 col22 col23
|
||
NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 3 NULL NULL NULL NULL NULL
|
||
1 -128 32767 -8388608 2147483647 -9223372036854775808 92233719808.000 -92233720368.222 aaa aaaaaaaaaa b bbbbb ccccc dddddddddddddddddddddddddddddddddddddddd dddddddddddddddddddddddddddddddddddddddd dddddddddddddddddddddddddddddddddddddddd 1 1000-01-01 3001-01-01 00:00:00 1990-01-01 00:00:01 01:59:59 1901
|
||
DROP TABLE t1;
|
||
#
|
||
# case 3 - with blob objects
|
||
#
|
||
CREATE TABLE t1 (
|
||
col_1_varbinary VARBINARY (4000),
|
||
col_2_varchar VARCHAR (4000),
|
||
col_3_text TEXT (4000),
|
||
col_4_blob BLOB (4000),
|
||
col_5_text TEXT (4000),
|
||
col_6_varchar VARCHAR (4000),
|
||
col_7_binary BINARY (255)
|
||
) ROW_FORMAT=DYNAMIC ENGINE = InnoDB
|
||
PARTITION BY KEY (col_7_binary) PARTITIONS 3;
|
||
INSERT INTO t1 VALUES(
|
||
REPEAT('a', 4000),REPEAT('o', 4000),REPEAT('a', 4000), REPEAT('o', 4000),
|
||
REPEAT('a', 4000),REPEAT('a', 4000),REPEAT('a', 255));
|
||
SELECT col_1_varbinary = REPEAT("a", 4000),
|
||
col_2_varchar = REPEAT("o", 4000),
|
||
col_3_text = REPEAT("a", 4000),
|
||
col_4_blob = REPEAT("o", 4000),
|
||
col_5_text = REPEAT("a", 4000),
|
||
col_6_varchar = REPEAT("a", 4000),
|
||
col_7_binary = REPEAT("a", 255)
|
||
FROM t1;
|
||
col_1_varbinary = REPEAT("a", 4000) col_2_varchar = REPEAT("o", 4000) col_3_text = REPEAT("a", 4000) col_4_blob = REPEAT("o", 4000) col_5_text = REPEAT("a", 4000) col_6_varchar = REPEAT("a", 4000) col_7_binary = REPEAT("a", 255)
|
||
1 1 1 1 1 1 1
|
||
FLUSH TABLES t1 FOR EXPORT;
|
||
backup: t1#P#p0
|
||
backup: t1#P#p1
|
||
backup: t1#P#p2
|
||
UNLOCK TABLES;
|
||
DROP TABLE t1;
|
||
CREATE TABLE t1 (
|
||
col_1_varbinary VARBINARY (4000),
|
||
col_2_varchar VARCHAR (4000),
|
||
col_3_text TEXT (4000),
|
||
col_4_blob BLOB (4000),
|
||
col_5_text TEXT (4000),
|
||
col_6_varchar VARCHAR (4000),
|
||
col_7_binary BINARY (255)
|
||
) ROW_FORMAT=DYNAMIC ENGINE = InnoDB
|
||
PARTITION BY KEY (col_7_binary) PARTITIONS 3;
|
||
ALTER TABLE t1 DISCARD TABLESPACE;
|
||
restore: t1#P#p0 .ibd and .cfg files
|
||
restore: t1#P#p1 .ibd and .cfg files
|
||
restore: t1#P#p2 .ibd and .cfg files
|
||
ALTER TABLE t1 IMPORT TABLESPACE;
|
||
SELECT col_1_varbinary = REPEAT("a", 4000),
|
||
col_2_varchar = REPEAT("o", 4000),
|
||
col_3_text = REPEAT("a", 4000),
|
||
col_4_blob = REPEAT("o", 4000),
|
||
col_5_text = REPEAT("a", 4000),
|
||
col_6_varchar = REPEAT("a", 4000),
|
||
col_7_binary = REPEAT("a", 255)
|
||
FROM t1;
|
||
col_1_varbinary = REPEAT("a", 4000) col_2_varchar = REPEAT("o", 4000) col_3_text = REPEAT("a", 4000) col_4_blob = REPEAT("o", 4000) col_5_text = REPEAT("a", 4000) col_6_varchar = REPEAT("a", 4000) col_7_binary = REPEAT("a", 255)
|
||
1 1 1 1 1 1 1
|
||
DROP TABLE t1;
|
||
#
|
||
# case 4 - transportable tablespace with auto_increment
|
||
#
|
||
CREATE TABLE t1 (
|
||
col_1_int INT AUTO_INCREMENT,
|
||
col_2_varchar VARCHAR (20),
|
||
PRIMARY KEY (col_1_int)) ENGINE = InnoDB
|
||
PARTITION BY HASH (col_1_int) PARTITIONS 3;
|
||
INSERT INTO t1 VALUES (1,'a1'),(2,'a2'),(3,'a3');
|
||
INSERT INTO t1 (col_2_varchar) VALUES ('a4'),('a5'),('a6');
|
||
SELECT * FROM t1 ORDER BY col_1_int;
|
||
col_1_int col_2_varchar
|
||
1 a1
|
||
2 a2
|
||
3 a3
|
||
4 a4
|
||
5 a5
|
||
6 a6
|
||
FLUSH TABLES t1 FOR EXPORT;
|
||
backup: t1#P#p0
|
||
backup: t1#P#p1
|
||
backup: t1#P#p2
|
||
UNLOCK TABLES;
|
||
DROP TABLE t1;
|
||
CREATE TABLE t1 (
|
||
col_1_int INT AUTO_INCREMENT,
|
||
col_2_varchar VARCHAR (20),
|
||
PRIMARY KEY (col_1_int)) ENGINE = InnoDB
|
||
PARTITION BY HASH (col_1_int) PARTITIONS 3;
|
||
ALTER TABLE t1 DISCARD TABLESPACE;
|
||
restore: t1#P#p0 .ibd and .cfg files
|
||
restore: t1#P#p1 .ibd and .cfg files
|
||
restore: t1#P#p2 .ibd and .cfg files
|
||
ALTER TABLE t1 IMPORT TABLESPACE;
|
||
SELECT * FROM t1 ORDER BY col_1_int;
|
||
col_1_int col_2_varchar
|
||
1 a1
|
||
2 a2
|
||
3 a3
|
||
4 a4
|
||
5 a5
|
||
6 a6
|
||
INSERT INTO t1 VALUES (1,'a1');
|
||
ERROR 23000: Duplicate entry '1' for key 'PRIMARY'
|
||
INSERT INTO t1(col_2_varchar) VALUES ('a101'),('a102'),('a103');
|
||
SELECT * FROM t1 ORDER BY col_1_int;
|
||
col_1_int col_2_varchar
|
||
1 a1
|
||
2 a2
|
||
3 a3
|
||
4 a4
|
||
5 a5
|
||
6 a6
|
||
7 a101
|
||
8 a102
|
||
9 a103
|
||
ALTER TABLE t1 MODIFY col_1_int BIGINT;
|
||
SELECT * FROM t1 ORDER BY col_1_int;
|
||
col_1_int col_2_varchar
|
||
1 a1
|
||
2 a2
|
||
3 a3
|
||
4 a4
|
||
5 a5
|
||
6 a6
|
||
7 a101
|
||
8 a102
|
||
9 a103
|
||
DROP TABLE t1;
|
||
#
|
||
# case 5 - check with primary and foreign key
|
||
#
|
||
# Foreign Keys not supported by partitioned tables.
|
||
#
|
||
# case 6 - transportable tablespace with transactions
|
||
#
|
||
CREATE TABLE t1 (
|
||
col_1_int int,col_2_varchar VARCHAR (20),
|
||
PRIMARY KEY (col_2_varchar)) ENGINE = InnoDB
|
||
PARTITION BY KEY (col_2_varchar) PARTITIONS 3;
|
||
SET AUTOCOMMIT = 0;
|
||
INSERT INTO t1 VALUES (1,'a1'),(2,'a2');
|
||
SELECT * FROM t1;
|
||
col_1_int col_2_varchar
|
||
1 a1
|
||
2 a2
|
||
COMMIT;
|
||
INSERT INTO t1 VALUES (3,'a3'),(4,'a4');
|
||
ROLLBACK;
|
||
INSERT INTO t1 VALUES (5,'a5'),(6,'a6');
|
||
COMMIT;
|
||
SELECT * FROM t1 ORDER BY col_1_int;
|
||
col_1_int col_2_varchar
|
||
1 a1
|
||
2 a2
|
||
5 a5
|
||
6 a6
|
||
FLUSH TABLES t1 FOR EXPORT;
|
||
backup: t1#P#p0
|
||
backup: t1#P#p1
|
||
backup: t1#P#p2
|
||
UNLOCK TABLES;
|
||
DROP TABLE t1;
|
||
CREATE TABLE t1 (
|
||
col_1_int int,col_2_varchar VARCHAR (20),
|
||
PRIMARY KEY (col_2_varchar)) ENGINE = InnoDB
|
||
PARTITION BY KEY (col_2_varchar) PARTITIONS 3;
|
||
ALTER TABLE t1 DISCARD TABLESPACE;
|
||
SET AUTOCOMMIT = 0;
|
||
restore: t1#P#p0 .ibd and .cfg files
|
||
restore: t1#P#p1 .ibd and .cfg files
|
||
restore: t1#P#p2 .ibd and .cfg files
|
||
ALTER TABLE t1 IMPORT TABLESPACE;
|
||
INSERT INTO t1 VALUES (7,'a7'),(8,'a8');
|
||
COMMIT;
|
||
INSERT INTO t1 VALUES (9,'a9'),(10,'a10');
|
||
ROLLBACK;
|
||
INSERT INTO t1 VALUES (11,'a11'),(12,'a12');
|
||
COMMIT;
|
||
SELECT * FROM t1 ORDER BY col_1_int;
|
||
col_1_int col_2_varchar
|
||
1 a1
|
||
2 a2
|
||
5 a5
|
||
6 a6
|
||
7 a7
|
||
8 a8
|
||
11 a11
|
||
12 a12
|
||
SET AUTOCOMMIT = 1;
|
||
DROP TABLE t1;
|
||
#
|
||
# case 7 - Transportable tablespace with transaction
|
||
# (earlier failed with jet)
|
||
#
|
||
CREATE TABLE t1 (i int) ENGINE = InnoDB
|
||
PARTITION BY HASH (i) PARTITIONS 3;
|
||
INSERT INTO t1 VALUES (100),(200),(300);
|
||
SELECT * FROM t1 ORDER BY i;
|
||
i
|
||
100
|
||
200
|
||
300
|
||
FLUSH TABLES t1 FOR EXPORT;
|
||
backup: t1#P#p0
|
||
backup: t1#P#p1
|
||
backup: t1#P#p2
|
||
UNLOCK TABLES;
|
||
DROP TABLE t1;
|
||
CREATE TABLE t1 (i int) ENGINE = InnoDB
|
||
PARTITION BY HASH (i) PARTITIONS 3;
|
||
ALTER TABLE t1 DISCARD TABLESPACE;
|
||
restore: t1#P#p0 .ibd and .cfg files
|
||
restore: t1#P#p1 .ibd and .cfg files
|
||
restore: t1#P#p2 .ibd and .cfg files
|
||
ALTER TABLE t1 IMPORT TABLESPACE;
|
||
SELECT * FROM t1 ORDER BY i;
|
||
i
|
||
100
|
||
200
|
||
300
|
||
SET AUTOCOMMIT = 0;
|
||
INSERT INTO t1 VALUES (101),(102),(103);
|
||
COMMIT;
|
||
SELECT * FROM t1 ORDER BY i;
|
||
i
|
||
100
|
||
101
|
||
102
|
||
103
|
||
200
|
||
300
|
||
SET AUTOCOMMIT = 1;
|
||
DROP TABLE t1;
|
||
#
|
||
# case 8 - negative cases
|
||
#
|
||
CREATE TABLE t1 (i int) ENGINE = InnoDB
|
||
PARTITION BY HASH (i) PARTITIONS 3;
|
||
INSERT INTO t1 VALUES (100),(200),(300);
|
||
SELECT * FROM t1 ORDER BY i;
|
||
i
|
||
100
|
||
200
|
||
300
|
||
FLUSH TABLES t1 FOR EXPORT;
|
||
backup: t1#P#p0
|
||
backup: t1#P#p1
|
||
backup: t1#P#p2
|
||
UNLOCK TABLES;
|
||
# try if we can flush again
|
||
FLUSH TABLES t1 FOR EXPORT;
|
||
UNLOCK TABLES;
|
||
DROP TABLE t1;
|
||
# create table with incorrect schema
|
||
CREATE TABLE t1 (i bigint) ENGINE = InnoDB
|
||
PARTITION BY HASH (i) PARTITIONS 3;
|
||
ALTER TABLE t1 DISCARD TABLESPACE;
|
||
restore: t1#P#p0 .ibd and .cfg files
|
||
restore: t1#P#p1 .ibd and .cfg files
|
||
restore: t1#P#p2 .ibd and .cfg files
|
||
# error as mismatch in column data type
|
||
ALTER TABLE t1 IMPORT TABLESPACE;
|
||
ERROR HY000: Schema mismatch (Column i precise type mismatch.)
|
||
# explicitly delete ibd file before creating table with correct schema
|
||
unlink: t1#P#p0.ibd
|
||
unlink: t1#P#p0.cfg
|
||
unlink: t1#P#p1.ibd
|
||
unlink: t1#P#p1.cfg
|
||
unlink: t1#P#p2.ibd
|
||
unlink: t1#P#p2.cfg
|
||
DROP TABLE t1;
|
||
CREATE TABLE t1 (i int) ENGINE = InnoDB
|
||
PARTITION BY HASH (i) PARTITIONS 3;
|
||
ALTER TABLE t1 DISCARD TABLESPACE;
|
||
restore: t1#P#p0 .ibd and .cfg files
|
||
restore: t1#P#p1 .ibd and .cfg files
|
||
restore: t1#P#p2 .ibd and .cfg files
|
||
# Import should succeed
|
||
ALTER TABLE t1 IMPORT TABLESPACE;
|
||
# Try to import twice
|
||
ALTER TABLE t1 IMPORT TABLESPACE;
|
||
ERROR HY000: Tablespace 'test/t1#P#p0' exists.
|
||
SELECT * FROM t1 ORDER BY i;
|
||
i
|
||
100
|
||
200
|
||
300
|
||
SET AUTOCOMMIT = 0;
|
||
INSERT INTO t1 VALUES (101),(102),(103);
|
||
COMMIT;
|
||
SELECT * FROM t1 ORDER BY i;
|
||
i
|
||
100
|
||
101
|
||
102
|
||
103
|
||
200
|
||
300
|
||
DROP TABLE t1;
|
||
CREATE TABLE t1 (i int) ENGINE = InnoDB
|
||
PARTITION BY HASH (i) PARTITIONS 3;
|
||
ALTER TABLE t1 DISCARD TABLESPACE;
|
||
# do not delete ibd file and try to import
|
||
restore: t1#P#p0 .ibd and .cfg files
|
||
restore: t1#P#p1 .ibd and .cfg files
|
||
restore: t1#P#p2 .ibd and .cfg files
|
||
ALTER TABLE t1 IMPORT TABLESPACE;
|
||
DROP TABLE t1;
|
||
SET AUTOCOMMIT = 1;
|
||
#
|
||
# case 9 - empty table import
|
||
#
|
||
CREATE TABLE t1 (c1 INT) ENGINE = InnoDB
|
||
PARTITION BY HASH(c1) PARTITIONS 3;
|
||
SET AUTOCOMMIT = 0;
|
||
INSERT INTO t1 VALUES (1),(123),(331);
|
||
SELECT c1 FROM t1;
|
||
c1
|
||
123
|
||
1
|
||
331
|
||
ROLLBACK;
|
||
FLUSH TABLES t1 FOR EXPORT;
|
||
backup: t1#P#p0
|
||
backup: t1#P#p1
|
||
backup: t1#P#p2
|
||
UNLOCK TABLES;
|
||
DROP TABLE t1;
|
||
CREATE TABLE t1 (c1 INT) ENGINE = InnoDB
|
||
PARTITION BY HASH(c1) PARTITIONS 3;
|
||
ALTER TABLE t1 DISCARD TABLESPACE;
|
||
restore: t1#P#p0 .ibd and .cfg files
|
||
restore: t1#P#p1 .ibd and .cfg files
|
||
restore: t1#P#p2 .ibd and .cfg files
|
||
ALTER TABLE t1 IMPORT TABLESPACE;
|
||
SELECT * FROM t1 ORDER BY c1;
|
||
c1
|
||
DROP TABLE t1;
|
||
SET AUTOCOMMIT = 1;
|
||
#
|
||
# case 10 - Transportable tablespaces with prefix index
|
||
#
|
||
CREATE TABLE t1 (col_1 CHAR (255),
|
||
col_2 VARCHAR (255), col_3 VARCHAR (255),
|
||
col_4 VARCHAR (255),col_5 VARCHAR (255),
|
||
col_6 text (255), col_7 text (255),
|
||
col_8 text (255),col_9 text (255),
|
||
col_10 BLOB (255),col_11 BLOB (255),
|
||
col_12 BLOB (255), col_13 BLOB (255),
|
||
col_14 BLOB (255), col_15 int) ENGINE = InnoDB charset latin1
|
||
PARTITION BY KEY (col_1) PARTITIONS 3;
|
||
CREATE INDEX prefix_idx ON t1(
|
||
col_1 (50),col_2 (50),col_3 (50),
|
||
col_4 (50),col_5 (50),col_6 (50),
|
||
col_7 (50),col_8 (50),col_9 (50),
|
||
col_10 (50),col_11 (50),col_12 (50),
|
||
col_13(50));
|
||
INSERT INTO t1 VALUES (
|
||
REPEAT("col1_00001",10),REPEAT("col2_00001",10),REPEAT("col3_00001",10),
|
||
REPEAT("col4_00001",10),REPEAT("col5_00001",10),REPEAT("col6_00001",10),
|
||
REPEAT("col7_00001",10),REPEAT("col8_00001",10),REPEAT("col9_00001",10),
|
||
REPEAT("col10_00001",10),REPEAT("col11_00001",10),REPEAT("col12_00001",10),
|
||
REPEAT("col13_00001",10),REPEAT("col14_00001",10),1);
|
||
SELECT
|
||
col_1 = REPEAT("col1_00001",10),
|
||
col_2 = REPEAT("col2_00001",10),
|
||
col_3 = REPEAT("col3_00001",10),
|
||
col_4 = REPEAT("col4_00001",10),
|
||
col_5 = REPEAT("col5_00001",10),
|
||
col_6 = REPEAT("col6_00001",10),
|
||
col_7 = REPEAT("col7_00001",10),
|
||
col_8 = REPEAT("col8_00001",10),
|
||
col_9 = REPEAT("col9_00001",10),
|
||
col_10 = REPEAT("col10_00001",10),
|
||
col_11 = REPEAT("col11_00001",10),
|
||
col_12 = REPEAT("col12_00001",10),
|
||
col_13 = REPEAT("col13_00001",10),
|
||
col_14 = REPEAT("col14_00001",10),
|
||
col_15
|
||
FROM t1;
|
||
col_1 = REPEAT("col1_00001",10) col_2 = REPEAT("col2_00001",10) col_3 = REPEAT("col3_00001",10) col_4 = REPEAT("col4_00001",10) col_5 = REPEAT("col5_00001",10) col_6 = REPEAT("col6_00001",10) col_7 = REPEAT("col7_00001",10) col_8 = REPEAT("col8_00001",10) col_9 = REPEAT("col9_00001",10) col_10 = REPEAT("col10_00001",10) col_11 = REPEAT("col11_00001",10) col_12 = REPEAT("col12_00001",10) col_13 = REPEAT("col13_00001",10) col_14 = REPEAT("col14_00001",10) col_15
|
||
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
|
||
FLUSH TABLES t1 FOR EXPORT;
|
||
backup: t1#P#p0
|
||
backup: t1#P#p1
|
||
backup: t1#P#p2
|
||
UNLOCK TABLES;
|
||
DROP TABLE t1;
|
||
CREATE TABLE t1 (col_1 CHAR (255),
|
||
col_2 VARCHAR (255), col_3 VARCHAR (255),
|
||
col_4 VARCHAR (255),col_5 VARCHAR (255),
|
||
col_6 text (255), col_7 text (255),
|
||
col_8 text (255),col_9 text (255),
|
||
col_10 BLOB (255),col_11 BLOB (255),
|
||
col_12 BLOB (255), col_13 BLOB (255),
|
||
col_14 BLOB (255), col_15 int) ENGINE = InnoDB charset latin1
|
||
PARTITION BY KEY (col_1) PARTITIONS 3;
|
||
CREATE INDEX prefix_idx ON t1(
|
||
col_1 (50),col_2 (50),col_3 (50),
|
||
col_4 (50),col_5 (50),col_6 (50),
|
||
col_7 (50),col_8 (50),col_9 (50),
|
||
col_10 (50),col_11 (50),col_12 (50),
|
||
col_13(50));
|
||
ALTER TABLE t1 DISCARD TABLESPACE;
|
||
restore: t1#P#p0 .ibd and .cfg files
|
||
restore: t1#P#p1 .ibd and .cfg files
|
||
restore: t1#P#p2 .ibd and .cfg files
|
||
ALTER TABLE t1 IMPORT TABLESPACE;
|
||
SELECT
|
||
col_1 = REPEAT("col1_00001",10),
|
||
col_2 = REPEAT("col2_00001",10),
|
||
col_3 = REPEAT("col3_00001",10),
|
||
col_4 = REPEAT("col4_00001",10),
|
||
col_5 = REPEAT("col5_00001",10),
|
||
col_6 = REPEAT("col6_00001",10),
|
||
col_7 = REPEAT("col7_00001",10),
|
||
col_8 = REPEAT("col8_00001",10),
|
||
col_9 = REPEAT("col9_00001",10),
|
||
col_10 = REPEAT("col10_00001",10),
|
||
col_11 = REPEAT("col11_00001",10),
|
||
col_12 = REPEAT("col12_00001",10),
|
||
col_13 = REPEAT("col13_00001",10),
|
||
col_14 = REPEAT("col14_00001",10),
|
||
col_15
|
||
FROM t1;
|
||
col_1 = REPEAT("col1_00001",10) col_2 = REPEAT("col2_00001",10) col_3 = REPEAT("col3_00001",10) col_4 = REPEAT("col4_00001",10) col_5 = REPEAT("col5_00001",10) col_6 = REPEAT("col6_00001",10) col_7 = REPEAT("col7_00001",10) col_8 = REPEAT("col8_00001",10) col_9 = REPEAT("col9_00001",10) col_10 = REPEAT("col10_00001",10) col_11 = REPEAT("col11_00001",10) col_12 = REPEAT("col12_00001",10) col_13 = REPEAT("col13_00001",10) col_14 = REPEAT("col14_00001",10) col_15
|
||
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
|
||
DROP TABLE t1;
|
||
#
|
||
# case 11 - Transportable tablespaces with secondary index
|
||
#
|
||
CREATE TABLE t1 (col_1 CHAR (255),
|
||
col_2 VARCHAR (255), col_3 VARCHAR (255),
|
||
col_4 VARCHAR (255),col_5 VARCHAR (255),
|
||
col_6 text (255), col_7 text (255),
|
||
col_8 text (255),col_9 text (255),
|
||
col_10 BLOB (255),col_11 BLOB (255),
|
||
col_12 BLOB (255), col_13 BLOB (255),
|
||
col_14 BLOB (255), col_15 int) ENGINE = InnoDB charset latin1
|
||
PARTITION BY KEY (col_1) PARTITIONS 3;
|
||
CREATE INDEX idx1 ON t1(col_1);
|
||
CREATE INDEX idx2 ON t1(col_2);
|
||
CREATE INDEX idx3 ON t1(col_3);
|
||
CREATE INDEX idx4 ON t1(col_4);
|
||
CREATE INDEX idx5 ON t1(col_5);
|
||
CREATE INDEX idx6 ON t1(col_6(255));
|
||
CREATE INDEX idx7 ON t1(col_7(255));
|
||
CREATE INDEX idx8 ON t1(col_8(255));
|
||
CREATE INDEX idx9 ON t1(col_9(255));
|
||
CREATE INDEX idx10 ON t1(col_10(255));
|
||
CREATE INDEX idx11 ON t1(col_11(255));
|
||
CREATE INDEX idx12 ON t1(col_12(255));
|
||
CREATE INDEX idx13 ON t1(col_13(255));
|
||
CREATE INDEX idx14 ON t1(col_14(255));
|
||
INSERT INTO t1 VALUES (
|
||
REPEAT("col1_00001",10),REPEAT("col2_00001",10),REPEAT("col3_00001",10),
|
||
REPEAT("col4_00001",10),REPEAT("col5_00001",10),REPEAT("col6_00001",10),
|
||
REPEAT("col7_00001",10),REPEAT("col8_00001",10),REPEAT("col9_00001",10),
|
||
REPEAT("col10_00001",10),REPEAT("col11_00001",10),REPEAT("col12_00001",10),
|
||
REPEAT("col13_00001",10),REPEAT("col14_00001",10),1);
|
||
SELECT
|
||
col_1 = REPEAT("col1_00001",10),
|
||
col_2 = REPEAT("col2_00001",10),
|
||
col_3 = REPEAT("col3_00001",10),
|
||
col_4 = REPEAT("col4_00001",10),
|
||
col_5 = REPEAT("col5_00001",10),
|
||
col_6 = REPEAT("col6_00001",10),
|
||
col_7 = REPEAT("col7_00001",10),
|
||
col_8 = REPEAT("col8_00001",10),
|
||
col_9 = REPEAT("col9_00001",10),
|
||
col_10 = REPEAT("col10_00001",10),
|
||
col_11 = REPEAT("col11_00001",10),
|
||
col_12 = REPEAT("col12_00001",10),
|
||
col_13 = REPEAT("col13_00001",10),
|
||
col_14 = REPEAT("col14_00001",10),
|
||
col_15
|
||
FROM t1;
|
||
col_1 = REPEAT("col1_00001",10) col_2 = REPEAT("col2_00001",10) col_3 = REPEAT("col3_00001",10) col_4 = REPEAT("col4_00001",10) col_5 = REPEAT("col5_00001",10) col_6 = REPEAT("col6_00001",10) col_7 = REPEAT("col7_00001",10) col_8 = REPEAT("col8_00001",10) col_9 = REPEAT("col9_00001",10) col_10 = REPEAT("col10_00001",10) col_11 = REPEAT("col11_00001",10) col_12 = REPEAT("col12_00001",10) col_13 = REPEAT("col13_00001",10) col_14 = REPEAT("col14_00001",10) col_15
|
||
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
|
||
FLUSH TABLES t1 FOR EXPORT;
|
||
backup: t1#P#p0
|
||
backup: t1#P#p1
|
||
backup: t1#P#p2
|
||
UNLOCK TABLES;
|
||
DROP TABLE t1;
|
||
CREATE TABLE t1 (col_1 CHAR (255),
|
||
col_2 VARCHAR (255), col_3 VARCHAR (255),
|
||
col_4 VARCHAR (255),col_5 VARCHAR (255),
|
||
col_6 text (255), col_7 text (255),
|
||
col_8 text (255),col_9 text (255),
|
||
col_10 BLOB (255),col_11 BLOB (255),
|
||
col_12 BLOB (255), col_13 BLOB (255),
|
||
col_14 BLOB (255), col_15 int) ENGINE = InnoDB charset latin1
|
||
PARTITION BY KEY (col_1) PARTITIONS 3;
|
||
CREATE INDEX idx1 ON t1(col_1);
|
||
CREATE INDEX idx2 ON t1(col_2);
|
||
CREATE INDEX idx3 ON t1(col_3);
|
||
CREATE INDEX idx4 ON t1(col_4);
|
||
CREATE INDEX idx5 ON t1(col_5);
|
||
CREATE INDEX idx6 ON t1(col_6(255));
|
||
CREATE INDEX idx7 ON t1(col_7(255));
|
||
CREATE INDEX idx8 ON t1(col_8(255));
|
||
CREATE INDEX idx9 ON t1(col_9(255));
|
||
CREATE INDEX idx10 ON t1(col_10(255));
|
||
CREATE INDEX idx11 ON t1(col_11(255));
|
||
CREATE INDEX idx12 ON t1(col_12(255));
|
||
CREATE INDEX idx13 ON t1(col_13(255));
|
||
CREATE INDEX idx14 ON t1(col_14(255));
|
||
ALTER TABLE t1 DISCARD TABLESPACE;
|
||
restore: t1#P#p0 .ibd and .cfg files
|
||
restore: t1#P#p1 .ibd and .cfg files
|
||
restore: t1#P#p2 .ibd and .cfg files
|
||
ALTER TABLE t1 IMPORT TABLESPACE;
|
||
SELECT
|
||
col_1 = REPEAT("col1_00001",10),
|
||
col_2 = REPEAT("col2_00001",10),
|
||
col_3 = REPEAT("col3_00001",10),
|
||
col_4 = REPEAT("col4_00001",10),
|
||
col_5 = REPEAT("col5_00001",10),
|
||
col_6 = REPEAT("col6_00001",10),
|
||
col_7 = REPEAT("col7_00001",10),
|
||
col_8 = REPEAT("col8_00001",10),
|
||
col_9 = REPEAT("col9_00001",10),
|
||
col_10 = REPEAT("col10_00001",10),
|
||
col_11 = REPEAT("col11_00001",10),
|
||
col_12 = REPEAT("col12_00001",10),
|
||
col_13 = REPEAT("col13_00001",10),
|
||
col_14 = REPEAT("col14_00001",10),
|
||
col_15
|
||
FROM t1;
|
||
col_1 = REPEAT("col1_00001",10) col_2 = REPEAT("col2_00001",10) col_3 = REPEAT("col3_00001",10) col_4 = REPEAT("col4_00001",10) col_5 = REPEAT("col5_00001",10) col_6 = REPEAT("col6_00001",10) col_7 = REPEAT("col7_00001",10) col_8 = REPEAT("col8_00001",10) col_9 = REPEAT("col9_00001",10) col_10 = REPEAT("col10_00001",10) col_11 = REPEAT("col11_00001",10) col_12 = REPEAT("col12_00001",10) col_13 = REPEAT("col13_00001",10) col_14 = REPEAT("col14_00001",10) col_15
|
||
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
|
||
# perform transaction on imported table
|
||
SET AUTOCOMMIT = 0;
|
||
INSERT INTO t1(col_15) VALUES (15000),(16000);
|
||
SELECT col_15 FROM t1 WHERE col_15 > 11000;
|
||
col_15
|
||
15000
|
||
16000
|
||
ROLLBACK;
|
||
SELECT col_15 FROM t1 WHERE col_15 > 11000;
|
||
col_15
|
||
INSERT INTO t1(col_15) VALUES (15000),(16000);
|
||
COMMIT;
|
||
SELECT col_15 FROM t1 WHERE col_15 > 11000;
|
||
col_15
|
||
15000
|
||
16000
|
||
# Perform DDL operations on imported table.
|
||
ALTER TABLE t1 DROP INDEX idx1;
|
||
ALTER TABLE t1 DROP INDEX idx6;
|
||
ALTER TABLE t1 DROP INDEX idx10;
|
||
SELECT
|
||
col_1 = REPEAT("col1_00001",10),
|
||
col_2 = REPEAT("col2_00001",10),
|
||
col_3 = REPEAT("col3_00001",10),
|
||
col_4 = REPEAT("col4_00001",10),
|
||
col_5 = REPEAT("col5_00001",10),
|
||
col_6 = REPEAT("col6_00001",10),
|
||
col_7 = REPEAT("col7_00001",10),
|
||
col_8 = REPEAT("col8_00001",10),
|
||
col_9 = REPEAT("col9_00001",10),
|
||
col_10 = REPEAT("col10_00001",10),
|
||
col_11 = REPEAT("col11_00001",10),
|
||
col_12 = REPEAT("col12_00001",10),
|
||
col_13 = REPEAT("col13_00001",10),
|
||
col_14 = REPEAT("col14_00001",10),
|
||
col_15
|
||
FROM t1;
|
||
col_1 = REPEAT("col1_00001",10) col_2 = REPEAT("col2_00001",10) col_3 = REPEAT("col3_00001",10) col_4 = REPEAT("col4_00001",10) col_5 = REPEAT("col5_00001",10) col_6 = REPEAT("col6_00001",10) col_7 = REPEAT("col7_00001",10) col_8 = REPEAT("col8_00001",10) col_9 = REPEAT("col9_00001",10) col_10 = REPEAT("col10_00001",10) col_11 = REPEAT("col11_00001",10) col_12 = REPEAT("col12_00001",10) col_13 = REPEAT("col13_00001",10) col_14 = REPEAT("col14_00001",10) col_15
|
||
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
|
||
NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 15000
|
||
NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 16000
|
||
ALTER TABLE t1 ADD INDEX idx1 (col_1);
|
||
ALTER TABLE t1 ADD INDEX idx6 (col_1(255));
|
||
Warnings:
|
||
Warning 1831 Duplicate index 'idx6' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
|
||
ALTER TABLE t1 ADD INDEX idx10 (col_10(255));
|
||
SELECT
|
||
col_1 = REPEAT("col1_00001",10),
|
||
col_2 = REPEAT("col2_00001",10),
|
||
col_3 = REPEAT("col3_00001",10),
|
||
col_4 = REPEAT("col4_00001",10),
|
||
col_5 = REPEAT("col5_00001",10),
|
||
col_6 = REPEAT("col6_00001",10),
|
||
col_7 = REPEAT("col7_00001",10),
|
||
col_8 = REPEAT("col8_00001",10),
|
||
col_9 = REPEAT("col9_00001",10),
|
||
col_10 = REPEAT("col10_00001",10),
|
||
col_11 = REPEAT("col11_00001",10),
|
||
col_12 = REPEAT("col12_00001",10),
|
||
col_13 = REPEAT("col13_00001",10),
|
||
col_14 = REPEAT("col14_00001",10),
|
||
col_15
|
||
FROM t1;
|
||
col_1 = REPEAT("col1_00001",10) col_2 = REPEAT("col2_00001",10) col_3 = REPEAT("col3_00001",10) col_4 = REPEAT("col4_00001",10) col_5 = REPEAT("col5_00001",10) col_6 = REPEAT("col6_00001",10) col_7 = REPEAT("col7_00001",10) col_8 = REPEAT("col8_00001",10) col_9 = REPEAT("col9_00001",10) col_10 = REPEAT("col10_00001",10) col_11 = REPEAT("col11_00001",10) col_12 = REPEAT("col12_00001",10) col_13 = REPEAT("col13_00001",10) col_14 = REPEAT("col14_00001",10) col_15
|
||
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
|
||
NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 15000
|
||
NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 16000
|
||
DROP TABLE t1;
|
||
SET AUTOCOMMIT = 1;
|
||
#
|
||
# case 12 - Transportable tablespaces with trigger / view
|
||
#
|
||
CREATE TABLE t1(col1 bit(1),
|
||
col2 boolean,col3 tinyint, col4 smallint,
|
||
col5 mediumint,col6 int, col7 bigint,
|
||
col8 float (14,3),col9 double (14,3),
|
||
col10 VARCHAR(20) CHARACTER SET utf8,
|
||
col11 TEXT CHARACTER SET binary,
|
||
col12 ENUM('a','b','c') CHARACTER SET binary,
|
||
col13 TEXT CHARACTER SET latin1 COLLATE latin1_general_cs,
|
||
col14 CHAR(20), col15 VARBINARY (400),
|
||
col16 BINARY(40), col17 BLOB (400),
|
||
col18 int not null primary key,
|
||
col19 DATE,col20 DATETIME, col21 TIMESTAMP NULL,
|
||
col22 TIME, col23 YEAR) ENGINE = InnoDB
|
||
PARTITION BY HASH (col18) PARTITIONS 3;
|
||
Warnings:
|
||
Warning 1681 Specifying number of digits for floating point data types is deprecated and will be removed in a future release.
|
||
Warning 1681 Specifying number of digits for floating point data types is deprecated and will be removed in a future release.
|
||
Warning 3719 'utf8' is currently an alias for the character set UTF8MB3, but will be an alias for UTF8MB4 in a future release. Please consider using UTF8MB4 in order to be unambiguous.
|
||
# table for trigger action
|
||
CREATE TABLE trigger_table (i int) ENGINE = InnoDB;
|
||
CREATE TRIGGER tri AFTER INSERT ON t1
|
||
FOR EACH ROW INSERT INTO trigger_table VALUES(NEW.col18);
|
||
CREATE OR REPLACE VIEW VW1 AS SELECT * FROM t1;
|
||
CREATE INDEX idx1 ON t1(col18);
|
||
CREATE INDEX prefix_idx ON t1(col14 (10));
|
||
INSERT INTO t1 VALUES (
|
||
1,1,-128,32767,-8388608,2147483647,-9223372036854775808,92233720368.222,
|
||
-92233720368.222,'aaa','aaaaaaaaaa','b','bbbbb','ccccc',REPEAT('d',40),
|
||
REPEAT('d',40),REPEAT('d',40),1,'1000-01-01','3000-12-31 23:59:59.99',
|
||
'1990-01-01 00:00:01.00','01:59:59.00','1901');
|
||
INSERT INTO t1 VALUES (
|
||
NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
|
||
NULL,NULL,3,NULL,NULL,NULL,NULL,NULL);
|
||
INSERT INTO t1 VALUES (
|
||
NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
|
||
NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
|
||
ERROR 23000: Column 'col18' cannot be null
|
||
INSERT INTO t1 VALUES (
|
||
NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
|
||
NULL,NULL,1,NULL,NULL,NULL,NULL,NULL);
|
||
ERROR 23000: Duplicate entry '1' for key 'PRIMARY'
|
||
SELECT * FROM t1;
|
||
col1 col2 col3 col4 col5 col6 col7 col8 col9 col10 col11 col12 col13 col14 col15 col16 col17 col18 col19 col20 col21 col22 col23
|
||
NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 3 NULL NULL NULL NULL NULL
|
||
1 -128 32767 -8388608 2147483647 -9223372036854775808 92233719808.000 -92233720368.222 aaa aaaaaaaaaa b bbbbb ccccc dddddddddddddddddddddddddddddddddddddddd dddddddddddddddddddddddddddddddddddddddd dddddddddddddddddddddddddddddddddddddddd 1 1000-01-01 3001-01-01 00:00:00 1990-01-01 00:00:01 01:59:59 1901
|
||
SELECT * FROM trigger_table;
|
||
i
|
||
1
|
||
3
|
||
SELECT * FROM VW1;
|
||
col1 col2 col3 col4 col5 col6 col7 col8 col9 col10 col11 col12 col13 col14 col15 col16 col17 col18 col19 col20 col21 col22 col23
|
||
NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 3 NULL NULL NULL NULL NULL
|
||
1 -128 32767 -8388608 2147483647 -9223372036854775808 92233719808.000 -92233720368.222 aaa aaaaaaaaaa b bbbbb ccccc dddddddddddddddddddddddddddddddddddddddd dddddddddddddddddddddddddddddddddddddddd dddddddddddddddddddddddddddddddddddddddd 1 1000-01-01 3001-01-01 00:00:00 1990-01-01 00:00:01 01:59:59 1901
|
||
FLUSH TABLES t1 FOR EXPORT;
|
||
backup: t1#P#p0
|
||
backup: t1#P#p1
|
||
backup: t1#P#p2
|
||
UNLOCK TABLES;
|
||
# trigger is also dropped when table is dropped
|
||
DROP TABLE t1;
|
||
CREATE TABLE t1(col1 bit(1),
|
||
col2 boolean,col3 tinyint, col4 smallint,
|
||
col5 mediumint,col6 int, col7 bigint,
|
||
col8 float (14,3),col9 double (14,3),
|
||
col10 VARCHAR(20) CHARACTER SET utf8,
|
||
col11 TEXT CHARACTER SET binary,
|
||
col12 ENUM('a','b','c') CHARACTER SET binary,
|
||
col13 TEXT CHARACTER SET latin1 COLLATE latin1_general_cs,
|
||
col14 CHAR(20), col15 VARBINARY (400),
|
||
col16 BINARY(40), col17 BLOB (400),
|
||
col18 int not null primary key,
|
||
col19 DATE,col20 DATETIME, col21 TIMESTAMP NULL,
|
||
col22 TIME, col23 YEAR) ENGINE = InnoDB
|
||
PARTITION BY HASH (col18) PARTITIONS 3;
|
||
Warnings:
|
||
Warning 1681 Specifying number of digits for floating point data types is deprecated and will be removed in a future release.
|
||
Warning 1681 Specifying number of digits for floating point data types is deprecated and will be removed in a future release.
|
||
Warning 3719 'utf8' is currently an alias for the character set UTF8MB3, but will be an alias for UTF8MB4 in a future release. Please consider using UTF8MB4 in order to be unambiguous.
|
||
CREATE INDEX idx1 ON t1(col18);
|
||
CREATE INDEX prefix_idx ON t1(col14 (10));
|
||
ALTER TABLE t1 DISCARD TABLESPACE;
|
||
restore: t1#P#p0 .ibd and .cfg files
|
||
restore: t1#P#p1 .ibd and .cfg files
|
||
restore: t1#P#p2 .ibd and .cfg files
|
||
ALTER TABLE t1 IMPORT TABLESPACE;
|
||
SELECT * FROM t1;
|
||
col1 col2 col3 col4 col5 col6 col7 col8 col9 col10 col11 col12 col13 col14 col15 col16 col17 col18 col19 col20 col21 col22 col23
|
||
NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 3 NULL NULL NULL NULL NULL
|
||
1 -128 32767 -8388608 2147483647 -9223372036854775808 92233719808.000 -92233720368.222 aaa aaaaaaaaaa b bbbbb ccccc dddddddddddddddddddddddddddddddddddddddd dddddddddddddddddddddddddddddddddddddddd dddddddddddddddddddddddddddddddddddddddd 1 1000-01-01 3001-01-01 00:00:00 1990-01-01 00:00:01 01:59:59 1901
|
||
SELECT * FROM trigger_table;
|
||
i
|
||
1
|
||
3
|
||
SELECT * FROM VW1;
|
||
col1 col2 col3 col4 col5 col6 col7 col8 col9 col10 col11 col12 col13 col14 col15 col16 col17 col18 col19 col20 col21 col22 col23
|
||
NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 3 NULL NULL NULL NULL NULL
|
||
1 -128 32767 -8388608 2147483647 -9223372036854775808 92233719808.000 -92233720368.222 aaa aaaaaaaaaa b bbbbb ccccc dddddddddddddddddddddddddddddddddddddddd dddddddddddddddddddddddddddddddddddddddd dddddddddddddddddddddddddddddddddddddddd 1 1000-01-01 3001-01-01 00:00:00 1990-01-01 00:00:01 01:59:59 1901
|
||
INSERT INTO t1(col18) VALUES (5);
|
||
SELECT * FROM trigger_table;
|
||
i
|
||
1
|
||
3
|
||
UPDATE t1 SET col18=10 WHERE col18=1;
|
||
SELECT * FROM VW1;
|
||
col1 col2 col3 col4 col5 col6 col7 col8 col9 col10 col11 col12 col13 col14 col15 col16 col17 col18 col19 col20 col21 col22 col23
|
||
NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 3 NULL NULL NULL NULL NULL
|
||
1 -128 32767 -8388608 2147483647 -9223372036854775808 92233719808.000 -92233720368.222 aaa aaaaaaaaaa b bbbbb ccccc dddddddddddddddddddddddddddddddddddddddd dddddddddddddddddddddddddddddddddddddddd dddddddddddddddddddddddddddddddddddddddd 10 1000-01-01 3001-01-01 00:00:00 1990-01-01 00:00:01 01:59:59 1901
|
||
NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 5 NULL NULL NULL NULL NULL
|
||
SELECT * FROM t1 WHERE col18=10;
|
||
col1 col2 col3 col4 col5 col6 col7 col8 col9 col10 col11 col12 col13 col14 col15 col16 col17 col18 col19 col20 col21 col22 col23
|
||
1 -128 32767 -8388608 2147483647 -9223372036854775808 92233719808.000 -92233720368.222 aaa aaaaaaaaaa b bbbbb ccccc dddddddddddddddddddddddddddddddddddddddd dddddddddddddddddddddddddddddddddddddddd dddddddddddddddddddddddddddddddddddddddd 10 1000-01-01 3001-01-01 00:00:00 1990-01-01 00:00:01 01:59:59 1901
|
||
ALTER TABLE t1 ADD COLUMN col24 varbinary(40) default null;
|
||
INSERT INTO t1(col18,col24) VALUES (6,REPEAT('a',10));
|
||
SELECT col24,col18 FROM t1 WHERE col18 in (6,1,10) ORDER BY col18;
|
||
col24 col18
|
||
aaaaaaaaaa 6
|
||
NULL 10
|
||
ALTER TABLE t1 DROP INDEX prefix_idx;
|
||
SELECT col18,col14 FROM t1 WHERE col14 like '_ccc%';
|
||
col18 col14
|
||
10 ccccc
|
||
ALTER TABLE t1 ADD INDEX prefix_idx (col24(10));
|
||
SELECT col18,col24 FROM t1 WHERE col24 like '_a_a%';
|
||
col18 col24
|
||
6 aaaaaaaaaa
|
||
DROP VIEW VW1;
|
||
DROP TABLE t1;
|
||
DROP TABLE trigger_table;
|
||
#
|
||
# case 13 Simple export, discard and import with instant ADD COLUMN.
|
||
#
|
||
CREATE TABLE t1 (c1 INT) ENGINE = InnoDB
|
||
PARTITION BY HASH(c1) PARTITIONS 3;
|
||
INSERT INTO t1 VALUES (1), (123), (212), (331), (332), (333), (334), (335) ;
|
||
ALTER TABLE t1 ADD COLUMN c2 INT DEFAULT 500;
|
||
SELECT c1 FROM t1;
|
||
c1
|
||
123
|
||
333
|
||
1
|
||
331
|
||
334
|
||
212
|
||
332
|
||
335
|
||
FLUSH TABLES t1 FOR EXPORT;
|
||
SELECT * FROM t1 ORDER BY c1;
|
||
c1 c2
|
||
1 500
|
||
123 500
|
||
212 500
|
||
331 500
|
||
332 500
|
||
333 500
|
||
334 500
|
||
335 500
|
||
backup: t1#P#p0
|
||
backup: t1#P#p1
|
||
backup: t1#P#p2
|
||
UNLOCK TABLES;
|
||
DROP TABLE t1;
|
||
CREATE TABLE t1 (c1 INT, c2 INT) ENGINE = InnoDB
|
||
PARTITION BY HASH(c1) PARTITIONS 3;
|
||
ALTER TABLE t1 DISCARD TABLESPACE;
|
||
restore: t1#P#p0 .ibd and .cfg files
|
||
restore: t1#P#p1 .ibd and .cfg files
|
||
restore: t1#P#p2 .ibd and .cfg files
|
||
ALTER TABLE t1 IMPORT TABLESPACE;
|
||
CHECK TABLE t1;
|
||
Table Op Msg_type Msg_text
|
||
test.t1 check status OK
|
||
SELECT * FROM t1 ORDER BY c1;
|
||
c1 c2
|
||
1 500
|
||
123 500
|
||
212 500
|
||
331 500
|
||
332 500
|
||
333 500
|
||
334 500
|
||
335 500
|
||
DROP TABLE t1;
|
||
#
|
||
# case 14 Simple export, discard and import with instant ADD COLUMN.
|
||
# However, this time the .cfg file would be missing
|
||
#
|
||
CREATE TABLE t1 (c1 INT) ENGINE = InnoDB
|
||
PARTITION BY HASH(c1) PARTITIONS 3;
|
||
INSERT INTO t1 VALUES (1), (123), (212), (331), (332), (333), (334), (335) ;
|
||
ALTER TABLE t1 ADD COLUMN c2 INT DEFAULT 500;
|
||
SELECT c1 FROM t1;
|
||
c1
|
||
123
|
||
333
|
||
1
|
||
331
|
||
334
|
||
212
|
||
332
|
||
335
|
||
FLUSH TABLES t1 FOR EXPORT;
|
||
SELECT * FROM t1 ORDER BY c1;
|
||
c1 c2
|
||
1 500
|
||
123 500
|
||
212 500
|
||
331 500
|
||
332 500
|
||
333 500
|
||
334 500
|
||
335 500
|
||
backup: t1#P#p0
|
||
backup: t1#P#p1
|
||
backup: t1#P#p2
|
||
UNLOCK TABLES;
|
||
DROP TABLE t1;
|
||
CREATE TABLE t1 (c1 INT, c2 INT) ENGINE = InnoDB
|
||
PARTITION BY HASH(c1) PARTITIONS 3;
|
||
ALTER TABLE t1 DISCARD TABLESPACE;
|
||
restore: t1#P#p0 .ibd and .cfg files
|
||
restore: t1#P#p1 .ibd and .cfg files
|
||
restore: t1#P#p2 .ibd and .cfg files
|
||
# remove the .cfg files
|
||
ALTER TABLE t1 IMPORT TABLESPACE;
|
||
ERROR HY000: Schema mismatch (Clustered index validation failed. Because the .cfg file is missing, table definition of the IBD file could be different. Or the data file itself is already corrupted.)
|
||
DROP TABLE t1;
|
||
SET GLOBAL innodb_file_per_table = @old_innodb_file_per_table;
|
||
#
|
||
# DISCARD/IMPORT selected partitions only
|
||
#
|
||
CREATE TABLE t1 (c1 INT) ENGINE = InnoDB
|
||
PARTITION BY HASH (c1) PARTITIONS 3;
|
||
INSERT INTO t1 VALUES (1),(2),(3),(4),(5),(6);
|
||
SELECT c1 FROM t1 ORDER BY c1;
|
||
c1
|
||
1
|
||
2
|
||
3
|
||
4
|
||
5
|
||
6
|
||
FLUSH TABLES t1 FOR EXPORT;
|
||
SELECT * FROM t1 ORDER BY c1;
|
||
c1
|
||
1
|
||
2
|
||
3
|
||
4
|
||
5
|
||
6
|
||
backup: t1#P#p0
|
||
backup: t1#P#p1
|
||
backup: t1#P#p2
|
||
UNLOCK TABLES;
|
||
DROP TABLE t1;
|
||
CREATE TABLE t1 (c1 INT) ENGINE = InnoDB
|
||
PARTITION BY HASH (c1) PARTITIONS 3;
|
||
INSERT INTO t1 VALUES (31), (32), (33);
|
||
ALTER TABLE t1 DISCARD PARTITION p0,p2 TABLESPACE;
|
||
restore: t1#P#p0 .ibd and .cfg files
|
||
restore: t1#P#p2 .ibd and .cfg files
|
||
ALTER TABLE t1 IMPORT PARTITION p0, p2 TABLESPACE;
|
||
SELECT * FROM t1 ORDER BY c1;
|
||
c1
|
||
2
|
||
3
|
||
5
|
||
6
|
||
31
|
||
ALTER TABLE t1 DISCARD PARTITION p1 TABLESPACE;
|
||
restore: t1#P#p1 .ibd and .cfg files
|
||
ALTER TABLE t1 IMPORT PARTITION p1 TABLESPACE;
|
||
SELECT * FROM t1 ORDER BY c1;
|
||
c1
|
||
1
|
||
2
|
||
3
|
||
4
|
||
5
|
||
6
|
||
INSERT INTO t1 VALUES (31), (32), (33);
|
||
SELECT * FROM t1 ORDER BY c1;
|
||
c1
|
||
1
|
||
2
|
||
3
|
||
4
|
||
5
|
||
6
|
||
31
|
||
32
|
||
33
|
||
ALTER TABLE t1 DISCARD PARTITION all TABLESPACE;
|
||
restore: t1#P#p0 .ibd and .cfg files
|
||
restore: t1#P#p1 .ibd and .cfg files
|
||
restore: t1#P#p2 .ibd and .cfg files
|
||
ALTER TABLE t1 IMPORT PARTITION p1 TABLESPACE;
|
||
SELECT * FROM t1 PARTITION (p1) ORDER BY c1;
|
||
c1
|
||
1
|
||
4
|
||
INSERT INTO t1 PARTITION (p1) VALUES (61), (64);
|
||
FLUSH TABLES;
|
||
SELECT * FROM t1 PARTITION (p1) ORDER BY c1;
|
||
c1
|
||
1
|
||
4
|
||
61
|
||
64
|
||
Warnings:
|
||
Warning 1814 InnoDB: Tablespace has been discarded for table 't1'
|
||
SELECT * FROM t1 ORDER BY c1;
|
||
ERROR HY000: Tablespace has been discarded for table 't1'
|
||
ALTER TABLE t1 DISCARD PARTITION TABLESPACE;
|
||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
|
||
ALTER TABLE t1 IMPORT PARTITION TABLESPACE;
|
||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
|
||
ALTER TABLE t1 DISCARD PARTITION pNonExisting TABLESPACE;
|
||
ERROR HY000: Unknown partition 'pNonExisting' in table 't1'
|
||
ALTER TABLE t1 IMPORT PARTITION pNonExisting TABLESPACE;
|
||
ERROR HY000: Unknown partition 'pNonExisting' in table 't1'
|
||
ALTER TABLE t1 DISCARD PARTITION p1 TABLESPACE;
|
||
restore: t1#P#p1 .ibd and .cfg files
|
||
ALTER TABLE t1 IMPORT PARTITION all TABLESPACE;
|
||
SELECT * FROM t1 ORDER BY c1;
|
||
c1
|
||
1
|
||
2
|
||
3
|
||
4
|
||
5
|
||
6
|
||
DROP TABLE t1;
|
||
#
|
||
# DISCARD/IMPORT selected subpartitions only
|
||
#
|
||
CREATE TABLE t1 (c1 INT) ENGINE = InnoDB
|
||
PARTITION BY RANGE (c1)
|
||
SUBPARTITION BY HASH (c1) SUBPARTITIONS 3
|
||
(PARTITION p0 VALUES LESS THAN (100),
|
||
PARTITION p1 VALUES LESS THAN MAXVALUE);
|
||
INSERT INTO t1 VALUES (1),(2),(3),(4),(5),(6);
|
||
INSERT INTO t1 VALUES (101),(102),(103),(104),(105),(106);
|
||
SELECT c1 FROM t1 ORDER BY c1;
|
||
c1
|
||
1
|
||
2
|
||
3
|
||
4
|
||
5
|
||
6
|
||
101
|
||
102
|
||
103
|
||
104
|
||
105
|
||
106
|
||
FLUSH TABLES t1 FOR EXPORT;
|
||
SELECT * FROM t1 ORDER BY c1;
|
||
c1
|
||
1
|
||
2
|
||
3
|
||
4
|
||
5
|
||
6
|
||
101
|
||
102
|
||
103
|
||
104
|
||
105
|
||
106
|
||
backup: t1#P#p0#SP#p0sp0
|
||
backup: t1#P#p0#SP#p0sp1
|
||
backup: t1#P#p0#SP#p0sp2
|
||
backup: t1#P#p1#SP#p1sp0
|
||
backup: t1#P#p1#SP#p1sp1
|
||
backup: t1#P#p1#SP#p1sp2
|
||
UNLOCK TABLES;
|
||
DROP TABLE t1;
|
||
CREATE TABLE t1 (c1 INT) ENGINE = InnoDB
|
||
PARTITION BY RANGE (c1)
|
||
SUBPARTITION BY HASH (c1) SUBPARTITIONS 3
|
||
(PARTITION p0 VALUES LESS THAN (100),
|
||
PARTITION p1 VALUES LESS THAN MAXVALUE);
|
||
INSERT INTO t1 VALUES (31), (32), (33);
|
||
INSERT INTO t1 VALUES (131), (132), (133);
|
||
ALTER TABLE t1 DISCARD PARTITION p0sp1,p1sp0 TABLESPACE;
|
||
restore: t1#P#p0#SP#p0sp1 .ibd and .cfg files
|
||
restore: t1#P#p1#SP#p1sp0 .ibd and .cfg files
|
||
ALTER TABLE t1 IMPORT PARTITION p0sp1, p1sp0 TABLESPACE;
|
||
SELECT * FROM t1 ORDER BY c1;
|
||
c1
|
||
1
|
||
4
|
||
32
|
||
33
|
||
102
|
||
105
|
||
131
|
||
133
|
||
ALTER TABLE t1 DISCARD PARTITION p1, p0sp2 TABLESPACE;
|
||
restore: t1#P#p0#SP#p0sp2 .ibd and .cfg files
|
||
restore: t1#P#p1#SP#p1sp0 .ibd and .cfg files
|
||
restore: t1#P#p1#SP#p1sp1 .ibd and .cfg files
|
||
restore: t1#P#p1#SP#p1sp2 .ibd and .cfg files
|
||
ALTER TABLE t1 IMPORT PARTITION p0sp2, p1 TABLESPACE;
|
||
SELECT * FROM t1 ORDER BY c1;
|
||
c1
|
||
1
|
||
2
|
||
4
|
||
5
|
||
33
|
||
101
|
||
102
|
||
103
|
||
104
|
||
105
|
||
106
|
||
INSERT INTO t1 VALUES (31), (32), (33);
|
||
SELECT * FROM t1 ORDER BY c1;
|
||
c1
|
||
1
|
||
2
|
||
4
|
||
5
|
||
31
|
||
32
|
||
33
|
||
33
|
||
101
|
||
102
|
||
103
|
||
104
|
||
105
|
||
106
|
||
ALTER TABLE t1 DISCARD PARTITION all TABLESPACE;
|
||
restore: t1#P#p0#SP#p0sp0 .ibd and .cfg files
|
||
restore: t1#P#p0#SP#p0sp1 .ibd and .cfg files
|
||
restore: t1#P#p0#SP#p0sp2 .ibd and .cfg files
|
||
restore: t1#P#p1#SP#p1sp0 .ibd and .cfg files
|
||
restore: t1#P#p1#SP#p1sp1 .ibd and .cfg files
|
||
restore: t1#P#p1#SP#p1sp2 .ibd and .cfg files
|
||
ALTER TABLE t1 IMPORT PARTITION p1sp2 TABLESPACE;
|
||
SELECT * FROM t1 PARTITION (p1sp2) ORDER BY c1;
|
||
c1
|
||
101
|
||
104
|
||
INSERT INTO t1 PARTITION (p1sp2) VALUES (161), (164);
|
||
FLUSH TABLES;
|
||
SELECT * FROM t1 PARTITION (p1sp2) ORDER BY c1;
|
||
c1
|
||
101
|
||
104
|
||
161
|
||
164
|
||
Warnings:
|
||
Warning 1814 InnoDB: Tablespace has been discarded for table 't1'
|
||
SELECT * FROM t1 ORDER BY c1;
|
||
ERROR HY000: Tablespace has been discarded for table 't1'
|
||
ALTER TABLE t1 DISCARD PARTITION p1sp2 TABLESPACE;
|
||
restore: t1#P#p1#SP#p1sp2 .ibd and .cfg files
|
||
ALTER TABLE t1 DISCARD PARTITION all TABLESPACE;
|
||
Warnings:
|
||
Warning 1812 InnoDB: Tablespace is missing for table test/t1#P#p0#SP#p0sp0.
|
||
Warning 1812 InnoDB: Tablespace is missing for table test/t1#P#p0#SP#p0sp1.
|
||
Warning 1812 InnoDB: Tablespace is missing for table test/t1#P#p0#SP#p0sp2.
|
||
Warning 1812 InnoDB: Tablespace is missing for table test/t1#P#p1#SP#p1sp0.
|
||
Warning 1812 InnoDB: Tablespace is missing for table test/t1#P#p1#SP#p1sp1.
|
||
Warning 1812 InnoDB: Tablespace is missing for table test/t1#P#p1#SP#p1sp2.
|
||
restore: t1#P#p0#SP#p0sp0 .ibd and .cfg files
|
||
restore: t1#P#p0#SP#p0sp1 .ibd and .cfg files
|
||
restore: t1#P#p1#SP#p1sp0 .ibd and .cfg files
|
||
restore: t1#P#p1#SP#p1sp1 .ibd and .cfg files
|
||
restore: t1#P#p1#SP#p1sp2 .ibd and .cfg files
|
||
# Removing p0sp2's .ibd file
|
||
ALTER TABLE t1 IMPORT PARTITION all TABLESPACE;
|
||
ERROR HY000: Internal error: Cannot reset LSNs in table `test`.`t1` /* Partition `p0`, Subpartition `p0sp2` */ : Tablespace not found
|
||
restore: t1#P#p0#SP#p0sp2 .ibd and .cfg files
|
||
ALTER TABLE t1 IMPORT PARTITION all TABLESPACE;
|
||
ERROR HY000: Tablespace 'test/t1#P#p0#SP#p0sp0' exists.
|
||
ALTER TABLE t1 IMPORT PARTITION p0sp2 TABLESPACE;
|
||
ALTER TABLE t1 DISCARD PARTITION all TABLESPACE;
|
||
Warnings:
|
||
Warning 1812 InnoDB: Tablespace is missing for table test/t1#P#p1#SP#p1sp0.
|
||
Warning 1812 InnoDB: Tablespace is missing for table test/t1#P#p1#SP#p1sp1.
|
||
Warning 1812 InnoDB: Tablespace is missing for table test/t1#P#p1#SP#p1sp2.
|
||
restore: t1#P#p0#SP#p0sp0 .ibd and .cfg files
|
||
restore: t1#P#p0#SP#p0sp1 .ibd and .cfg files
|
||
restore: t1#P#p0#SP#p0sp2 .ibd and .cfg files
|
||
restore: t1#P#p1#SP#p1sp0 .ibd and .cfg files
|
||
restore: t1#P#p1#SP#p1sp1 .ibd and .cfg files
|
||
restore: t1#P#p1#SP#p1sp2 .ibd and .cfg files
|
||
ALTER TABLE t1 IMPORT PARTITION all TABLESPACE;
|
||
SELECT * FROM t1 ORDER BY c1;
|
||
c1
|
||
1
|
||
2
|
||
3
|
||
4
|
||
5
|
||
6
|
||
101
|
||
102
|
||
103
|
||
104
|
||
105
|
||
106
|
||
DROP TABLE t1;
|
||
CREATE TABLE t1 (c1 INT) ENGINE = InnoDB;
|
||
ALTER TABLE t1 DISCARD PARTITION pNonExisting TABLESPACE;
|
||
ERROR HY000: Partition management on a not partitioned table is not possible
|
||
ALTER TABLE t1 IMPORT PARTITION pNonExisting TABLESPACE;
|
||
ERROR HY000: Partition management on a not partitioned table is not possible
|
||
ALTER TABLE t1 IMPORT PARTITION all TABLESPACE;
|
||
ERROR HY000: Partition management on a not partitioned table is not possible
|
||
DROP TABLE t1;
|
||
# discard partition one by one
|
||
CREATE TABLE t1 (c1 INT) ENGINE = InnoDB
|
||
PARTITION BY RANGE (c1)
|
||
SUBPARTITION BY HASH (c1) SUBPARTITIONS 3
|
||
(PARTITION p0 VALUES LESS THAN (100),
|
||
PARTITION p1 VALUES LESS THAN MAXVALUE);
|
||
ALTER TABLE t1 DISCARD PARTITION p0sp0 TABLESPACE;
|
||
restore: t1#P#p0#SP#p0sp0 .ibd and .cfg files
|
||
ALTER TABLE t1 IMPORT PARTITION p0sp0 TABLESPACE;
|
||
SELECT * FROM t1 PARTITION (p0sp0) ORDER BY c1;
|
||
c1
|
||
3
|
||
6
|
||
SELECT * FROM t1 ORDER BY c1;
|
||
c1
|
||
3
|
||
6
|
||
ALTER TABLE t1 REBUILD PARTITION p0;
|
||
SELECT * FROM t1 PARTITION (p0sp0) ORDER BY c1;
|
||
c1
|
||
3
|
||
6
|
||
ALTER TABLE t1 DISCARD PARTITION p1 TABLESPACE;
|
||
restore: t1#P#p1#SP#p1sp0 .ibd and .cfg files
|
||
restore: t1#P#p1#SP#p1sp1 .ibd and .cfg files
|
||
restore: t1#P#p1#SP#p1sp2 .ibd and .cfg files
|
||
ALTER TABLE t1 IMPORT PARTITION p1 TABLESPACE;
|
||
SELECT * FROM t1 PARTITION (p1) ORDER BY c1;
|
||
c1
|
||
101
|
||
102
|
||
103
|
||
104
|
||
105
|
||
106
|
||
ALTER TABLE t1 OPTIMIZE PARTITION p1;
|
||
Table Op Msg_type Msg_text
|
||
test.t1 optimize note Table does not support optimize on partitions. All partitions will be rebuilt and analyzed.
|
||
test.t1 optimize status OK
|
||
SELECT * FROM t1 PARTITION (p1) ORDER BY c1;
|
||
c1
|
||
101
|
||
102
|
||
103
|
||
104
|
||
105
|
||
106
|
||
ALTER TABLE t1 CHECK PARTITION p1;
|
||
Table Op Msg_type Msg_text
|
||
test.t1 check status OK
|
||
ALTER TABLE t1 ANALYZE PARTITION p1;
|
||
Table Op Msg_type Msg_text
|
||
test.t1 analyze status OK
|
||
ALTER TABLE t1 REPAIR PARTITION p0sp0,p1;
|
||
Table Op Msg_type Msg_text
|
||
test.t1 repair status OK
|
||
SELECT * FROM t1 ORDER BY c1;
|
||
c1
|
||
3
|
||
6
|
||
101
|
||
102
|
||
103
|
||
104
|
||
105
|
||
106
|
||
ALTER TABLE t1 DISCARD PARTITION p0sp0 TABLESPACE;
|
||
ALTER TABLE t1 DISCARD PARTITION p1 TABLESPACE;
|
||
ALTER TABLE t1 DISCARD PARTITION p0sp1 TABLESPACE;
|
||
ALTER TABLE t1 DISCARD PARTITION p0sp2 TABLESPACE;
|
||
restore: t1#P#p0#SP#p0sp0 .ibd and .cfg files
|
||
restore: t1#P#p0#SP#p0sp1 .ibd and .cfg files
|
||
restore: t1#P#p0#SP#p0sp2 .ibd and .cfg files
|
||
restore: t1#P#p1#SP#p1sp0 .ibd and .cfg files
|
||
restore: t1#P#p1#SP#p1sp1 .ibd and .cfg files
|
||
restore: t1#P#p1#SP#p1sp2 .ibd and .cfg files
|
||
ALTER TABLE t1 IMPORT PARTITION all TABLESPACE;
|
||
SELECT * FROM t1 ORDER BY c1;
|
||
c1
|
||
1
|
||
2
|
||
3
|
||
4
|
||
5
|
||
6
|
||
101
|
||
102
|
||
103
|
||
104
|
||
105
|
||
106
|
||
DROP TABLE t1;
|
||
CREATE TABLE t1 (a INT NOT NULL PRIMARY KEY, b INT) PARTITION BY HASH (a) PARTITIONS 3;
|
||
INSERT INTO t1 VALUES(1, 1), (2, 2), (11, 11), (12, 12), (21, 21), (22, 22), (26, 26), (27, 27);
|
||
ALTER TABLE t1 ADD COLUMN c INT DEFAULT 100;
|
||
SELECT * FROM t1;
|
||
a b c
|
||
12 12 100
|
||
21 21 100
|
||
27 27 100
|
||
1 1 100
|
||
22 22 100
|
||
2 2 100
|
||
11 11 100
|
||
26 26 100
|
||
INSERT INTO t1(a, b) VALUES(5, 5), (6, 6), (28, 28);
|
||
ALTER TABLE t1 TRUNCATE PARTITION p2;
|
||
SELECT * FROM t1;
|
||
a b c
|
||
6 6 100
|
||
12 12 100
|
||
21 21 100
|
||
27 27 100
|
||
1 1 100
|
||
22 22 100
|
||
28 28 100
|
||
ALTER TABLE t1 ADD COLUMN d INT DEFAULT 200;
|
||
ALTER TABLE t1 TRUNCATE PARTITION p1;
|
||
SELECT * FROM t1;
|
||
a b c d
|
||
6 6 100 200
|
||
12 12 100 200
|
||
21 21 100 200
|
||
27 27 100 200
|
||
INSERT INTO t1(a, b) VALUES(3, 3), (4, 4);
|
||
SELECT * FROM t1;
|
||
a b c d
|
||
3 3 100 200
|
||
6 6 100 200
|
||
12 12 100 200
|
||
21 21 100 200
|
||
27 27 100 200
|
||
4 4 100 200
|
||
CHECK TABLE t1;
|
||
Table Op Msg_type Msg_text
|
||
test.t1 check status OK
|
||
FLUSH TABLES t1 FOR EXPORT;
|
||
SELECT * FROM t1;
|
||
a b c d
|
||
3 3 100 200
|
||
6 6 100 200
|
||
12 12 100 200
|
||
21 21 100 200
|
||
27 27 100 200
|
||
4 4 100 200
|
||
backup: t1#P#p0
|
||
backup: t1#P#p1
|
||
backup: t1#P#p2
|
||
UNLOCK TABLES;
|
||
DROP TABLE t1;
|
||
CREATE TABLE t1 (a INT NOT NULL PRIMARY KEY, b INT, c INT, d INT) PARTITION BY HASH (a) PARTITIONS 3;
|
||
ALTER TABLE t1 DISCARD PARTITION all TABLESPACE;
|
||
restore: t1#P#p0 .ibd and .cfg files
|
||
restore: t1#P#p1 .ibd and .cfg files
|
||
restore: t1#P#p2 .ibd and .cfg files
|
||
ALTER TABLE t1 IMPORT PARTITION all TABLESPACE;
|
||
CHECK TABLE t1;
|
||
Table Op Msg_type Msg_text
|
||
test.t1 check status OK
|
||
SELECT * FROM t1;
|
||
a b c d
|
||
3 3 100 200
|
||
6 6 100 200
|
||
12 12 100 200
|
||
21 21 100 200
|
||
27 27 100 200
|
||
4 4 100 200
|
||
INSERT INTO t1(a, b) VALUES(8, 8), (9, 9), (13, 13), (14, 14), (23, 23), (24, 24);
|
||
SELECT * FROM t1;
|
||
a b c d
|
||
3 3 100 200
|
||
6 6 100 200
|
||
9 9 NULL NULL
|
||
12 12 100 200
|
||
21 21 100 200
|
||
24 24 NULL NULL
|
||
27 27 100 200
|
||
4 4 100 200
|
||
13 13 NULL NULL
|
||
8 8 NULL NULL
|
||
14 14 NULL NULL
|
||
23 23 NULL NULL
|
||
UPDATE t1 SET c = 90 WHERE a < 10;
|
||
SELECT * FROM t1;
|
||
a b c d
|
||
3 3 90 200
|
||
6 6 90 200
|
||
9 9 90 NULL
|
||
12 12 100 200
|
||
21 21 100 200
|
||
24 24 NULL NULL
|
||
27 27 100 200
|
||
4 4 90 200
|
||
13 13 NULL NULL
|
||
8 8 90 NULL
|
||
14 14 NULL NULL
|
||
23 23 NULL NULL
|
||
UPDATE t1 SET c = 110 WHERE a > 20;
|
||
SELECT * FROM t1;
|
||
a b c d
|
||
3 3 90 200
|
||
6 6 90 200
|
||
9 9 90 NULL
|
||
12 12 100 200
|
||
21 21 110 200
|
||
24 24 110 NULL
|
||
27 27 110 200
|
||
4 4 90 200
|
||
13 13 NULL NULL
|
||
8 8 90 NULL
|
||
14 14 NULL NULL
|
||
23 23 110 NULL
|
||
CHECK TABLE t1;
|
||
Table Op Msg_type Msg_text
|
||
test.t1 check status OK
|
||
DROP TABLE t1;
|