diff options
author | Monty <monty@mariadb.org> | 2018-02-16 10:56:03 +0200 |
---|---|---|
committer | Monty <monty@mariadb.org> | 2018-03-29 13:59:40 +0300 |
commit | 2dbeebdb16436e3c2723cd483aaf21d93de799d6 (patch) | |
tree | 541a3f79353cdbd7c3b7e32e8cfb57237cc24167 /mysql-test/t | |
parent | 0631f20ff75269f2ce427200d8116bb2b6c75605 (diff) | |
download | mariadb-git-2dbeebdb16436e3c2723cd483aaf21d93de799d6.tar.gz |
Changed static const in Alter_info and Alter_online_info to defines
Main reason was to make it easier to print the above structures in
a debugger. Additional benefits is that I was able to use same
defines for both structures, which simplifes some code.
Most of the code is just removing Alter_info:: and Alter_inplace_info::
from alter table flags.
Following renames was done:
HA_ALTER_FLAGS -> alter_table_operations
CHANGE_CREATE_OPTION -> ALTER_CHANGE_CREATE_OPTION
Alter_info::ADD_INDEX -> ALTER_ADD_INDEX
DROP_INDEX -> ALTER_DROP_INDEX
ADD_UNIQUE_INDEX -> ALTER_ADD_UNIQUE_INDEX
DROP_UNIQUE_INDEx -> ALTER_DROP_UNIQUE_INDEX
ADD_PK_INDEX -> ALTER_ADD_PK_INDEX
DROP_PK_INDEX -> ALTER_DROP_PK_INDEX
Alter_info:ALTER_ADD_COLUMN -> ALTER_PARSE_ADD_COLUMN
Alter_info:ALTER_DROP_COLUMN -> ALTER_PARSE_DROP_COLUMN
Alter_inplace_info::ADD_INDEX -> ALTER_ADD_NON_UNIQUE_NON_PRIM_INDEX
Alter_inplace_info::DROP_INDEX -> ALTER_DROP_NON_UNIQUE_NON_PRIM_INDEX
Other things:
- Added typedef alter_table_operatons for alter table flags
- DROP CHECK CONSTRAINT can now be done online
- Added checks for Aria tables in alter_table_online.test
- alter_table_flags now takes an ulonglong as argument.
- Don't support online operations if checksum option is used.
- sql_lex.cc doesn't add ALTER_ADD_INDEX if index is not created
Diffstat (limited to 'mysql-test/t')
-rw-r--r-- | mysql-test/t/alter_table_online.test | 33 |
1 files changed, 28 insertions, 5 deletions
diff --git a/mysql-test/t/alter_table_online.test b/mysql-test/t/alter_table_online.test index f5a40734535..6ef9661c43b 100644 --- a/mysql-test/t/alter_table_online.test +++ b/mysql-test/t/alter_table_online.test @@ -8,13 +8,15 @@ # Test of things that can be done online # -create table t1 (a int not null primary key, b int, c varchar(80), e enum('a','b')); +create table t1 (a int not null primary key, b int, c varchar(80), e enum('a','b')) engine=myisam; insert into t1 (a) values (1),(2),(3); -alter online table t1 modify b int default 5; +alter online table t1 modify b int default 5, alter c set default 'X'; alter online table t1 change b new_name int; alter online table t1 modify e enum('a','b','c'); alter online table t1 comment "new comment"; +alter table t1 add constraint q check (a > 0); +alter online table t1 drop constraint q; # No OPs @@ -22,7 +24,7 @@ alter online table t1 algorithm=INPLACE, lock=NONE; alter online table t1; alter table t1 algorithm=INPLACE; alter table t1 lock=NONE; - +show create table t1; drop table t1; # @@ -31,15 +33,31 @@ drop table t1; create temporary table t1 (a int not null primary key, b int, c varchar(80), e enum('a','b')); insert into t1 (a) values (1),(2),(3); -alter online table t1 modify b int default 5; +alter online table t1 modify b int default 5, alter c set default 'X'; alter online table t1 change b new_name int; alter online table t1 modify e enum('a','b','c'); alter online table t1 comment "new comment"; alter online table t1 rename to t2; - +show create table t2; drop table t2; # +# Test also with Aria +# + +create table t1 (a int not null primary key, b int, c varchar(80), e enum('a','b')) engine=aria; +insert into t1 (a) values (1),(2),(3); +alter online table t1 modify b int default 5; +alter online table t1 change b new_name int; +alter online table t1 modify e enum('a','b','c'); +alter online table t1 comment "new comment"; +show create table t1; +alter online table t1 page_checksum=1; +--error ER_ALTER_OPERATION_NOT_SUPPORTED +alter online table t1 page_checksum=0; +drop table t1; + +# # Test of things that is not possible to do online # @@ -62,12 +80,17 @@ alter online table t1 add f int; alter online table t1 engine=memory; --error ER_ALTER_OPERATION_NOT_SUPPORTED alter online table t1 rename to t2; +--error ER_ALTER_OPERATION_NOT_SUPPORTED +alter online table t1 checksum=1; +--error ER_ALTER_OPERATION_NOT_SUPPORTED +alter online table t1 add constraint check (b > 0); alter table t1 engine=innodb; alter table t1 add index (b); alter online table t1 add index c (c); alter online table t1 drop index b; alter online table t1 comment "new comment"; +show create table t1; drop table t1; create temporary table t1 (a int not null primary key, b int, c varchar(80), e enum('a','b')); |