--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;