mariadb/mysql-test/suite/s3/alter.test
Sergei Golubchik b5f50e2de8 errors after altering a table has finished aren't fatal
We cannot revert the ALTER, so anything happening after
the point of no return should not be treated as an error. A
very unfortunate condition that a user needs to be warned about - yes,
but we cannot say "ALTER TABLE has failed" if the table was successfully
altered.
2021-07-02 16:44:00 +02:00

99 lines
2.5 KiB
Text

--source include/have_s3.inc
--source include/have_sequence.inc
--source include/have_innodb.inc
#
# Create unique database for running the tests
#
--source create_database.inc
--disable_warnings
drop table if exists t1,t2,t3;
--enable_warnings
--echo #
--echo # Test ALTER TABLE to and from s3
--echo #
create table t1 (a int, b int) engine=aria;
insert into t1 select seq,seq+10 from seq_1_to_1000;
alter table t1 engine=s3;
show create table t1;
alter table t1 comment="hello";
show create table t1;
alter table t1 engine=aria;
show create table t1;
alter table t1 engine=s3;
alter table t1 engine=innodb;
show create table t1;
select count(*), sum(a), sum(b) from t1;
drop table t1;
--echo #
--echo # Test ALTER TABLE to and from s3 with rename
--echo #
create table t1 (a int, b int) engine=aria select seq as a,seq+10 as b from seq_1_to_10;
alter table t1 rename to t2, engine=s3;
select count(*), sum(a), sum(b) from t2;
show create table t2;
alter table t2 rename to t3, engine=aria;
show create table t3;
select count(*), sum(a), sum(b) from t3;
drop table t3;
--echo #
--echo # Test changing options for a s3 table
--echo #
create table t1 (a int, b int) engine=aria select seq as a,seq+10 as b from seq_1_to_1000;
alter table t1 engine=s3;
alter table t1 engine=s3, compression_algorithm="zlib";
show create table t1;
select count(*), sum(a), sum(b) from t1;
drop table t1;
--echo #
--echo # Test ALTER TABLE for S3
--echo #
create table t1 (a int, b int) engine=aria select seq as a,seq+10 as b from seq_1_to_10;
alter table t1 add column c int, engine=s3;
alter table t1 add column d int;
show create table t1;
select count(*), sum(a), sum(b), sum(c), sum(d) from t1;
drop table t1;
--echo #
--echo # Test ALTER TABLE with locked table for S3
--echo #
create table t1 (a int, b int) engine=aria select seq as a,seq+10 as b from seq_1_to_10;
lock table t1 write;
alter table t1 add column c int, engine=s3;
unlock tables;
select count(*), sum(a), sum(b), sum(c) from t1;
--error ER_OPEN_AS_READONLY
lock table t1 write;
lock table t1 read;
select count(*), sum(a), sum(b), sum(c) from t1;
unlock tables;
drop table t1;
--echo #
--echo # Test RENAME TABLE
--echo #
create table t1 (a int, b int) engine=aria select seq as a, seq+10 as b from seq_1_to_10;
alter table t1 engine=s3;
rename table t1 to t3;
alter table t3 rename t2;
select count(*), sum(a), sum(b) from t2;
--replace_result $database database
--error ER_NO_SUCH_TABLE
select count(*), sum(a), sum(b) from t1;
drop table t2;
#
# clean up
#
--source drop_database.inc