133 lines
5.4 KiB
Plaintext
133 lines
5.4 KiB
Plaintext
--echo #
|
|
--echo # Test the syntax for ALTER TABLE ... PARTITION operations,
|
|
--echo # covering combinations of different ALGORITHM and LOCK.
|
|
--echo #
|
|
|
|
CREATE TABLE t1 (
|
|
id INT NOT NULL AUTO_INCREMENT,
|
|
name VARCHAR(50),
|
|
purchased DATE, KEY(id))
|
|
PARTITION BY RANGE( YEAR(purchased) ) (
|
|
PARTITION p0 VALUES LESS THAN (1990),
|
|
PARTITION p1 VALUES LESS THAN (1995),
|
|
PARTITION p2 VALUES LESS THAN (2000),
|
|
PARTITION p3 VALUES LESS THAN (2005));
|
|
|
|
INSERT INTO t1 VALUES (1, 'desk organiser', '2003-10-15'), (2, 'CD player', '1993-11-05');
|
|
|
|
CREATE TABLE t (
|
|
id INT NOT NULL AUTO_INCREMENT,
|
|
name VARCHAR(50),
|
|
purchased DATE, KEY(id));
|
|
|
|
CREATE TABLE t2 ( id INT NOT NULL AUTO_INCREMENT, name VARCHAR(50), purchased DATE, KEY(id)) PARTITION BY HASH( YEAR(purchased) ) PARTITIONS 4;
|
|
|
|
--disable_warnings
|
|
INSERT INTO t2 SELECT * FROM t1;
|
|
--enable_warnings
|
|
|
|
--echo # Test ALGORITHM = COPY, LOCK = * for operations
|
|
|
|
--error ER_PARSE_ERROR
|
|
ALTER TABLE t1 ALGORITHM = COPY, LOCK = NONE ADD PARTITION (PARTITION p4 VALUES LESS THAN (2010));
|
|
--error ER_PARSE_ERROR
|
|
ALTER TABLE t1 ALGORITHM = COPY, LOCK = NONE DROP PARTITION p0;
|
|
|
|
ALTER TABLE t1 ALGORITHM = COPY, LOCK = SHARED, ADD PARTITION (PARTITION p4 VALUES LESS THAN (2010));
|
|
ALTER TABLE t1 ALGORITHM = COPY, LOCK = SHARED, DROP PARTITION p4;
|
|
|
|
ALTER TABLE t1 ALGORITHM = COPY, LOCK = EXCLUSIVE, ADD PARTITION (PARTITION p4 VALUES LESS THAN (2010));
|
|
ALTER TABLE t1 ALGORITHM = COPY, LOCK = EXCLUSIVE, DROP PARTITION p4;
|
|
|
|
SHOW CREATE TABLE t1;
|
|
SELECT * FROM t1 ORDER BY id;
|
|
|
|
--error ER_ALTER_OPERATION_NOT_SUPPORTED_REASON
|
|
ALTER TABLE t1 ALGORITHM = COPY, LOCK = NONE, REORGANIZE PARTITION p3 INTO
|
|
(PARTITION p31 VALUES LESS THAN (2003), PARTITION p32 VALUES LESS THAN (2005));
|
|
|
|
ALTER TABLE t1 ALGORITHM = COPY, LOCK = SHARED, REORGANIZE PARTITION p3 INTO
|
|
(PARTITION p31 VALUES LESS THAN (2003), PARTITION p32 VALUES LESS THAN (2005));
|
|
ALTER TABLE t1 ALGORITHM = COPY, LOCK = EXCLUSIVE, REORGANIZE PARTITION p31, p32 INTO (PARTITION p3 VALUES LESS THAN (2005));
|
|
|
|
--error ER_ALTER_OPERATION_NOT_SUPPORTED_REASON
|
|
ALTER TABLE t1 ALGORITHM = COPY, LOCK = NONE, REBUILD PARTITION p0;
|
|
|
|
ALTER TABLE t1 ALGORITHM = COPY, LOCK = SHARED, REBUILD PARTITION p1;
|
|
ALTER TABLE t2 ALGORITHM = COPY, LOCK = EXCLUSIVE, REBUILD PARTITION p2;
|
|
|
|
SHOW CREATE TABLE t1;
|
|
SELECT * FROM t1 ORDER BY id;
|
|
|
|
--error ER_ALTER_OPERATION_NOT_SUPPORTED_REASON
|
|
ALTER TABLE t2 ALGORITHM = COPY, LOCK = NONE, ADD PARTITION PARTITIONS 1;
|
|
--error ER_ALTER_OPERATION_NOT_SUPPORTED_REASON
|
|
ALTER TABLE t2 ALGORITHM = COPY, LOCK = NONE, COALESCE PARTITION 1;
|
|
|
|
ALTER TABLE t2 ALGORITHM = COPY, LOCK = SHARED, ADD PARTITION PARTITIONS 1;
|
|
ALTER TABLE t2 ALGORITHM = COPY, LOCK = SHARED, COALESCE PARTITION 1;
|
|
|
|
ALTER TABLE t2 ALGORITHM = COPY, LOCK = EXCLUSIVE, ADD PARTITION PARTITIONS 1;
|
|
ALTER TABLE t2 ALGORITHM = COPY, LOCK = EXCLUSIVE, COALESCE PARTITION 1;
|
|
|
|
SHOW CREATE TABLE t1;
|
|
SELECT * FROM t1 ORDER BY id;
|
|
|
|
--echo # Test ALGORITHM = INPLACE, LOCK = * for all operations
|
|
|
|
ALTER TABLE t1 ALGORITHM = INPLACE, LOCK = NONE, ADD PARTITION (PARTITION p4 VALUES LESS THAN (2010));
|
|
ALTER TABLE t1 ALGORITHM = INPLACE, LOCK = NONE, DROP PARTITION p4;
|
|
|
|
ALTER TABLE t1 ALGORITHM = INPLACE, LOCK = SHARED, ADD PARTITION (PARTITION p4 VALUES LESS THAN (2010));
|
|
ALTER TABLE t1 ALGORITHM = INPLACE, LOCK = SHARED, DROP PARTITION p4;
|
|
|
|
ALTER TABLE t1 ALGORITHM = INPLACE, LOCK = EXCLUSIVE, ADD PARTITION (PARTITION p4 VALUES LESS THAN (2010));
|
|
ALTER TABLE t1 ALGORITHM = INPLACE, LOCK = EXCLUSIVE, DROP PARTITION p4;
|
|
|
|
SHOW CREATE TABLE t1;
|
|
SELECT * FROM t1 ORDER BY id;
|
|
|
|
--error ER_ALTER_OPERATION_NOT_SUPPORTED
|
|
ALTER TABLE t1 ALGORITHM = INPLACE, LOCK = NONE, REORGANIZE PARTITION p3 INTO
|
|
(PARTITION p31 VALUES LESS THAN (2003), PARTITION p32 VALUES LESS THAN (2005));
|
|
|
|
ALTER TABLE t1 ALGORITHM = INPLACE, LOCK = SHARED, REORGANIZE PARTITION p3 INTO
|
|
(PARTITION p31 VALUES LESS THAN (2003), PARTITION p32 VALUES LESS THAN (2005));
|
|
ALTER TABLE t1 ALGORITHM = INPLACE, LOCK = EXCLUSIVE, REORGANIZE PARTITION p31, p32 INTO (PARTITION p3 VALUES LESS THAN (2005));
|
|
|
|
--error ER_ALTER_OPERATION_NOT_SUPPORTED
|
|
ALTER TABLE t1 ALGORITHM = INPLACE, LOCK = NONE, REBUILD PARTITION p0;
|
|
|
|
ALTER TABLE t1 ALGORITHM = INPLACE, LOCK = SHARED, REBUILD PARTITION p1;
|
|
ALTER TABLE t2 ALGORITHM = INPLACE, LOCK = EXCLUSIVE, REBUILD PARTITION p2;
|
|
|
|
SHOW CREATE TABLE t1;
|
|
SELECT * FROM t1 ORDER BY id;
|
|
|
|
--error ER_ALTER_OPERATION_NOT_SUPPORTED
|
|
ALTER TABLE t2 ALGORITHM = INPLACE, LOCK = NONE, ADD PARTITION PARTITIONS 1;
|
|
--error ER_ALTER_OPERATION_NOT_SUPPORTED
|
|
ALTER TABLE t2 ALGORITHM = INPLACE, LOCK = NONE, COALESCE PARTITION 1;
|
|
|
|
ALTER TABLE t2 ALGORITHM = INPLACE, LOCK = SHARED, ADD PARTITION PARTITIONS 1;
|
|
ALTER TABLE t2 ALGORITHM = INPLACE, LOCK = SHARED, COALESCE PARTITION 1;
|
|
|
|
ALTER TABLE t2 ALGORITHM = INPLACE, LOCK = EXCLUSIVE, ADD PARTITION PARTITIONS 1;
|
|
ALTER TABLE t2 ALGORITHM = INPLACE, LOCK = EXCLUSIVE, COALESCE PARTITION 1;
|
|
|
|
SHOW CREATE TABLE t1;
|
|
SELECT * FROM t1 ORDER BY id;
|
|
|
|
ALTER TABLE t1 ALGORITHM = COPY, LOCK = NONE, EXCHANGE PARTITION p0 WITH TABLE t;
|
|
ALTER TABLE t1 ALGORITHM = COPY, LOCK = SHARED, EXCHANGE PARTITION p0 WITH TABLE t;
|
|
ALTER TABLE t1 ALGORITHM = COPY, LOCK = EXCLUSIVE, EXCHANGE PARTITION p0 WITH TABLE t;
|
|
ALTER TABLE t1 ALGORITHM = INPLACE, LOCK = NONE, EXCHANGE PARTITION p0 WITH TABLE t;
|
|
ALTER TABLE t1 ALGORITHM = INPLACE, LOCK = SHARED, EXCHANGE PARTITION p0 WITH TABLE t;
|
|
ALTER TABLE t1 ALGORITHM = INPLACE, LOCK = EXCLUSIVE, EXCHANGE PARTITION p0 WITH TABLE t;
|
|
|
|
SHOW CREATE TABLE t1;
|
|
SELECT * FROM t1 ORDER BY id;
|
|
|
|
DROP TABLE t1, t2, t;
|
|
|