summaryrefslogtreecommitdiff
path: root/mysql-test/suite/innodb/r/alter_algorithm,INSTANT.rdiff
diff options
context:
space:
mode:
authorThirunarayanan Balathandayuthapani <thiru@mariadb.com>2018-05-07 14:54:58 +0530
committerThirunarayanan Balathandayuthapani <thiru@mariadb.com>2018-05-07 14:58:11 +0530
commit85cc6b70bd7e5db2c96c4f58344bab269343cf85 (patch)
treeffa0ab7a6a75996497ce75b65fe9d5d3b02c9bd0 /mysql-test/suite/innodb/r/alter_algorithm,INSTANT.rdiff
parenta0bc3b7eeef6a3bfd0e7eae1cceabcc73071a61a (diff)
downloadmariadb-git-85cc6b70bd7e5db2c96c4f58344bab269343cf85.tar.gz
MDEV-13134 Introduce ALTER TABLE attributes ALGORITHM=NOCOPY and ALGORITHM=INSTANT
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.
Diffstat (limited to 'mysql-test/suite/innodb/r/alter_algorithm,INSTANT.rdiff')
-rw-r--r--mysql-test/suite/innodb/r/alter_algorithm,INSTANT.rdiff78
1 files changed, 78 insertions, 0 deletions
diff --git a/mysql-test/suite/innodb/r/alter_algorithm,INSTANT.rdiff b/mysql-test/suite/innodb/r/alter_algorithm,INSTANT.rdiff
new file mode 100644
index 00000000000..6e12b78fb9d
--- /dev/null
+++ b/mysql-test/suite/innodb/r/alter_algorithm,INSTANT.rdiff
@@ -0,0 +1,78 @@
+--- 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