diff options
Diffstat (limited to 'mysql-test/suite/archive/partition_archive.test')
-rw-r--r-- | mysql-test/suite/archive/partition_archive.test | 155 |
1 files changed, 155 insertions, 0 deletions
diff --git a/mysql-test/suite/archive/partition_archive.test b/mysql-test/suite/archive/partition_archive.test new file mode 100644 index 00000000..dff6ec59 --- /dev/null +++ b/mysql-test/suite/archive/partition_archive.test @@ -0,0 +1,155 @@ +# Tests for the partition storage engine in connection with the +# storage engine ARCHIVE. +# +# Creation: +# 2007-10-18 mleich - Move ARCHIVE related sub tests of partition.test to +# this test. Reason: ARCHIVE is not everytime available. +# - Minor cleanup +# + +--source include/have_partition.inc +--source include/have_archive.inc + +let $MYSQLD_DATADIR= `select @@datadir`; + +# +# Bug#44622: Using PARTITIONs with ARCHIVE engine reports 0 bytes in i_s.TABLES +# +CREATE TABLE t1 (f1 DATE NOT NULL) +ENGINE = ARCHIVE PARTITION BY RANGE (TO_DAYS(f1)) +(partition p1 values less than (733751), + partition p2 values less than MAXVALUE); + +INSERT INTO t1 VALUES(CURRENT_DATE); + +SELECT DATA_LENGTH, INDEX_LENGTH FROM information_schema.TABLES WHERE TABLE_SCHEMA='test' AND TABLE_NAME='t1'; +SELECT DATA_LENGTH, INDEX_LENGTH FROM information_schema.TABLES WHERE TABLE_SCHEMA='test' AND TABLE_NAME='t1'; +DROP TABLE t1; +CREATE TABLE t1 (f1 DATE NOT NULL) +ENGINE = ARCHIVE; +INSERT INTO t1 VALUES(CURRENT_DATE); +SELECT DATA_LENGTH, INDEX_LENGTH FROM information_schema.TABLES WHERE TABLE_SCHEMA='test' AND TABLE_NAME='t1'; +SELECT DATA_LENGTH, INDEX_LENGTH FROM information_schema.TABLES WHERE TABLE_SCHEMA='test' AND TABLE_NAME='t1'; +DROP TABLE t1; + +# +# Bug 17310 Partitions: Bugs with archived partitioned tables +# +--disable_warnings +drop database if exists db99; +drop table if exists t1; +--enable_warnings + +create database db99; +use db99; +create table t1 (a int not null) +engine=archive +partition by list (a) +(partition p0 values in (1), partition p1 values in (2)); +insert into t1 values (1), (2); +--replace_regex /Not owner/Operation not permitted/ +--error ER_CANT_CREATE_TABLE +create index inx on t1 (a); +alter table t1 add partition (partition p2 values in (3)); +alter table t1 drop partition p2; +use test; +drop database db99; + +create table t1 (f1 integer) engine= ARCHIVE partition by list(f1) +( + partition p1 values in (1), + partition p2 values in (NULL), + partition p3 values in (2), + partition p4 values in (3), + partition p5 values in (4) +); + +insert into t1 values (1),(2),(3),(4),(null); +select * from t1; +select * from t1 where f1 < 3; +drop table t1; + +CREATE TABLE t1 ( +a int not null, +b int not null, +c int not null) engine=ARCHIVE +partition by hash (a + 2) +partitions 3 +(partition x1 tablespace ts1, + partition x2 tablespace ts2, + partition x3 tablespace ts3); + +insert into t1 values (1,1,1); +insert into t1 values (2,1,1); +insert into t1 values (3,1,1); +insert into t1 values (4,1,1); +insert into t1 values (5,1,1); + +select * from t1; + +drop table t1; + +# +# Bug #32247 Test reports wrong value of "AUTO_INCREMENT" (on a partitioned InnoDB table) +# (though reported as InnoDB bug, requires some ARCHIVE tests + +create table t1 (a int) engine=archive partition by hash(a); +show create table t1; +drop table t1; + +CREATE TABLE t1(id MEDIUMINT NOT NULL AUTO_INCREMENT, + f1 VARCHAR(25), + PRIMARY KEY(id)) ENGINE=ARCHIVE + PARTITION BY RANGE(id) + SUBPARTITION BY hash(id) subpartitions 2 + (PARTITION pa1 values less than (10), + PARTITION pa2 values less than (20), + PARTITION pa3 values less than (30), + PARTITION pa4 values less than (40), + PARTITION pa5 values less than (50), + PARTITION pa6 values less than (60), + PARTITION pa7 values less than (70), + PARTITION pa8 values less than (80), + PARTITION pa9 values less than (90), + PARTITION pa10 values less than (100), + PARTITION pa11 values less than MAXVALUE); + +--disable_query_log +let $n= 100; +begin; +while ($n) +{ + insert into t1 (f1) values (repeat('a',25)); + dec $n; +} +commit; +--enable_query_log + +show create table t1; +select count(*) from t1; +drop table t1; + + +--echo # +--echo #BUG 18618561: FAILED ALTER TABLE ENGINE CHANGE WITH PARTITIONS +--echo # CORRUPTS FRM + +CREATE TABLE t1 (fld1 INT PRIMARY KEY) ENGINE= MYISAM PARTITION BY HASH(fld1) +PARTITIONS 5; +SHOW CREATE TABLE t1; + +--error ER_CANT_CREATE_TABLE +ALTER TABLE t1 ENGINE= ARCHIVE; + +--echo #After the patch, the ENGINE is correctly displayed as MyISAM +SHOW CREATE TABLE t1; + +--echo #Cleanup. +DROP TABLE t1; + +create database mysqltest1; +create table mysqltest1.t1 (a int not null, b int not null) engine=archive + partition by list(a) subpartition by hash(b) + (partition p1 values in (1), + partition p2 values in (2)); +drop database mysqltest1; |