mariadb/mysql-test/suite/s3/alter.test
Nikita Malyavin c4adaed0d0 MDEV-31781 ALTER TABLE ENGINE=s3 fails
s3 is read-only. No need to update to a read-only engine with LOCK=NONE.
2023-08-15 14:00:28 +02:00

105 lines
2.7 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;
--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