174 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
		
		
			
		
	
	
			174 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
|  | #--disable_abort_on_error | ||
|  | # | ||
|  | # Simple test for the partition storage engine | ||
|  | # Taken fromm the select test | ||
|  | # | ||
|  | -- source include/have_partition.inc | ||
|  | 
 | ||
|  | --disable_warnings | ||
|  | drop table if exists t1; | ||
|  | --enable_warnings | ||
|  | 
 | ||
|  | # | ||
|  | # Bug#30822: crash when COALESCE | ||
|  | # | ||
|  | CREATE TABLE t1 (c1 INT) | ||
|  |   PARTITION BY HASH (c1) | ||
|  |   PARTITIONS 15; | ||
|  | INSERT INTO t1 VALUES (1), (2), (3), (4), (5); | ||
|  | ALTER TABLE t1 COALESCE PARTITION 13; | ||
|  | DROP TABLE t1; | ||
|  | CREATE TABLE t1 (c1 INT) | ||
|  |   PARTITION BY LINEAR HASH (c1) | ||
|  |   PARTITIONS 5; | ||
|  | INSERT INTO t1 VALUES (1), (2), (3), (4), (5); | ||
|  | ALTER TABLE t1 COALESCE PARTITION 3; | ||
|  | DROP TABLE t1; | ||
|  | 
 | ||
|  | # | ||
|  | # More partition pruning tests, especially on interval walking | ||
|  | # | ||
|  | create table t1 (a int unsigned) | ||
|  | partition by hash(a div 2) | ||
|  | partitions 4; | ||
|  | insert into t1 values (null),(0),(1),(2),(3),(4),(5),(6),(7); | ||
|  | select * from t1 where a < 0; | ||
|  | select * from t1 where a is null or (a >= 5 and a <= 7); | ||
|  | select * from t1 where a is null; | ||
|  | select * from t1 where a is not null; | ||
|  | select * from t1 where a >= 1 and a < 3; | ||
|  | select * from t1 where a >= 3 and a <= 5; | ||
|  | select * from t1 where a > 2 and a < 4; | ||
|  | select * from t1 where a > 3 and a <= 6; | ||
|  | select * from t1 where a > 5; | ||
|  | select * from t1 where a >= 1 and a <= 5; | ||
|  | explain partitions select * from t1 where a < 0; | ||
|  | explain partitions select * from t1 where a is null or (a >= 5 and a <= 7);  | ||
|  | explain partitions select * from t1 where a is null; | ||
|  | explain partitions select * from t1 where a is not null; | ||
|  | explain partitions select * from t1 where a >= 1 and a < 3; | ||
|  | explain partitions select * from t1 where a >= 3 and a <= 5; | ||
|  | explain partitions select * from t1 where a > 2 and a < 4; | ||
|  | explain partitions select * from t1 where a > 3 and a <= 6; | ||
|  | explain partitions select * from t1 where a > 5; | ||
|  | explain partitions select * from t1 where a >= 1 and a <= 5; | ||
|  | 
 | ||
|  | drop table t1; | ||
|  | 
 | ||
|  | # | ||
|  | # Partition by hash, basic | ||
|  | # | ||
|  | CREATE TABLE t1 ( | ||
|  | a int not null, | ||
|  | b int not null, | ||
|  | c int not null, | ||
|  | primary key(a,b)) | ||
|  | 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; | ||
|  | 
 | ||
|  | update t1 set c=3 where b=1; | ||
|  | select * from t1; | ||
|  | 
 | ||
|  | select b from t1 where a=3; | ||
|  | select b,c from t1 where a=1 AND b=1; | ||
|  | 
 | ||
|  | delete from t1 where a=1; | ||
|  | delete from t1 where c=3; | ||
|  | 
 | ||
|  | select * from t1; | ||
|  | 
 | ||
|  | ALTER TABLE t1 | ||
|  | partition by hash (a + 3) | ||
|  | partitions 3 | ||
|  | (partition x1 tablespace ts1, | ||
|  |  partition x2 tablespace ts2, | ||
|  |  partition x3 tablespace ts3); | ||
|  | select * from t1; | ||
|  | drop table t1; | ||
|  | 
 | ||
|  | # | ||
|  | # Partition by hash, only one partition | ||
|  | # | ||
|  | CREATE TABLE t1 ( | ||
|  | a int not null, | ||
|  | b int not null, | ||
|  | c int not null, | ||
|  | primary key(a,b)) | ||
|  | partition by hash (a) | ||
|  | (partition x1); | ||
|  | 
 | ||
|  | drop table t1; | ||
|  | # | ||
|  | # Partition by key, only one partition | ||
|  | # | ||
|  | CREATE TABLE t1 ( | ||
|  | a int not null, | ||
|  | b int not null, | ||
|  | c int not null, | ||
|  | primary key(a,b)) | ||
|  | partition by key (a) | ||
|  | (partition x1); | ||
|  | 
 | ||
|  | drop table t1; | ||
|  | 
 | ||
|  | # | ||
|  | # Bug# 15968 - crash when INSERT with f1 = -1 into partition by hash(f1) | ||
|  | # | ||
|  | CREATE TABLE t1 (f1 INTEGER, f2 char(20)) ENGINE = 'MYISAM' PARTITION BY HASH(f1) PARTITIONS 2; | ||
|  | INSERT INTO t1 SET f1 = 0 - 1, f2 = '#######'; | ||
|  | select * from t1; | ||
|  | drop table t1; | ||
|  | 
 | ||
|  | # | ||
|  | # BUG# 14524 Partitions: crash if blackhole | ||
|  | # | ||
|  | # Disable warnings to allow this test case to run without  | ||
|  | # the Blackhole storage engine. | ||
|  | --disable_warnings | ||
|  | CREATE TABLE t1 (s1 int) ENGINE=BLACKHOLE PARTITION BY HASH (s1); | ||
|  | --enable_warnings | ||
|  | --error 0,ER_BINLOG_LOGGING_IMPOSSIBLE | ||
|  | INSERT INTO t1 VALUES (0); | ||
|  | DROP TABLE t1; | ||
|  | 
 | ||
|  | # | ||
|  | # BUG 18423 Hash partitioning can lose rows in some queries | ||
|  | # | ||
|  | create table t1 (c1 int DEFAULT NULL, | ||
|  |                  c2 varchar (30) DEFAULT NULL, | ||
|  |                  c3 date DEFAULT NULL) | ||
|  | engine = myisam | ||
|  | partition by hash (to_days(c3)) | ||
|  | partitions 12; | ||
|  | 
 | ||
|  | insert into t1 values | ||
|  | (136,'abc','2002-01-05'),(142,'abc','2002-02-14'),(162,'abc','2002-06-28'), | ||
|  | (182,'abc','2002-11-09'),(158,'abc','2002-06-01'),(184,'abc','2002-11-22'); | ||
|  | select * from t1; | ||
|  | select * from t1 where c3 between '2002-01-01' and '2002-12-31'; | ||
|  | 
 | ||
|  | drop table t1; | ||
|  | 
 | ||
|  | # | ||
|  | # Bug#31210 - INSERT DELAYED crashes server when used on partitioned table | ||
|  | # | ||
|  | CREATE TABLE t1 (c1 INT) ENGINE=MyISAM PARTITION BY HASH(c1) PARTITIONS 1; | ||
|  | # The test succeeds in an embedded server because normal insert is done. | ||
|  | # The test fails in a normal server with | ||
|  | # "DELAYED option not supported by table". | ||
|  | --error 0, ER_DELAYED_NOT_SUPPORTED | ||
|  | INSERT DELAYED INTO t1 VALUES (1); | ||
|  | DROP TABLE t1; | ||
|  | 
 |