diff options
Diffstat (limited to 'mysql-test/suite/innodb/t/instant_alter_null.test')
-rw-r--r-- | mysql-test/suite/innodb/t/instant_alter_null.test | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/mysql-test/suite/innodb/t/instant_alter_null.test b/mysql-test/suite/innodb/t/instant_alter_null.test new file mode 100644 index 00000000..34f47ed9 --- /dev/null +++ b/mysql-test/suite/innodb/t/instant_alter_null.test @@ -0,0 +1,67 @@ +--source include/have_innodb.inc + +--disable_query_log +SET @save_innodb_read_only_compressed=@@GLOBAL.innodb_read_only_compressed; +SET GLOBAL innodb_read_only_compressed=OFF; +--enable_query_log + +create table t (a int NOT NULL) engine=innodb row_format= compressed; +--error ER_ALTER_OPERATION_NOT_SUPPORTED +alter table t modify a int NULL, algorithm=instant; + +--disable_query_log +SET GLOBAL innodb_read_only_compressed=@save_innodb_read_only_compressed; +--enable_query_log + +drop table t; + +create table t (a int NOT NULL) engine=innodb row_format= dynamic; +--error ER_ALTER_OPERATION_NOT_SUPPORTED +alter table t modify a int NULL, algorithm=instant; +drop table t; + +create table t (a int NOT NULL) engine=innodb row_format= compact; +--error ER_ALTER_OPERATION_NOT_SUPPORTED +alter table t modify a int NULL, algorithm=instant; +drop table t; + +create table t ( + id int primary key, + a int NOT NULL default 0, + b int NOT NULL default 0, + c int NOT NULL default 0, + index idx (a,b,c) +) engine=innodb row_format=redundant; + +--error ER_BAD_NULL_ERROR +insert into t (id, a) values (0, NULL); +--error ER_BAD_NULL_ERROR +insert into t (id, b) values (0, NULL); +--error ER_BAD_NULL_ERROR +insert into t (id, c) values (0, NULL); + +insert into t values (1,1,1,1); + +set @id = (select table_id from information_schema.innodb_sys_tables +where name = 'test/t'); + +--replace_column 1 TABLE_ID +select * from information_schema.innodb_sys_columns where table_id=@id; + +alter table t modify a int NULL, algorithm=instant; +insert into t values (2, NULL, 2, 2); + +alter table t modify b int NULL, algorithm=nocopy; +insert into t values (3, NULL, NULL, 3); + +alter table t modify c int NULL, algorithm=inplace; +insert into t values (4, NULL, NULL, NULL); + +--replace_column 1 TABLE_ID +select * from information_schema.innodb_sys_columns where table_id=@id; + +select * from t; + +check table t; + +drop table t; |