mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-31 15:50:51 +03:00 
			
		
		
		
	Fixed naming procedures for default partitioning and default subpartitioning mysql-test/r/partition_pruning.result: Fixed test cases for new naming of default subpartitions mysql-test/r/partition_range.result: New test case mysql-test/t/partition_range.test: New test case sql/partition_info.cc: Fixed naming procedures for default partitioning and default subpartitioning sql/partition_info.h: Fixed naming procedures for default partitioning and default subpartitioning
		
			
				
	
	
		
			419 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			419 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| #--disable_abort_on_error
 | |
| #
 | |
| # Simple test for the partition storage engine
 | |
| # Focuses on range partitioning tests
 | |
| # 
 | |
| -- source include/have_partition.inc
 | |
| 
 | |
| --disable_warnings
 | |
| drop table if exists t1;
 | |
| --enable_warnings
 | |
| 
 | |
| #
 | |
| # Partition by range, basic
 | |
| #
 | |
| CREATE TABLE t1 (
 | |
| a int not null,
 | |
| b int not null,
 | |
| c int not null,
 | |
| primary key(a,b))
 | |
| partition by range (a)
 | |
| partitions 3
 | |
| (partition x1 values less than (5) tablespace ts1,
 | |
|  partition x2 values less than (10) tablespace ts2,
 | |
|  partition x3 values less than maxvalue tablespace ts3);
 | |
| 
 | |
| # Simple insert and verify test
 | |
| INSERT into t1 values (1, 1, 1);
 | |
| INSERT into t1 values (6, 1, 1);
 | |
| INSERT into t1 values (10, 1, 1);
 | |
| INSERT into t1 values (15, 1, 1);
 | |
| 
 | |
| select * from t1;
 | |
| show create table t1;
 | |
| 
 | |
| ALTER TABLE t1
 | |
| partition by range (a)
 | |
| partitions 3
 | |
| (partition x1 values less than (5) tablespace ts1,
 | |
|  partition x2 values less than (10) tablespace ts2,
 | |
|  partition x3 values less than maxvalue tablespace ts3);
 | |
| 
 | |
| select * from t1;
 | |
| show create table t1;
 | |
| 
 | |
| drop table if exists t1;
 | |
| 
 | |
| #
 | |
| # Partition by range, basic
 | |
| # No primary key
 | |
| #
 | |
| CREATE TABLE t1 (
 | |
| a int not null,
 | |
| b int not null,
 | |
| c int not null)
 | |
| partition by range (a)
 | |
| partitions 3
 | |
| (partition x1 values less than (5) tablespace ts1,
 | |
|  partition x2 values less than (10) tablespace ts2,
 | |
|  partition x3 values less than maxvalue tablespace ts3);
 | |
| 
 | |
| # Simple insert and verify test
 | |
| INSERT into t1 values (1, 1, 1);
 | |
| INSERT into t1 values (6, 1, 1);
 | |
| INSERT into t1 values (10, 1, 1);
 | |
| INSERT into t1 values (15, 1, 1);
 | |
| 
 | |
| select * from t1;
 | |
| 
 | |
| ALTER TABLE t1
 | |
| partition by range (a)
 | |
| partitions 3
 | |
| (partition x1 values less than (5) tablespace ts1,
 | |
|  partition x2 values less than (10) tablespace ts2,
 | |
|  partition x3 values less than maxvalue tablespace ts3);
 | |
| 
 | |
| select * from t1;
 | |
| 
 | |
| drop table if exists t1;
 | |
| 
 | |
| #
 | |
| # Partition by range, basic
 | |
| # No max value used
 | |
| #
 | |
| CREATE TABLE t1 (
 | |
| a int not null,
 | |
| b int not null,
 | |
| c int not null,
 | |
| primary key(a,b))
 | |
| partition by range (a)
 | |
| partitions 3
 | |
| (partition x1 values less than (5) tablespace ts1,
 | |
|  partition x2 values less than (10) tablespace ts2,
 | |
|  partition x3 values less than (15) tablespace ts3);
 | |
| 
 | |
| 
 | |
| # Simple insert and verify test
 | |
| INSERT into t1 values (1, 1, 1);
 | |
| INSERT into t1 values (6, 1, 1);
 | |
| INSERT into t1 values (10, 1, 1);
 | |
| --error ER_NO_PARTITION_FOR_GIVEN_VALUE
 | |
| INSERT into t1 values (15, 1, 1);
 | |
| 
 | |
| select * from t1;
 | |
| 
 | |
| ALTER TABLE t1
 | |
| partition by range (a)
 | |
| partitions 3
 | |
| (partition x1 values less than (5) tablespace ts1,
 | |
|  partition x2 values less than (10) tablespace ts2,
 | |
|  partition x3 values less than (15) tablespace ts3);
 | |
| 
 | |
| select * from t1;
 | |
| 
 | |
| drop table t1;
 | |
| 
 | |
| #
 | |
| # Partition by range, only one partition
 | |
| #
 | |
| CREATE TABLE t1 (
 | |
| a int not null,
 | |
| b int not null,
 | |
| c int not null,
 | |
| primary key(a,b))
 | |
| partition by range (a)
 | |
| (partition x1 values less than (1));
 | |
| 
 | |
| drop table t1;
 | |
| 
 | |
| #
 | |
| # Subpartition by hash, two partitions and two subpartitions
 | |
| #
 | |
| CREATE TABLE t1 (
 | |
| a int not null,
 | |
| b int not null,
 | |
| c int not null,
 | |
| primary key (a,b)) 
 | |
| partition by range (a)
 | |
| subpartition by hash (a+b) 
 | |
| ( partition x1 values less than (1)
 | |
|   ( subpartition x11,
 | |
|     subpartition x12),
 | |
|    partition x2 values less than (5)
 | |
|    ( subpartition x21,
 | |
|      subpartition x22)
 | |
| );
 | |
| 
 | |
| SELECT * from t1;
 | |
| show create table t1;
 | |
| 
 | |
| ALTER TABLE t1 ADD COLUMN d int;
 | |
| show create table t1;
 | |
| 
 | |
| drop table t1;
 | |
| 
 | |
| #
 | |
| # Subpartition by hash, two partitions and two subpartitions
 | |
| # Defined tablespace, engine and node group
 | |
| #
 | |
| CREATE TABLE t1 (
 | |
| a int not null,
 | |
| b int not null,
 | |
| c int not null,
 | |
| primary key (a,b))
 | |
| partition by range (a)
 | |
| subpartition by hash (a+b)
 | |
| ( partition x1 values less than (1)
 | |
|   ( subpartition x11 tablespace t1 engine myisam nodegroup 0,
 | |
|     subpartition x12 tablespace t2 engine myisam nodegroup 1),
 | |
|    partition x2 values less than (5)
 | |
|    ( subpartition x21 tablespace t1 engine myisam nodegroup 0,
 | |
|      subpartition x22 tablespace t2 engine myisam nodegroup 1)
 | |
| );
 | |
| 
 | |
| SELECT * from t1;
 | |
| 
 | |
| drop table t1;
 | |
| 
 | |
| #
 | |
| # Subpartition by hash, two partitions and two subpartitions
 | |
| # Defined tablespace, node group
 | |
| #
 | |
| CREATE TABLE t1 (
 | |
| a int not null,
 | |
| b int not null,
 | |
| c int not null,
 | |
| primary key (a,b))
 | |
| partition by range (a)
 | |
| subpartition by hash (a+b)
 | |
| ( partition x1 values less than (1)
 | |
|   ( subpartition x11 tablespace t1 nodegroup 0,
 | |
|     subpartition x12 tablespace t2 nodegroup 1),
 | |
|    partition x2 values less than (5)
 | |
|    ( subpartition x21 tablespace t1 nodegroup 0,
 | |
|      subpartition x22 tablespace t2 nodegroup 1)
 | |
| );
 | |
| 
 | |
| SELECT * from t1;
 | |
| 
 | |
| drop table t1;
 | |
| 
 | |
| #
 | |
| # Subpartition by hash, two partitions and two subpartitions
 | |
| # Defined engine and node group
 | |
| #
 | |
| CREATE TABLE t1 (
 | |
| a int not null,
 | |
| b int not null,
 | |
| c int not null,
 | |
| primary key (a,b))
 | |
| partition by range (a)
 | |
| subpartition by hash (a+b)
 | |
| ( partition x1 values less than (1)
 | |
|   ( subpartition x11 engine myisam nodegroup 0,
 | |
|     subpartition x12 engine myisam nodegroup 1),
 | |
|    partition x2 values less than (5)
 | |
|    ( subpartition x21 engine myisam nodegroup 0,
 | |
|      subpartition x22 engine myisam nodegroup 1)
 | |
| );
 | |
| 
 | |
| INSERT into t1 VALUES (1,1,1);
 | |
| INSERT into t1 VALUES (4,1,1);
 | |
| --error ER_NO_PARTITION_FOR_GIVEN_VALUE
 | |
| INSERT into t1 VALUES (5,1,1);
 | |
| 
 | |
| SELECT * from t1;
 | |
| 
 | |
| ALTER TABLE t1
 | |
| partition by range (a)
 | |
| subpartition by hash (a+b)
 | |
| ( partition x1 values less than (1)
 | |
|   ( subpartition x11 engine myisam nodegroup 0,
 | |
|     subpartition x12 engine myisam nodegroup 1),
 | |
|    partition x2 values less than (5)
 | |
|    ( subpartition x21 engine myisam nodegroup 0,
 | |
|      subpartition x22 engine myisam nodegroup 1)
 | |
| );
 | |
| 
 | |
| SELECT * from t1;
 | |
| 
 | |
| drop table t1;
 | |
| 
 | |
| #
 | |
| # Subpartition by hash, two partitions and two subpartitions
 | |
| # Defined tablespace, engine
 | |
| #
 | |
| CREATE TABLE t1 (
 | |
| a int not null,
 | |
| b int not null,
 | |
| c int not null,
 | |
| primary key (a,b))
 | |
| partition by range (a)
 | |
| subpartition by hash (a+b)
 | |
| ( partition x1 values less than (1)
 | |
|   ( subpartition x11 tablespace t1 engine myisam,
 | |
|     subpartition x12 tablespace t2 engine myisam),
 | |
|   partition x2 values less than (5)
 | |
|   ( subpartition x21 tablespace t1 engine myisam,
 | |
|     subpartition x22 tablespace t2 engine myisam)
 | |
| );
 | |
| 
 | |
| INSERT into t1 VALUES (1,1,1);
 | |
| INSERT into t1 VALUES (4,1,1);
 | |
| --error ER_NO_PARTITION_FOR_GIVEN_VALUE
 | |
| INSERT into t1 VALUES (5,1,1);
 | |
| 
 | |
| SELECT * from t1;
 | |
| 
 | |
| ALTER TABLE t1
 | |
| partition by range (a)
 | |
| subpartition by hash (a+b)
 | |
| ( partition x1 values less than (1)
 | |
|   ( subpartition x11 tablespace t1 engine myisam,
 | |
|     subpartition x12 tablespace t2 engine myisam),
 | |
|   partition x2 values less than (5)
 | |
|   ( subpartition x21 tablespace t1 engine myisam,
 | |
|     subpartition x22 tablespace t2 engine myisam)
 | |
| );
 | |
| 
 | |
| SELECT * from t1;
 | |
| 
 | |
| drop table t1;
 | |
| 
 | |
| #
 | |
| # Subpartition by hash, two partitions and two subpartitions
 | |
| # Defined tablespace
 | |
| #
 | |
| CREATE TABLE t1 (
 | |
| a int not null,
 | |
| b int not null,
 | |
| c int not null,
 | |
| primary key (a,b))
 | |
| partition by range (a)
 | |
| subpartition by hash (a+b)
 | |
| ( partition x1 values less than (1)
 | |
|   ( subpartition x11 tablespace t1,
 | |
|     subpartition x12 tablespace t2),
 | |
|    partition x2 values less than (5)
 | |
|   ( subpartition x21 tablespace t1,
 | |
|     subpartition x22 tablespace t2)
 | |
| );
 | |
| 
 | |
| INSERT into t1 VALUES (1,1,1);
 | |
| INSERT into t1 VALUES (4,1,1);
 | |
| --error ER_NO_PARTITION_FOR_GIVEN_VALUE
 | |
| INSERT into t1 VALUES (5,1,1);
 | |
| 
 | |
| SELECT * from t1;
 | |
| 
 | |
| ALTER TABLE t1
 | |
| partition by range (a)
 | |
| subpartition by hash (a+b)
 | |
| ( partition x1 values less than (1)
 | |
|   ( subpartition x11 tablespace t1 engine myisam,
 | |
|     subpartition x12 tablespace t2 engine myisam),
 | |
|   partition x2 values less than (5)
 | |
|   ( subpartition x21 tablespace t1 engine myisam,
 | |
|     subpartition x22 tablespace t2 engine myisam)
 | |
| );
 | |
| 
 | |
| SELECT * from t1;
 | |
| 
 | |
| drop table t1;
 | |
| 
 | |
| #
 | |
| # Subpartition by hash, two partitions and two subpartitions
 | |
| # Defined engine
 | |
| #
 | |
| CREATE TABLE t1 (
 | |
| a int not null,
 | |
| b int not null,
 | |
| c int not null,
 | |
| primary key (a,b))
 | |
| partition by range (a)
 | |
| subpartition by hash (a+b)
 | |
| ( partition x1 values less than (1)
 | |
|   ( subpartition x11 engine myisam,
 | |
|     subpartition x12 engine myisam),
 | |
|   partition x2 values less than (5)
 | |
|   ( subpartition x21 engine myisam,
 | |
|     subpartition x22 engine myisam)
 | |
| );
 | |
| 
 | |
| INSERT into t1 VALUES (1,1,1);
 | |
| INSERT into t1 VALUES (4,1,1);
 | |
| --error ER_NO_PARTITION_FOR_GIVEN_VALUE
 | |
| INSERT into t1 VALUES (5,1,1);
 | |
| 
 | |
| SELECT * from t1;
 | |
| 
 | |
| ALTER TABLE t1
 | |
| partition by range (a)
 | |
| subpartition by hash (a+b)
 | |
| ( partition x1 values less than (1)
 | |
|   ( subpartition x11 engine myisam,
 | |
|     subpartition x12 engine myisam),
 | |
|   partition x2 values less than (5)
 | |
|   ( subpartition x21 engine myisam,
 | |
|     subpartition x22 engine myisam)
 | |
| );
 | |
| 
 | |
| SELECT * from t1;
 | |
| 
 | |
| drop table t1;
 | |
| 
 | |
| #
 | |
| # Bug #17894 Comparison with "less than" operator fails with Range partition 
 | |
| #
 | |
| CREATE TABLE t1 (c1 int default NULL, c2 varchar(30) default NULL, 
 | |
| c3 date default NULL) engine=myisam
 | |
| PARTITION BY RANGE (year(c3)) (PARTITION p0 VALUES LESS THAN (1995),
 | |
| PARTITION p1 VALUES LESS THAN (1996) , PARTITION p2 VALUES LESS THAN (1997) ,
 | |
| PARTITION p3 VALUES LESS THAN (1998) , PARTITION p4 VALUES LESS THAN (1999) ,
 | |
| PARTITION p5 VALUES LESS THAN (2000) , PARTITION p6 VALUES LESS THAN (2001) ,
 | |
| PARTITION p7 VALUES LESS THAN (2002) , PARTITION p8 VALUES LESS THAN (2003) ,
 | |
| PARTITION p9 VALUES LESS THAN (2004) , PARTITION p10 VALUES LESS THAN (2010),
 | |
| PARTITION p11 VALUES LESS THAN MAXVALUE );
 | |
| INSERT INTO t1 VALUES (1, 'testing partitions', '1995-07-17'),
 | |
| (3, 'testing partitions','1995-07-31'),
 | |
| (5, 'testing partitions','1995-08-13'),
 | |
| (7, 'testing partitions','1995-08-26'),
 | |
| (9, 'testing partitions','1995-09-09'),
 | |
| (0, 'testing partitions','2000-07-10'),
 | |
| (2, 'testing partitions','2000-07-23'),
 | |
| (4, 'testing partitions','2000-08-05'),
 | |
| (6, 'testing partitions','2000-08-19'),
 | |
| (8, 'testing partitions','2000-09-01');
 | |
| SELECT COUNT(*) FROM t1 WHERE c3 BETWEEN '1996-12-31' AND '2000-12-31';
 | |
| SELECT COUNT(*) FROM t1 WHERE c3 < '2000-12-31';
 | |
| DROP TABLE t1;
 | |
| 
 | |
| #
 | |
| # BUG 18962 Errors in DROP PARTITION
 | |
| #
 | |
| create table t1 (a int)
 | |
| partition by range (MOD(a,3))
 | |
| subpartition by hash(a)
 | |
| subpartitions 2
 | |
| (partition p0 values less than (1),
 | |
|  partition p1 values less than (2),
 | |
|  partition p2 values less than (3),
 | |
|  partition p3 values less than (4));
 | |
| ALTER TABLE t1 DROP PARTITION p3;
 | |
| ALTER TABLE t1 DROP PARTITION p1;
 | |
| ALTER TABLE t1 DROP PARTITION p2;
 | |
| drop table t1;
 | |
| 
 | |
| create table t1 (a int)
 | |
| partition by range (MOD(a,3))
 | |
| subpartition by hash(a)
 | |
| subpartitions 2
 | |
| (partition p0 values less than (1),
 | |
|  partition p1 values less than (2),
 | |
|  partition p2 values less than (3),
 | |
|  partition p3 values less than (4));
 | |
| ALTER TABLE t1 DROP PARTITION p0;
 | |
| ALTER TABLE t1 DROP PARTITION p1;
 | |
| ALTER TABLE t1 DROP PARTITION p2;
 | |
| drop table t1;
 |