mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 20:12:31 +01:00
2721e912ba
mysql-test/r/alter_table_online.result: Test new feature mysql-test/t/alter_table_online.test: Test new feature sql/handler.cc: Added comment sql/lex.h: Added ONLINE keyword sql/mysql_priv.h: Added option to alter table to require online operation sql/share/errmsg.txt: Added error message if ONLINE can't be done sql/sql_lex.h: Added online option sql/sql_parse.cc: Added online option to mysql_alter_table() sql/sql_table.cc: Added test that gives error if table can't be done instantly when requsted to be online. Fixed wrong test if table includes a VARCHAR Fixed wrong (but unlikely) handling of error conditions in ALTER table sql/sql_yacc.yy: Added ALTER ONLINE TABLE syntax storage/maria/ha_maria.cc: Fixed bug where 'start_bulk_insert' used too small buffer if used with unknown number of rows
74 lines
3.6 KiB
Text
74 lines
3.6 KiB
Text
drop table if exists t1,t2,t3;
|
|
create 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 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;
|
|
alter online table t2 rename to t1;
|
|
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;
|
|
ERROR HY000: Can't execute the given 'ALTER' command as online
|
|
alter online table t1 change b new_name int;
|
|
ERROR HY000: Can't execute the given 'ALTER' command as online
|
|
alter online table t1 modify e enum('a','b','c');
|
|
ERROR HY000: Can't execute the given 'ALTER' command as online
|
|
alter online table t1 comment "new comment";
|
|
ERROR HY000: Can't execute the given 'ALTER' command as online
|
|
alter online table t1 rename to t2;
|
|
ERROR HY000: Can't execute the given 'ALTER' command as online
|
|
drop table t1;
|
|
create 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 drop column b, add b int;
|
|
ERROR HY000: Can't execute the given 'ALTER' command as online
|
|
alter online table t1 modify b bigint;
|
|
ERROR HY000: Can't execute the given 'ALTER' command as online
|
|
alter online table t1 modify e enum('c','a','b');
|
|
ERROR HY000: Can't execute the given 'ALTER' command as online
|
|
alter online table t1 modify c varchar(50);
|
|
ERROR HY000: Can't execute the given 'ALTER' command as online
|
|
alter online table t1 modify c varchar(100);
|
|
ERROR HY000: Can't execute the given 'ALTER' command as online
|
|
alter online table t1 add f int;
|
|
ERROR HY000: Can't execute the given 'ALTER' command as online
|
|
alter online table t1 engine=memory;
|
|
ERROR HY000: Can't execute the given 'ALTER' command as online
|
|
alter table t1 engine=innodb;
|
|
alter table t1 add index (b);
|
|
alter online table t1 add index c (c);
|
|
ERROR HY000: Can't execute the given 'ALTER' command as online
|
|
alter online table t1 drop index b;
|
|
ERROR HY000: Can't execute the given 'ALTER' command as online
|
|
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 drop column b, add b int;
|
|
ERROR HY000: Can't execute the given 'ALTER' command as online
|
|
alter online table t1 modify b bigint;
|
|
ERROR HY000: Can't execute the given 'ALTER' command as online
|
|
alter online table t1 modify e enum('c','a','b');
|
|
ERROR HY000: Can't execute the given 'ALTER' command as online
|
|
alter online table t1 modify c varchar(50);
|
|
ERROR HY000: Can't execute the given 'ALTER' command as online
|
|
alter online table t1 modify c varchar(100);
|
|
ERROR HY000: Can't execute the given 'ALTER' command as online
|
|
alter online table t1 add f int;
|
|
ERROR HY000: Can't execute the given 'ALTER' command as online
|
|
alter online table t1 engine=memory;
|
|
ERROR HY000: Can't execute the given 'ALTER' command as online
|
|
alter table t1 engine=innodb;
|
|
alter table t1 add index (b);
|
|
alter online table t1 add index c (c);
|
|
ERROR HY000: Can't execute the given 'ALTER' command as online
|
|
alter online table t1 drop index b;
|
|
ERROR HY000: Can't execute the given 'ALTER' command as online
|
|
drop table t1;
|
|
create table t1 (a int not null primary key, b int, c varchar(80));
|
|
create table t2 (a int not null primary key, b int, c varchar(80));
|
|
create table t3 (a int not null primary key, b int, c varchar(80)) engine=merge UNION=(t1);
|
|
alter online table t3 union=(t1,t2);
|
|
drop table t1,t2,t3;
|