--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; --echo # MDEV-31781 ALTER TABLE ENGINE=s3 fails create table t (a int) engine=Aria; --error ER_ALTER_OPERATION_NOT_SUPPORTED_REASON alter table t engine=S3, algorithm=copy, lock=none; # # clean up # --source drop_database.inc