mirror of
				https://github.com/MariaDB/server.git
				synced 2025-11-03 14:33:32 +03:00 
			
		
		
		
	It is ok for a partitioned table to have only 1 partition. This test is just to show that doing the ALTER TABLE ADD PARTITION doesn't crash the server. partition_mgm_err.result: Added result block for test of bug #15820 partition_mgm_err.test: Added test block for bug #15820 mysql-test/t/partition_mgm_err.test: Added test block for bug #15820 mysql-test/r/partition_mgm_err.result: Added result block for test of bug #15820
		
			
				
	
	
		
			219 lines
		
	
	
		
			5.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			219 lines
		
	
	
		
			5.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
#
 | 
						|
# Simple test for the erroneos create statements using the 
 | 
						|
# partition storage engine
 | 
						|
#
 | 
						|
-- source include/have_partition.inc
 | 
						|
 | 
						|
--disable_warnings
 | 
						|
drop table if exists t1;
 | 
						|
--enable_warnings
 | 
						|
 | 
						|
#
 | 
						|
# Try faulty DROP PARTITION and COALESCE PARTITION
 | 
						|
#
 | 
						|
CREATE TABLE t1 (a int, b int)
 | 
						|
PARTITION BY RANGE (a)
 | 
						|
(PARTITION x0 VALUES LESS THAN (2),
 | 
						|
 PARTITION x1 VALUES LESS THAN (4),
 | 
						|
 PARTITION x2 VALUES LESS THAN (6),
 | 
						|
 PARTITION x3 VALUES LESS THAN (8),
 | 
						|
 PARTITION x4 VALUES LESS THAN (10),
 | 
						|
 PARTITION x5 VALUES LESS THAN (12),
 | 
						|
 PARTITION x6 VALUES LESS THAN (14),
 | 
						|
 PARTITION x7 VALUES LESS THAN (16),
 | 
						|
 PARTITION x8 VALUES LESS THAN (18),
 | 
						|
 PARTITION x9 VALUES LESS THAN (20));
 | 
						|
 | 
						|
--error ER_REORG_OUTSIDE_RANGE
 | 
						|
ALTER TABLE t1 REORGANIZE PARTITION x0,x1 INTO
 | 
						|
(PARTITION x01 VALUES LESS THAN (2),
 | 
						|
 PARTITION x11 VALUES LESS THAN (5));
 | 
						|
 | 
						|
--error ER_DROP_PARTITION_NON_EXISTENT
 | 
						|
ALTER TABLE t1 DROP PARTITION x0, x1, x2, x3, x3;
 | 
						|
 | 
						|
--error ER_DROP_PARTITION_NON_EXISTENT
 | 
						|
ALTER TABLE t1 DROP PARTITION x0, x1, x2, x10;
 | 
						|
 | 
						|
--error ER_DROP_PARTITION_NON_EXISTENT
 | 
						|
ALTER TABLE t1 DROP PARTITION x10, x1, x2, x1;
 | 
						|
 | 
						|
--error ER_DROP_PARTITION_NON_EXISTENT
 | 
						|
ALTER TABLE t1 DROP PARTITION x10, x1, x2, x3;
 | 
						|
 | 
						|
--error ER_REORG_PARTITION_NOT_EXIST
 | 
						|
ALTER TABLE t1 REORGANIZE PARTITION x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10 INTO
 | 
						|
(PARTITION x11 VALUES LESS THAN (22));
 | 
						|
 | 
						|
--error ER_SAME_NAME_PARTITION
 | 
						|
ALTER TABLE t1 REORGANIZE PARTITION x0,x1,x2 INTO
 | 
						|
(PARTITION x3 VALUES LESS THAN (6));
 | 
						|
 | 
						|
--error ER_CONSECUTIVE_REORG_PARTITIONS
 | 
						|
ALTER TABLE t1 REORGANIZE PARTITION x0, x2 INTO
 | 
						|
(PARTITION x11 VALUES LESS THAN (2));
 | 
						|
 | 
						|
--error ER_DROP_PARTITION_NON_EXISTENT
 | 
						|
ALTER TABLE t1 REORGANIZE PARTITION x0, x1, x1 INTO
 | 
						|
(PARTITION x11 VALUES LESS THAN (4));
 | 
						|
 | 
						|
--error ER_REORG_OUTSIDE_RANGE
 | 
						|
ALTER TABLE t1 REORGANIZE PARTITION x0,x1 INTO
 | 
						|
(PARTITION x01 VALUES LESS THAN (5));
 | 
						|
 | 
						|
--error ER_REORG_OUTSIDE_RANGE
 | 
						|
ALTER TABLE t1 REORGANIZE PARTITION x0,x1 INTO
 | 
						|
(PARTITION x01 VALUES LESS THAN (4),
 | 
						|
 PARTITION x11 VALUES LESS THAN (2));
 | 
						|
 | 
						|
--error ER_RANGE_NOT_INCREASING_ERROR
 | 
						|
ALTER TABLE t1 REORGANIZE PARTITION x0,x1 INTO
 | 
						|
(PARTITION x01 VALUES LESS THAN (6),
 | 
						|
 PARTITION x11 VALUES LESS THAN (4));
 | 
						|
 | 
						|
DROP TABLE t1;
 | 
						|
 | 
						|
CREATE TABLE t1 (a int)
 | 
						|
PARTITION BY KEY (a)
 | 
						|
PARTITIONS 2;
 | 
						|
 | 
						|
--error ER_SAME_NAME_PARTITION
 | 
						|
ALTER TABLE t1 ADD PARTITION (PARTITION p1);
 | 
						|
 | 
						|
DROP TABLE t1;
 | 
						|
 | 
						|
--error ER_SAME_NAME_PARTITION
 | 
						|
CREATE TABLE t1 (a int)
 | 
						|
PARTITION BY KEY (a)
 | 
						|
(PARTITION x0, PARTITION x1, PARTITION x2, PARTITION x3, PARTITION x3);
 | 
						|
 | 
						|
CREATE TABLE t1 (a int)
 | 
						|
PARTITION BY RANGE (a)
 | 
						|
SUBPARTITION BY KEY (a)
 | 
						|
SUBPARTITIONS 2
 | 
						|
(PARTITION x0 VALUES LESS THAN (4),
 | 
						|
 PARTITION x1 VALUES LESS THAN (8));
 | 
						|
 | 
						|
--error ER_RANGE_NOT_INCREASING_ERROR
 | 
						|
ALTER TABLE t1 ADD PARTITION (PARTITION x2 VALUES LESS THAN (5)
 | 
						|
(SUBPARTITION sp0, SUBPARTITION sp1));
 | 
						|
 | 
						|
--error ER_ADD_PARTITION_SUBPART_ERROR
 | 
						|
ALTER TABLE t1 ADD PARTITION (PARTITION x2 VALUES LESS THAN (12)
 | 
						|
(SUBPARTITION sp0, SUBPARTITION sp1, SUBPARTITION sp2));
 | 
						|
 | 
						|
DROP TABLE t1;
 | 
						|
 | 
						|
CREATE TABLE t1 (a int)
 | 
						|
PARTITION BY LIST (a)
 | 
						|
(PARTITION x0 VALUES IN (1,2,3),
 | 
						|
 PARTITION x1 VALUES IN (4,5,6));
 | 
						|
 | 
						|
--error ER_MULTIPLE_DEF_CONST_IN_LIST_PART_ERROR
 | 
						|
ALTER TABLE t1 ADD PARTITION (PARTITION x2 VALUES IN (3,4));
 | 
						|
 | 
						|
DROP TABLE t1;
 | 
						|
 | 
						|
CREATE TABLE t1 (a int);
 | 
						|
 | 
						|
--error ER_PARTITION_MGMT_ON_NONPARTITIONED
 | 
						|
ALTER TABLE t1 ADD PARTITION PARTITIONS 1;
 | 
						|
 | 
						|
--error ER_PARTITION_MGMT_ON_NONPARTITIONED
 | 
						|
ALTER TABLE t1 DROP PARTITION x1;
 | 
						|
 | 
						|
--error ER_PARTITION_MGMT_ON_NONPARTITIONED
 | 
						|
ALTER TABLE t1 COALESCE PARTITION 1;
 | 
						|
 | 
						|
DROP TABLE t1;
 | 
						|
 | 
						|
CREATE TABLE t1 (a int)
 | 
						|
PARTITION BY KEY (a)
 | 
						|
(PARTITION x0, PARTITION x1);
 | 
						|
 | 
						|
--error ER_ADD_PARTITION_NO_NEW_PARTITION
 | 
						|
ALTER TABLE t1 ADD PARTITION PARTITIONS 0;
 | 
						|
 | 
						|
--error ER_TOO_MANY_PARTITIONS_ERROR
 | 
						|
ALTER TABLE t1 ADD PARTITION PARTITIONS 1024;
 | 
						|
 | 
						|
--error ER_ONLY_ON_RANGE_LIST_PARTITION
 | 
						|
ALTER TABLE t1 DROP PARTITION x0;
 | 
						|
 | 
						|
ALTER TABLE t1 COALESCE PARTITION 1;
 | 
						|
 | 
						|
--error ER_DROP_LAST_PARTITION
 | 
						|
ALTER TABLE t1 COALESCE PARTITION 1;
 | 
						|
 | 
						|
DROP TABLE t1;
 | 
						|
 | 
						|
CREATE TABLE t1 (a int)
 | 
						|
PARTITION BY RANGE (a)
 | 
						|
(PARTITION x0 VALUES LESS THAN (4),
 | 
						|
 PARTITION x1 VALUES LESS THAN (8));
 | 
						|
 | 
						|
--error ER_PARTITIONS_MUST_BE_DEFINED_ERROR
 | 
						|
ALTER TABLE t1 ADD PARTITION PARTITIONS 1;
 | 
						|
 | 
						|
--error ER_DROP_PARTITION_NON_EXISTENT
 | 
						|
ALTER TABLE t1 DROP PARTITION x2;
 | 
						|
 | 
						|
--error ER_COALESCE_ONLY_ON_HASH_PARTITION
 | 
						|
ALTER TABLE t1 COALESCE PARTITION 1;
 | 
						|
 | 
						|
ALTER TABLE t1 DROP PARTITION x1;
 | 
						|
 | 
						|
--error ER_DROP_LAST_PARTITION
 | 
						|
ALTER TABLE t1 DROP PARTITION x0;
 | 
						|
 | 
						|
DROP TABLE t1;
 | 
						|
 | 
						|
#
 | 
						|
# BUG: 14354 Partitions: data directory clause fails
 | 
						|
#
 | 
						|
--exec rm -rf $MYSQL_TEST_DIR/bug14354
 | 
						|
--exec mkdir $MYSQL_TEST_DIR/bug14354
 | 
						|
disable_query_log;
 | 
						|
eval CREATE TABLE t1 (id int) PARTITION BY RANGE(id) (
 | 
						|
PARTITION p1 VALUES LESS THAN (20) ENGINE=myiasm 
 | 
						|
DATA DIRECTORY="$MYSQL_TEST_DIR/bug14354" 
 | 
						|
INDEX DIRECTORY="$MYSQL_TEST_DIR/bug14354");
 | 
						|
enable_query_log;
 | 
						|
INSERT INTO t1 VALUES (15);
 | 
						|
--exec test -f $MYSQL_TEST_DIR/bug14354/t1#P#p1.MYD
 | 
						|
--exec test -f $MYSQL_TEST_DIR/bug14354/t1#P#p1.MYI
 | 
						|
DROP TABLE t1;
 | 
						|
--exec rm -rf $MYSQL_TEST_DIR/bug14354
 | 
						|
 | 
						|
#
 | 
						|
# Bug# 16534 - Trying to add multiple partitions crashes server
 | 
						|
#
 | 
						|
CREATE TABLE t1 ( id INT NOT NULL,
 | 
						|
                  fname VARCHAR(50) NOT NULL,
 | 
						|
                  lname VARCHAR(50) NOT NULL,
 | 
						|
                  hired DATE NOT NULL )
 | 
						|
PARTITION BY RANGE(YEAR(hired)) (
 | 
						|
  PARTITION p1 VALUES LESS THAN (1991),
 | 
						|
  PARTITION p2 VALUES LESS THAN (1996),
 | 
						|
  PARTITION p3 VALUES LESS THAN (2001),
 | 
						|
  PARTITION p4 VALUES LESS THAN (2005));
 | 
						|
ALTER TABLE t1 ADD PARTITION (
 | 
						|
  PARTITION p5 VALUES LESS THAN (2010),
 | 
						|
  PARTITION p6 VALUES LESS THAN MAXVALUE);
 | 
						|
DROP TABLE t1;
 | 
						|
 | 
						|
#
 | 
						|
#BUG 15523 ALTER TABLE ... PARTITION BY does not work
 | 
						|
#
 | 
						|
CREATE TABLE t1 (a INT);
 | 
						|
SHOW CREATE TABLE t1;
 | 
						|
ALTER TABLE t1 PARTITION BY KEY(a) PARTITIONS 2;
 | 
						|
SHOW CREATE TABLE t1;
 | 
						|
DROP TABLE t1;
 | 
						|
 | 
						|
#
 | 
						|
#BUG 15820 create table with 1 partition, doing ALTER TABLE ADD PARTITION fails
 | 
						|
#
 | 
						|
CREATE TABLE t1 (a INT) PARTITION BY HASH(a);
 | 
						|
ALTER TABLE t1 ADD PARTITION PARTITIONS 4;
 |