mirror of
https://github.com/MariaDB/server.git
synced 2025-12-07 17:42:39 +03:00
Introduced new alter algorithm type called NOCOPY & INSTANT for inplace alter operation. NOCOPY - Algorithm refuses any alter operation that would rebuild the clustered index. It is a subset of INPLACE algorithm. INSTANT - Algorithm allow any alter operation that would modify only meta data. It is a subset of NOCOPY algorithm. Introduce new variable called alter_algorithm. The values are DEFAULT(0), COPY(1), INPLACE(2), NOCOPY(3), INSTANT(4) Message to deprecate old_alter_table variable and make it alias for alter_algorithm variable. alter_algorithm variable for slave is always set to default.
79 lines
3.3 KiB
Plaintext
79 lines
3.3 KiB
Plaintext
--- alter_algorithm.result 2018-05-06 23:42:08.022302601 +0530
|
|
+++ alter_algorithm.reject 2018-05-06 23:46:08.482772800 +0530
|
|
@@ -7,35 +7,35 @@
|
|
INSERT INTO t1(f1, f2, f3) VALUES(1, 1, 1);
|
|
SELECT @@alter_algorithm;
|
|
@@alter_algorithm
|
|
-NOCOPY
|
|
+INSTANT
|
|
# All the following cases needs table rebuild
|
|
# Add and Drop primary key
|
|
ALTER TABLE t1 ADD COLUMN col1 INT NOT NULL,DROP PRIMARY KEY,ADD PRIMARY KEY(col1);
|
|
-ERROR 0A000: ALGORITHM=NOCOPY is not supported for this operation. Try ALGORITHM=INPLACE
|
|
+Got one of the listed errors
|
|
# Make existing column NULLABLE
|
|
ALTER TABLE t1 MODIFY f2 INT;
|
|
-ERROR 0A000: ALGORITHM=NOCOPY is not supported for this operation. Try ALGORITHM=INPLACE
|
|
+Got one of the listed errors
|
|
# Make existing column NON-NULLABLE
|
|
ALTER TABLE t1 MODIFY f3 INT NOT NULL;
|
|
-ERROR 0A000: ALGORITHM=NOCOPY is not supported for this operation. Try ALGORITHM=INPLACE
|
|
+Got one of the listed errors
|
|
# Drop Stored Column
|
|
ALTER TABLE t1 DROP COLUMN f5;
|
|
-ERROR 0A000: ALGORITHM=NOCOPY is not supported for this operation. Try ALGORITHM=INPLACE
|
|
+Got one of the listed errors
|
|
# Add base non-generated column as a last column in the compressed table
|
|
ALTER TABLE t1 ADD COLUMN f6 INT NOT NULL;
|
|
-ERROR 0A000: ALGORITHM=NOCOPY is not supported for this operation. Try ALGORITHM=INPLACE
|
|
+Got one of the listed errors
|
|
# Add base non-generated column but not in the last position
|
|
ALTER TABLE t1 ADD COLUMN f7 INT NOT NULL after f3;
|
|
-ERROR 0A000: ALGORITHM=NOCOPY is not supported for this operation. Try ALGORITHM=INPLACE
|
|
+Got one of the listed errors
|
|
# Force the table to rebuild
|
|
ALTER TABLE t1 FORCE;
|
|
-ERROR 0A000: ALGORITHM=NOCOPY is not supported for this operation. Try ALGORITHM=INPLACE
|
|
+Got one of the listed errors
|
|
# Row format changes
|
|
ALTER TABLE t1 ROW_FORMAT=COMPRESSED;
|
|
-ERROR 0A000: ALGORITHM=NOCOPY is not supported for this operation. Try ALGORITHM=INPLACE
|
|
+Got one of the listed errors
|
|
# Engine table
|
|
ALTER TABLE t1 ENGINE=INNODB;
|
|
-ERROR 0A000: ALGORITHM=NOCOPY is not supported for this operation. Try ALGORITHM=INPLACE
|
|
+Got one of the listed errors
|
|
DROP TABLE t1;
|
|
affected rows: 0
|
|
CREATE TABLE t1(f1 INT PRIMARY KEY, f2 INT NOT NULL,
|
|
@@ -49,23 +49,18 @@
|
|
INSERT INTO t1(f1, f2, f4, f5) VALUES(1, 2, 3, 4);
|
|
SELECT @@alter_algorithm;
|
|
@@alter_algorithm
|
|
-NOCOPY
|
|
+INSTANT
|
|
ALTER TABLE t1 ADD INDEX idx1(f4);
|
|
-affected rows: 0
|
|
-info: Records: 0 Duplicates: 0 Warnings: 0
|
|
+ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: ADD INDEX. Try ALGORITHM=NOCOPY
|
|
ALTER TABLE t1 DROP INDEX idx;
|
|
-affected rows: 0
|
|
-info: Records: 0 Duplicates: 0 Warnings: 0
|
|
+ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: DROP INDEX. Try ALGORITHM=NOCOPY
|
|
ALTER TABLE t1 ADD UNIQUE INDEX u1(f2);
|
|
-affected rows: 0
|
|
-info: Records: 0 Duplicates: 0 Warnings: 0
|
|
+ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: ADD INDEX. Try ALGORITHM=NOCOPY
|
|
ALTER TABLE t1 DROP INDEX f4;
|
|
-affected rows: 0
|
|
-info: Records: 0 Duplicates: 0 Warnings: 0
|
|
+ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: DROP INDEX. Try ALGORITHM=NOCOPY
|
|
SET foreign_key_checks = 0;
|
|
affected rows: 0
|
|
ALTER TABLE t1 ADD FOREIGN KEY(f5) REFERENCES t2(f1);
|
|
-affected rows: 0
|
|
-info: Records: 0 Duplicates: 0 Warnings: 0
|
|
+ERROR 0A000: ALGORITHM=INSTANT is not supported. Reason: ADD INDEX. Try ALGORITHM=NOCOPY
|
|
DROP TABLE t2, t1;
|
|
affected rows: 0
|