summaryrefslogtreecommitdiff
path: root/mysql-test
diff options
context:
space:
mode:
authorSergei Golubchik <serg@mariadb.org>2018-05-14 23:24:26 +0200
committerSergei Golubchik <serg@mariadb.org>2018-05-15 12:10:48 +0200
commit77cd754229ba74eb87518285f48e1d95d00fbde9 (patch)
treedb81f7d908c1efdcb87999d918508b024f69ed66 /mysql-test
parentc29312421e9dd6b8b6be332788cbab0621cbcb9f (diff)
downloadmariadb-git-77cd754229ba74eb87518285f48e1d95d00fbde9.tar.gz
MDEV-16110 ALTER with ALGORITHM=INPLACE breaks temporary table with virtual columns
Part one, non-temporary tables. Rrenaming a column can make destructive changes to the TABLE. This TABLE cannot be used anymore and needs to be reopened even if ALTER TABLE was aborted with an error.
Diffstat (limited to 'mysql-test')
-rw-r--r--mysql-test/r/alter_table_errors.result10
-rw-r--r--mysql-test/t/alter_table_errors.test10
2 files changed, 20 insertions, 0 deletions
diff --git a/mysql-test/r/alter_table_errors.result b/mysql-test/r/alter_table_errors.result
new file mode 100644
index 00000000000..020a30304d0
--- /dev/null
+++ b/mysql-test/r/alter_table_errors.result
@@ -0,0 +1,10 @@
+create table t (a int, v int as (a)) engine=innodb;
+alter table t change column a b tinyint, algorithm=inplace;
+ERROR 0A000: ALGORITHM=INPLACE is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY
+show create table t;
+Table Create Table
+t CREATE TABLE `t` (
+ `a` int(11) DEFAULT NULL,
+ `v` int(11) GENERATED ALWAYS AS (`a`) VIRTUAL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1
+drop table t;
diff --git a/mysql-test/t/alter_table_errors.test b/mysql-test/t/alter_table_errors.test
new file mode 100644
index 00000000000..d9982ac26f4
--- /dev/null
+++ b/mysql-test/t/alter_table_errors.test
@@ -0,0 +1,10 @@
+--source include/have_innodb.inc
+
+#
+# MDEV-16110 ALTER with ALGORITHM=INPLACE breaks temporary table with virtual columns
+#
+create table t (a int, v int as (a)) engine=innodb;
+--error ER_ALTER_OPERATION_NOT_SUPPORTED_REASON
+alter table t change column a b tinyint, algorithm=inplace;
+show create table t;
+drop table t;