-
Notifications
You must be signed in to change notification settings - Fork 4k
/
Copy pathalter_table_partition.test
132 lines (95 loc) · 5.42 KB
/
alter_table_partition.test
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
--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;