drop table if exists t1,t2,t3;
#
# Test ALTER TABLE to and from s3
#
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;
Table	Create Table
t1	CREATE TABLE `t1` (
  `a` int(11) DEFAULT NULL,
  `b` int(11) DEFAULT NULL
) ENGINE=S3 DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci PAGE_CHECKSUM=1
alter table t1 comment="hello";
show create table t1;
Table	Create Table
t1	CREATE TABLE `t1` (
  `a` int(11) DEFAULT NULL,
  `b` int(11) DEFAULT NULL
) ENGINE=S3 DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci PAGE_CHECKSUM=1 COMMENT='hello'
alter table t1 engine=aria;
show create table t1;
Table	Create Table
t1	CREATE TABLE `t1` (
  `a` int(11) DEFAULT NULL,
  `b` int(11) DEFAULT NULL
) ENGINE=Aria DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci PAGE_CHECKSUM=1 COMMENT='hello'
alter table t1 engine=s3;
alter table t1 engine=innodb;
show create table t1;
Table	Create Table
t1	CREATE TABLE `t1` (
  `a` int(11) DEFAULT NULL,
  `b` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci PAGE_CHECKSUM=1 COMMENT='hello'
select count(*), sum(a), sum(b) from t1;
count(*)	sum(a)	sum(b)
1000	500500	510500
drop table t1;
#
# Test ALTER TABLE to and from s3 with rename
#
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;
count(*)	sum(a)	sum(b)
10	55	155
show create table t2;
Table	Create Table
t2	CREATE TABLE `t2` (
  `a` int(11) DEFAULT NULL,
  `b` int(11) DEFAULT NULL
) ENGINE=S3 DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci PAGE_CHECKSUM=1
alter table t2 rename to t3, engine=aria;
show create table t3;
Table	Create Table
t3	CREATE TABLE `t3` (
  `a` int(11) DEFAULT NULL,
  `b` int(11) DEFAULT NULL
) ENGINE=Aria DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci PAGE_CHECKSUM=1
select count(*), sum(a), sum(b) from t3;
count(*)	sum(a)	sum(b)
10	55	155
drop table t3;
#
# Test changing options for a s3 table
#
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;
Table	Create Table
t1	CREATE TABLE `t1` (
  `a` int(11) DEFAULT NULL,
  `b` int(11) DEFAULT NULL
) ENGINE=S3 DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci PAGE_CHECKSUM=1 `compression_algorithm`='zlib'
select count(*), sum(a), sum(b) from t1;
count(*)	sum(a)	sum(b)
1000	500500	510500
drop table t1;
#
# Test ALTER TABLE for S3
#
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;
Table	Create Table
t1	CREATE TABLE `t1` (
  `a` int(11) DEFAULT NULL,
  `b` int(11) DEFAULT NULL,
  `c` int(11) DEFAULT NULL,
  `d` int(11) DEFAULT NULL
) ENGINE=S3 DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci PAGE_CHECKSUM=1
select count(*), sum(a), sum(b), sum(c), sum(d) from t1;
count(*)	sum(a)	sum(b)	sum(c)	sum(d)
10	55	155	NULL	NULL
drop table t1;
#
# Test ALTER TABLE with locked table for S3
#
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;
Warnings:
Warning	1036	Table 't1' is read only
Warning	1213	Deadlock found when trying to get lock; try restarting transaction
unlock tables;
select count(*), sum(a), sum(b), sum(c) from t1;
count(*)	sum(a)	sum(b)	sum(c)
10	55	155	NULL
lock table t1 write;
ERROR HY000: Table 't1' is read only
lock table t1 read;
select count(*), sum(a), sum(b), sum(c) from t1;
count(*)	sum(a)	sum(b)	sum(c)
10	55	155	NULL
unlock tables;
drop table t1;
#
# Test RENAME TABLE
#
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;
count(*)	sum(a)	sum(b)
10	55	155
select count(*), sum(a), sum(b) from t1;
ERROR 42S02: Table 'database.t1' doesn't exist
drop table t2;
# MDEV-31781 ALTER TABLE ENGINE=s3 fails
create table t (a int) engine=Aria;
alter table t engine=S3, algorithm=copy, lock=none;
ERROR 0A000: LOCK=NONE is not supported. Reason: S3. Try LOCK=SHARED
