diff options
Diffstat (limited to '')
-rw-r--r-- | mysql-test/suite/s3/partition_move.test | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/mysql-test/suite/s3/partition_move.test b/mysql-test/suite/s3/partition_move.test new file mode 100644 index 00000000..35edbd75 --- /dev/null +++ b/mysql-test/suite/s3/partition_move.test @@ -0,0 +1,80 @@ +--source include/have_partition.inc +--source include/have_innodb.inc +--source include/have_s3.inc +--source include/have_sequence.inc +--source create_database.inc + +# +# The purpose of this test is to show how to move an partition from an existing +# InnoDB partitioned table (t1) to a partitioned table in S3 (archive) +# + +# +# We start by creating a partioned table in S3 with one existing partion p0 +# + +CREATE TABLE p0 ( + c1 int primary key, + c2 int DEFAULT NULL +) ENGINE=InnoDB; +insert into p0 select seq,seq from seq_1_to_99; + +alter table p0 engine=s3 , rename to archive + PARTITION BY RANGE (c1) +(PARTITION p0 VALUES LESS THAN (100)); + +show create table archive; + +# +# Then we create the table t1 that contains multiple partitions. +# Partition p1 is the one that we want to move to 'archive' +# + +CREATE TABLE t1 ( + c1 int primary key, + c2 int DEFAULT NULL +) ENGINE=InnoDB + PARTITION BY RANGE (c1) + (PARTITION p1 VALUES LESS THAN (200), + PARTITION p2 VALUES LESS THAN (300), + PARTITION p3 VALUES LESS THAN (400)); +insert into t1 select seq,seq from seq_100_to_399; + +# +# Then it's time to do the real work. +# + +# First we move partition p1 to a normal InnoDB table + +create table p1 like t1; +alter table p1 remove partitioning; +alter table t1 exchange partition p1 with table p1; +alter table t1 drop partition p1; + +show create table p1; +select count(*) from p1; + +# Then change the table engine to s3 and move it into archive + +alter table p1 engine=s3; +alter table archive add partition (partition p1 values less than (200)); +alter table archive exchange partition p1 with table p1; + +# p1 will be empty as this was the new partition that we just created +select count(*) from p1; +drop table p1; + +# +# The p1 partition has now been moved from t1 to archive. Check the result +# + +show create table t1; +show create table archive; +select count(*) from t1; +select count(*) from archive; +drop table t1,archive; + +# +# clean up +# +--source drop_database.inc |