summaryrefslogtreecommitdiff
path: root/mysql-test/suite/parts
diff options
context:
space:
mode:
Diffstat (limited to 'mysql-test/suite/parts')
-rw-r--r--mysql-test/suite/parts/inc/partition_mgm.inc548
-rw-r--r--mysql-test/suite/parts/r/partition_mgm_lc0_archive.result834
-rw-r--r--mysql-test/suite/parts/r/partition_mgm_lc0_innodb.result829
-rw-r--r--mysql-test/suite/parts/r/partition_mgm_lc0_memory.result829
-rw-r--r--mysql-test/suite/parts/r/partition_mgm_lc0_myisam.result829
-rw-r--r--mysql-test/suite/parts/r/partition_mgm_lc0_ndb.result170
-rw-r--r--mysql-test/suite/parts/r/partition_mgm_lc1_archive.result797
-rw-r--r--mysql-test/suite/parts/r/partition_mgm_lc1_innodb.result797
-rw-r--r--mysql-test/suite/parts/r/partition_mgm_lc1_memory.result797
-rw-r--r--mysql-test/suite/parts/r/partition_mgm_lc1_myisam.result797
-rw-r--r--mysql-test/suite/parts/r/partition_mgm_lc1_ndb.result204
-rw-r--r--mysql-test/suite/parts/r/partition_mgm_lc2_archive.result797
-rw-r--r--mysql-test/suite/parts/r/partition_mgm_lc2_innodb.result797
-rw-r--r--mysql-test/suite/parts/r/partition_mgm_lc2_memory.result797
-rw-r--r--mysql-test/suite/parts/r/partition_mgm_lc2_myisam.result797
-rw-r--r--mysql-test/suite/parts/r/partition_mgm_lc2_ndb.result204
-rw-r--r--mysql-test/suite/parts/t/partition_mgm_lc0_archive.test42
-rw-r--r--mysql-test/suite/parts/t/partition_mgm_lc0_innodb.test41
-rw-r--r--mysql-test/suite/parts/t/partition_mgm_lc0_memory.test41
-rw-r--r--mysql-test/suite/parts/t/partition_mgm_lc0_myisam.test41
-rw-r--r--mysql-test/suite/parts/t/partition_mgm_lc0_ndb.test47
-rw-r--r--mysql-test/suite/parts/t/partition_mgm_lc1_archive-master.opt1
-rw-r--r--mysql-test/suite/parts/t/partition_mgm_lc1_archive.test38
-rw-r--r--mysql-test/suite/parts/t/partition_mgm_lc1_innodb-master.opt1
-rw-r--r--mysql-test/suite/parts/t/partition_mgm_lc1_innodb.test38
-rw-r--r--mysql-test/suite/parts/t/partition_mgm_lc1_memory-master.opt1
-rw-r--r--mysql-test/suite/parts/t/partition_mgm_lc1_memory.test38
-rw-r--r--mysql-test/suite/parts/t/partition_mgm_lc1_myisam-master.opt1
-rw-r--r--mysql-test/suite/parts/t/partition_mgm_lc1_myisam.test38
-rw-r--r--mysql-test/suite/parts/t/partition_mgm_lc1_ndb-master.opt1
-rw-r--r--mysql-test/suite/parts/t/partition_mgm_lc1_ndb.test44
-rw-r--r--mysql-test/suite/parts/t/partition_mgm_lc2_archive-master.opt1
-rw-r--r--mysql-test/suite/parts/t/partition_mgm_lc2_archive.test38
-rw-r--r--mysql-test/suite/parts/t/partition_mgm_lc2_innodb-master.opt1
-rw-r--r--mysql-test/suite/parts/t/partition_mgm_lc2_innodb.test38
-rw-r--r--mysql-test/suite/parts/t/partition_mgm_lc2_memory-master.opt1
-rw-r--r--mysql-test/suite/parts/t/partition_mgm_lc2_memory.test38
-rw-r--r--mysql-test/suite/parts/t/partition_mgm_lc2_myisam-master.opt1
-rw-r--r--mysql-test/suite/parts/t/partition_mgm_lc2_myisam.test38
-rw-r--r--mysql-test/suite/parts/t/partition_mgm_lc2_ndb-master.opt1
-rw-r--r--mysql-test/suite/parts/t/partition_mgm_lc2_ndb.test43
41 files changed, 11436 insertions, 0 deletions
diff --git a/mysql-test/suite/parts/inc/partition_mgm.inc b/mysql-test/suite/parts/inc/partition_mgm.inc
new file mode 100644
index 00000000000..f36b1a9921f
--- /dev/null
+++ b/mysql-test/suite/parts/inc/partition_mgm.inc
@@ -0,0 +1,548 @@
+################################################################################
+# inc/partition_mgm.inc #
+# #
+# Purpose: #
+# Test of partition management functions including different Upper/Lower #
+# case names of databases, tables and partitions #
+# #
+# #
+# Uses following variables: #
+# engine Use specified storage engine #
+# can_only_key Storage engine only able to use HASH/KEY (not range/list) #
+# (E.g. not ndbcluster) #
+# part_optA-D Extra partitioning options (E.g. INDEX/DATA DIR) #
+# #
+# have_bug33158 NDB case insensitive create, but case sensitive rename #
+# have_bug37719 Archive, crash when rename and then select #
+#------------------------------------------------------------------------------#
+# Original Author: mattiasj #
+# Original Date: 2008-06-27 #
+################################################################################
+--enable_abort_on_error
+
+let $old_db= `SELECT DATABASE()`;
+--echo # Creating database MySQL_TEST_DB
+CREATE DATABASE MySQL_Test_DB;
+USE MySQL_Test_DB;
+--echo # 1.0 KEY partitioning mgm
+--echo # Creating KEY partitioned table
+eval CREATE TABLE TableA (a INT)
+ENGINE = $engine
+PARTITION BY KEY (a)
+(PARTITION parta $part_optA,
+ PARTITION partB $part_optB,
+ PARTITION Partc $part_optC,
+ PARTITION PartD $part_optD);
+INSERT INTO TableA VALUES (1), (2), (7), (8), (9), (10);
+INSERT INTO TableA VALUES (3), (4), (5), (6), (11), (12);
+--sorted_result
+SELECT * FROM TableA;
+
+--echo # Test of ADD/COALESCE PARTITIONS
+--echo # expecting duplicate partition name
+--error ER_SAME_NAME_PARTITION
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partA,
+ PARTITION Parta,
+ PARTITION PartA);
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partE,
+ PARTITION Partf,
+ PARTITION PartG);
+--sorted_result
+SELECT * FROM TableA;
+SHOW CREATE TABLE TableA;
+ALTER TABLE TableA COALESCE PARTITION 4;
+--sorted_result
+SELECT * FROM TableA;
+SHOW CREATE TABLE TableA;
+
+--echo # Test of REORGANIZE PARTITIONS
+--echo # Should not work on HASH/KEY
+--error ER_REORG_HASH_ONLY_ON_SAME_NO
+eval ALTER TABLE TableA REORGANIZE PARTITION parta,partB,Partc INTO
+(PARTITION PARTA $part_optA,
+ PARTITION partc $part_optC);
+--error ER_CONSECUTIVE_REORG_PARTITIONS
+eval ALTER TABLE TableA REORGANIZE PARTITION parta,Partc INTO
+(PARTITION partB $part_optA,
+ PARTITION parta $part_optC);
+eval ALTER TABLE TableA REORGANIZE PARTITION parta,partB INTO
+(PARTITION partB $part_optA COMMENT="Previusly named parta",
+ PARTITION parta $part_optB COMMENT="Previusly named partB");
+if ($fixed_bug20129)
+{
+ALTER TABLE TableA ANALYZE PARTITION parta, partB, Partc;
+ALTER TABLE TableA CHECK PARTITION parta, partB, Partc;
+ALTER TABLE TableA OPTIMIZE PARTITION parta, partB, Partc;
+ALTER TABLE TableA REPAIR PARTITION parta, partB, Partc;
+}
+--sorted_result
+SELECT * FROM TableA;
+SHOW CREATE TABLE TableA;
+
+--echo # Test of RENAME TABLE
+RENAME TABLE TableA to TableB;
+--sorted_result
+SELECT * FROM TableB;
+RENAME TABLE TableB to TableA;
+--sorted_result
+SELECT * FROM TableA;
+
+--echo # Checking name comparision Upper vs Lower case
+--echo # Error if lower_case_table_names != 0
+let $lower_case_table_names= `SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME = 'lower_case_table_names'`;
+--echo # lower_case_table_names: $lower_case_table_names
+if ($lower_case_table_names)
+{
+--error ER_TABLE_EXISTS_ERROR
+eval CREATE TABLE tablea (a INT)
+ENGINE = $engine
+PARTITION BY KEY (a)
+(PARTITION parta $part_optA,
+ PARTITION partB $part_optB,
+ PARTITION Partc $part_optC,
+ PARTITION PartD $part_optD);
+SHOW TABLES;
+--error ER_TABLE_EXISTS_ERROR
+RENAME TABLE TableA to tablea;
+--error ER_TABLE_EXISTS_ERROR
+RENAME TABLE tablea to TableA;
+--sorted_result
+SELECT * FROM tablea;
+SHOW CREATE TABLE tablea;
+}
+if (!$lower_case_table_names)
+{
+if (!$have_bug33158)
+{
+eval CREATE TABLE tablea (a INT)
+ENGINE = $engine
+PARTITION BY KEY (a)
+(PARTITION parta $part_optA,
+ PARTITION partB $part_optB,
+ PARTITION Partc $part_optC,
+ PARTITION PartD $part_optD);
+INSERT INTO tablea VALUES (1), (2), (7), (8), (9), (10);
+SHOW TABLES;
+if (!$have_bug37719)
+{
+RENAME TABLE TableA to tableA;
+}
+--sorted_result
+SELECT * FROM tablea;
+if (!$have_bug37719)
+{
+--sorted_result
+SELECT * FROM tableA;
+RENAME TABLE tableA to TableA;
+}
+SHOW CREATE TABLE tablea;
+DROP TABLE tablea;
+}
+}
+
+--echo # Test of REMOVE PARTITIONING
+ALTER TABLE TableA REMOVE PARTITIONING;
+--sorted_result
+SELECT * FROM TableA;
+SHOW CREATE TABLE TableA;
+
+--echo # Cleaning up after KEY PARTITIONING test
+DROP TABLE TableA;
+
+if (!$can_only_key)
+{
+--echo # 2.0 HASH partitioning mgm
+--echo # expecting duplicate partition name
+--error ER_SAME_NAME_PARTITION
+eval CREATE TABLE TableA (a INT)
+ENGINE = $engine
+PARTITION BY HASH (a)
+(PARTITION parta $part_optA,
+ PARTITION partA $part_optB,
+ PARTITION Parta $part_optC,
+ PARTITION PartA $part_optD);
+
+--echo # Creating Hash partitioned table
+eval CREATE TABLE TableA (a INT)
+ENGINE = $engine
+PARTITION BY HASH (a)
+(PARTITION parta $part_optA,
+ PARTITION partB $part_optB,
+ PARTITION Partc $part_optC,
+ PARTITION PartD $part_optD);
+INSERT INTO TableA VALUES (1), (2), (7), (8), (9), (10);
+INSERT INTO TableA VALUES (3), (4), (5), (6), (11), (12);
+--sorted_result
+SELECT * FROM TableA;
+
+--echo # Test of ADD/COALESCE PARTITIONS
+--echo # expecting duplicate partition name
+--error ER_SAME_NAME_PARTITION
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partA,
+ PARTITION Parta,
+ PARTITION PartA);
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partE,
+ PARTITION Partf,
+ PARTITION PartG);
+--sorted_result
+SELECT * FROM TableA;
+SHOW CREATE TABLE TableA;
+ALTER TABLE TableA COALESCE PARTITION 4;
+--sorted_result
+SELECT * FROM TableA;
+SHOW CREATE TABLE TableA;
+
+--echo # Test of REORGANIZE PARTITIONS
+--echo # Should not work on HASH/KEY
+--error ER_REORG_HASH_ONLY_ON_SAME_NO
+eval ALTER TABLE TableA REORGANIZE PARTITION parta,partB,Partc INTO
+(PARTITION PARTA $part_optA,
+ PARTITION partc $part_optC);
+--error ER_CONSECUTIVE_REORG_PARTITIONS
+eval ALTER TABLE TableA REORGANIZE PARTITION parta,Partc INTO
+(PARTITION partB $part_optA,
+ PARTITION parta $part_optC);
+eval ALTER TABLE TableA REORGANIZE PARTITION parta,partB INTO
+(PARTITION partB $part_optA COMMENT="Previusly named parta",
+ PARTITION parta $part_optB COMMENT="Previusly named partB");
+if ($fixed_bug20129)
+{
+ALTER TABLE TableA ANALYZE PARTITION parta, partB, Partc;
+ALTER TABLE TableA CHECK PARTITION parta, partB, Partc;
+ALTER TABLE TableA OPTIMIZE PARTITION parta, partB, Partc;
+ALTER TABLE TableA REPAIR PARTITION parta, partB, Partc;
+}
+--sorted_result
+SELECT * FROM TableA;
+SHOW CREATE TABLE TableA;
+
+--echo # Test of RENAME TABLE
+RENAME TABLE TableA to TableB;
+--sorted_result
+SELECT * FROM TableB;
+RENAME TABLE TableB to TableA;
+--sorted_result
+SELECT * FROM TableA;
+
+--echo # Checking name comparision Upper vs Lower case
+--echo # Error if lower_case_table_names != 0
+let $lower_case_table_names= `SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME = 'lower_case_table_names'`;
+--echo # lower_case_table_names: $lower_case_table_names
+if ($lower_case_table_names)
+{
+--error ER_TABLE_EXISTS_ERROR
+eval CREATE TABLE tablea (a INT)
+ENGINE = $engine
+PARTITION BY HASH (a)
+(PARTITION parta $part_optA,
+ PARTITION partB $part_optB,
+ PARTITION Partc $part_optC,
+ PARTITION PartD $part_optD);
+SHOW TABLES;
+--error ER_TABLE_EXISTS_ERROR
+RENAME TABLE TableA to tablea;
+--error ER_TABLE_EXISTS_ERROR
+RENAME TABLE tablea to TableA;
+--sorted_result
+SELECT * FROM tablea;
+SHOW CREATE TABLE tablea;
+}
+if (!$lower_case_table_names)
+{
+eval CREATE TABLE tablea (a INT)
+ENGINE = $engine
+PARTITION BY HASH (a)
+(PARTITION parta $part_optA,
+ PARTITION partB $part_optB,
+ PARTITION Partc $part_optC,
+ PARTITION PartD $part_optD);
+INSERT INTO tablea VALUES (1), (2), (7), (8), (9), (10);
+SHOW TABLES;
+if (!$have_bug37719)
+{
+RENAME TABLE TableA to tableA;
+}
+--sorted_result
+SELECT * FROM tablea;
+if (!$have_bug37719)
+{
+--sorted_result
+SELECT * FROM tableA;
+RENAME TABLE tableA to TableA;
+}
+SHOW CREATE TABLE tablea;
+DROP TABLE tablea;
+}
+
+--echo # Test of REMOVE PARTITIONING
+ALTER TABLE TableA REMOVE PARTITIONING;
+--sorted_result
+SELECT * FROM TableA;
+SHOW CREATE TABLE TableA;
+
+--echo # Cleaning up after HASH PARTITIONING test
+DROP TABLE TableA;
+
+
+--echo # 3.0 RANGE partitioning mgm
+--echo # Creating RANGE partitioned table
+eval CREATE TABLE TableA (a INT)
+ENGINE = $engine
+PARTITION BY RANGE (a)
+(PARTITION parta VALUES LESS THAN (4) $part_optA,
+ PARTITION partB VALUES LESS THAN (7) $part_optB,
+ PARTITION Partc VALUES LESS THAN (10) $part_optC,
+ PARTITION PartD VALUES LESS THAN (13) $part_optD);
+INSERT INTO TableA VALUES (1), (2), (7), (8), (9), (10);
+INSERT INTO TableA VALUES (3), (4), (5), (6), (11), (12);
+--sorted_result
+SELECT * FROM TableA;
+
+--echo # Test of ADD/DROP PARTITIONS
+--echo # expecting duplicate partition name
+--error ER_SAME_NAME_PARTITION
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partA VALUES LESS THAN (MAXVALUE));
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partE VALUES LESS THAN (16),
+ PARTITION Partf VALUES LESS THAN (19),
+ PARTITION PartG VALUES LESS THAN (22));
+--sorted_result
+SELECT * FROM TableA;
+SHOW CREATE TABLE TableA;
+ALTER TABLE TableA DROP PARTITION partE, PartG;
+ALTER TABLE TableA DROP PARTITION Partf;
+ALTER TABLE TableA ADD PARTITION
+(PARTITION PartE VALUES LESS THAN (MAXVALUE));
+--sorted_result
+SELECT * FROM TableA;
+SHOW CREATE TABLE TableA;
+
+--echo # Test of REORGANIZE PARTITIONS
+--echo # Error since it must reorganize a consecutive range
+--error ER_CONSECUTIVE_REORG_PARTITIONS
+eval ALTER TABLE TableA REORGANIZE PARTITION parta,Partc INTO
+(PARTITION partB VALUES LESS THAN (3) $part_optA,
+ PARTITION parta VALUES LESS THAN (11) $part_optC);
+eval ALTER TABLE TableA REORGANIZE PARTITION partB,Partc,PartD,PartE INTO
+(PARTITION partD VALUES LESS THAN (8) $part_optB
+ COMMENT="Previously partB and partly Partc",
+ PARTITION partB VALUES LESS THAN (11) $part_optC
+ COMMENT="Previously partly Partc and partly PartD",
+ PARTITION partC VALUES LESS THAN (MAXVALUE) $part_optD
+ COMMENT="Previously partly PartD");
+if ($fixed_bug20129)
+{
+ALTER TABLE TableA ANALYZE PARTITION parta, partB, Partc;
+ALTER TABLE TableA CHECK PARTITION parta, partB, Partc;
+ALTER TABLE TableA OPTIMIZE PARTITION parta, partB, Partc;
+ALTER TABLE TableA REPAIR PARTITION parta, partB, Partc;
+}
+--sorted_result
+SELECT * FROM TableA;
+SHOW CREATE TABLE TableA;
+
+--echo # Test of RENAME TABLE
+RENAME TABLE TableA to TableB;
+--sorted_result
+SELECT * FROM TableB;
+RENAME TABLE TableB to TableA;
+--sorted_result
+SELECT * FROM TableA;
+
+--echo # Checking name comparision Upper vs Lower case
+--echo # Error if lower_case_table_names != 0
+let $lower_case_table_names= `SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME = 'lower_case_table_names'`;
+--echo # lower_case_table_names: $lower_case_table_names
+if ($lower_case_table_names)
+{
+--error ER_TABLE_EXISTS_ERROR
+eval CREATE TABLE tablea (a INT)
+ENGINE = $engine
+PARTITION BY RANGE (a)
+(PARTITION parta VALUES LESS THAN (4) $part_optA,
+ PARTITION partB VALUES LESS THAN (7) $part_optB,
+ PARTITION Partc VALUES LESS THAN (10) $part_optC,
+ PARTITION PartD VALUES LESS THAN (13) $part_optD);
+SHOW TABLES;
+--error ER_TABLE_EXISTS_ERROR
+RENAME TABLE TableA to tablea;
+--error ER_TABLE_EXISTS_ERROR
+RENAME TABLE tablea to TableA;
+--sorted_result
+SELECT * FROM tablea;
+SHOW CREATE TABLE tablea;
+}
+if (!$lower_case_table_names)
+{
+eval CREATE TABLE tablea (a INT)
+ENGINE = $engine
+PARTITION BY RANGE (a)
+(PARTITION parta VALUES LESS THAN (4) $part_optA,
+ PARTITION partB VALUES LESS THAN (7) $part_optB,
+ PARTITION Partc VALUES LESS THAN (10) $part_optC,
+ PARTITION PartD VALUES LESS THAN (13) $part_optD);
+INSERT INTO tablea VALUES (1), (2), (7), (8), (9), (10);
+SHOW TABLES;
+if (!$have_bug37719)
+{
+RENAME TABLE TableA to tableA;
+}
+--sorted_result
+SELECT * FROM tablea;
+if (!$have_bug37719)
+{
+--sorted_result
+SELECT * FROM tableA;
+RENAME TABLE tableA to TableA;
+}
+SHOW CREATE TABLE tablea;
+DROP TABLE tablea;
+}
+
+--echo # Test of REMOVE PARTITIONING
+ALTER TABLE TableA REMOVE PARTITIONING;
+--sorted_result
+SELECT * FROM TableA;
+SHOW CREATE TABLE TableA;
+
+--echo # Cleaning up after RANGE PARTITIONING test
+DROP TABLE TableA;
+
+--echo # 4.0 LIST partitioning mgm
+--echo # Creating LIST partitioned table
+eval CREATE TABLE TableA (a INT)
+ENGINE = $engine
+PARTITION BY LIST (a)
+(PARTITION parta VALUES IN (1,8,9) $part_optA,
+ PARTITION partB VALUES IN (2,10,11) $part_optB,
+ PARTITION Partc VALUES IN (3,4,7) $part_optC,
+ PARTITION PartD VALUES IN (5,6,12) $part_optD);
+INSERT INTO TableA VALUES (1), (2), (7), (8), (9), (10);
+INSERT INTO TableA VALUES (3), (4), (5), (6), (11), (12);
+--sorted_result
+SELECT * FROM TableA;
+
+--echo # Test of ADD/DROP PARTITIONS
+--echo # expecting duplicate partition name
+--error ER_SAME_NAME_PARTITION
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partA VALUES IN (0));
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partE VALUES IN (16),
+ PARTITION Partf VALUES IN (19),
+ PARTITION PartG VALUES IN (22));
+--sorted_result
+SELECT * FROM TableA;
+SHOW CREATE TABLE TableA;
+ALTER TABLE TableA DROP PARTITION partE, PartG;
+ALTER TABLE TableA DROP PARTITION Partf;
+ALTER TABLE TableA ADD PARTITION
+(PARTITION PartE VALUES IN (13));
+--sorted_result
+SELECT * FROM TableA;
+SHOW CREATE TABLE TableA;
+
+--echo # Test of REORGANIZE PARTITIONS
+--error ER_CONSECUTIVE_REORG_PARTITIONS
+eval ALTER TABLE TableA REORGANIZE PARTITION parta,Partc INTO
+(PARTITION Partc VALUES IN (1,7) $part_optA
+ COMMENT = "Mix 1 of old parta and Partc",
+ PARTITION partF VALUES IN (3,9) $part_optC
+ COMMENT = "Mix 2 of old parta and Partc",
+ PARTITION parta VALUES IN (4,8) $part_optC
+ COMMENT = "Mix 3 of old parta and Partc");
+eval ALTER TABLE TableA REORGANIZE PARTITION parta,partB,Partc INTO
+(PARTITION Partc VALUES IN (1,7) $part_optA
+ COMMENT = "Mix 1 of old parta and Partc",
+ PARTITION parta VALUES IN (3,9) $part_optC
+ COMMENT = "Mix 2 of old parta and Partc",
+ PARTITION partB VALUES IN (4,8) $part_optC
+ COMMENT = "Mix 3 of old parta and Partc");
+if ($fixed_bug20129)
+{
+ALTER TABLE TableA ANALYZE PARTITION parta, partB, Partc;
+ALTER TABLE TableA CHECK PARTITION parta, partB, Partc;
+ALTER TABLE TableA OPTIMIZE PARTITION parta, partB, Partc;
+ALTER TABLE TableA REPAIR PARTITION parta, partB, Partc;
+}
+--sorted_result
+SELECT * FROM TableA;
+SHOW CREATE TABLE TableA;
+
+--echo # Test of RENAME TABLE
+RENAME TABLE TableA to TableB;
+--sorted_result
+SELECT * FROM TableB;
+RENAME TABLE TableB to TableA;
+--sorted_result
+SELECT * FROM TableA;
+
+--echo # Checking name comparision Upper vs Lower case
+--echo # Error if lower_case_table_names != 0
+let $lower_case_table_names= `SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME = 'lower_case_table_names'`;
+--echo # lower_case_table_names: $lower_case_table_names
+if ($lower_case_table_names)
+{
+--error ER_TABLE_EXISTS_ERROR
+eval CREATE TABLE tablea (a INT)
+ENGINE = $engine
+PARTITION BY LIST (a)
+(PARTITION parta VALUES IN (1,8,9) $part_optA,
+ PARTITION partB VALUES IN (2,10,11) $part_optB,
+ PARTITION Partc VALUES IN (3,4,7) $part_optC,
+ PARTITION PartD VALUES IN (5,6,12) $part_optD);
+SHOW TABLES;
+--error ER_TABLE_EXISTS_ERROR
+RENAME TABLE TableA to tablea;
+--error ER_TABLE_EXISTS_ERROR
+RENAME TABLE tablea to TableA;
+--sorted_result
+SELECT * FROM tablea;
+SHOW CREATE TABLE tablea;
+}
+if (!$lower_case_table_names)
+{
+eval CREATE TABLE tablea (a INT)
+ENGINE = $engine
+PARTITION BY LIST (a)
+(PARTITION parta VALUES IN (1,8,9) $part_optA,
+ PARTITION partB VALUES IN (2,10,11) $part_optB,
+ PARTITION Partc VALUES IN (3,4,7) $part_optC,
+ PARTITION PartD VALUES IN (5,6,12) $part_optD);
+INSERT INTO tablea VALUES (1), (2), (7), (8), (9), (10);
+SHOW TABLES;
+if (!$have_bug37719)
+{
+RENAME TABLE TableA to tableA;
+}
+--sorted_result
+SELECT * FROM tablea;
+if (!$have_bug37719)
+{
+--sorted_result
+SELECT * FROM tableA;
+RENAME TABLE tableA to TableA;
+}
+SHOW CREATE TABLE tablea;
+DROP TABLE tablea;
+}
+
+--echo # Test of REMOVE PARTITIONING
+ALTER TABLE TableA REMOVE PARTITIONING;
+--sorted_result
+SELECT * FROM TableA;
+SHOW CREATE TABLE TableA;
+
+--echo # Cleaning up after LIST PARTITIONING test
+DROP TABLE TableA;
+}
+# End of $can_only_key
+
+--echo # Cleaning up before exit
+eval USE $old_db;
+DROP DATABASE MySQL_Test_DB;
diff --git a/mysql-test/suite/parts/r/partition_mgm_lc0_archive.result b/mysql-test/suite/parts/r/partition_mgm_lc0_archive.result
new file mode 100644
index 00000000000..2bb6e7421b1
--- /dev/null
+++ b/mysql-test/suite/parts/r/partition_mgm_lc0_archive.result
@@ -0,0 +1,834 @@
+# Creating database MySQL_TEST_DB
+CREATE DATABASE MySQL_Test_DB;
+USE MySQL_Test_DB;
+# 1.0 KEY partitioning mgm
+# Creating KEY partitioned table
+CREATE TABLE TableA (a INT)
+ENGINE = 'Archive'
+PARTITION BY KEY (a)
+(PARTITION parta ,
+PARTITION partB ,
+PARTITION Partc ,
+PARTITION PartD );
+INSERT INTO TableA VALUES (1), (2), (7), (8), (9), (10);
+INSERT INTO TableA VALUES (3), (4), (5), (6), (11), (12);
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Test of ADD/COALESCE PARTITIONS
+# expecting duplicate partition name
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partA,
+PARTITION Parta,
+PARTITION PartA);
+ERROR HY000: Duplicate partition name parta
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partE,
+PARTITION Partf,
+PARTITION PartG);
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=ARCHIVE DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION parta ENGINE = ARCHIVE, PARTITION partB ENGINE = ARCHIVE, PARTITION Partc ENGINE = ARCHIVE, PARTITION PartD ENGINE = ARCHIVE, PARTITION partE ENGINE = ARCHIVE, PARTITION Partf ENGINE = ARCHIVE, PARTITION PartG ENGINE = ARCHIVE) */
+ALTER TABLE TableA COALESCE PARTITION 4;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=ARCHIVE DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION parta ENGINE = ARCHIVE, PARTITION partB ENGINE = ARCHIVE, PARTITION Partc ENGINE = ARCHIVE) */
+# Test of REORGANIZE PARTITIONS
+# Should not work on HASH/KEY
+ALTER TABLE TableA REORGANIZE PARTITION parta,partB,Partc INTO
+(PARTITION PARTA ,
+PARTITION partc );
+ERROR HY000: REORGANISE PARTITION can only be used to reorganise partitions not to change their numbers
+ALTER TABLE TableA REORGANIZE PARTITION parta,Partc INTO
+(PARTITION partB ,
+PARTITION parta );
+ERROR HY000: When reorganising a set of partitions they must be in consecutive order
+ALTER TABLE TableA REORGANIZE PARTITION parta,partB INTO
+(PARTITION partB COMMENT="Previusly named parta",
+PARTITION parta COMMENT="Previusly named partB");
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=ARCHIVE DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION partB COMMENT = 'Previusly named parta' ENGINE = ARCHIVE, PARTITION parta COMMENT = 'Previusly named partB' ENGINE = ARCHIVE, PARTITION Partc ENGINE = ARCHIVE) */
+# Test of RENAME TABLE
+RENAME TABLE TableA to TableB;
+SELECT * FROM TableB;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+RENAME TABLE TableB to TableA;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Checking name comparision Upper vs Lower case
+# Error if lower_case_table_names != 0
+# lower_case_table_names: 0
+CREATE TABLE tablea (a INT)
+ENGINE = 'Archive'
+PARTITION BY KEY (a)
+(PARTITION parta ,
+PARTITION partB ,
+PARTITION Partc ,
+PARTITION PartD );
+INSERT INTO tablea VALUES (1), (2), (7), (8), (9), (10);
+SHOW TABLES;
+Tables_in_MySQL_Test_DB
+TableA
+tablea
+SELECT * FROM tablea;
+a
+1
+1
+10
+10
+11
+12
+2
+2
+3
+4
+5
+6
+7
+7
+8
+8
+9
+9
+SHOW CREATE TABLE tablea;
+Table Create Table
+tablea CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=ARCHIVE DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION parta ENGINE = ARCHIVE, PARTITION partB ENGINE = ARCHIVE, PARTITION Partc ENGINE = ARCHIVE, PARTITION PartD ENGINE = ARCHIVE) */
+DROP TABLE tablea;
+# Test of REMOVE PARTITIONING
+ALTER TABLE TableA REMOVE PARTITIONING;
+SELECT * FROM TableA;
+a
+1
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+7
+8
+8
+9
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=ARCHIVE DEFAULT CHARSET=latin1
+# Cleaning up after KEY PARTITIONING test
+DROP TABLE TableA;
+# 2.0 HASH partitioning mgm
+# expecting duplicate partition name
+CREATE TABLE TableA (a INT)
+ENGINE = 'Archive'
+PARTITION BY HASH (a)
+(PARTITION parta ,
+PARTITION partA ,
+PARTITION Parta ,
+PARTITION PartA );
+ERROR HY000: Duplicate partition name parta
+# Creating Hash partitioned table
+CREATE TABLE TableA (a INT)
+ENGINE = 'Archive'
+PARTITION BY HASH (a)
+(PARTITION parta ,
+PARTITION partB ,
+PARTITION Partc ,
+PARTITION PartD );
+INSERT INTO TableA VALUES (1), (2), (7), (8), (9), (10);
+INSERT INTO TableA VALUES (3), (4), (5), (6), (11), (12);
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Test of ADD/COALESCE PARTITIONS
+# expecting duplicate partition name
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partA,
+PARTITION Parta,
+PARTITION PartA);
+ERROR HY000: Duplicate partition name parta
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partE,
+PARTITION Partf,
+PARTITION PartG);
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=ARCHIVE DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (a) (PARTITION parta ENGINE = ARCHIVE, PARTITION partB ENGINE = ARCHIVE, PARTITION Partc ENGINE = ARCHIVE, PARTITION PartD ENGINE = ARCHIVE, PARTITION partE ENGINE = ARCHIVE, PARTITION Partf ENGINE = ARCHIVE, PARTITION PartG ENGINE = ARCHIVE) */
+ALTER TABLE TableA COALESCE PARTITION 4;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=ARCHIVE DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (a) (PARTITION parta ENGINE = ARCHIVE, PARTITION partB ENGINE = ARCHIVE, PARTITION Partc ENGINE = ARCHIVE) */
+# Test of REORGANIZE PARTITIONS
+# Should not work on HASH/KEY
+ALTER TABLE TableA REORGANIZE PARTITION parta,partB,Partc INTO
+(PARTITION PARTA ,
+PARTITION partc );
+ERROR HY000: REORGANISE PARTITION can only be used to reorganise partitions not to change their numbers
+ALTER TABLE TableA REORGANIZE PARTITION parta,Partc INTO
+(PARTITION partB ,
+PARTITION parta );
+ERROR HY000: When reorganising a set of partitions they must be in consecutive order
+ALTER TABLE TableA REORGANIZE PARTITION parta,partB INTO
+(PARTITION partB COMMENT="Previusly named parta",
+PARTITION parta COMMENT="Previusly named partB");
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=ARCHIVE DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (a) (PARTITION partB COMMENT = 'Previusly named parta' ENGINE = ARCHIVE, PARTITION parta COMMENT = 'Previusly named partB' ENGINE = ARCHIVE, PARTITION Partc ENGINE = ARCHIVE) */
+# Test of RENAME TABLE
+RENAME TABLE TableA to TableB;
+SELECT * FROM TableB;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+RENAME TABLE TableB to TableA;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Checking name comparision Upper vs Lower case
+# Error if lower_case_table_names != 0
+# lower_case_table_names: 0
+CREATE TABLE tablea (a INT)
+ENGINE = 'Archive'
+PARTITION BY HASH (a)
+(PARTITION parta ,
+PARTITION partB ,
+PARTITION Partc ,
+PARTITION PartD );
+INSERT INTO tablea VALUES (1), (2), (7), (8), (9), (10);
+SHOW TABLES;
+Tables_in_MySQL_Test_DB
+TableA
+tablea
+SELECT * FROM tablea;
+a
+1
+1
+10
+10
+11
+12
+2
+2
+3
+4
+5
+6
+7
+7
+8
+8
+9
+9
+SHOW CREATE TABLE tablea;
+Table Create Table
+tablea CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=ARCHIVE DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (a) (PARTITION parta ENGINE = ARCHIVE, PARTITION partB ENGINE = ARCHIVE, PARTITION Partc ENGINE = ARCHIVE, PARTITION PartD ENGINE = ARCHIVE) */
+DROP TABLE tablea;
+# Test of REMOVE PARTITIONING
+ALTER TABLE TableA REMOVE PARTITIONING;
+SELECT * FROM TableA;
+a
+1
+1
+10
+10
+11
+12
+2
+2
+3
+4
+5
+6
+7
+8
+8
+9
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=ARCHIVE DEFAULT CHARSET=latin1
+# Cleaning up after HASH PARTITIONING test
+DROP TABLE TableA;
+# 3.0 RANGE partitioning mgm
+# Creating RANGE partitioned table
+CREATE TABLE TableA (a INT)
+ENGINE = 'Archive'
+PARTITION BY RANGE (a)
+(PARTITION parta VALUES LESS THAN (4) ,
+PARTITION partB VALUES LESS THAN (7) ,
+PARTITION Partc VALUES LESS THAN (10) ,
+PARTITION PartD VALUES LESS THAN (13) );
+INSERT INTO TableA VALUES (1), (2), (7), (8), (9), (10);
+INSERT INTO TableA VALUES (3), (4), (5), (6), (11), (12);
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Test of ADD/DROP PARTITIONS
+# expecting duplicate partition name
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partA VALUES LESS THAN (MAXVALUE));
+ERROR HY000: Duplicate partition name parta
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partE VALUES LESS THAN (16),
+PARTITION Partf VALUES LESS THAN (19),
+PARTITION PartG VALUES LESS THAN (22));
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=ARCHIVE DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (a) (PARTITION parta VALUES LESS THAN (4) ENGINE = ARCHIVE, PARTITION partB VALUES LESS THAN (7) ENGINE = ARCHIVE, PARTITION Partc VALUES LESS THAN (10) ENGINE = ARCHIVE, PARTITION PartD VALUES LESS THAN (13) ENGINE = ARCHIVE, PARTITION partE VALUES LESS THAN (16) ENGINE = ARCHIVE, PARTITION Partf VALUES LESS THAN (19) ENGINE = ARCHIVE, PARTITION PartG VALUES LESS THAN (22) ENGINE = ARCHIVE) */
+ALTER TABLE TableA DROP PARTITION partE, PartG;
+ALTER TABLE TableA DROP PARTITION Partf;
+ALTER TABLE TableA ADD PARTITION
+(PARTITION PartE VALUES LESS THAN (MAXVALUE));
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=ARCHIVE DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (a) (PARTITION parta VALUES LESS THAN (4) ENGINE = ARCHIVE, PARTITION partB VALUES LESS THAN (7) ENGINE = ARCHIVE, PARTITION Partc VALUES LESS THAN (10) ENGINE = ARCHIVE, PARTITION PartD VALUES LESS THAN (13) ENGINE = ARCHIVE, PARTITION PartE VALUES LESS THAN MAXVALUE ENGINE = ARCHIVE) */
+# Test of REORGANIZE PARTITIONS
+# Error since it must reorganize a consecutive range
+ALTER TABLE TableA REORGANIZE PARTITION parta,Partc INTO
+(PARTITION partB VALUES LESS THAN (3) ,
+PARTITION parta VALUES LESS THAN (11) );
+ERROR HY000: When reorganising a set of partitions they must be in consecutive order
+ALTER TABLE TableA REORGANIZE PARTITION partB,Partc,PartD,PartE INTO
+(PARTITION partD VALUES LESS THAN (8)
+COMMENT="Previously partB and partly Partc",
+PARTITION partB VALUES LESS THAN (11)
+COMMENT="Previously partly Partc and partly PartD",
+PARTITION partC VALUES LESS THAN (MAXVALUE)
+COMMENT="Previously partly PartD");
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=ARCHIVE DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (a) (PARTITION parta VALUES LESS THAN (4) ENGINE = ARCHIVE, PARTITION partD VALUES LESS THAN (8) COMMENT = 'Previously partB and partly Partc' ENGINE = ARCHIVE, PARTITION partB VALUES LESS THAN (11) COMMENT = 'Previously partly Partc and partly PartD' ENGINE = ARCHIVE, PARTITION partC VALUES LESS THAN MAXVALUE COMMENT = 'Previously partly PartD' ENGINE = ARCHIVE) */
+# Test of RENAME TABLE
+RENAME TABLE TableA to TableB;
+SELECT * FROM TableB;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+RENAME TABLE TableB to TableA;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Checking name comparision Upper vs Lower case
+# Error if lower_case_table_names != 0
+# lower_case_table_names: 0
+CREATE TABLE tablea (a INT)
+ENGINE = 'Archive'
+PARTITION BY RANGE (a)
+(PARTITION parta VALUES LESS THAN (4) ,
+PARTITION partB VALUES LESS THAN (7) ,
+PARTITION Partc VALUES LESS THAN (10) ,
+PARTITION PartD VALUES LESS THAN (13) );
+INSERT INTO tablea VALUES (1), (2), (7), (8), (9), (10);
+SHOW TABLES;
+Tables_in_MySQL_Test_DB
+TableA
+tablea
+SELECT * FROM tablea;
+a
+1
+1
+10
+10
+11
+12
+2
+2
+3
+4
+5
+6
+7
+7
+8
+8
+9
+9
+SHOW CREATE TABLE tablea;
+Table Create Table
+tablea CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=ARCHIVE DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (a) (PARTITION parta VALUES LESS THAN (4) ENGINE = ARCHIVE, PARTITION partB VALUES LESS THAN (7) ENGINE = ARCHIVE, PARTITION Partc VALUES LESS THAN (10) ENGINE = ARCHIVE, PARTITION PartD VALUES LESS THAN (13) ENGINE = ARCHIVE) */
+DROP TABLE tablea;
+# Test of REMOVE PARTITIONING
+ALTER TABLE TableA REMOVE PARTITIONING;
+SELECT * FROM TableA;
+a
+1
+1
+10
+10
+11
+12
+2
+2
+3
+4
+5
+6
+7
+7
+8
+8
+9
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=ARCHIVE DEFAULT CHARSET=latin1
+# Cleaning up after RANGE PARTITIONING test
+DROP TABLE TableA;
+# 4.0 LIST partitioning mgm
+# Creating LIST partitioned table
+CREATE TABLE TableA (a INT)
+ENGINE = 'Archive'
+PARTITION BY LIST (a)
+(PARTITION parta VALUES IN (1,8,9) ,
+PARTITION partB VALUES IN (2,10,11) ,
+PARTITION Partc VALUES IN (3,4,7) ,
+PARTITION PartD VALUES IN (5,6,12) );
+INSERT INTO TableA VALUES (1), (2), (7), (8), (9), (10);
+INSERT INTO TableA VALUES (3), (4), (5), (6), (11), (12);
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Test of ADD/DROP PARTITIONS
+# expecting duplicate partition name
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partA VALUES IN (0));
+ERROR HY000: Duplicate partition name parta
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partE VALUES IN (16),
+PARTITION Partf VALUES IN (19),
+PARTITION PartG VALUES IN (22));
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=ARCHIVE DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (a) (PARTITION parta VALUES IN (1,8,9) ENGINE = ARCHIVE, PARTITION partB VALUES IN (2,10,11) ENGINE = ARCHIVE, PARTITION Partc VALUES IN (3,4,7) ENGINE = ARCHIVE, PARTITION PartD VALUES IN (5,6,12) ENGINE = ARCHIVE, PARTITION partE VALUES IN (16) ENGINE = ARCHIVE, PARTITION Partf VALUES IN (19) ENGINE = ARCHIVE, PARTITION PartG VALUES IN (22) ENGINE = ARCHIVE) */
+ALTER TABLE TableA DROP PARTITION partE, PartG;
+ALTER TABLE TableA DROP PARTITION Partf;
+ALTER TABLE TableA ADD PARTITION
+(PARTITION PartE VALUES IN (13));
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=ARCHIVE DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (a) (PARTITION parta VALUES IN (1,8,9) ENGINE = ARCHIVE, PARTITION partB VALUES IN (2,10,11) ENGINE = ARCHIVE, PARTITION Partc VALUES IN (3,4,7) ENGINE = ARCHIVE, PARTITION PartD VALUES IN (5,6,12) ENGINE = ARCHIVE, PARTITION PartE VALUES IN (13) ENGINE = ARCHIVE) */
+# Test of REORGANIZE PARTITIONS
+ALTER TABLE TableA REORGANIZE PARTITION parta,Partc INTO
+(PARTITION Partc VALUES IN (1,7)
+COMMENT = "Mix 1 of old parta and Partc",
+PARTITION partF VALUES IN (3,9)
+COMMENT = "Mix 2 of old parta and Partc",
+PARTITION parta VALUES IN (4,8)
+COMMENT = "Mix 3 of old parta and Partc");
+ERROR HY000: When reorganising a set of partitions they must be in consecutive order
+ALTER TABLE TableA REORGANIZE PARTITION parta,partB,Partc INTO
+(PARTITION Partc VALUES IN (1,7)
+COMMENT = "Mix 1 of old parta and Partc",
+PARTITION parta VALUES IN (3,9)
+COMMENT = "Mix 2 of old parta and Partc",
+PARTITION partB VALUES IN (4,8)
+COMMENT = "Mix 3 of old parta and Partc");
+SELECT * FROM TableA;
+a
+1
+12
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=ARCHIVE DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (a) (PARTITION Partc VALUES IN (1,7) COMMENT = 'Mix 1 of old parta and Partc' ENGINE = ARCHIVE, PARTITION parta VALUES IN (3,9) COMMENT = 'Mix 2 of old parta and Partc' ENGINE = ARCHIVE, PARTITION partB VALUES IN (4,8) COMMENT = 'Mix 3 of old parta and Partc' ENGINE = ARCHIVE, PARTITION PartD VALUES IN (5,6,12) ENGINE = ARCHIVE, PARTITION PartE VALUES IN (13) ENGINE = ARCHIVE) */
+# Test of RENAME TABLE
+RENAME TABLE TableA to TableB;
+SELECT * FROM TableB;
+a
+1
+12
+3
+4
+5
+6
+7
+8
+9
+RENAME TABLE TableB to TableA;
+SELECT * FROM TableA;
+a
+1
+12
+3
+4
+5
+6
+7
+8
+9
+# Checking name comparision Upper vs Lower case
+# Error if lower_case_table_names != 0
+# lower_case_table_names: 0
+CREATE TABLE tablea (a INT)
+ENGINE = 'Archive'
+PARTITION BY LIST (a)
+(PARTITION parta VALUES IN (1,8,9) ,
+PARTITION partB VALUES IN (2,10,11) ,
+PARTITION Partc VALUES IN (3,4,7) ,
+PARTITION PartD VALUES IN (5,6,12) );
+INSERT INTO tablea VALUES (1), (2), (7), (8), (9), (10);
+SHOW TABLES;
+Tables_in_MySQL_Test_DB
+TableA
+tablea
+SELECT * FROM tablea;
+a
+1
+1
+10
+12
+2
+3
+4
+5
+6
+7
+7
+8
+8
+9
+9
+SHOW CREATE TABLE tablea;
+Table Create Table
+tablea CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=ARCHIVE DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (a) (PARTITION parta VALUES IN (1,8,9) ENGINE = ARCHIVE, PARTITION partB VALUES IN (2,10,11) ENGINE = ARCHIVE, PARTITION Partc VALUES IN (3,4,7) ENGINE = ARCHIVE, PARTITION PartD VALUES IN (5,6,12) ENGINE = ARCHIVE) */
+DROP TABLE tablea;
+# Test of REMOVE PARTITIONING
+ALTER TABLE TableA REMOVE PARTITIONING;
+SELECT * FROM TableA;
+a
+1
+1
+10
+12
+2
+3
+4
+5
+6
+7
+7
+8
+8
+9
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=ARCHIVE DEFAULT CHARSET=latin1
+# Cleaning up after LIST PARTITIONING test
+DROP TABLE TableA;
+# Cleaning up before exit
+USE test;
+DROP DATABASE MySQL_Test_DB;
diff --git a/mysql-test/suite/parts/r/partition_mgm_lc0_innodb.result b/mysql-test/suite/parts/r/partition_mgm_lc0_innodb.result
new file mode 100644
index 00000000000..d603dbae9c2
--- /dev/null
+++ b/mysql-test/suite/parts/r/partition_mgm_lc0_innodb.result
@@ -0,0 +1,829 @@
+# Creating database MySQL_TEST_DB
+CREATE DATABASE MySQL_Test_DB;
+USE MySQL_Test_DB;
+# 1.0 KEY partitioning mgm
+# Creating KEY partitioned table
+CREATE TABLE TableA (a INT)
+ENGINE = 'InnoDB'
+PARTITION BY KEY (a)
+(PARTITION parta ,
+PARTITION partB ,
+PARTITION Partc ,
+PARTITION PartD );
+INSERT INTO TableA VALUES (1), (2), (7), (8), (9), (10);
+INSERT INTO TableA VALUES (3), (4), (5), (6), (11), (12);
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Test of ADD/COALESCE PARTITIONS
+# expecting duplicate partition name
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partA,
+PARTITION Parta,
+PARTITION PartA);
+ERROR HY000: Duplicate partition name parta
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partE,
+PARTITION Partf,
+PARTITION PartG);
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION parta ENGINE = InnoDB, PARTITION partB ENGINE = InnoDB, PARTITION Partc ENGINE = InnoDB, PARTITION PartD ENGINE = InnoDB, PARTITION partE ENGINE = InnoDB, PARTITION Partf ENGINE = InnoDB, PARTITION PartG ENGINE = InnoDB) */
+ALTER TABLE TableA COALESCE PARTITION 4;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION parta ENGINE = InnoDB, PARTITION partB ENGINE = InnoDB, PARTITION Partc ENGINE = InnoDB) */
+# Test of REORGANIZE PARTITIONS
+# Should not work on HASH/KEY
+ALTER TABLE TableA REORGANIZE PARTITION parta,partB,Partc INTO
+(PARTITION PARTA ,
+PARTITION partc );
+ERROR HY000: REORGANISE PARTITION can only be used to reorganise partitions not to change their numbers
+ALTER TABLE TableA REORGANIZE PARTITION parta,Partc INTO
+(PARTITION partB ,
+PARTITION parta );
+ERROR HY000: When reorganising a set of partitions they must be in consecutive order
+ALTER TABLE TableA REORGANIZE PARTITION parta,partB INTO
+(PARTITION partB COMMENT="Previusly named parta",
+PARTITION parta COMMENT="Previusly named partB");
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION partB COMMENT = 'Previusly named parta' ENGINE = InnoDB, PARTITION parta COMMENT = 'Previusly named partB' ENGINE = InnoDB, PARTITION Partc ENGINE = InnoDB) */
+# Test of RENAME TABLE
+RENAME TABLE TableA to TableB;
+SELECT * FROM TableB;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+RENAME TABLE TableB to TableA;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Checking name comparision Upper vs Lower case
+# Error if lower_case_table_names != 0
+# lower_case_table_names: 0
+CREATE TABLE tablea (a INT)
+ENGINE = 'InnoDB'
+PARTITION BY KEY (a)
+(PARTITION parta ,
+PARTITION partB ,
+PARTITION Partc ,
+PARTITION PartD );
+INSERT INTO tablea VALUES (1), (2), (7), (8), (9), (10);
+SHOW TABLES;
+Tables_in_MySQL_Test_DB
+TableA
+tablea
+RENAME TABLE TableA to tableA;
+SELECT * FROM tablea;
+a
+1
+10
+2
+7
+8
+9
+SELECT * FROM tableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+RENAME TABLE tableA to TableA;
+SHOW CREATE TABLE tablea;
+Table Create Table
+tablea CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION parta ENGINE = InnoDB, PARTITION partB ENGINE = InnoDB, PARTITION Partc ENGINE = InnoDB, PARTITION PartD ENGINE = InnoDB) */
+DROP TABLE tablea;
+# Test of REMOVE PARTITIONING
+ALTER TABLE TableA REMOVE PARTITIONING;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1
+# Cleaning up after KEY PARTITIONING test
+DROP TABLE TableA;
+# 2.0 HASH partitioning mgm
+# expecting duplicate partition name
+CREATE TABLE TableA (a INT)
+ENGINE = 'InnoDB'
+PARTITION BY HASH (a)
+(PARTITION parta ,
+PARTITION partA ,
+PARTITION Parta ,
+PARTITION PartA );
+ERROR HY000: Duplicate partition name parta
+# Creating Hash partitioned table
+CREATE TABLE TableA (a INT)
+ENGINE = 'InnoDB'
+PARTITION BY HASH (a)
+(PARTITION parta ,
+PARTITION partB ,
+PARTITION Partc ,
+PARTITION PartD );
+INSERT INTO TableA VALUES (1), (2), (7), (8), (9), (10);
+INSERT INTO TableA VALUES (3), (4), (5), (6), (11), (12);
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Test of ADD/COALESCE PARTITIONS
+# expecting duplicate partition name
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partA,
+PARTITION Parta,
+PARTITION PartA);
+ERROR HY000: Duplicate partition name parta
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partE,
+PARTITION Partf,
+PARTITION PartG);
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (a) (PARTITION parta ENGINE = InnoDB, PARTITION partB ENGINE = InnoDB, PARTITION Partc ENGINE = InnoDB, PARTITION PartD ENGINE = InnoDB, PARTITION partE ENGINE = InnoDB, PARTITION Partf ENGINE = InnoDB, PARTITION PartG ENGINE = InnoDB) */
+ALTER TABLE TableA COALESCE PARTITION 4;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (a) (PARTITION parta ENGINE = InnoDB, PARTITION partB ENGINE = InnoDB, PARTITION Partc ENGINE = InnoDB) */
+# Test of REORGANIZE PARTITIONS
+# Should not work on HASH/KEY
+ALTER TABLE TableA REORGANIZE PARTITION parta,partB,Partc INTO
+(PARTITION PARTA ,
+PARTITION partc );
+ERROR HY000: REORGANISE PARTITION can only be used to reorganise partitions not to change their numbers
+ALTER TABLE TableA REORGANIZE PARTITION parta,Partc INTO
+(PARTITION partB ,
+PARTITION parta );
+ERROR HY000: When reorganising a set of partitions they must be in consecutive order
+ALTER TABLE TableA REORGANIZE PARTITION parta,partB INTO
+(PARTITION partB COMMENT="Previusly named parta",
+PARTITION parta COMMENT="Previusly named partB");
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (a) (PARTITION partB COMMENT = 'Previusly named parta' ENGINE = InnoDB, PARTITION parta COMMENT = 'Previusly named partB' ENGINE = InnoDB, PARTITION Partc ENGINE = InnoDB) */
+# Test of RENAME TABLE
+RENAME TABLE TableA to TableB;
+SELECT * FROM TableB;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+RENAME TABLE TableB to TableA;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Checking name comparision Upper vs Lower case
+# Error if lower_case_table_names != 0
+# lower_case_table_names: 0
+CREATE TABLE tablea (a INT)
+ENGINE = 'InnoDB'
+PARTITION BY HASH (a)
+(PARTITION parta ,
+PARTITION partB ,
+PARTITION Partc ,
+PARTITION PartD );
+INSERT INTO tablea VALUES (1), (2), (7), (8), (9), (10);
+SHOW TABLES;
+Tables_in_MySQL_Test_DB
+TableA
+tablea
+RENAME TABLE TableA to tableA;
+SELECT * FROM tablea;
+a
+1
+10
+2
+7
+8
+9
+SELECT * FROM tableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+RENAME TABLE tableA to TableA;
+SHOW CREATE TABLE tablea;
+Table Create Table
+tablea CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (a) (PARTITION parta ENGINE = InnoDB, PARTITION partB ENGINE = InnoDB, PARTITION Partc ENGINE = InnoDB, PARTITION PartD ENGINE = InnoDB) */
+DROP TABLE tablea;
+# Test of REMOVE PARTITIONING
+ALTER TABLE TableA REMOVE PARTITIONING;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1
+# Cleaning up after HASH PARTITIONING test
+DROP TABLE TableA;
+# 3.0 RANGE partitioning mgm
+# Creating RANGE partitioned table
+CREATE TABLE TableA (a INT)
+ENGINE = 'InnoDB'
+PARTITION BY RANGE (a)
+(PARTITION parta VALUES LESS THAN (4) ,
+PARTITION partB VALUES LESS THAN (7) ,
+PARTITION Partc VALUES LESS THAN (10) ,
+PARTITION PartD VALUES LESS THAN (13) );
+INSERT INTO TableA VALUES (1), (2), (7), (8), (9), (10);
+INSERT INTO TableA VALUES (3), (4), (5), (6), (11), (12);
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Test of ADD/DROP PARTITIONS
+# expecting duplicate partition name
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partA VALUES LESS THAN (MAXVALUE));
+ERROR HY000: Duplicate partition name parta
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partE VALUES LESS THAN (16),
+PARTITION Partf VALUES LESS THAN (19),
+PARTITION PartG VALUES LESS THAN (22));
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (a) (PARTITION parta VALUES LESS THAN (4) ENGINE = InnoDB, PARTITION partB VALUES LESS THAN (7) ENGINE = InnoDB, PARTITION Partc VALUES LESS THAN (10) ENGINE = InnoDB, PARTITION PartD VALUES LESS THAN (13) ENGINE = InnoDB, PARTITION partE VALUES LESS THAN (16) ENGINE = InnoDB, PARTITION Partf VALUES LESS THAN (19) ENGINE = InnoDB, PARTITION PartG VALUES LESS THAN (22) ENGINE = InnoDB) */
+ALTER TABLE TableA DROP PARTITION partE, PartG;
+ALTER TABLE TableA DROP PARTITION Partf;
+ALTER TABLE TableA ADD PARTITION
+(PARTITION PartE VALUES LESS THAN (MAXVALUE));
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (a) (PARTITION parta VALUES LESS THAN (4) ENGINE = InnoDB, PARTITION partB VALUES LESS THAN (7) ENGINE = InnoDB, PARTITION Partc VALUES LESS THAN (10) ENGINE = InnoDB, PARTITION PartD VALUES LESS THAN (13) ENGINE = InnoDB, PARTITION PartE VALUES LESS THAN MAXVALUE ENGINE = InnoDB) */
+# Test of REORGANIZE PARTITIONS
+# Error since it must reorganize a consecutive range
+ALTER TABLE TableA REORGANIZE PARTITION parta,Partc INTO
+(PARTITION partB VALUES LESS THAN (3) ,
+PARTITION parta VALUES LESS THAN (11) );
+ERROR HY000: When reorganising a set of partitions they must be in consecutive order
+ALTER TABLE TableA REORGANIZE PARTITION partB,Partc,PartD,PartE INTO
+(PARTITION partD VALUES LESS THAN (8)
+COMMENT="Previously partB and partly Partc",
+PARTITION partB VALUES LESS THAN (11)
+COMMENT="Previously partly Partc and partly PartD",
+PARTITION partC VALUES LESS THAN (MAXVALUE)
+COMMENT="Previously partly PartD");
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (a) (PARTITION parta VALUES LESS THAN (4) ENGINE = InnoDB, PARTITION partD VALUES LESS THAN (8) COMMENT = 'Previously partB and partly Partc' ENGINE = InnoDB, PARTITION partB VALUES LESS THAN (11) COMMENT = 'Previously partly Partc and partly PartD' ENGINE = InnoDB, PARTITION partC VALUES LESS THAN MAXVALUE COMMENT = 'Previously partly PartD' ENGINE = InnoDB) */
+# Test of RENAME TABLE
+RENAME TABLE TableA to TableB;
+SELECT * FROM TableB;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+RENAME TABLE TableB to TableA;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Checking name comparision Upper vs Lower case
+# Error if lower_case_table_names != 0
+# lower_case_table_names: 0
+CREATE TABLE tablea (a INT)
+ENGINE = 'InnoDB'
+PARTITION BY RANGE (a)
+(PARTITION parta VALUES LESS THAN (4) ,
+PARTITION partB VALUES LESS THAN (7) ,
+PARTITION Partc VALUES LESS THAN (10) ,
+PARTITION PartD VALUES LESS THAN (13) );
+INSERT INTO tablea VALUES (1), (2), (7), (8), (9), (10);
+SHOW TABLES;
+Tables_in_MySQL_Test_DB
+TableA
+tablea
+RENAME TABLE TableA to tableA;
+SELECT * FROM tablea;
+a
+1
+10
+2
+7
+8
+9
+SELECT * FROM tableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+RENAME TABLE tableA to TableA;
+SHOW CREATE TABLE tablea;
+Table Create Table
+tablea CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (a) (PARTITION parta VALUES LESS THAN (4) ENGINE = InnoDB, PARTITION partB VALUES LESS THAN (7) ENGINE = InnoDB, PARTITION Partc VALUES LESS THAN (10) ENGINE = InnoDB, PARTITION PartD VALUES LESS THAN (13) ENGINE = InnoDB) */
+DROP TABLE tablea;
+# Test of REMOVE PARTITIONING
+ALTER TABLE TableA REMOVE PARTITIONING;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1
+# Cleaning up after RANGE PARTITIONING test
+DROP TABLE TableA;
+# 4.0 LIST partitioning mgm
+# Creating LIST partitioned table
+CREATE TABLE TableA (a INT)
+ENGINE = 'InnoDB'
+PARTITION BY LIST (a)
+(PARTITION parta VALUES IN (1,8,9) ,
+PARTITION partB VALUES IN (2,10,11) ,
+PARTITION Partc VALUES IN (3,4,7) ,
+PARTITION PartD VALUES IN (5,6,12) );
+INSERT INTO TableA VALUES (1), (2), (7), (8), (9), (10);
+INSERT INTO TableA VALUES (3), (4), (5), (6), (11), (12);
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Test of ADD/DROP PARTITIONS
+# expecting duplicate partition name
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partA VALUES IN (0));
+ERROR HY000: Duplicate partition name parta
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partE VALUES IN (16),
+PARTITION Partf VALUES IN (19),
+PARTITION PartG VALUES IN (22));
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (a) (PARTITION parta VALUES IN (1,8,9) ENGINE = InnoDB, PARTITION partB VALUES IN (2,10,11) ENGINE = InnoDB, PARTITION Partc VALUES IN (3,4,7) ENGINE = InnoDB, PARTITION PartD VALUES IN (5,6,12) ENGINE = InnoDB, PARTITION partE VALUES IN (16) ENGINE = InnoDB, PARTITION Partf VALUES IN (19) ENGINE = InnoDB, PARTITION PartG VALUES IN (22) ENGINE = InnoDB) */
+ALTER TABLE TableA DROP PARTITION partE, PartG;
+ALTER TABLE TableA DROP PARTITION Partf;
+ALTER TABLE TableA ADD PARTITION
+(PARTITION PartE VALUES IN (13));
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (a) (PARTITION parta VALUES IN (1,8,9) ENGINE = InnoDB, PARTITION partB VALUES IN (2,10,11) ENGINE = InnoDB, PARTITION Partc VALUES IN (3,4,7) ENGINE = InnoDB, PARTITION PartD VALUES IN (5,6,12) ENGINE = InnoDB, PARTITION PartE VALUES IN (13) ENGINE = InnoDB) */
+# Test of REORGANIZE PARTITIONS
+ALTER TABLE TableA REORGANIZE PARTITION parta,Partc INTO
+(PARTITION Partc VALUES IN (1,7)
+COMMENT = "Mix 1 of old parta and Partc",
+PARTITION partF VALUES IN (3,9)
+COMMENT = "Mix 2 of old parta and Partc",
+PARTITION parta VALUES IN (4,8)
+COMMENT = "Mix 3 of old parta and Partc");
+ERROR HY000: When reorganising a set of partitions they must be in consecutive order
+ALTER TABLE TableA REORGANIZE PARTITION parta,partB,Partc INTO
+(PARTITION Partc VALUES IN (1,7)
+COMMENT = "Mix 1 of old parta and Partc",
+PARTITION parta VALUES IN (3,9)
+COMMENT = "Mix 2 of old parta and Partc",
+PARTITION partB VALUES IN (4,8)
+COMMENT = "Mix 3 of old parta and Partc");
+SELECT * FROM TableA;
+a
+1
+12
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (a) (PARTITION Partc VALUES IN (1,7) COMMENT = 'Mix 1 of old parta and Partc' ENGINE = InnoDB, PARTITION parta VALUES IN (3,9) COMMENT = 'Mix 2 of old parta and Partc' ENGINE = InnoDB, PARTITION partB VALUES IN (4,8) COMMENT = 'Mix 3 of old parta and Partc' ENGINE = InnoDB, PARTITION PartD VALUES IN (5,6,12) ENGINE = InnoDB, PARTITION PartE VALUES IN (13) ENGINE = InnoDB) */
+# Test of RENAME TABLE
+RENAME TABLE TableA to TableB;
+SELECT * FROM TableB;
+a
+1
+12
+3
+4
+5
+6
+7
+8
+9
+RENAME TABLE TableB to TableA;
+SELECT * FROM TableA;
+a
+1
+12
+3
+4
+5
+6
+7
+8
+9
+# Checking name comparision Upper vs Lower case
+# Error if lower_case_table_names != 0
+# lower_case_table_names: 0
+CREATE TABLE tablea (a INT)
+ENGINE = 'InnoDB'
+PARTITION BY LIST (a)
+(PARTITION parta VALUES IN (1,8,9) ,
+PARTITION partB VALUES IN (2,10,11) ,
+PARTITION Partc VALUES IN (3,4,7) ,
+PARTITION PartD VALUES IN (5,6,12) );
+INSERT INTO tablea VALUES (1), (2), (7), (8), (9), (10);
+SHOW TABLES;
+Tables_in_MySQL_Test_DB
+TableA
+tablea
+RENAME TABLE TableA to tableA;
+SELECT * FROM tablea;
+a
+1
+10
+2
+7
+8
+9
+SELECT * FROM tableA;
+a
+1
+12
+3
+4
+5
+6
+7
+8
+9
+RENAME TABLE tableA to TableA;
+SHOW CREATE TABLE tablea;
+Table Create Table
+tablea CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (a) (PARTITION parta VALUES IN (1,8,9) ENGINE = InnoDB, PARTITION partB VALUES IN (2,10,11) ENGINE = InnoDB, PARTITION Partc VALUES IN (3,4,7) ENGINE = InnoDB, PARTITION PartD VALUES IN (5,6,12) ENGINE = InnoDB) */
+DROP TABLE tablea;
+# Test of REMOVE PARTITIONING
+ALTER TABLE TableA REMOVE PARTITIONING;
+SELECT * FROM TableA;
+a
+1
+12
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1
+# Cleaning up after LIST PARTITIONING test
+DROP TABLE TableA;
+# Cleaning up before exit
+USE test;
+DROP DATABASE MySQL_Test_DB;
diff --git a/mysql-test/suite/parts/r/partition_mgm_lc0_memory.result b/mysql-test/suite/parts/r/partition_mgm_lc0_memory.result
new file mode 100644
index 00000000000..092deae1796
--- /dev/null
+++ b/mysql-test/suite/parts/r/partition_mgm_lc0_memory.result
@@ -0,0 +1,829 @@
+# Creating database MySQL_TEST_DB
+CREATE DATABASE MySQL_Test_DB;
+USE MySQL_Test_DB;
+# 1.0 KEY partitioning mgm
+# Creating KEY partitioned table
+CREATE TABLE TableA (a INT)
+ENGINE = 'Memory'
+PARTITION BY KEY (a)
+(PARTITION parta ,
+PARTITION partB ,
+PARTITION Partc ,
+PARTITION PartD );
+INSERT INTO TableA VALUES (1), (2), (7), (8), (9), (10);
+INSERT INTO TableA VALUES (3), (4), (5), (6), (11), (12);
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Test of ADD/COALESCE PARTITIONS
+# expecting duplicate partition name
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partA,
+PARTITION Parta,
+PARTITION PartA);
+ERROR HY000: Duplicate partition name parta
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partE,
+PARTITION Partf,
+PARTITION PartG);
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MEMORY DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION parta ENGINE = MEMORY, PARTITION partB ENGINE = MEMORY, PARTITION Partc ENGINE = MEMORY, PARTITION PartD ENGINE = MEMORY, PARTITION partE ENGINE = MEMORY, PARTITION Partf ENGINE = MEMORY, PARTITION PartG ENGINE = MEMORY) */
+ALTER TABLE TableA COALESCE PARTITION 4;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MEMORY DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION parta ENGINE = MEMORY, PARTITION partB ENGINE = MEMORY, PARTITION Partc ENGINE = MEMORY) */
+# Test of REORGANIZE PARTITIONS
+# Should not work on HASH/KEY
+ALTER TABLE TableA REORGANIZE PARTITION parta,partB,Partc INTO
+(PARTITION PARTA ,
+PARTITION partc );
+ERROR HY000: REORGANISE PARTITION can only be used to reorganise partitions not to change their numbers
+ALTER TABLE TableA REORGANIZE PARTITION parta,Partc INTO
+(PARTITION partB ,
+PARTITION parta );
+ERROR HY000: When reorganising a set of partitions they must be in consecutive order
+ALTER TABLE TableA REORGANIZE PARTITION parta,partB INTO
+(PARTITION partB COMMENT="Previusly named parta",
+PARTITION parta COMMENT="Previusly named partB");
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MEMORY DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION partB COMMENT = 'Previusly named parta' ENGINE = MEMORY, PARTITION parta COMMENT = 'Previusly named partB' ENGINE = MEMORY, PARTITION Partc ENGINE = MEMORY) */
+# Test of RENAME TABLE
+RENAME TABLE TableA to TableB;
+SELECT * FROM TableB;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+RENAME TABLE TableB to TableA;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Checking name comparision Upper vs Lower case
+# Error if lower_case_table_names != 0
+# lower_case_table_names: 0
+CREATE TABLE tablea (a INT)
+ENGINE = 'Memory'
+PARTITION BY KEY (a)
+(PARTITION parta ,
+PARTITION partB ,
+PARTITION Partc ,
+PARTITION PartD );
+INSERT INTO tablea VALUES (1), (2), (7), (8), (9), (10);
+SHOW TABLES;
+Tables_in_MySQL_Test_DB
+TableA
+tablea
+RENAME TABLE TableA to tableA;
+SELECT * FROM tablea;
+a
+1
+10
+2
+7
+8
+9
+SELECT * FROM tableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+RENAME TABLE tableA to TableA;
+SHOW CREATE TABLE tablea;
+Table Create Table
+tablea CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MEMORY DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION parta ENGINE = MEMORY, PARTITION partB ENGINE = MEMORY, PARTITION Partc ENGINE = MEMORY, PARTITION PartD ENGINE = MEMORY) */
+DROP TABLE tablea;
+# Test of REMOVE PARTITIONING
+ALTER TABLE TableA REMOVE PARTITIONING;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MEMORY DEFAULT CHARSET=latin1
+# Cleaning up after KEY PARTITIONING test
+DROP TABLE TableA;
+# 2.0 HASH partitioning mgm
+# expecting duplicate partition name
+CREATE TABLE TableA (a INT)
+ENGINE = 'Memory'
+PARTITION BY HASH (a)
+(PARTITION parta ,
+PARTITION partA ,
+PARTITION Parta ,
+PARTITION PartA );
+ERROR HY000: Duplicate partition name parta
+# Creating Hash partitioned table
+CREATE TABLE TableA (a INT)
+ENGINE = 'Memory'
+PARTITION BY HASH (a)
+(PARTITION parta ,
+PARTITION partB ,
+PARTITION Partc ,
+PARTITION PartD );
+INSERT INTO TableA VALUES (1), (2), (7), (8), (9), (10);
+INSERT INTO TableA VALUES (3), (4), (5), (6), (11), (12);
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Test of ADD/COALESCE PARTITIONS
+# expecting duplicate partition name
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partA,
+PARTITION Parta,
+PARTITION PartA);
+ERROR HY000: Duplicate partition name parta
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partE,
+PARTITION Partf,
+PARTITION PartG);
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MEMORY DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (a) (PARTITION parta ENGINE = MEMORY, PARTITION partB ENGINE = MEMORY, PARTITION Partc ENGINE = MEMORY, PARTITION PartD ENGINE = MEMORY, PARTITION partE ENGINE = MEMORY, PARTITION Partf ENGINE = MEMORY, PARTITION PartG ENGINE = MEMORY) */
+ALTER TABLE TableA COALESCE PARTITION 4;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MEMORY DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (a) (PARTITION parta ENGINE = MEMORY, PARTITION partB ENGINE = MEMORY, PARTITION Partc ENGINE = MEMORY) */
+# Test of REORGANIZE PARTITIONS
+# Should not work on HASH/KEY
+ALTER TABLE TableA REORGANIZE PARTITION parta,partB,Partc INTO
+(PARTITION PARTA ,
+PARTITION partc );
+ERROR HY000: REORGANISE PARTITION can only be used to reorganise partitions not to change their numbers
+ALTER TABLE TableA REORGANIZE PARTITION parta,Partc INTO
+(PARTITION partB ,
+PARTITION parta );
+ERROR HY000: When reorganising a set of partitions they must be in consecutive order
+ALTER TABLE TableA REORGANIZE PARTITION parta,partB INTO
+(PARTITION partB COMMENT="Previusly named parta",
+PARTITION parta COMMENT="Previusly named partB");
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MEMORY DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (a) (PARTITION partB COMMENT = 'Previusly named parta' ENGINE = MEMORY, PARTITION parta COMMENT = 'Previusly named partB' ENGINE = MEMORY, PARTITION Partc ENGINE = MEMORY) */
+# Test of RENAME TABLE
+RENAME TABLE TableA to TableB;
+SELECT * FROM TableB;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+RENAME TABLE TableB to TableA;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Checking name comparision Upper vs Lower case
+# Error if lower_case_table_names != 0
+# lower_case_table_names: 0
+CREATE TABLE tablea (a INT)
+ENGINE = 'Memory'
+PARTITION BY HASH (a)
+(PARTITION parta ,
+PARTITION partB ,
+PARTITION Partc ,
+PARTITION PartD );
+INSERT INTO tablea VALUES (1), (2), (7), (8), (9), (10);
+SHOW TABLES;
+Tables_in_MySQL_Test_DB
+TableA
+tablea
+RENAME TABLE TableA to tableA;
+SELECT * FROM tablea;
+a
+1
+10
+2
+7
+8
+9
+SELECT * FROM tableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+RENAME TABLE tableA to TableA;
+SHOW CREATE TABLE tablea;
+Table Create Table
+tablea CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MEMORY DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (a) (PARTITION parta ENGINE = MEMORY, PARTITION partB ENGINE = MEMORY, PARTITION Partc ENGINE = MEMORY, PARTITION PartD ENGINE = MEMORY) */
+DROP TABLE tablea;
+# Test of REMOVE PARTITIONING
+ALTER TABLE TableA REMOVE PARTITIONING;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MEMORY DEFAULT CHARSET=latin1
+# Cleaning up after HASH PARTITIONING test
+DROP TABLE TableA;
+# 3.0 RANGE partitioning mgm
+# Creating RANGE partitioned table
+CREATE TABLE TableA (a INT)
+ENGINE = 'Memory'
+PARTITION BY RANGE (a)
+(PARTITION parta VALUES LESS THAN (4) ,
+PARTITION partB VALUES LESS THAN (7) ,
+PARTITION Partc VALUES LESS THAN (10) ,
+PARTITION PartD VALUES LESS THAN (13) );
+INSERT INTO TableA VALUES (1), (2), (7), (8), (9), (10);
+INSERT INTO TableA VALUES (3), (4), (5), (6), (11), (12);
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Test of ADD/DROP PARTITIONS
+# expecting duplicate partition name
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partA VALUES LESS THAN (MAXVALUE));
+ERROR HY000: Duplicate partition name parta
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partE VALUES LESS THAN (16),
+PARTITION Partf VALUES LESS THAN (19),
+PARTITION PartG VALUES LESS THAN (22));
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MEMORY DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (a) (PARTITION parta VALUES LESS THAN (4) ENGINE = MEMORY, PARTITION partB VALUES LESS THAN (7) ENGINE = MEMORY, PARTITION Partc VALUES LESS THAN (10) ENGINE = MEMORY, PARTITION PartD VALUES LESS THAN (13) ENGINE = MEMORY, PARTITION partE VALUES LESS THAN (16) ENGINE = MEMORY, PARTITION Partf VALUES LESS THAN (19) ENGINE = MEMORY, PARTITION PartG VALUES LESS THAN (22) ENGINE = MEMORY) */
+ALTER TABLE TableA DROP PARTITION partE, PartG;
+ALTER TABLE TableA DROP PARTITION Partf;
+ALTER TABLE TableA ADD PARTITION
+(PARTITION PartE VALUES LESS THAN (MAXVALUE));
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MEMORY DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (a) (PARTITION parta VALUES LESS THAN (4) ENGINE = MEMORY, PARTITION partB VALUES LESS THAN (7) ENGINE = MEMORY, PARTITION Partc VALUES LESS THAN (10) ENGINE = MEMORY, PARTITION PartD VALUES LESS THAN (13) ENGINE = MEMORY, PARTITION PartE VALUES LESS THAN MAXVALUE ENGINE = MEMORY) */
+# Test of REORGANIZE PARTITIONS
+# Error since it must reorganize a consecutive range
+ALTER TABLE TableA REORGANIZE PARTITION parta,Partc INTO
+(PARTITION partB VALUES LESS THAN (3) ,
+PARTITION parta VALUES LESS THAN (11) );
+ERROR HY000: When reorganising a set of partitions they must be in consecutive order
+ALTER TABLE TableA REORGANIZE PARTITION partB,Partc,PartD,PartE INTO
+(PARTITION partD VALUES LESS THAN (8)
+COMMENT="Previously partB and partly Partc",
+PARTITION partB VALUES LESS THAN (11)
+COMMENT="Previously partly Partc and partly PartD",
+PARTITION partC VALUES LESS THAN (MAXVALUE)
+COMMENT="Previously partly PartD");
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MEMORY DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (a) (PARTITION parta VALUES LESS THAN (4) ENGINE = MEMORY, PARTITION partD VALUES LESS THAN (8) COMMENT = 'Previously partB and partly Partc' ENGINE = MEMORY, PARTITION partB VALUES LESS THAN (11) COMMENT = 'Previously partly Partc and partly PartD' ENGINE = MEMORY, PARTITION partC VALUES LESS THAN MAXVALUE COMMENT = 'Previously partly PartD' ENGINE = MEMORY) */
+# Test of RENAME TABLE
+RENAME TABLE TableA to TableB;
+SELECT * FROM TableB;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+RENAME TABLE TableB to TableA;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Checking name comparision Upper vs Lower case
+# Error if lower_case_table_names != 0
+# lower_case_table_names: 0
+CREATE TABLE tablea (a INT)
+ENGINE = 'Memory'
+PARTITION BY RANGE (a)
+(PARTITION parta VALUES LESS THAN (4) ,
+PARTITION partB VALUES LESS THAN (7) ,
+PARTITION Partc VALUES LESS THAN (10) ,
+PARTITION PartD VALUES LESS THAN (13) );
+INSERT INTO tablea VALUES (1), (2), (7), (8), (9), (10);
+SHOW TABLES;
+Tables_in_MySQL_Test_DB
+TableA
+tablea
+RENAME TABLE TableA to tableA;
+SELECT * FROM tablea;
+a
+1
+10
+2
+7
+8
+9
+SELECT * FROM tableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+RENAME TABLE tableA to TableA;
+SHOW CREATE TABLE tablea;
+Table Create Table
+tablea CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MEMORY DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (a) (PARTITION parta VALUES LESS THAN (4) ENGINE = MEMORY, PARTITION partB VALUES LESS THAN (7) ENGINE = MEMORY, PARTITION Partc VALUES LESS THAN (10) ENGINE = MEMORY, PARTITION PartD VALUES LESS THAN (13) ENGINE = MEMORY) */
+DROP TABLE tablea;
+# Test of REMOVE PARTITIONING
+ALTER TABLE TableA REMOVE PARTITIONING;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MEMORY DEFAULT CHARSET=latin1
+# Cleaning up after RANGE PARTITIONING test
+DROP TABLE TableA;
+# 4.0 LIST partitioning mgm
+# Creating LIST partitioned table
+CREATE TABLE TableA (a INT)
+ENGINE = 'Memory'
+PARTITION BY LIST (a)
+(PARTITION parta VALUES IN (1,8,9) ,
+PARTITION partB VALUES IN (2,10,11) ,
+PARTITION Partc VALUES IN (3,4,7) ,
+PARTITION PartD VALUES IN (5,6,12) );
+INSERT INTO TableA VALUES (1), (2), (7), (8), (9), (10);
+INSERT INTO TableA VALUES (3), (4), (5), (6), (11), (12);
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Test of ADD/DROP PARTITIONS
+# expecting duplicate partition name
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partA VALUES IN (0));
+ERROR HY000: Duplicate partition name parta
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partE VALUES IN (16),
+PARTITION Partf VALUES IN (19),
+PARTITION PartG VALUES IN (22));
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MEMORY DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (a) (PARTITION parta VALUES IN (1,8,9) ENGINE = MEMORY, PARTITION partB VALUES IN (2,10,11) ENGINE = MEMORY, PARTITION Partc VALUES IN (3,4,7) ENGINE = MEMORY, PARTITION PartD VALUES IN (5,6,12) ENGINE = MEMORY, PARTITION partE VALUES IN (16) ENGINE = MEMORY, PARTITION Partf VALUES IN (19) ENGINE = MEMORY, PARTITION PartG VALUES IN (22) ENGINE = MEMORY) */
+ALTER TABLE TableA DROP PARTITION partE, PartG;
+ALTER TABLE TableA DROP PARTITION Partf;
+ALTER TABLE TableA ADD PARTITION
+(PARTITION PartE VALUES IN (13));
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MEMORY DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (a) (PARTITION parta VALUES IN (1,8,9) ENGINE = MEMORY, PARTITION partB VALUES IN (2,10,11) ENGINE = MEMORY, PARTITION Partc VALUES IN (3,4,7) ENGINE = MEMORY, PARTITION PartD VALUES IN (5,6,12) ENGINE = MEMORY, PARTITION PartE VALUES IN (13) ENGINE = MEMORY) */
+# Test of REORGANIZE PARTITIONS
+ALTER TABLE TableA REORGANIZE PARTITION parta,Partc INTO
+(PARTITION Partc VALUES IN (1,7)
+COMMENT = "Mix 1 of old parta and Partc",
+PARTITION partF VALUES IN (3,9)
+COMMENT = "Mix 2 of old parta and Partc",
+PARTITION parta VALUES IN (4,8)
+COMMENT = "Mix 3 of old parta and Partc");
+ERROR HY000: When reorganising a set of partitions they must be in consecutive order
+ALTER TABLE TableA REORGANIZE PARTITION parta,partB,Partc INTO
+(PARTITION Partc VALUES IN (1,7)
+COMMENT = "Mix 1 of old parta and Partc",
+PARTITION parta VALUES IN (3,9)
+COMMENT = "Mix 2 of old parta and Partc",
+PARTITION partB VALUES IN (4,8)
+COMMENT = "Mix 3 of old parta and Partc");
+SELECT * FROM TableA;
+a
+1
+12
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MEMORY DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (a) (PARTITION Partc VALUES IN (1,7) COMMENT = 'Mix 1 of old parta and Partc' ENGINE = MEMORY, PARTITION parta VALUES IN (3,9) COMMENT = 'Mix 2 of old parta and Partc' ENGINE = MEMORY, PARTITION partB VALUES IN (4,8) COMMENT = 'Mix 3 of old parta and Partc' ENGINE = MEMORY, PARTITION PartD VALUES IN (5,6,12) ENGINE = MEMORY, PARTITION PartE VALUES IN (13) ENGINE = MEMORY) */
+# Test of RENAME TABLE
+RENAME TABLE TableA to TableB;
+SELECT * FROM TableB;
+a
+1
+12
+3
+4
+5
+6
+7
+8
+9
+RENAME TABLE TableB to TableA;
+SELECT * FROM TableA;
+a
+1
+12
+3
+4
+5
+6
+7
+8
+9
+# Checking name comparision Upper vs Lower case
+# Error if lower_case_table_names != 0
+# lower_case_table_names: 0
+CREATE TABLE tablea (a INT)
+ENGINE = 'Memory'
+PARTITION BY LIST (a)
+(PARTITION parta VALUES IN (1,8,9) ,
+PARTITION partB VALUES IN (2,10,11) ,
+PARTITION Partc VALUES IN (3,4,7) ,
+PARTITION PartD VALUES IN (5,6,12) );
+INSERT INTO tablea VALUES (1), (2), (7), (8), (9), (10);
+SHOW TABLES;
+Tables_in_MySQL_Test_DB
+TableA
+tablea
+RENAME TABLE TableA to tableA;
+SELECT * FROM tablea;
+a
+1
+10
+2
+7
+8
+9
+SELECT * FROM tableA;
+a
+1
+12
+3
+4
+5
+6
+7
+8
+9
+RENAME TABLE tableA to TableA;
+SHOW CREATE TABLE tablea;
+Table Create Table
+tablea CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MEMORY DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (a) (PARTITION parta VALUES IN (1,8,9) ENGINE = MEMORY, PARTITION partB VALUES IN (2,10,11) ENGINE = MEMORY, PARTITION Partc VALUES IN (3,4,7) ENGINE = MEMORY, PARTITION PartD VALUES IN (5,6,12) ENGINE = MEMORY) */
+DROP TABLE tablea;
+# Test of REMOVE PARTITIONING
+ALTER TABLE TableA REMOVE PARTITIONING;
+SELECT * FROM TableA;
+a
+1
+12
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MEMORY DEFAULT CHARSET=latin1
+# Cleaning up after LIST PARTITIONING test
+DROP TABLE TableA;
+# Cleaning up before exit
+USE test;
+DROP DATABASE MySQL_Test_DB;
diff --git a/mysql-test/suite/parts/r/partition_mgm_lc0_myisam.result b/mysql-test/suite/parts/r/partition_mgm_lc0_myisam.result
new file mode 100644
index 00000000000..046fb40ab35
--- /dev/null
+++ b/mysql-test/suite/parts/r/partition_mgm_lc0_myisam.result
@@ -0,0 +1,829 @@
+# Creating database MySQL_TEST_DB
+CREATE DATABASE MySQL_Test_DB;
+USE MySQL_Test_DB;
+# 1.0 KEY partitioning mgm
+# Creating KEY partitioned table
+CREATE TABLE TableA (a INT)
+ENGINE = 'MyISAM'
+PARTITION BY KEY (a)
+(PARTITION parta ,
+PARTITION partB ,
+PARTITION Partc ,
+PARTITION PartD );
+INSERT INTO TableA VALUES (1), (2), (7), (8), (9), (10);
+INSERT INTO TableA VALUES (3), (4), (5), (6), (11), (12);
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Test of ADD/COALESCE PARTITIONS
+# expecting duplicate partition name
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partA,
+PARTITION Parta,
+PARTITION PartA);
+ERROR HY000: Duplicate partition name parta
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partE,
+PARTITION Partf,
+PARTITION PartG);
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION parta ENGINE = MyISAM, PARTITION partB ENGINE = MyISAM, PARTITION Partc ENGINE = MyISAM, PARTITION PartD ENGINE = MyISAM, PARTITION partE ENGINE = MyISAM, PARTITION Partf ENGINE = MyISAM, PARTITION PartG ENGINE = MyISAM) */
+ALTER TABLE TableA COALESCE PARTITION 4;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION parta ENGINE = MyISAM, PARTITION partB ENGINE = MyISAM, PARTITION Partc ENGINE = MyISAM) */
+# Test of REORGANIZE PARTITIONS
+# Should not work on HASH/KEY
+ALTER TABLE TableA REORGANIZE PARTITION parta,partB,Partc INTO
+(PARTITION PARTA ,
+PARTITION partc );
+ERROR HY000: REORGANISE PARTITION can only be used to reorganise partitions not to change their numbers
+ALTER TABLE TableA REORGANIZE PARTITION parta,Partc INTO
+(PARTITION partB ,
+PARTITION parta );
+ERROR HY000: When reorganising a set of partitions they must be in consecutive order
+ALTER TABLE TableA REORGANIZE PARTITION parta,partB INTO
+(PARTITION partB COMMENT="Previusly named parta",
+PARTITION parta COMMENT="Previusly named partB");
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION partB COMMENT = 'Previusly named parta' ENGINE = MyISAM, PARTITION parta COMMENT = 'Previusly named partB' ENGINE = MyISAM, PARTITION Partc ENGINE = MyISAM) */
+# Test of RENAME TABLE
+RENAME TABLE TableA to TableB;
+SELECT * FROM TableB;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+RENAME TABLE TableB to TableA;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Checking name comparision Upper vs Lower case
+# Error if lower_case_table_names != 0
+# lower_case_table_names: 0
+CREATE TABLE tablea (a INT)
+ENGINE = 'MyISAM'
+PARTITION BY KEY (a)
+(PARTITION parta ,
+PARTITION partB ,
+PARTITION Partc ,
+PARTITION PartD );
+INSERT INTO tablea VALUES (1), (2), (7), (8), (9), (10);
+SHOW TABLES;
+Tables_in_MySQL_Test_DB
+TableA
+tablea
+RENAME TABLE TableA to tableA;
+SELECT * FROM tablea;
+a
+1
+10
+2
+7
+8
+9
+SELECT * FROM tableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+RENAME TABLE tableA to TableA;
+SHOW CREATE TABLE tablea;
+Table Create Table
+tablea CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION parta ENGINE = MyISAM, PARTITION partB ENGINE = MyISAM, PARTITION Partc ENGINE = MyISAM, PARTITION PartD ENGINE = MyISAM) */
+DROP TABLE tablea;
+# Test of REMOVE PARTITIONING
+ALTER TABLE TableA REMOVE PARTITIONING;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+# Cleaning up after KEY PARTITIONING test
+DROP TABLE TableA;
+# 2.0 HASH partitioning mgm
+# expecting duplicate partition name
+CREATE TABLE TableA (a INT)
+ENGINE = 'MyISAM'
+PARTITION BY HASH (a)
+(PARTITION parta ,
+PARTITION partA ,
+PARTITION Parta ,
+PARTITION PartA );
+ERROR HY000: Duplicate partition name parta
+# Creating Hash partitioned table
+CREATE TABLE TableA (a INT)
+ENGINE = 'MyISAM'
+PARTITION BY HASH (a)
+(PARTITION parta ,
+PARTITION partB ,
+PARTITION Partc ,
+PARTITION PartD );
+INSERT INTO TableA VALUES (1), (2), (7), (8), (9), (10);
+INSERT INTO TableA VALUES (3), (4), (5), (6), (11), (12);
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Test of ADD/COALESCE PARTITIONS
+# expecting duplicate partition name
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partA,
+PARTITION Parta,
+PARTITION PartA);
+ERROR HY000: Duplicate partition name parta
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partE,
+PARTITION Partf,
+PARTITION PartG);
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (a) (PARTITION parta ENGINE = MyISAM, PARTITION partB ENGINE = MyISAM, PARTITION Partc ENGINE = MyISAM, PARTITION PartD ENGINE = MyISAM, PARTITION partE ENGINE = MyISAM, PARTITION Partf ENGINE = MyISAM, PARTITION PartG ENGINE = MyISAM) */
+ALTER TABLE TableA COALESCE PARTITION 4;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (a) (PARTITION parta ENGINE = MyISAM, PARTITION partB ENGINE = MyISAM, PARTITION Partc ENGINE = MyISAM) */
+# Test of REORGANIZE PARTITIONS
+# Should not work on HASH/KEY
+ALTER TABLE TableA REORGANIZE PARTITION parta,partB,Partc INTO
+(PARTITION PARTA ,
+PARTITION partc );
+ERROR HY000: REORGANISE PARTITION can only be used to reorganise partitions not to change their numbers
+ALTER TABLE TableA REORGANIZE PARTITION parta,Partc INTO
+(PARTITION partB ,
+PARTITION parta );
+ERROR HY000: When reorganising a set of partitions they must be in consecutive order
+ALTER TABLE TableA REORGANIZE PARTITION parta,partB INTO
+(PARTITION partB COMMENT="Previusly named parta",
+PARTITION parta COMMENT="Previusly named partB");
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (a) (PARTITION partB COMMENT = 'Previusly named parta' ENGINE = MyISAM, PARTITION parta COMMENT = 'Previusly named partB' ENGINE = MyISAM, PARTITION Partc ENGINE = MyISAM) */
+# Test of RENAME TABLE
+RENAME TABLE TableA to TableB;
+SELECT * FROM TableB;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+RENAME TABLE TableB to TableA;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Checking name comparision Upper vs Lower case
+# Error if lower_case_table_names != 0
+# lower_case_table_names: 0
+CREATE TABLE tablea (a INT)
+ENGINE = 'MyISAM'
+PARTITION BY HASH (a)
+(PARTITION parta ,
+PARTITION partB ,
+PARTITION Partc ,
+PARTITION PartD );
+INSERT INTO tablea VALUES (1), (2), (7), (8), (9), (10);
+SHOW TABLES;
+Tables_in_MySQL_Test_DB
+TableA
+tablea
+RENAME TABLE TableA to tableA;
+SELECT * FROM tablea;
+a
+1
+10
+2
+7
+8
+9
+SELECT * FROM tableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+RENAME TABLE tableA to TableA;
+SHOW CREATE TABLE tablea;
+Table Create Table
+tablea CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (a) (PARTITION parta ENGINE = MyISAM, PARTITION partB ENGINE = MyISAM, PARTITION Partc ENGINE = MyISAM, PARTITION PartD ENGINE = MyISAM) */
+DROP TABLE tablea;
+# Test of REMOVE PARTITIONING
+ALTER TABLE TableA REMOVE PARTITIONING;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+# Cleaning up after HASH PARTITIONING test
+DROP TABLE TableA;
+# 3.0 RANGE partitioning mgm
+# Creating RANGE partitioned table
+CREATE TABLE TableA (a INT)
+ENGINE = 'MyISAM'
+PARTITION BY RANGE (a)
+(PARTITION parta VALUES LESS THAN (4) ,
+PARTITION partB VALUES LESS THAN (7) ,
+PARTITION Partc VALUES LESS THAN (10) ,
+PARTITION PartD VALUES LESS THAN (13) );
+INSERT INTO TableA VALUES (1), (2), (7), (8), (9), (10);
+INSERT INTO TableA VALUES (3), (4), (5), (6), (11), (12);
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Test of ADD/DROP PARTITIONS
+# expecting duplicate partition name
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partA VALUES LESS THAN (MAXVALUE));
+ERROR HY000: Duplicate partition name parta
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partE VALUES LESS THAN (16),
+PARTITION Partf VALUES LESS THAN (19),
+PARTITION PartG VALUES LESS THAN (22));
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (a) (PARTITION parta VALUES LESS THAN (4) ENGINE = MyISAM, PARTITION partB VALUES LESS THAN (7) ENGINE = MyISAM, PARTITION Partc VALUES LESS THAN (10) ENGINE = MyISAM, PARTITION PartD VALUES LESS THAN (13) ENGINE = MyISAM, PARTITION partE VALUES LESS THAN (16) ENGINE = MyISAM, PARTITION Partf VALUES LESS THAN (19) ENGINE = MyISAM, PARTITION PartG VALUES LESS THAN (22) ENGINE = MyISAM) */
+ALTER TABLE TableA DROP PARTITION partE, PartG;
+ALTER TABLE TableA DROP PARTITION Partf;
+ALTER TABLE TableA ADD PARTITION
+(PARTITION PartE VALUES LESS THAN (MAXVALUE));
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (a) (PARTITION parta VALUES LESS THAN (4) ENGINE = MyISAM, PARTITION partB VALUES LESS THAN (7) ENGINE = MyISAM, PARTITION Partc VALUES LESS THAN (10) ENGINE = MyISAM, PARTITION PartD VALUES LESS THAN (13) ENGINE = MyISAM, PARTITION PartE VALUES LESS THAN MAXVALUE ENGINE = MyISAM) */
+# Test of REORGANIZE PARTITIONS
+# Error since it must reorganize a consecutive range
+ALTER TABLE TableA REORGANIZE PARTITION parta,Partc INTO
+(PARTITION partB VALUES LESS THAN (3) ,
+PARTITION parta VALUES LESS THAN (11) );
+ERROR HY000: When reorganising a set of partitions they must be in consecutive order
+ALTER TABLE TableA REORGANIZE PARTITION partB,Partc,PartD,PartE INTO
+(PARTITION partD VALUES LESS THAN (8)
+COMMENT="Previously partB and partly Partc",
+PARTITION partB VALUES LESS THAN (11)
+COMMENT="Previously partly Partc and partly PartD",
+PARTITION partC VALUES LESS THAN (MAXVALUE)
+COMMENT="Previously partly PartD");
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (a) (PARTITION parta VALUES LESS THAN (4) ENGINE = MyISAM, PARTITION partD VALUES LESS THAN (8) COMMENT = 'Previously partB and partly Partc' ENGINE = MyISAM, PARTITION partB VALUES LESS THAN (11) COMMENT = 'Previously partly Partc and partly PartD' ENGINE = MyISAM, PARTITION partC VALUES LESS THAN MAXVALUE COMMENT = 'Previously partly PartD' ENGINE = MyISAM) */
+# Test of RENAME TABLE
+RENAME TABLE TableA to TableB;
+SELECT * FROM TableB;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+RENAME TABLE TableB to TableA;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Checking name comparision Upper vs Lower case
+# Error if lower_case_table_names != 0
+# lower_case_table_names: 0
+CREATE TABLE tablea (a INT)
+ENGINE = 'MyISAM'
+PARTITION BY RANGE (a)
+(PARTITION parta VALUES LESS THAN (4) ,
+PARTITION partB VALUES LESS THAN (7) ,
+PARTITION Partc VALUES LESS THAN (10) ,
+PARTITION PartD VALUES LESS THAN (13) );
+INSERT INTO tablea VALUES (1), (2), (7), (8), (9), (10);
+SHOW TABLES;
+Tables_in_MySQL_Test_DB
+TableA
+tablea
+RENAME TABLE TableA to tableA;
+SELECT * FROM tablea;
+a
+1
+10
+2
+7
+8
+9
+SELECT * FROM tableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+RENAME TABLE tableA to TableA;
+SHOW CREATE TABLE tablea;
+Table Create Table
+tablea CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (a) (PARTITION parta VALUES LESS THAN (4) ENGINE = MyISAM, PARTITION partB VALUES LESS THAN (7) ENGINE = MyISAM, PARTITION Partc VALUES LESS THAN (10) ENGINE = MyISAM, PARTITION PartD VALUES LESS THAN (13) ENGINE = MyISAM) */
+DROP TABLE tablea;
+# Test of REMOVE PARTITIONING
+ALTER TABLE TableA REMOVE PARTITIONING;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+# Cleaning up after RANGE PARTITIONING test
+DROP TABLE TableA;
+# 4.0 LIST partitioning mgm
+# Creating LIST partitioned table
+CREATE TABLE TableA (a INT)
+ENGINE = 'MyISAM'
+PARTITION BY LIST (a)
+(PARTITION parta VALUES IN (1,8,9) ,
+PARTITION partB VALUES IN (2,10,11) ,
+PARTITION Partc VALUES IN (3,4,7) ,
+PARTITION PartD VALUES IN (5,6,12) );
+INSERT INTO TableA VALUES (1), (2), (7), (8), (9), (10);
+INSERT INTO TableA VALUES (3), (4), (5), (6), (11), (12);
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Test of ADD/DROP PARTITIONS
+# expecting duplicate partition name
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partA VALUES IN (0));
+ERROR HY000: Duplicate partition name parta
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partE VALUES IN (16),
+PARTITION Partf VALUES IN (19),
+PARTITION PartG VALUES IN (22));
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (a) (PARTITION parta VALUES IN (1,8,9) ENGINE = MyISAM, PARTITION partB VALUES IN (2,10,11) ENGINE = MyISAM, PARTITION Partc VALUES IN (3,4,7) ENGINE = MyISAM, PARTITION PartD VALUES IN (5,6,12) ENGINE = MyISAM, PARTITION partE VALUES IN (16) ENGINE = MyISAM, PARTITION Partf VALUES IN (19) ENGINE = MyISAM, PARTITION PartG VALUES IN (22) ENGINE = MyISAM) */
+ALTER TABLE TableA DROP PARTITION partE, PartG;
+ALTER TABLE TableA DROP PARTITION Partf;
+ALTER TABLE TableA ADD PARTITION
+(PARTITION PartE VALUES IN (13));
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (a) (PARTITION parta VALUES IN (1,8,9) ENGINE = MyISAM, PARTITION partB VALUES IN (2,10,11) ENGINE = MyISAM, PARTITION Partc VALUES IN (3,4,7) ENGINE = MyISAM, PARTITION PartD VALUES IN (5,6,12) ENGINE = MyISAM, PARTITION PartE VALUES IN (13) ENGINE = MyISAM) */
+# Test of REORGANIZE PARTITIONS
+ALTER TABLE TableA REORGANIZE PARTITION parta,Partc INTO
+(PARTITION Partc VALUES IN (1,7)
+COMMENT = "Mix 1 of old parta and Partc",
+PARTITION partF VALUES IN (3,9)
+COMMENT = "Mix 2 of old parta and Partc",
+PARTITION parta VALUES IN (4,8)
+COMMENT = "Mix 3 of old parta and Partc");
+ERROR HY000: When reorganising a set of partitions they must be in consecutive order
+ALTER TABLE TableA REORGANIZE PARTITION parta,partB,Partc INTO
+(PARTITION Partc VALUES IN (1,7)
+COMMENT = "Mix 1 of old parta and Partc",
+PARTITION parta VALUES IN (3,9)
+COMMENT = "Mix 2 of old parta and Partc",
+PARTITION partB VALUES IN (4,8)
+COMMENT = "Mix 3 of old parta and Partc");
+SELECT * FROM TableA;
+a
+1
+12
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (a) (PARTITION Partc VALUES IN (1,7) COMMENT = 'Mix 1 of old parta and Partc' ENGINE = MyISAM, PARTITION parta VALUES IN (3,9) COMMENT = 'Mix 2 of old parta and Partc' ENGINE = MyISAM, PARTITION partB VALUES IN (4,8) COMMENT = 'Mix 3 of old parta and Partc' ENGINE = MyISAM, PARTITION PartD VALUES IN (5,6,12) ENGINE = MyISAM, PARTITION PartE VALUES IN (13) ENGINE = MyISAM) */
+# Test of RENAME TABLE
+RENAME TABLE TableA to TableB;
+SELECT * FROM TableB;
+a
+1
+12
+3
+4
+5
+6
+7
+8
+9
+RENAME TABLE TableB to TableA;
+SELECT * FROM TableA;
+a
+1
+12
+3
+4
+5
+6
+7
+8
+9
+# Checking name comparision Upper vs Lower case
+# Error if lower_case_table_names != 0
+# lower_case_table_names: 0
+CREATE TABLE tablea (a INT)
+ENGINE = 'MyISAM'
+PARTITION BY LIST (a)
+(PARTITION parta VALUES IN (1,8,9) ,
+PARTITION partB VALUES IN (2,10,11) ,
+PARTITION Partc VALUES IN (3,4,7) ,
+PARTITION PartD VALUES IN (5,6,12) );
+INSERT INTO tablea VALUES (1), (2), (7), (8), (9), (10);
+SHOW TABLES;
+Tables_in_MySQL_Test_DB
+TableA
+tablea
+RENAME TABLE TableA to tableA;
+SELECT * FROM tablea;
+a
+1
+10
+2
+7
+8
+9
+SELECT * FROM tableA;
+a
+1
+12
+3
+4
+5
+6
+7
+8
+9
+RENAME TABLE tableA to TableA;
+SHOW CREATE TABLE tablea;
+Table Create Table
+tablea CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (a) (PARTITION parta VALUES IN (1,8,9) ENGINE = MyISAM, PARTITION partB VALUES IN (2,10,11) ENGINE = MyISAM, PARTITION Partc VALUES IN (3,4,7) ENGINE = MyISAM, PARTITION PartD VALUES IN (5,6,12) ENGINE = MyISAM) */
+DROP TABLE tablea;
+# Test of REMOVE PARTITIONING
+ALTER TABLE TableA REMOVE PARTITIONING;
+SELECT * FROM TableA;
+a
+1
+12
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+# Cleaning up after LIST PARTITIONING test
+DROP TABLE TableA;
+# Cleaning up before exit
+USE test;
+DROP DATABASE MySQL_Test_DB;
diff --git a/mysql-test/suite/parts/r/partition_mgm_lc0_ndb.result b/mysql-test/suite/parts/r/partition_mgm_lc0_ndb.result
new file mode 100644
index 00000000000..3d28cedf3bd
--- /dev/null
+++ b/mysql-test/suite/parts/r/partition_mgm_lc0_ndb.result
@@ -0,0 +1,170 @@
+# Creating database MySQL_TEST_DB
+CREATE DATABASE MySQL_Test_DB;
+USE MySQL_Test_DB;
+# 1.0 KEY partitioning mgm
+# Creating KEY partitioned table
+CREATE TABLE TableA (a INT)
+ENGINE = 'NDBCluster'
+PARTITION BY KEY (a)
+(PARTITION parta ,
+PARTITION partB ,
+PARTITION Partc ,
+PARTITION PartD );
+INSERT INTO TableA VALUES (1), (2), (7), (8), (9), (10);
+INSERT INTO TableA VALUES (3), (4), (5), (6), (11), (12);
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Test of ADD/COALESCE PARTITIONS
+# expecting duplicate partition name
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partA,
+PARTITION Parta,
+PARTITION PartA);
+ERROR HY000: Duplicate partition name parta
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partE,
+PARTITION Partf,
+PARTITION PartG);
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=ndbcluster DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION parta ENGINE = ndbcluster, PARTITION partB ENGINE = ndbcluster, PARTITION Partc ENGINE = ndbcluster, PARTITION PartD ENGINE = ndbcluster, PARTITION partE ENGINE = ndbcluster, PARTITION Partf ENGINE = ndbcluster, PARTITION PartG ENGINE = ndbcluster) */
+ALTER TABLE TableA COALESCE PARTITION 4;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=ndbcluster DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION parta ENGINE = ndbcluster, PARTITION partB ENGINE = ndbcluster, PARTITION Partc ENGINE = ndbcluster) */
+# Test of REORGANIZE PARTITIONS
+# Should not work on HASH/KEY
+ALTER TABLE TableA REORGANIZE PARTITION parta,partB,Partc INTO
+(PARTITION PARTA ,
+PARTITION partc );
+ERROR HY000: REORGANISE PARTITION can only be used to reorganise partitions not to change their numbers
+ALTER TABLE TableA REORGANIZE PARTITION parta,Partc INTO
+(PARTITION partB ,
+PARTITION parta );
+ERROR HY000: When reorganising a set of partitions they must be in consecutive order
+ALTER TABLE TableA REORGANIZE PARTITION parta,partB INTO
+(PARTITION partB COMMENT="Previusly named parta",
+PARTITION parta COMMENT="Previusly named partB");
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=ndbcluster DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION partB COMMENT = 'Previusly named parta' ENGINE = ndbcluster, PARTITION parta COMMENT = 'Previusly named partB' ENGINE = ndbcluster, PARTITION Partc ENGINE = ndbcluster) */
+# Test of RENAME TABLE
+RENAME TABLE TableA to TableB;
+SELECT * FROM TableB;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+RENAME TABLE TableB to TableA;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Checking name comparision Upper vs Lower case
+# Error if lower_case_table_names != 0
+# lower_case_table_names: 0
+# Test of REMOVE PARTITIONING
+ALTER TABLE TableA REMOVE PARTITIONING;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=ndbcluster DEFAULT CHARSET=latin1
+# Cleaning up after KEY PARTITIONING test
+DROP TABLE TableA;
+# Cleaning up before exit
+USE test;
+DROP DATABASE MySQL_Test_DB;
diff --git a/mysql-test/suite/parts/r/partition_mgm_lc1_archive.result b/mysql-test/suite/parts/r/partition_mgm_lc1_archive.result
new file mode 100644
index 00000000000..b1eeed58ffb
--- /dev/null
+++ b/mysql-test/suite/parts/r/partition_mgm_lc1_archive.result
@@ -0,0 +1,797 @@
+# Creating database MySQL_TEST_DB
+CREATE DATABASE MySQL_Test_DB;
+USE MySQL_Test_DB;
+# 1.0 KEY partitioning mgm
+# Creating KEY partitioned table
+CREATE TABLE TableA (a INT)
+ENGINE = 'Archive'
+PARTITION BY KEY (a)
+(PARTITION parta ,
+PARTITION partB ,
+PARTITION Partc ,
+PARTITION PartD );
+INSERT INTO TableA VALUES (1), (2), (7), (8), (9), (10);
+INSERT INTO TableA VALUES (3), (4), (5), (6), (11), (12);
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Test of ADD/COALESCE PARTITIONS
+# expecting duplicate partition name
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partA,
+PARTITION Parta,
+PARTITION PartA);
+ERROR HY000: Duplicate partition name parta
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partE,
+PARTITION Partf,
+PARTITION PartG);
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=ARCHIVE DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION parta ENGINE = ARCHIVE, PARTITION partB ENGINE = ARCHIVE, PARTITION Partc ENGINE = ARCHIVE, PARTITION PartD ENGINE = ARCHIVE, PARTITION partE ENGINE = ARCHIVE, PARTITION Partf ENGINE = ARCHIVE, PARTITION PartG ENGINE = ARCHIVE) */
+ALTER TABLE TableA COALESCE PARTITION 4;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=ARCHIVE DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION parta ENGINE = ARCHIVE, PARTITION partB ENGINE = ARCHIVE, PARTITION Partc ENGINE = ARCHIVE) */
+# Test of REORGANIZE PARTITIONS
+# Should not work on HASH/KEY
+ALTER TABLE TableA REORGANIZE PARTITION parta,partB,Partc INTO
+(PARTITION PARTA ,
+PARTITION partc );
+ERROR HY000: REORGANISE PARTITION can only be used to reorganise partitions not to change their numbers
+ALTER TABLE TableA REORGANIZE PARTITION parta,Partc INTO
+(PARTITION partB ,
+PARTITION parta );
+ERROR HY000: When reorganising a set of partitions they must be in consecutive order
+ALTER TABLE TableA REORGANIZE PARTITION parta,partB INTO
+(PARTITION partB COMMENT="Previusly named parta",
+PARTITION parta COMMENT="Previusly named partB");
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=ARCHIVE DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION partB COMMENT = 'Previusly named parta' ENGINE = ARCHIVE, PARTITION parta COMMENT = 'Previusly named partB' ENGINE = ARCHIVE, PARTITION Partc ENGINE = ARCHIVE) */
+# Test of RENAME TABLE
+RENAME TABLE TableA to TableB;
+SELECT * FROM TableB;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+RENAME TABLE TableB to TableA;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Checking name comparision Upper vs Lower case
+# Error if lower_case_table_names != 0
+# lower_case_table_names: 1
+CREATE TABLE tablea (a INT)
+ENGINE = 'Archive'
+PARTITION BY KEY (a)
+(PARTITION parta ,
+PARTITION partB ,
+PARTITION Partc ,
+PARTITION PartD );
+ERROR 42S01: Table 'tablea' already exists
+SHOW TABLES;
+Tables_in_mysql_test_db
+tablea
+RENAME TABLE TableA to tablea;
+ERROR 42S01: Table 'tablea' already exists
+RENAME TABLE tablea to TableA;
+ERROR 42S01: Table 'tablea' already exists
+SELECT * FROM tablea;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE tablea;
+Table Create Table
+tablea CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=ARCHIVE DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION partB COMMENT = 'Previusly named parta' ENGINE = ARCHIVE, PARTITION parta COMMENT = 'Previusly named partB' ENGINE = ARCHIVE, PARTITION Partc ENGINE = ARCHIVE) */
+# Test of REMOVE PARTITIONING
+ALTER TABLE TableA REMOVE PARTITIONING;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=ARCHIVE DEFAULT CHARSET=latin1
+# Cleaning up after KEY PARTITIONING test
+DROP TABLE TableA;
+# 2.0 HASH partitioning mgm
+# expecting duplicate partition name
+CREATE TABLE TableA (a INT)
+ENGINE = 'Archive'
+PARTITION BY HASH (a)
+(PARTITION parta ,
+PARTITION partA ,
+PARTITION Parta ,
+PARTITION PartA );
+ERROR HY000: Duplicate partition name parta
+# Creating Hash partitioned table
+CREATE TABLE TableA (a INT)
+ENGINE = 'Archive'
+PARTITION BY HASH (a)
+(PARTITION parta ,
+PARTITION partB ,
+PARTITION Partc ,
+PARTITION PartD );
+INSERT INTO TableA VALUES (1), (2), (7), (8), (9), (10);
+INSERT INTO TableA VALUES (3), (4), (5), (6), (11), (12);
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Test of ADD/COALESCE PARTITIONS
+# expecting duplicate partition name
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partA,
+PARTITION Parta,
+PARTITION PartA);
+ERROR HY000: Duplicate partition name parta
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partE,
+PARTITION Partf,
+PARTITION PartG);
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=ARCHIVE DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (a) (PARTITION parta ENGINE = ARCHIVE, PARTITION partB ENGINE = ARCHIVE, PARTITION Partc ENGINE = ARCHIVE, PARTITION PartD ENGINE = ARCHIVE, PARTITION partE ENGINE = ARCHIVE, PARTITION Partf ENGINE = ARCHIVE, PARTITION PartG ENGINE = ARCHIVE) */
+ALTER TABLE TableA COALESCE PARTITION 4;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=ARCHIVE DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (a) (PARTITION parta ENGINE = ARCHIVE, PARTITION partB ENGINE = ARCHIVE, PARTITION Partc ENGINE = ARCHIVE) */
+# Test of REORGANIZE PARTITIONS
+# Should not work on HASH/KEY
+ALTER TABLE TableA REORGANIZE PARTITION parta,partB,Partc INTO
+(PARTITION PARTA ,
+PARTITION partc );
+ERROR HY000: REORGANISE PARTITION can only be used to reorganise partitions not to change their numbers
+ALTER TABLE TableA REORGANIZE PARTITION parta,Partc INTO
+(PARTITION partB ,
+PARTITION parta );
+ERROR HY000: When reorganising a set of partitions they must be in consecutive order
+ALTER TABLE TableA REORGANIZE PARTITION parta,partB INTO
+(PARTITION partB COMMENT="Previusly named parta",
+PARTITION parta COMMENT="Previusly named partB");
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=ARCHIVE DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (a) (PARTITION partB COMMENT = 'Previusly named parta' ENGINE = ARCHIVE, PARTITION parta COMMENT = 'Previusly named partB' ENGINE = ARCHIVE, PARTITION Partc ENGINE = ARCHIVE) */
+# Test of RENAME TABLE
+RENAME TABLE TableA to TableB;
+SELECT * FROM TableB;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+RENAME TABLE TableB to TableA;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Checking name comparision Upper vs Lower case
+# Error if lower_case_table_names != 0
+# lower_case_table_names: 1
+CREATE TABLE tablea (a INT)
+ENGINE = 'Archive'
+PARTITION BY HASH (a)
+(PARTITION parta ,
+PARTITION partB ,
+PARTITION Partc ,
+PARTITION PartD );
+ERROR 42S01: Table 'tablea' already exists
+SHOW TABLES;
+Tables_in_mysql_test_db
+tablea
+RENAME TABLE TableA to tablea;
+ERROR 42S01: Table 'tablea' already exists
+RENAME TABLE tablea to TableA;
+ERROR 42S01: Table 'tablea' already exists
+SELECT * FROM tablea;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE tablea;
+Table Create Table
+tablea CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=ARCHIVE DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (a) (PARTITION partB COMMENT = 'Previusly named parta' ENGINE = ARCHIVE, PARTITION parta COMMENT = 'Previusly named partB' ENGINE = ARCHIVE, PARTITION Partc ENGINE = ARCHIVE) */
+# Test of REMOVE PARTITIONING
+ALTER TABLE TableA REMOVE PARTITIONING;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=ARCHIVE DEFAULT CHARSET=latin1
+# Cleaning up after HASH PARTITIONING test
+DROP TABLE TableA;
+# 3.0 RANGE partitioning mgm
+# Creating RANGE partitioned table
+CREATE TABLE TableA (a INT)
+ENGINE = 'Archive'
+PARTITION BY RANGE (a)
+(PARTITION parta VALUES LESS THAN (4) ,
+PARTITION partB VALUES LESS THAN (7) ,
+PARTITION Partc VALUES LESS THAN (10) ,
+PARTITION PartD VALUES LESS THAN (13) );
+INSERT INTO TableA VALUES (1), (2), (7), (8), (9), (10);
+INSERT INTO TableA VALUES (3), (4), (5), (6), (11), (12);
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Test of ADD/DROP PARTITIONS
+# expecting duplicate partition name
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partA VALUES LESS THAN (MAXVALUE));
+ERROR HY000: Duplicate partition name parta
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partE VALUES LESS THAN (16),
+PARTITION Partf VALUES LESS THAN (19),
+PARTITION PartG VALUES LESS THAN (22));
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=ARCHIVE DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (a) (PARTITION parta VALUES LESS THAN (4) ENGINE = ARCHIVE, PARTITION partB VALUES LESS THAN (7) ENGINE = ARCHIVE, PARTITION Partc VALUES LESS THAN (10) ENGINE = ARCHIVE, PARTITION PartD VALUES LESS THAN (13) ENGINE = ARCHIVE, PARTITION partE VALUES LESS THAN (16) ENGINE = ARCHIVE, PARTITION Partf VALUES LESS THAN (19) ENGINE = ARCHIVE, PARTITION PartG VALUES LESS THAN (22) ENGINE = ARCHIVE) */
+ALTER TABLE TableA DROP PARTITION partE, PartG;
+ALTER TABLE TableA DROP PARTITION Partf;
+ALTER TABLE TableA ADD PARTITION
+(PARTITION PartE VALUES LESS THAN (MAXVALUE));
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=ARCHIVE DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (a) (PARTITION parta VALUES LESS THAN (4) ENGINE = ARCHIVE, PARTITION partB VALUES LESS THAN (7) ENGINE = ARCHIVE, PARTITION Partc VALUES LESS THAN (10) ENGINE = ARCHIVE, PARTITION PartD VALUES LESS THAN (13) ENGINE = ARCHIVE, PARTITION PartE VALUES LESS THAN MAXVALUE ENGINE = ARCHIVE) */
+# Test of REORGANIZE PARTITIONS
+# Error since it must reorganize a consecutive range
+ALTER TABLE TableA REORGANIZE PARTITION parta,Partc INTO
+(PARTITION partB VALUES LESS THAN (3) ,
+PARTITION parta VALUES LESS THAN (11) );
+ERROR HY000: When reorganising a set of partitions they must be in consecutive order
+ALTER TABLE TableA REORGANIZE PARTITION partB,Partc,PartD,PartE INTO
+(PARTITION partD VALUES LESS THAN (8)
+COMMENT="Previously partB and partly Partc",
+PARTITION partB VALUES LESS THAN (11)
+COMMENT="Previously partly Partc and partly PartD",
+PARTITION partC VALUES LESS THAN (MAXVALUE)
+COMMENT="Previously partly PartD");
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=ARCHIVE DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (a) (PARTITION parta VALUES LESS THAN (4) ENGINE = ARCHIVE, PARTITION partD VALUES LESS THAN (8) COMMENT = 'Previously partB and partly Partc' ENGINE = ARCHIVE, PARTITION partB VALUES LESS THAN (11) COMMENT = 'Previously partly Partc and partly PartD' ENGINE = ARCHIVE, PARTITION partC VALUES LESS THAN MAXVALUE COMMENT = 'Previously partly PartD' ENGINE = ARCHIVE) */
+# Test of RENAME TABLE
+RENAME TABLE TableA to TableB;
+SELECT * FROM TableB;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+RENAME TABLE TableB to TableA;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Checking name comparision Upper vs Lower case
+# Error if lower_case_table_names != 0
+# lower_case_table_names: 1
+CREATE TABLE tablea (a INT)
+ENGINE = 'Archive'
+PARTITION BY RANGE (a)
+(PARTITION parta VALUES LESS THAN (4) ,
+PARTITION partB VALUES LESS THAN (7) ,
+PARTITION Partc VALUES LESS THAN (10) ,
+PARTITION PartD VALUES LESS THAN (13) );
+ERROR 42S01: Table 'tablea' already exists
+SHOW TABLES;
+Tables_in_mysql_test_db
+tablea
+RENAME TABLE TableA to tablea;
+ERROR 42S01: Table 'tablea' already exists
+RENAME TABLE tablea to TableA;
+ERROR 42S01: Table 'tablea' already exists
+SELECT * FROM tablea;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE tablea;
+Table Create Table
+tablea CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=ARCHIVE DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (a) (PARTITION parta VALUES LESS THAN (4) ENGINE = ARCHIVE, PARTITION partD VALUES LESS THAN (8) COMMENT = 'Previously partB and partly Partc' ENGINE = ARCHIVE, PARTITION partB VALUES LESS THAN (11) COMMENT = 'Previously partly Partc and partly PartD' ENGINE = ARCHIVE, PARTITION partC VALUES LESS THAN MAXVALUE COMMENT = 'Previously partly PartD' ENGINE = ARCHIVE) */
+# Test of REMOVE PARTITIONING
+ALTER TABLE TableA REMOVE PARTITIONING;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=ARCHIVE DEFAULT CHARSET=latin1
+# Cleaning up after RANGE PARTITIONING test
+DROP TABLE TableA;
+# 4.0 LIST partitioning mgm
+# Creating LIST partitioned table
+CREATE TABLE TableA (a INT)
+ENGINE = 'Archive'
+PARTITION BY LIST (a)
+(PARTITION parta VALUES IN (1,8,9) ,
+PARTITION partB VALUES IN (2,10,11) ,
+PARTITION Partc VALUES IN (3,4,7) ,
+PARTITION PartD VALUES IN (5,6,12) );
+INSERT INTO TableA VALUES (1), (2), (7), (8), (9), (10);
+INSERT INTO TableA VALUES (3), (4), (5), (6), (11), (12);
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Test of ADD/DROP PARTITIONS
+# expecting duplicate partition name
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partA VALUES IN (0));
+ERROR HY000: Duplicate partition name parta
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partE VALUES IN (16),
+PARTITION Partf VALUES IN (19),
+PARTITION PartG VALUES IN (22));
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=ARCHIVE DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (a) (PARTITION parta VALUES IN (1,8,9) ENGINE = ARCHIVE, PARTITION partB VALUES IN (2,10,11) ENGINE = ARCHIVE, PARTITION Partc VALUES IN (3,4,7) ENGINE = ARCHIVE, PARTITION PartD VALUES IN (5,6,12) ENGINE = ARCHIVE, PARTITION partE VALUES IN (16) ENGINE = ARCHIVE, PARTITION Partf VALUES IN (19) ENGINE = ARCHIVE, PARTITION PartG VALUES IN (22) ENGINE = ARCHIVE) */
+ALTER TABLE TableA DROP PARTITION partE, PartG;
+ALTER TABLE TableA DROP PARTITION Partf;
+ALTER TABLE TableA ADD PARTITION
+(PARTITION PartE VALUES IN (13));
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=ARCHIVE DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (a) (PARTITION parta VALUES IN (1,8,9) ENGINE = ARCHIVE, PARTITION partB VALUES IN (2,10,11) ENGINE = ARCHIVE, PARTITION Partc VALUES IN (3,4,7) ENGINE = ARCHIVE, PARTITION PartD VALUES IN (5,6,12) ENGINE = ARCHIVE, PARTITION PartE VALUES IN (13) ENGINE = ARCHIVE) */
+# Test of REORGANIZE PARTITIONS
+ALTER TABLE TableA REORGANIZE PARTITION parta,Partc INTO
+(PARTITION Partc VALUES IN (1,7)
+COMMENT = "Mix 1 of old parta and Partc",
+PARTITION partF VALUES IN (3,9)
+COMMENT = "Mix 2 of old parta and Partc",
+PARTITION parta VALUES IN (4,8)
+COMMENT = "Mix 3 of old parta and Partc");
+ERROR HY000: When reorganising a set of partitions they must be in consecutive order
+ALTER TABLE TableA REORGANIZE PARTITION parta,partB,Partc INTO
+(PARTITION Partc VALUES IN (1,7)
+COMMENT = "Mix 1 of old parta and Partc",
+PARTITION parta VALUES IN (3,9)
+COMMENT = "Mix 2 of old parta and Partc",
+PARTITION partB VALUES IN (4,8)
+COMMENT = "Mix 3 of old parta and Partc");
+SELECT * FROM TableA;
+a
+1
+12
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=ARCHIVE DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (a) (PARTITION Partc VALUES IN (1,7) COMMENT = 'Mix 1 of old parta and Partc' ENGINE = ARCHIVE, PARTITION parta VALUES IN (3,9) COMMENT = 'Mix 2 of old parta and Partc' ENGINE = ARCHIVE, PARTITION partB VALUES IN (4,8) COMMENT = 'Mix 3 of old parta and Partc' ENGINE = ARCHIVE, PARTITION PartD VALUES IN (5,6,12) ENGINE = ARCHIVE, PARTITION PartE VALUES IN (13) ENGINE = ARCHIVE) */
+# Test of RENAME TABLE
+RENAME TABLE TableA to TableB;
+SELECT * FROM TableB;
+a
+1
+12
+3
+4
+5
+6
+7
+8
+9
+RENAME TABLE TableB to TableA;
+SELECT * FROM TableA;
+a
+1
+12
+3
+4
+5
+6
+7
+8
+9
+# Checking name comparision Upper vs Lower case
+# Error if lower_case_table_names != 0
+# lower_case_table_names: 1
+CREATE TABLE tablea (a INT)
+ENGINE = 'Archive'
+PARTITION BY LIST (a)
+(PARTITION parta VALUES IN (1,8,9) ,
+PARTITION partB VALUES IN (2,10,11) ,
+PARTITION Partc VALUES IN (3,4,7) ,
+PARTITION PartD VALUES IN (5,6,12) );
+ERROR 42S01: Table 'tablea' already exists
+SHOW TABLES;
+Tables_in_mysql_test_db
+tablea
+RENAME TABLE TableA to tablea;
+ERROR 42S01: Table 'tablea' already exists
+RENAME TABLE tablea to TableA;
+ERROR 42S01: Table 'tablea' already exists
+SELECT * FROM tablea;
+a
+1
+12
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE tablea;
+Table Create Table
+tablea CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=ARCHIVE DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (a) (PARTITION Partc VALUES IN (1,7) COMMENT = 'Mix 1 of old parta and Partc' ENGINE = ARCHIVE, PARTITION parta VALUES IN (3,9) COMMENT = 'Mix 2 of old parta and Partc' ENGINE = ARCHIVE, PARTITION partB VALUES IN (4,8) COMMENT = 'Mix 3 of old parta and Partc' ENGINE = ARCHIVE, PARTITION PartD VALUES IN (5,6,12) ENGINE = ARCHIVE, PARTITION PartE VALUES IN (13) ENGINE = ARCHIVE) */
+# Test of REMOVE PARTITIONING
+ALTER TABLE TableA REMOVE PARTITIONING;
+SELECT * FROM TableA;
+a
+1
+12
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=ARCHIVE DEFAULT CHARSET=latin1
+# Cleaning up after LIST PARTITIONING test
+DROP TABLE TableA;
+# Cleaning up before exit
+USE test;
+DROP DATABASE MySQL_Test_DB;
diff --git a/mysql-test/suite/parts/r/partition_mgm_lc1_innodb.result b/mysql-test/suite/parts/r/partition_mgm_lc1_innodb.result
new file mode 100644
index 00000000000..910d985c0ea
--- /dev/null
+++ b/mysql-test/suite/parts/r/partition_mgm_lc1_innodb.result
@@ -0,0 +1,797 @@
+# Creating database MySQL_TEST_DB
+CREATE DATABASE MySQL_Test_DB;
+USE MySQL_Test_DB;
+# 1.0 KEY partitioning mgm
+# Creating KEY partitioned table
+CREATE TABLE TableA (a INT)
+ENGINE = 'InnoDB'
+PARTITION BY KEY (a)
+(PARTITION parta ,
+PARTITION partB ,
+PARTITION Partc ,
+PARTITION PartD );
+INSERT INTO TableA VALUES (1), (2), (7), (8), (9), (10);
+INSERT INTO TableA VALUES (3), (4), (5), (6), (11), (12);
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Test of ADD/COALESCE PARTITIONS
+# expecting duplicate partition name
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partA,
+PARTITION Parta,
+PARTITION PartA);
+ERROR HY000: Duplicate partition name parta
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partE,
+PARTITION Partf,
+PARTITION PartG);
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION parta ENGINE = InnoDB, PARTITION partB ENGINE = InnoDB, PARTITION Partc ENGINE = InnoDB, PARTITION PartD ENGINE = InnoDB, PARTITION partE ENGINE = InnoDB, PARTITION Partf ENGINE = InnoDB, PARTITION PartG ENGINE = InnoDB) */
+ALTER TABLE TableA COALESCE PARTITION 4;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION parta ENGINE = InnoDB, PARTITION partB ENGINE = InnoDB, PARTITION Partc ENGINE = InnoDB) */
+# Test of REORGANIZE PARTITIONS
+# Should not work on HASH/KEY
+ALTER TABLE TableA REORGANIZE PARTITION parta,partB,Partc INTO
+(PARTITION PARTA ,
+PARTITION partc );
+ERROR HY000: REORGANISE PARTITION can only be used to reorganise partitions not to change their numbers
+ALTER TABLE TableA REORGANIZE PARTITION parta,Partc INTO
+(PARTITION partB ,
+PARTITION parta );
+ERROR HY000: When reorganising a set of partitions they must be in consecutive order
+ALTER TABLE TableA REORGANIZE PARTITION parta,partB INTO
+(PARTITION partB COMMENT="Previusly named parta",
+PARTITION parta COMMENT="Previusly named partB");
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION partB COMMENT = 'Previusly named parta' ENGINE = InnoDB, PARTITION parta COMMENT = 'Previusly named partB' ENGINE = InnoDB, PARTITION Partc ENGINE = InnoDB) */
+# Test of RENAME TABLE
+RENAME TABLE TableA to TableB;
+SELECT * FROM TableB;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+RENAME TABLE TableB to TableA;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Checking name comparision Upper vs Lower case
+# Error if lower_case_table_names != 0
+# lower_case_table_names: 1
+CREATE TABLE tablea (a INT)
+ENGINE = 'InnoDB'
+PARTITION BY KEY (a)
+(PARTITION parta ,
+PARTITION partB ,
+PARTITION Partc ,
+PARTITION PartD );
+ERROR 42S01: Table 'tablea' already exists
+SHOW TABLES;
+Tables_in_mysql_test_db
+tablea
+RENAME TABLE TableA to tablea;
+ERROR 42S01: Table 'tablea' already exists
+RENAME TABLE tablea to TableA;
+ERROR 42S01: Table 'tablea' already exists
+SELECT * FROM tablea;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE tablea;
+Table Create Table
+tablea CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION partB COMMENT = 'Previusly named parta' ENGINE = InnoDB, PARTITION parta COMMENT = 'Previusly named partB' ENGINE = InnoDB, PARTITION Partc ENGINE = InnoDB) */
+# Test of REMOVE PARTITIONING
+ALTER TABLE TableA REMOVE PARTITIONING;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1
+# Cleaning up after KEY PARTITIONING test
+DROP TABLE TableA;
+# 2.0 HASH partitioning mgm
+# expecting duplicate partition name
+CREATE TABLE TableA (a INT)
+ENGINE = 'InnoDB'
+PARTITION BY HASH (a)
+(PARTITION parta ,
+PARTITION partA ,
+PARTITION Parta ,
+PARTITION PartA );
+ERROR HY000: Duplicate partition name parta
+# Creating Hash partitioned table
+CREATE TABLE TableA (a INT)
+ENGINE = 'InnoDB'
+PARTITION BY HASH (a)
+(PARTITION parta ,
+PARTITION partB ,
+PARTITION Partc ,
+PARTITION PartD );
+INSERT INTO TableA VALUES (1), (2), (7), (8), (9), (10);
+INSERT INTO TableA VALUES (3), (4), (5), (6), (11), (12);
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Test of ADD/COALESCE PARTITIONS
+# expecting duplicate partition name
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partA,
+PARTITION Parta,
+PARTITION PartA);
+ERROR HY000: Duplicate partition name parta
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partE,
+PARTITION Partf,
+PARTITION PartG);
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (a) (PARTITION parta ENGINE = InnoDB, PARTITION partB ENGINE = InnoDB, PARTITION Partc ENGINE = InnoDB, PARTITION PartD ENGINE = InnoDB, PARTITION partE ENGINE = InnoDB, PARTITION Partf ENGINE = InnoDB, PARTITION PartG ENGINE = InnoDB) */
+ALTER TABLE TableA COALESCE PARTITION 4;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (a) (PARTITION parta ENGINE = InnoDB, PARTITION partB ENGINE = InnoDB, PARTITION Partc ENGINE = InnoDB) */
+# Test of REORGANIZE PARTITIONS
+# Should not work on HASH/KEY
+ALTER TABLE TableA REORGANIZE PARTITION parta,partB,Partc INTO
+(PARTITION PARTA ,
+PARTITION partc );
+ERROR HY000: REORGANISE PARTITION can only be used to reorganise partitions not to change their numbers
+ALTER TABLE TableA REORGANIZE PARTITION parta,Partc INTO
+(PARTITION partB ,
+PARTITION parta );
+ERROR HY000: When reorganising a set of partitions they must be in consecutive order
+ALTER TABLE TableA REORGANIZE PARTITION parta,partB INTO
+(PARTITION partB COMMENT="Previusly named parta",
+PARTITION parta COMMENT="Previusly named partB");
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (a) (PARTITION partB COMMENT = 'Previusly named parta' ENGINE = InnoDB, PARTITION parta COMMENT = 'Previusly named partB' ENGINE = InnoDB, PARTITION Partc ENGINE = InnoDB) */
+# Test of RENAME TABLE
+RENAME TABLE TableA to TableB;
+SELECT * FROM TableB;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+RENAME TABLE TableB to TableA;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Checking name comparision Upper vs Lower case
+# Error if lower_case_table_names != 0
+# lower_case_table_names: 1
+CREATE TABLE tablea (a INT)
+ENGINE = 'InnoDB'
+PARTITION BY HASH (a)
+(PARTITION parta ,
+PARTITION partB ,
+PARTITION Partc ,
+PARTITION PartD );
+ERROR 42S01: Table 'tablea' already exists
+SHOW TABLES;
+Tables_in_mysql_test_db
+tablea
+RENAME TABLE TableA to tablea;
+ERROR 42S01: Table 'tablea' already exists
+RENAME TABLE tablea to TableA;
+ERROR 42S01: Table 'tablea' already exists
+SELECT * FROM tablea;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE tablea;
+Table Create Table
+tablea CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (a) (PARTITION partB COMMENT = 'Previusly named parta' ENGINE = InnoDB, PARTITION parta COMMENT = 'Previusly named partB' ENGINE = InnoDB, PARTITION Partc ENGINE = InnoDB) */
+# Test of REMOVE PARTITIONING
+ALTER TABLE TableA REMOVE PARTITIONING;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1
+# Cleaning up after HASH PARTITIONING test
+DROP TABLE TableA;
+# 3.0 RANGE partitioning mgm
+# Creating RANGE partitioned table
+CREATE TABLE TableA (a INT)
+ENGINE = 'InnoDB'
+PARTITION BY RANGE (a)
+(PARTITION parta VALUES LESS THAN (4) ,
+PARTITION partB VALUES LESS THAN (7) ,
+PARTITION Partc VALUES LESS THAN (10) ,
+PARTITION PartD VALUES LESS THAN (13) );
+INSERT INTO TableA VALUES (1), (2), (7), (8), (9), (10);
+INSERT INTO TableA VALUES (3), (4), (5), (6), (11), (12);
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Test of ADD/DROP PARTITIONS
+# expecting duplicate partition name
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partA VALUES LESS THAN (MAXVALUE));
+ERROR HY000: Duplicate partition name parta
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partE VALUES LESS THAN (16),
+PARTITION Partf VALUES LESS THAN (19),
+PARTITION PartG VALUES LESS THAN (22));
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (a) (PARTITION parta VALUES LESS THAN (4) ENGINE = InnoDB, PARTITION partB VALUES LESS THAN (7) ENGINE = InnoDB, PARTITION Partc VALUES LESS THAN (10) ENGINE = InnoDB, PARTITION PartD VALUES LESS THAN (13) ENGINE = InnoDB, PARTITION partE VALUES LESS THAN (16) ENGINE = InnoDB, PARTITION Partf VALUES LESS THAN (19) ENGINE = InnoDB, PARTITION PartG VALUES LESS THAN (22) ENGINE = InnoDB) */
+ALTER TABLE TableA DROP PARTITION partE, PartG;
+ALTER TABLE TableA DROP PARTITION Partf;
+ALTER TABLE TableA ADD PARTITION
+(PARTITION PartE VALUES LESS THAN (MAXVALUE));
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (a) (PARTITION parta VALUES LESS THAN (4) ENGINE = InnoDB, PARTITION partB VALUES LESS THAN (7) ENGINE = InnoDB, PARTITION Partc VALUES LESS THAN (10) ENGINE = InnoDB, PARTITION PartD VALUES LESS THAN (13) ENGINE = InnoDB, PARTITION PartE VALUES LESS THAN MAXVALUE ENGINE = InnoDB) */
+# Test of REORGANIZE PARTITIONS
+# Error since it must reorganize a consecutive range
+ALTER TABLE TableA REORGANIZE PARTITION parta,Partc INTO
+(PARTITION partB VALUES LESS THAN (3) ,
+PARTITION parta VALUES LESS THAN (11) );
+ERROR HY000: When reorganising a set of partitions they must be in consecutive order
+ALTER TABLE TableA REORGANIZE PARTITION partB,Partc,PartD,PartE INTO
+(PARTITION partD VALUES LESS THAN (8)
+COMMENT="Previously partB and partly Partc",
+PARTITION partB VALUES LESS THAN (11)
+COMMENT="Previously partly Partc and partly PartD",
+PARTITION partC VALUES LESS THAN (MAXVALUE)
+COMMENT="Previously partly PartD");
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (a) (PARTITION parta VALUES LESS THAN (4) ENGINE = InnoDB, PARTITION partD VALUES LESS THAN (8) COMMENT = 'Previously partB and partly Partc' ENGINE = InnoDB, PARTITION partB VALUES LESS THAN (11) COMMENT = 'Previously partly Partc and partly PartD' ENGINE = InnoDB, PARTITION partC VALUES LESS THAN MAXVALUE COMMENT = 'Previously partly PartD' ENGINE = InnoDB) */
+# Test of RENAME TABLE
+RENAME TABLE TableA to TableB;
+SELECT * FROM TableB;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+RENAME TABLE TableB to TableA;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Checking name comparision Upper vs Lower case
+# Error if lower_case_table_names != 0
+# lower_case_table_names: 1
+CREATE TABLE tablea (a INT)
+ENGINE = 'InnoDB'
+PARTITION BY RANGE (a)
+(PARTITION parta VALUES LESS THAN (4) ,
+PARTITION partB VALUES LESS THAN (7) ,
+PARTITION Partc VALUES LESS THAN (10) ,
+PARTITION PartD VALUES LESS THAN (13) );
+ERROR 42S01: Table 'tablea' already exists
+SHOW TABLES;
+Tables_in_mysql_test_db
+tablea
+RENAME TABLE TableA to tablea;
+ERROR 42S01: Table 'tablea' already exists
+RENAME TABLE tablea to TableA;
+ERROR 42S01: Table 'tablea' already exists
+SELECT * FROM tablea;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE tablea;
+Table Create Table
+tablea CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (a) (PARTITION parta VALUES LESS THAN (4) ENGINE = InnoDB, PARTITION partD VALUES LESS THAN (8) COMMENT = 'Previously partB and partly Partc' ENGINE = InnoDB, PARTITION partB VALUES LESS THAN (11) COMMENT = 'Previously partly Partc and partly PartD' ENGINE = InnoDB, PARTITION partC VALUES LESS THAN MAXVALUE COMMENT = 'Previously partly PartD' ENGINE = InnoDB) */
+# Test of REMOVE PARTITIONING
+ALTER TABLE TableA REMOVE PARTITIONING;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1
+# Cleaning up after RANGE PARTITIONING test
+DROP TABLE TableA;
+# 4.0 LIST partitioning mgm
+# Creating LIST partitioned table
+CREATE TABLE TableA (a INT)
+ENGINE = 'InnoDB'
+PARTITION BY LIST (a)
+(PARTITION parta VALUES IN (1,8,9) ,
+PARTITION partB VALUES IN (2,10,11) ,
+PARTITION Partc VALUES IN (3,4,7) ,
+PARTITION PartD VALUES IN (5,6,12) );
+INSERT INTO TableA VALUES (1), (2), (7), (8), (9), (10);
+INSERT INTO TableA VALUES (3), (4), (5), (6), (11), (12);
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Test of ADD/DROP PARTITIONS
+# expecting duplicate partition name
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partA VALUES IN (0));
+ERROR HY000: Duplicate partition name parta
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partE VALUES IN (16),
+PARTITION Partf VALUES IN (19),
+PARTITION PartG VALUES IN (22));
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (a) (PARTITION parta VALUES IN (1,8,9) ENGINE = InnoDB, PARTITION partB VALUES IN (2,10,11) ENGINE = InnoDB, PARTITION Partc VALUES IN (3,4,7) ENGINE = InnoDB, PARTITION PartD VALUES IN (5,6,12) ENGINE = InnoDB, PARTITION partE VALUES IN (16) ENGINE = InnoDB, PARTITION Partf VALUES IN (19) ENGINE = InnoDB, PARTITION PartG VALUES IN (22) ENGINE = InnoDB) */
+ALTER TABLE TableA DROP PARTITION partE, PartG;
+ALTER TABLE TableA DROP PARTITION Partf;
+ALTER TABLE TableA ADD PARTITION
+(PARTITION PartE VALUES IN (13));
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (a) (PARTITION parta VALUES IN (1,8,9) ENGINE = InnoDB, PARTITION partB VALUES IN (2,10,11) ENGINE = InnoDB, PARTITION Partc VALUES IN (3,4,7) ENGINE = InnoDB, PARTITION PartD VALUES IN (5,6,12) ENGINE = InnoDB, PARTITION PartE VALUES IN (13) ENGINE = InnoDB) */
+# Test of REORGANIZE PARTITIONS
+ALTER TABLE TableA REORGANIZE PARTITION parta,Partc INTO
+(PARTITION Partc VALUES IN (1,7)
+COMMENT = "Mix 1 of old parta and Partc",
+PARTITION partF VALUES IN (3,9)
+COMMENT = "Mix 2 of old parta and Partc",
+PARTITION parta VALUES IN (4,8)
+COMMENT = "Mix 3 of old parta and Partc");
+ERROR HY000: When reorganising a set of partitions they must be in consecutive order
+ALTER TABLE TableA REORGANIZE PARTITION parta,partB,Partc INTO
+(PARTITION Partc VALUES IN (1,7)
+COMMENT = "Mix 1 of old parta and Partc",
+PARTITION parta VALUES IN (3,9)
+COMMENT = "Mix 2 of old parta and Partc",
+PARTITION partB VALUES IN (4,8)
+COMMENT = "Mix 3 of old parta and Partc");
+SELECT * FROM TableA;
+a
+1
+12
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (a) (PARTITION Partc VALUES IN (1,7) COMMENT = 'Mix 1 of old parta and Partc' ENGINE = InnoDB, PARTITION parta VALUES IN (3,9) COMMENT = 'Mix 2 of old parta and Partc' ENGINE = InnoDB, PARTITION partB VALUES IN (4,8) COMMENT = 'Mix 3 of old parta and Partc' ENGINE = InnoDB, PARTITION PartD VALUES IN (5,6,12) ENGINE = InnoDB, PARTITION PartE VALUES IN (13) ENGINE = InnoDB) */
+# Test of RENAME TABLE
+RENAME TABLE TableA to TableB;
+SELECT * FROM TableB;
+a
+1
+12
+3
+4
+5
+6
+7
+8
+9
+RENAME TABLE TableB to TableA;
+SELECT * FROM TableA;
+a
+1
+12
+3
+4
+5
+6
+7
+8
+9
+# Checking name comparision Upper vs Lower case
+# Error if lower_case_table_names != 0
+# lower_case_table_names: 1
+CREATE TABLE tablea (a INT)
+ENGINE = 'InnoDB'
+PARTITION BY LIST (a)
+(PARTITION parta VALUES IN (1,8,9) ,
+PARTITION partB VALUES IN (2,10,11) ,
+PARTITION Partc VALUES IN (3,4,7) ,
+PARTITION PartD VALUES IN (5,6,12) );
+ERROR 42S01: Table 'tablea' already exists
+SHOW TABLES;
+Tables_in_mysql_test_db
+tablea
+RENAME TABLE TableA to tablea;
+ERROR 42S01: Table 'tablea' already exists
+RENAME TABLE tablea to TableA;
+ERROR 42S01: Table 'tablea' already exists
+SELECT * FROM tablea;
+a
+1
+12
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE tablea;
+Table Create Table
+tablea CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (a) (PARTITION Partc VALUES IN (1,7) COMMENT = 'Mix 1 of old parta and Partc' ENGINE = InnoDB, PARTITION parta VALUES IN (3,9) COMMENT = 'Mix 2 of old parta and Partc' ENGINE = InnoDB, PARTITION partB VALUES IN (4,8) COMMENT = 'Mix 3 of old parta and Partc' ENGINE = InnoDB, PARTITION PartD VALUES IN (5,6,12) ENGINE = InnoDB, PARTITION PartE VALUES IN (13) ENGINE = InnoDB) */
+# Test of REMOVE PARTITIONING
+ALTER TABLE TableA REMOVE PARTITIONING;
+SELECT * FROM TableA;
+a
+1
+12
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1
+# Cleaning up after LIST PARTITIONING test
+DROP TABLE TableA;
+# Cleaning up before exit
+USE test;
+DROP DATABASE MySQL_Test_DB;
diff --git a/mysql-test/suite/parts/r/partition_mgm_lc1_memory.result b/mysql-test/suite/parts/r/partition_mgm_lc1_memory.result
new file mode 100644
index 00000000000..0c6dfbeff94
--- /dev/null
+++ b/mysql-test/suite/parts/r/partition_mgm_lc1_memory.result
@@ -0,0 +1,797 @@
+# Creating database MySQL_TEST_DB
+CREATE DATABASE MySQL_Test_DB;
+USE MySQL_Test_DB;
+# 1.0 KEY partitioning mgm
+# Creating KEY partitioned table
+CREATE TABLE TableA (a INT)
+ENGINE = 'Memory'
+PARTITION BY KEY (a)
+(PARTITION parta ,
+PARTITION partB ,
+PARTITION Partc ,
+PARTITION PartD );
+INSERT INTO TableA VALUES (1), (2), (7), (8), (9), (10);
+INSERT INTO TableA VALUES (3), (4), (5), (6), (11), (12);
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Test of ADD/COALESCE PARTITIONS
+# expecting duplicate partition name
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partA,
+PARTITION Parta,
+PARTITION PartA);
+ERROR HY000: Duplicate partition name parta
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partE,
+PARTITION Partf,
+PARTITION PartG);
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MEMORY DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION parta ENGINE = MEMORY, PARTITION partB ENGINE = MEMORY, PARTITION Partc ENGINE = MEMORY, PARTITION PartD ENGINE = MEMORY, PARTITION partE ENGINE = MEMORY, PARTITION Partf ENGINE = MEMORY, PARTITION PartG ENGINE = MEMORY) */
+ALTER TABLE TableA COALESCE PARTITION 4;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MEMORY DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION parta ENGINE = MEMORY, PARTITION partB ENGINE = MEMORY, PARTITION Partc ENGINE = MEMORY) */
+# Test of REORGANIZE PARTITIONS
+# Should not work on HASH/KEY
+ALTER TABLE TableA REORGANIZE PARTITION parta,partB,Partc INTO
+(PARTITION PARTA ,
+PARTITION partc );
+ERROR HY000: REORGANISE PARTITION can only be used to reorganise partitions not to change their numbers
+ALTER TABLE TableA REORGANIZE PARTITION parta,Partc INTO
+(PARTITION partB ,
+PARTITION parta );
+ERROR HY000: When reorganising a set of partitions they must be in consecutive order
+ALTER TABLE TableA REORGANIZE PARTITION parta,partB INTO
+(PARTITION partB COMMENT="Previusly named parta",
+PARTITION parta COMMENT="Previusly named partB");
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MEMORY DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION partB COMMENT = 'Previusly named parta' ENGINE = MEMORY, PARTITION parta COMMENT = 'Previusly named partB' ENGINE = MEMORY, PARTITION Partc ENGINE = MEMORY) */
+# Test of RENAME TABLE
+RENAME TABLE TableA to TableB;
+SELECT * FROM TableB;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+RENAME TABLE TableB to TableA;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Checking name comparision Upper vs Lower case
+# Error if lower_case_table_names != 0
+# lower_case_table_names: 1
+CREATE TABLE tablea (a INT)
+ENGINE = 'Memory'
+PARTITION BY KEY (a)
+(PARTITION parta ,
+PARTITION partB ,
+PARTITION Partc ,
+PARTITION PartD );
+ERROR 42S01: Table 'tablea' already exists
+SHOW TABLES;
+Tables_in_mysql_test_db
+tablea
+RENAME TABLE TableA to tablea;
+ERROR 42S01: Table 'tablea' already exists
+RENAME TABLE tablea to TableA;
+ERROR 42S01: Table 'tablea' already exists
+SELECT * FROM tablea;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE tablea;
+Table Create Table
+tablea CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MEMORY DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION partB COMMENT = 'Previusly named parta' ENGINE = MEMORY, PARTITION parta COMMENT = 'Previusly named partB' ENGINE = MEMORY, PARTITION Partc ENGINE = MEMORY) */
+# Test of REMOVE PARTITIONING
+ALTER TABLE TableA REMOVE PARTITIONING;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MEMORY DEFAULT CHARSET=latin1
+# Cleaning up after KEY PARTITIONING test
+DROP TABLE TableA;
+# 2.0 HASH partitioning mgm
+# expecting duplicate partition name
+CREATE TABLE TableA (a INT)
+ENGINE = 'Memory'
+PARTITION BY HASH (a)
+(PARTITION parta ,
+PARTITION partA ,
+PARTITION Parta ,
+PARTITION PartA );
+ERROR HY000: Duplicate partition name parta
+# Creating Hash partitioned table
+CREATE TABLE TableA (a INT)
+ENGINE = 'Memory'
+PARTITION BY HASH (a)
+(PARTITION parta ,
+PARTITION partB ,
+PARTITION Partc ,
+PARTITION PartD );
+INSERT INTO TableA VALUES (1), (2), (7), (8), (9), (10);
+INSERT INTO TableA VALUES (3), (4), (5), (6), (11), (12);
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Test of ADD/COALESCE PARTITIONS
+# expecting duplicate partition name
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partA,
+PARTITION Parta,
+PARTITION PartA);
+ERROR HY000: Duplicate partition name parta
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partE,
+PARTITION Partf,
+PARTITION PartG);
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MEMORY DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (a) (PARTITION parta ENGINE = MEMORY, PARTITION partB ENGINE = MEMORY, PARTITION Partc ENGINE = MEMORY, PARTITION PartD ENGINE = MEMORY, PARTITION partE ENGINE = MEMORY, PARTITION Partf ENGINE = MEMORY, PARTITION PartG ENGINE = MEMORY) */
+ALTER TABLE TableA COALESCE PARTITION 4;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MEMORY DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (a) (PARTITION parta ENGINE = MEMORY, PARTITION partB ENGINE = MEMORY, PARTITION Partc ENGINE = MEMORY) */
+# Test of REORGANIZE PARTITIONS
+# Should not work on HASH/KEY
+ALTER TABLE TableA REORGANIZE PARTITION parta,partB,Partc INTO
+(PARTITION PARTA ,
+PARTITION partc );
+ERROR HY000: REORGANISE PARTITION can only be used to reorganise partitions not to change their numbers
+ALTER TABLE TableA REORGANIZE PARTITION parta,Partc INTO
+(PARTITION partB ,
+PARTITION parta );
+ERROR HY000: When reorganising a set of partitions they must be in consecutive order
+ALTER TABLE TableA REORGANIZE PARTITION parta,partB INTO
+(PARTITION partB COMMENT="Previusly named parta",
+PARTITION parta COMMENT="Previusly named partB");
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MEMORY DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (a) (PARTITION partB COMMENT = 'Previusly named parta' ENGINE = MEMORY, PARTITION parta COMMENT = 'Previusly named partB' ENGINE = MEMORY, PARTITION Partc ENGINE = MEMORY) */
+# Test of RENAME TABLE
+RENAME TABLE TableA to TableB;
+SELECT * FROM TableB;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+RENAME TABLE TableB to TableA;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Checking name comparision Upper vs Lower case
+# Error if lower_case_table_names != 0
+# lower_case_table_names: 1
+CREATE TABLE tablea (a INT)
+ENGINE = 'Memory'
+PARTITION BY HASH (a)
+(PARTITION parta ,
+PARTITION partB ,
+PARTITION Partc ,
+PARTITION PartD );
+ERROR 42S01: Table 'tablea' already exists
+SHOW TABLES;
+Tables_in_mysql_test_db
+tablea
+RENAME TABLE TableA to tablea;
+ERROR 42S01: Table 'tablea' already exists
+RENAME TABLE tablea to TableA;
+ERROR 42S01: Table 'tablea' already exists
+SELECT * FROM tablea;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE tablea;
+Table Create Table
+tablea CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MEMORY DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (a) (PARTITION partB COMMENT = 'Previusly named parta' ENGINE = MEMORY, PARTITION parta COMMENT = 'Previusly named partB' ENGINE = MEMORY, PARTITION Partc ENGINE = MEMORY) */
+# Test of REMOVE PARTITIONING
+ALTER TABLE TableA REMOVE PARTITIONING;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MEMORY DEFAULT CHARSET=latin1
+# Cleaning up after HASH PARTITIONING test
+DROP TABLE TableA;
+# 3.0 RANGE partitioning mgm
+# Creating RANGE partitioned table
+CREATE TABLE TableA (a INT)
+ENGINE = 'Memory'
+PARTITION BY RANGE (a)
+(PARTITION parta VALUES LESS THAN (4) ,
+PARTITION partB VALUES LESS THAN (7) ,
+PARTITION Partc VALUES LESS THAN (10) ,
+PARTITION PartD VALUES LESS THAN (13) );
+INSERT INTO TableA VALUES (1), (2), (7), (8), (9), (10);
+INSERT INTO TableA VALUES (3), (4), (5), (6), (11), (12);
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Test of ADD/DROP PARTITIONS
+# expecting duplicate partition name
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partA VALUES LESS THAN (MAXVALUE));
+ERROR HY000: Duplicate partition name parta
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partE VALUES LESS THAN (16),
+PARTITION Partf VALUES LESS THAN (19),
+PARTITION PartG VALUES LESS THAN (22));
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MEMORY DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (a) (PARTITION parta VALUES LESS THAN (4) ENGINE = MEMORY, PARTITION partB VALUES LESS THAN (7) ENGINE = MEMORY, PARTITION Partc VALUES LESS THAN (10) ENGINE = MEMORY, PARTITION PartD VALUES LESS THAN (13) ENGINE = MEMORY, PARTITION partE VALUES LESS THAN (16) ENGINE = MEMORY, PARTITION Partf VALUES LESS THAN (19) ENGINE = MEMORY, PARTITION PartG VALUES LESS THAN (22) ENGINE = MEMORY) */
+ALTER TABLE TableA DROP PARTITION partE, PartG;
+ALTER TABLE TableA DROP PARTITION Partf;
+ALTER TABLE TableA ADD PARTITION
+(PARTITION PartE VALUES LESS THAN (MAXVALUE));
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MEMORY DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (a) (PARTITION parta VALUES LESS THAN (4) ENGINE = MEMORY, PARTITION partB VALUES LESS THAN (7) ENGINE = MEMORY, PARTITION Partc VALUES LESS THAN (10) ENGINE = MEMORY, PARTITION PartD VALUES LESS THAN (13) ENGINE = MEMORY, PARTITION PartE VALUES LESS THAN MAXVALUE ENGINE = MEMORY) */
+# Test of REORGANIZE PARTITIONS
+# Error since it must reorganize a consecutive range
+ALTER TABLE TableA REORGANIZE PARTITION parta,Partc INTO
+(PARTITION partB VALUES LESS THAN (3) ,
+PARTITION parta VALUES LESS THAN (11) );
+ERROR HY000: When reorganising a set of partitions they must be in consecutive order
+ALTER TABLE TableA REORGANIZE PARTITION partB,Partc,PartD,PartE INTO
+(PARTITION partD VALUES LESS THAN (8)
+COMMENT="Previously partB and partly Partc",
+PARTITION partB VALUES LESS THAN (11)
+COMMENT="Previously partly Partc and partly PartD",
+PARTITION partC VALUES LESS THAN (MAXVALUE)
+COMMENT="Previously partly PartD");
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MEMORY DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (a) (PARTITION parta VALUES LESS THAN (4) ENGINE = MEMORY, PARTITION partD VALUES LESS THAN (8) COMMENT = 'Previously partB and partly Partc' ENGINE = MEMORY, PARTITION partB VALUES LESS THAN (11) COMMENT = 'Previously partly Partc and partly PartD' ENGINE = MEMORY, PARTITION partC VALUES LESS THAN MAXVALUE COMMENT = 'Previously partly PartD' ENGINE = MEMORY) */
+# Test of RENAME TABLE
+RENAME TABLE TableA to TableB;
+SELECT * FROM TableB;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+RENAME TABLE TableB to TableA;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Checking name comparision Upper vs Lower case
+# Error if lower_case_table_names != 0
+# lower_case_table_names: 1
+CREATE TABLE tablea (a INT)
+ENGINE = 'Memory'
+PARTITION BY RANGE (a)
+(PARTITION parta VALUES LESS THAN (4) ,
+PARTITION partB VALUES LESS THAN (7) ,
+PARTITION Partc VALUES LESS THAN (10) ,
+PARTITION PartD VALUES LESS THAN (13) );
+ERROR 42S01: Table 'tablea' already exists
+SHOW TABLES;
+Tables_in_mysql_test_db
+tablea
+RENAME TABLE TableA to tablea;
+ERROR 42S01: Table 'tablea' already exists
+RENAME TABLE tablea to TableA;
+ERROR 42S01: Table 'tablea' already exists
+SELECT * FROM tablea;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE tablea;
+Table Create Table
+tablea CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MEMORY DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (a) (PARTITION parta VALUES LESS THAN (4) ENGINE = MEMORY, PARTITION partD VALUES LESS THAN (8) COMMENT = 'Previously partB and partly Partc' ENGINE = MEMORY, PARTITION partB VALUES LESS THAN (11) COMMENT = 'Previously partly Partc and partly PartD' ENGINE = MEMORY, PARTITION partC VALUES LESS THAN MAXVALUE COMMENT = 'Previously partly PartD' ENGINE = MEMORY) */
+# Test of REMOVE PARTITIONING
+ALTER TABLE TableA REMOVE PARTITIONING;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MEMORY DEFAULT CHARSET=latin1
+# Cleaning up after RANGE PARTITIONING test
+DROP TABLE TableA;
+# 4.0 LIST partitioning mgm
+# Creating LIST partitioned table
+CREATE TABLE TableA (a INT)
+ENGINE = 'Memory'
+PARTITION BY LIST (a)
+(PARTITION parta VALUES IN (1,8,9) ,
+PARTITION partB VALUES IN (2,10,11) ,
+PARTITION Partc VALUES IN (3,4,7) ,
+PARTITION PartD VALUES IN (5,6,12) );
+INSERT INTO TableA VALUES (1), (2), (7), (8), (9), (10);
+INSERT INTO TableA VALUES (3), (4), (5), (6), (11), (12);
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Test of ADD/DROP PARTITIONS
+# expecting duplicate partition name
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partA VALUES IN (0));
+ERROR HY000: Duplicate partition name parta
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partE VALUES IN (16),
+PARTITION Partf VALUES IN (19),
+PARTITION PartG VALUES IN (22));
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MEMORY DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (a) (PARTITION parta VALUES IN (1,8,9) ENGINE = MEMORY, PARTITION partB VALUES IN (2,10,11) ENGINE = MEMORY, PARTITION Partc VALUES IN (3,4,7) ENGINE = MEMORY, PARTITION PartD VALUES IN (5,6,12) ENGINE = MEMORY, PARTITION partE VALUES IN (16) ENGINE = MEMORY, PARTITION Partf VALUES IN (19) ENGINE = MEMORY, PARTITION PartG VALUES IN (22) ENGINE = MEMORY) */
+ALTER TABLE TableA DROP PARTITION partE, PartG;
+ALTER TABLE TableA DROP PARTITION Partf;
+ALTER TABLE TableA ADD PARTITION
+(PARTITION PartE VALUES IN (13));
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MEMORY DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (a) (PARTITION parta VALUES IN (1,8,9) ENGINE = MEMORY, PARTITION partB VALUES IN (2,10,11) ENGINE = MEMORY, PARTITION Partc VALUES IN (3,4,7) ENGINE = MEMORY, PARTITION PartD VALUES IN (5,6,12) ENGINE = MEMORY, PARTITION PartE VALUES IN (13) ENGINE = MEMORY) */
+# Test of REORGANIZE PARTITIONS
+ALTER TABLE TableA REORGANIZE PARTITION parta,Partc INTO
+(PARTITION Partc VALUES IN (1,7)
+COMMENT = "Mix 1 of old parta and Partc",
+PARTITION partF VALUES IN (3,9)
+COMMENT = "Mix 2 of old parta and Partc",
+PARTITION parta VALUES IN (4,8)
+COMMENT = "Mix 3 of old parta and Partc");
+ERROR HY000: When reorganising a set of partitions they must be in consecutive order
+ALTER TABLE TableA REORGANIZE PARTITION parta,partB,Partc INTO
+(PARTITION Partc VALUES IN (1,7)
+COMMENT = "Mix 1 of old parta and Partc",
+PARTITION parta VALUES IN (3,9)
+COMMENT = "Mix 2 of old parta and Partc",
+PARTITION partB VALUES IN (4,8)
+COMMENT = "Mix 3 of old parta and Partc");
+SELECT * FROM TableA;
+a
+1
+12
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MEMORY DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (a) (PARTITION Partc VALUES IN (1,7) COMMENT = 'Mix 1 of old parta and Partc' ENGINE = MEMORY, PARTITION parta VALUES IN (3,9) COMMENT = 'Mix 2 of old parta and Partc' ENGINE = MEMORY, PARTITION partB VALUES IN (4,8) COMMENT = 'Mix 3 of old parta and Partc' ENGINE = MEMORY, PARTITION PartD VALUES IN (5,6,12) ENGINE = MEMORY, PARTITION PartE VALUES IN (13) ENGINE = MEMORY) */
+# Test of RENAME TABLE
+RENAME TABLE TableA to TableB;
+SELECT * FROM TableB;
+a
+1
+12
+3
+4
+5
+6
+7
+8
+9
+RENAME TABLE TableB to TableA;
+SELECT * FROM TableA;
+a
+1
+12
+3
+4
+5
+6
+7
+8
+9
+# Checking name comparision Upper vs Lower case
+# Error if lower_case_table_names != 0
+# lower_case_table_names: 1
+CREATE TABLE tablea (a INT)
+ENGINE = 'Memory'
+PARTITION BY LIST (a)
+(PARTITION parta VALUES IN (1,8,9) ,
+PARTITION partB VALUES IN (2,10,11) ,
+PARTITION Partc VALUES IN (3,4,7) ,
+PARTITION PartD VALUES IN (5,6,12) );
+ERROR 42S01: Table 'tablea' already exists
+SHOW TABLES;
+Tables_in_mysql_test_db
+tablea
+RENAME TABLE TableA to tablea;
+ERROR 42S01: Table 'tablea' already exists
+RENAME TABLE tablea to TableA;
+ERROR 42S01: Table 'tablea' already exists
+SELECT * FROM tablea;
+a
+1
+12
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE tablea;
+Table Create Table
+tablea CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MEMORY DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (a) (PARTITION Partc VALUES IN (1,7) COMMENT = 'Mix 1 of old parta and Partc' ENGINE = MEMORY, PARTITION parta VALUES IN (3,9) COMMENT = 'Mix 2 of old parta and Partc' ENGINE = MEMORY, PARTITION partB VALUES IN (4,8) COMMENT = 'Mix 3 of old parta and Partc' ENGINE = MEMORY, PARTITION PartD VALUES IN (5,6,12) ENGINE = MEMORY, PARTITION PartE VALUES IN (13) ENGINE = MEMORY) */
+# Test of REMOVE PARTITIONING
+ALTER TABLE TableA REMOVE PARTITIONING;
+SELECT * FROM TableA;
+a
+1
+12
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MEMORY DEFAULT CHARSET=latin1
+# Cleaning up after LIST PARTITIONING test
+DROP TABLE TableA;
+# Cleaning up before exit
+USE test;
+DROP DATABASE MySQL_Test_DB;
diff --git a/mysql-test/suite/parts/r/partition_mgm_lc1_myisam.result b/mysql-test/suite/parts/r/partition_mgm_lc1_myisam.result
new file mode 100644
index 00000000000..714ae639e95
--- /dev/null
+++ b/mysql-test/suite/parts/r/partition_mgm_lc1_myisam.result
@@ -0,0 +1,797 @@
+# Creating database MySQL_TEST_DB
+CREATE DATABASE MySQL_Test_DB;
+USE MySQL_Test_DB;
+# 1.0 KEY partitioning mgm
+# Creating KEY partitioned table
+CREATE TABLE TableA (a INT)
+ENGINE = 'MyISAM'
+PARTITION BY KEY (a)
+(PARTITION parta ,
+PARTITION partB ,
+PARTITION Partc ,
+PARTITION PartD );
+INSERT INTO TableA VALUES (1), (2), (7), (8), (9), (10);
+INSERT INTO TableA VALUES (3), (4), (5), (6), (11), (12);
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Test of ADD/COALESCE PARTITIONS
+# expecting duplicate partition name
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partA,
+PARTITION Parta,
+PARTITION PartA);
+ERROR HY000: Duplicate partition name parta
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partE,
+PARTITION Partf,
+PARTITION PartG);
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION parta ENGINE = MyISAM, PARTITION partB ENGINE = MyISAM, PARTITION Partc ENGINE = MyISAM, PARTITION PartD ENGINE = MyISAM, PARTITION partE ENGINE = MyISAM, PARTITION Partf ENGINE = MyISAM, PARTITION PartG ENGINE = MyISAM) */
+ALTER TABLE TableA COALESCE PARTITION 4;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION parta ENGINE = MyISAM, PARTITION partB ENGINE = MyISAM, PARTITION Partc ENGINE = MyISAM) */
+# Test of REORGANIZE PARTITIONS
+# Should not work on HASH/KEY
+ALTER TABLE TableA REORGANIZE PARTITION parta,partB,Partc INTO
+(PARTITION PARTA ,
+PARTITION partc );
+ERROR HY000: REORGANISE PARTITION can only be used to reorganise partitions not to change their numbers
+ALTER TABLE TableA REORGANIZE PARTITION parta,Partc INTO
+(PARTITION partB ,
+PARTITION parta );
+ERROR HY000: When reorganising a set of partitions they must be in consecutive order
+ALTER TABLE TableA REORGANIZE PARTITION parta,partB INTO
+(PARTITION partB COMMENT="Previusly named parta",
+PARTITION parta COMMENT="Previusly named partB");
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION partB COMMENT = 'Previusly named parta' ENGINE = MyISAM, PARTITION parta COMMENT = 'Previusly named partB' ENGINE = MyISAM, PARTITION Partc ENGINE = MyISAM) */
+# Test of RENAME TABLE
+RENAME TABLE TableA to TableB;
+SELECT * FROM TableB;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+RENAME TABLE TableB to TableA;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Checking name comparision Upper vs Lower case
+# Error if lower_case_table_names != 0
+# lower_case_table_names: 1
+CREATE TABLE tablea (a INT)
+ENGINE = 'MyISAM'
+PARTITION BY KEY (a)
+(PARTITION parta ,
+PARTITION partB ,
+PARTITION Partc ,
+PARTITION PartD );
+ERROR 42S01: Table 'tablea' already exists
+SHOW TABLES;
+Tables_in_mysql_test_db
+tablea
+RENAME TABLE TableA to tablea;
+ERROR 42S01: Table 'tablea' already exists
+RENAME TABLE tablea to TableA;
+ERROR 42S01: Table 'tablea' already exists
+SELECT * FROM tablea;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE tablea;
+Table Create Table
+tablea CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION partB COMMENT = 'Previusly named parta' ENGINE = MyISAM, PARTITION parta COMMENT = 'Previusly named partB' ENGINE = MyISAM, PARTITION Partc ENGINE = MyISAM) */
+# Test of REMOVE PARTITIONING
+ALTER TABLE TableA REMOVE PARTITIONING;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+# Cleaning up after KEY PARTITIONING test
+DROP TABLE TableA;
+# 2.0 HASH partitioning mgm
+# expecting duplicate partition name
+CREATE TABLE TableA (a INT)
+ENGINE = 'MyISAM'
+PARTITION BY HASH (a)
+(PARTITION parta ,
+PARTITION partA ,
+PARTITION Parta ,
+PARTITION PartA );
+ERROR HY000: Duplicate partition name parta
+# Creating Hash partitioned table
+CREATE TABLE TableA (a INT)
+ENGINE = 'MyISAM'
+PARTITION BY HASH (a)
+(PARTITION parta ,
+PARTITION partB ,
+PARTITION Partc ,
+PARTITION PartD );
+INSERT INTO TableA VALUES (1), (2), (7), (8), (9), (10);
+INSERT INTO TableA VALUES (3), (4), (5), (6), (11), (12);
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Test of ADD/COALESCE PARTITIONS
+# expecting duplicate partition name
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partA,
+PARTITION Parta,
+PARTITION PartA);
+ERROR HY000: Duplicate partition name parta
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partE,
+PARTITION Partf,
+PARTITION PartG);
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (a) (PARTITION parta ENGINE = MyISAM, PARTITION partB ENGINE = MyISAM, PARTITION Partc ENGINE = MyISAM, PARTITION PartD ENGINE = MyISAM, PARTITION partE ENGINE = MyISAM, PARTITION Partf ENGINE = MyISAM, PARTITION PartG ENGINE = MyISAM) */
+ALTER TABLE TableA COALESCE PARTITION 4;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (a) (PARTITION parta ENGINE = MyISAM, PARTITION partB ENGINE = MyISAM, PARTITION Partc ENGINE = MyISAM) */
+# Test of REORGANIZE PARTITIONS
+# Should not work on HASH/KEY
+ALTER TABLE TableA REORGANIZE PARTITION parta,partB,Partc INTO
+(PARTITION PARTA ,
+PARTITION partc );
+ERROR HY000: REORGANISE PARTITION can only be used to reorganise partitions not to change their numbers
+ALTER TABLE TableA REORGANIZE PARTITION parta,Partc INTO
+(PARTITION partB ,
+PARTITION parta );
+ERROR HY000: When reorganising a set of partitions they must be in consecutive order
+ALTER TABLE TableA REORGANIZE PARTITION parta,partB INTO
+(PARTITION partB COMMENT="Previusly named parta",
+PARTITION parta COMMENT="Previusly named partB");
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (a) (PARTITION partB COMMENT = 'Previusly named parta' ENGINE = MyISAM, PARTITION parta COMMENT = 'Previusly named partB' ENGINE = MyISAM, PARTITION Partc ENGINE = MyISAM) */
+# Test of RENAME TABLE
+RENAME TABLE TableA to TableB;
+SELECT * FROM TableB;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+RENAME TABLE TableB to TableA;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Checking name comparision Upper vs Lower case
+# Error if lower_case_table_names != 0
+# lower_case_table_names: 1
+CREATE TABLE tablea (a INT)
+ENGINE = 'MyISAM'
+PARTITION BY HASH (a)
+(PARTITION parta ,
+PARTITION partB ,
+PARTITION Partc ,
+PARTITION PartD );
+ERROR 42S01: Table 'tablea' already exists
+SHOW TABLES;
+Tables_in_mysql_test_db
+tablea
+RENAME TABLE TableA to tablea;
+ERROR 42S01: Table 'tablea' already exists
+RENAME TABLE tablea to TableA;
+ERROR 42S01: Table 'tablea' already exists
+SELECT * FROM tablea;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE tablea;
+Table Create Table
+tablea CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (a) (PARTITION partB COMMENT = 'Previusly named parta' ENGINE = MyISAM, PARTITION parta COMMENT = 'Previusly named partB' ENGINE = MyISAM, PARTITION Partc ENGINE = MyISAM) */
+# Test of REMOVE PARTITIONING
+ALTER TABLE TableA REMOVE PARTITIONING;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+# Cleaning up after HASH PARTITIONING test
+DROP TABLE TableA;
+# 3.0 RANGE partitioning mgm
+# Creating RANGE partitioned table
+CREATE TABLE TableA (a INT)
+ENGINE = 'MyISAM'
+PARTITION BY RANGE (a)
+(PARTITION parta VALUES LESS THAN (4) ,
+PARTITION partB VALUES LESS THAN (7) ,
+PARTITION Partc VALUES LESS THAN (10) ,
+PARTITION PartD VALUES LESS THAN (13) );
+INSERT INTO TableA VALUES (1), (2), (7), (8), (9), (10);
+INSERT INTO TableA VALUES (3), (4), (5), (6), (11), (12);
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Test of ADD/DROP PARTITIONS
+# expecting duplicate partition name
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partA VALUES LESS THAN (MAXVALUE));
+ERROR HY000: Duplicate partition name parta
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partE VALUES LESS THAN (16),
+PARTITION Partf VALUES LESS THAN (19),
+PARTITION PartG VALUES LESS THAN (22));
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (a) (PARTITION parta VALUES LESS THAN (4) ENGINE = MyISAM, PARTITION partB VALUES LESS THAN (7) ENGINE = MyISAM, PARTITION Partc VALUES LESS THAN (10) ENGINE = MyISAM, PARTITION PartD VALUES LESS THAN (13) ENGINE = MyISAM, PARTITION partE VALUES LESS THAN (16) ENGINE = MyISAM, PARTITION Partf VALUES LESS THAN (19) ENGINE = MyISAM, PARTITION PartG VALUES LESS THAN (22) ENGINE = MyISAM) */
+ALTER TABLE TableA DROP PARTITION partE, PartG;
+ALTER TABLE TableA DROP PARTITION Partf;
+ALTER TABLE TableA ADD PARTITION
+(PARTITION PartE VALUES LESS THAN (MAXVALUE));
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (a) (PARTITION parta VALUES LESS THAN (4) ENGINE = MyISAM, PARTITION partB VALUES LESS THAN (7) ENGINE = MyISAM, PARTITION Partc VALUES LESS THAN (10) ENGINE = MyISAM, PARTITION PartD VALUES LESS THAN (13) ENGINE = MyISAM, PARTITION PartE VALUES LESS THAN MAXVALUE ENGINE = MyISAM) */
+# Test of REORGANIZE PARTITIONS
+# Error since it must reorganize a consecutive range
+ALTER TABLE TableA REORGANIZE PARTITION parta,Partc INTO
+(PARTITION partB VALUES LESS THAN (3) ,
+PARTITION parta VALUES LESS THAN (11) );
+ERROR HY000: When reorganising a set of partitions they must be in consecutive order
+ALTER TABLE TableA REORGANIZE PARTITION partB,Partc,PartD,PartE INTO
+(PARTITION partD VALUES LESS THAN (8)
+COMMENT="Previously partB and partly Partc",
+PARTITION partB VALUES LESS THAN (11)
+COMMENT="Previously partly Partc and partly PartD",
+PARTITION partC VALUES LESS THAN (MAXVALUE)
+COMMENT="Previously partly PartD");
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (a) (PARTITION parta VALUES LESS THAN (4) ENGINE = MyISAM, PARTITION partD VALUES LESS THAN (8) COMMENT = 'Previously partB and partly Partc' ENGINE = MyISAM, PARTITION partB VALUES LESS THAN (11) COMMENT = 'Previously partly Partc and partly PartD' ENGINE = MyISAM, PARTITION partC VALUES LESS THAN MAXVALUE COMMENT = 'Previously partly PartD' ENGINE = MyISAM) */
+# Test of RENAME TABLE
+RENAME TABLE TableA to TableB;
+SELECT * FROM TableB;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+RENAME TABLE TableB to TableA;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Checking name comparision Upper vs Lower case
+# Error if lower_case_table_names != 0
+# lower_case_table_names: 1
+CREATE TABLE tablea (a INT)
+ENGINE = 'MyISAM'
+PARTITION BY RANGE (a)
+(PARTITION parta VALUES LESS THAN (4) ,
+PARTITION partB VALUES LESS THAN (7) ,
+PARTITION Partc VALUES LESS THAN (10) ,
+PARTITION PartD VALUES LESS THAN (13) );
+ERROR 42S01: Table 'tablea' already exists
+SHOW TABLES;
+Tables_in_mysql_test_db
+tablea
+RENAME TABLE TableA to tablea;
+ERROR 42S01: Table 'tablea' already exists
+RENAME TABLE tablea to TableA;
+ERROR 42S01: Table 'tablea' already exists
+SELECT * FROM tablea;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE tablea;
+Table Create Table
+tablea CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (a) (PARTITION parta VALUES LESS THAN (4) ENGINE = MyISAM, PARTITION partD VALUES LESS THAN (8) COMMENT = 'Previously partB and partly Partc' ENGINE = MyISAM, PARTITION partB VALUES LESS THAN (11) COMMENT = 'Previously partly Partc and partly PartD' ENGINE = MyISAM, PARTITION partC VALUES LESS THAN MAXVALUE COMMENT = 'Previously partly PartD' ENGINE = MyISAM) */
+# Test of REMOVE PARTITIONING
+ALTER TABLE TableA REMOVE PARTITIONING;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+# Cleaning up after RANGE PARTITIONING test
+DROP TABLE TableA;
+# 4.0 LIST partitioning mgm
+# Creating LIST partitioned table
+CREATE TABLE TableA (a INT)
+ENGINE = 'MyISAM'
+PARTITION BY LIST (a)
+(PARTITION parta VALUES IN (1,8,9) ,
+PARTITION partB VALUES IN (2,10,11) ,
+PARTITION Partc VALUES IN (3,4,7) ,
+PARTITION PartD VALUES IN (5,6,12) );
+INSERT INTO TableA VALUES (1), (2), (7), (8), (9), (10);
+INSERT INTO TableA VALUES (3), (4), (5), (6), (11), (12);
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Test of ADD/DROP PARTITIONS
+# expecting duplicate partition name
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partA VALUES IN (0));
+ERROR HY000: Duplicate partition name parta
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partE VALUES IN (16),
+PARTITION Partf VALUES IN (19),
+PARTITION PartG VALUES IN (22));
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (a) (PARTITION parta VALUES IN (1,8,9) ENGINE = MyISAM, PARTITION partB VALUES IN (2,10,11) ENGINE = MyISAM, PARTITION Partc VALUES IN (3,4,7) ENGINE = MyISAM, PARTITION PartD VALUES IN (5,6,12) ENGINE = MyISAM, PARTITION partE VALUES IN (16) ENGINE = MyISAM, PARTITION Partf VALUES IN (19) ENGINE = MyISAM, PARTITION PartG VALUES IN (22) ENGINE = MyISAM) */
+ALTER TABLE TableA DROP PARTITION partE, PartG;
+ALTER TABLE TableA DROP PARTITION Partf;
+ALTER TABLE TableA ADD PARTITION
+(PARTITION PartE VALUES IN (13));
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (a) (PARTITION parta VALUES IN (1,8,9) ENGINE = MyISAM, PARTITION partB VALUES IN (2,10,11) ENGINE = MyISAM, PARTITION Partc VALUES IN (3,4,7) ENGINE = MyISAM, PARTITION PartD VALUES IN (5,6,12) ENGINE = MyISAM, PARTITION PartE VALUES IN (13) ENGINE = MyISAM) */
+# Test of REORGANIZE PARTITIONS
+ALTER TABLE TableA REORGANIZE PARTITION parta,Partc INTO
+(PARTITION Partc VALUES IN (1,7)
+COMMENT = "Mix 1 of old parta and Partc",
+PARTITION partF VALUES IN (3,9)
+COMMENT = "Mix 2 of old parta and Partc",
+PARTITION parta VALUES IN (4,8)
+COMMENT = "Mix 3 of old parta and Partc");
+ERROR HY000: When reorganising a set of partitions they must be in consecutive order
+ALTER TABLE TableA REORGANIZE PARTITION parta,partB,Partc INTO
+(PARTITION Partc VALUES IN (1,7)
+COMMENT = "Mix 1 of old parta and Partc",
+PARTITION parta VALUES IN (3,9)
+COMMENT = "Mix 2 of old parta and Partc",
+PARTITION partB VALUES IN (4,8)
+COMMENT = "Mix 3 of old parta and Partc");
+SELECT * FROM TableA;
+a
+1
+12
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (a) (PARTITION Partc VALUES IN (1,7) COMMENT = 'Mix 1 of old parta and Partc' ENGINE = MyISAM, PARTITION parta VALUES IN (3,9) COMMENT = 'Mix 2 of old parta and Partc' ENGINE = MyISAM, PARTITION partB VALUES IN (4,8) COMMENT = 'Mix 3 of old parta and Partc' ENGINE = MyISAM, PARTITION PartD VALUES IN (5,6,12) ENGINE = MyISAM, PARTITION PartE VALUES IN (13) ENGINE = MyISAM) */
+# Test of RENAME TABLE
+RENAME TABLE TableA to TableB;
+SELECT * FROM TableB;
+a
+1
+12
+3
+4
+5
+6
+7
+8
+9
+RENAME TABLE TableB to TableA;
+SELECT * FROM TableA;
+a
+1
+12
+3
+4
+5
+6
+7
+8
+9
+# Checking name comparision Upper vs Lower case
+# Error if lower_case_table_names != 0
+# lower_case_table_names: 1
+CREATE TABLE tablea (a INT)
+ENGINE = 'MyISAM'
+PARTITION BY LIST (a)
+(PARTITION parta VALUES IN (1,8,9) ,
+PARTITION partB VALUES IN (2,10,11) ,
+PARTITION Partc VALUES IN (3,4,7) ,
+PARTITION PartD VALUES IN (5,6,12) );
+ERROR 42S01: Table 'tablea' already exists
+SHOW TABLES;
+Tables_in_mysql_test_db
+tablea
+RENAME TABLE TableA to tablea;
+ERROR 42S01: Table 'tablea' already exists
+RENAME TABLE tablea to TableA;
+ERROR 42S01: Table 'tablea' already exists
+SELECT * FROM tablea;
+a
+1
+12
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE tablea;
+Table Create Table
+tablea CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (a) (PARTITION Partc VALUES IN (1,7) COMMENT = 'Mix 1 of old parta and Partc' ENGINE = MyISAM, PARTITION parta VALUES IN (3,9) COMMENT = 'Mix 2 of old parta and Partc' ENGINE = MyISAM, PARTITION partB VALUES IN (4,8) COMMENT = 'Mix 3 of old parta and Partc' ENGINE = MyISAM, PARTITION PartD VALUES IN (5,6,12) ENGINE = MyISAM, PARTITION PartE VALUES IN (13) ENGINE = MyISAM) */
+# Test of REMOVE PARTITIONING
+ALTER TABLE TableA REMOVE PARTITIONING;
+SELECT * FROM TableA;
+a
+1
+12
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+# Cleaning up after LIST PARTITIONING test
+DROP TABLE TableA;
+# Cleaning up before exit
+USE test;
+DROP DATABASE MySQL_Test_DB;
diff --git a/mysql-test/suite/parts/r/partition_mgm_lc1_ndb.result b/mysql-test/suite/parts/r/partition_mgm_lc1_ndb.result
new file mode 100644
index 00000000000..3bf9b073c80
--- /dev/null
+++ b/mysql-test/suite/parts/r/partition_mgm_lc1_ndb.result
@@ -0,0 +1,204 @@
+# Creating database MySQL_TEST_DB
+CREATE DATABASE MySQL_Test_DB;
+USE MySQL_Test_DB;
+# 1.0 KEY partitioning mgm
+# Creating KEY partitioned table
+CREATE TABLE TableA (a INT)
+ENGINE = 'NDBCluster'
+PARTITION BY KEY (a)
+(PARTITION parta ,
+PARTITION partB ,
+PARTITION Partc ,
+PARTITION PartD );
+INSERT INTO TableA VALUES (1), (2), (7), (8), (9), (10);
+INSERT INTO TableA VALUES (3), (4), (5), (6), (11), (12);
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Test of ADD/COALESCE PARTITIONS
+# expecting duplicate partition name
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partA,
+PARTITION Parta,
+PARTITION PartA);
+ERROR HY000: Duplicate partition name parta
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partE,
+PARTITION Partf,
+PARTITION PartG);
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=ndbcluster DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION parta ENGINE = ndbcluster, PARTITION partB ENGINE = ndbcluster, PARTITION Partc ENGINE = ndbcluster, PARTITION PartD ENGINE = ndbcluster, PARTITION partE ENGINE = ndbcluster, PARTITION Partf ENGINE = ndbcluster, PARTITION PartG ENGINE = ndbcluster) */
+ALTER TABLE TableA COALESCE PARTITION 4;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=ndbcluster DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION parta ENGINE = ndbcluster, PARTITION partB ENGINE = ndbcluster, PARTITION Partc ENGINE = ndbcluster) */
+# Test of REORGANIZE PARTITIONS
+# Should not work on HASH/KEY
+ALTER TABLE TableA REORGANIZE PARTITION parta,partB,Partc INTO
+(PARTITION PARTA ,
+PARTITION partc );
+ERROR HY000: REORGANISE PARTITION can only be used to reorganise partitions not to change their numbers
+ALTER TABLE TableA REORGANIZE PARTITION parta,Partc INTO
+(PARTITION partB ,
+PARTITION parta );
+ERROR HY000: When reorganising a set of partitions they must be in consecutive order
+ALTER TABLE TableA REORGANIZE PARTITION parta,partB INTO
+(PARTITION partB COMMENT="Previusly named parta",
+PARTITION parta COMMENT="Previusly named partB");
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=ndbcluster DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION partB COMMENT = 'Previusly named parta' ENGINE = ndbcluster, PARTITION parta COMMENT = 'Previusly named partB' ENGINE = ndbcluster, PARTITION Partc ENGINE = ndbcluster) */
+# Test of RENAME TABLE
+RENAME TABLE TableA to TableB;
+SELECT * FROM TableB;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+RENAME TABLE TableB to TableA;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Checking name comparision Upper vs Lower case
+# Error if lower_case_table_names != 0
+# lower_case_table_names: 1
+CREATE TABLE tablea (a INT)
+ENGINE = 'NDBCluster'
+PARTITION BY KEY (a)
+(PARTITION parta ,
+PARTITION partB ,
+PARTITION Partc ,
+PARTITION PartD );
+ERROR 42S01: Table 'tablea' already exists
+SHOW TABLES;
+Tables_in_mysql_test_db
+tablea
+RENAME TABLE TableA to tablea;
+ERROR 42S01: Table 'tablea' already exists
+RENAME TABLE tablea to TableA;
+ERROR 42S01: Table 'tablea' already exists
+SELECT * FROM tablea;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE tablea;
+Table Create Table
+tablea CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=ndbcluster DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION partB COMMENT = 'Previusly named parta' ENGINE = ndbcluster, PARTITION parta COMMENT = 'Previusly named partB' ENGINE = ndbcluster, PARTITION Partc ENGINE = ndbcluster) */
+# Test of REMOVE PARTITIONING
+ALTER TABLE TableA REMOVE PARTITIONING;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=ndbcluster DEFAULT CHARSET=latin1
+# Cleaning up after KEY PARTITIONING test
+DROP TABLE TableA;
+# Cleaning up before exit
+USE test;
+DROP DATABASE MySQL_Test_DB;
diff --git a/mysql-test/suite/parts/r/partition_mgm_lc2_archive.result b/mysql-test/suite/parts/r/partition_mgm_lc2_archive.result
new file mode 100644
index 00000000000..cdc278f36cd
--- /dev/null
+++ b/mysql-test/suite/parts/r/partition_mgm_lc2_archive.result
@@ -0,0 +1,797 @@
+# Creating database MySQL_TEST_DB
+CREATE DATABASE MySQL_Test_DB;
+USE MySQL_Test_DB;
+# 1.0 KEY partitioning mgm
+# Creating KEY partitioned table
+CREATE TABLE TableA (a INT)
+ENGINE = 'Archive'
+PARTITION BY KEY (a)
+(PARTITION parta ,
+PARTITION partB ,
+PARTITION Partc ,
+PARTITION PartD );
+INSERT INTO TableA VALUES (1), (2), (7), (8), (9), (10);
+INSERT INTO TableA VALUES (3), (4), (5), (6), (11), (12);
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Test of ADD/COALESCE PARTITIONS
+# expecting duplicate partition name
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partA,
+PARTITION Parta,
+PARTITION PartA);
+ERROR HY000: Duplicate partition name parta
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partE,
+PARTITION Partf,
+PARTITION PartG);
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=ARCHIVE DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION parta ENGINE = ARCHIVE, PARTITION partB ENGINE = ARCHIVE, PARTITION Partc ENGINE = ARCHIVE, PARTITION PartD ENGINE = ARCHIVE, PARTITION partE ENGINE = ARCHIVE, PARTITION Partf ENGINE = ARCHIVE, PARTITION PartG ENGINE = ARCHIVE) */
+ALTER TABLE TableA COALESCE PARTITION 4;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=ARCHIVE DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION parta ENGINE = ARCHIVE, PARTITION partB ENGINE = ARCHIVE, PARTITION Partc ENGINE = ARCHIVE) */
+# Test of REORGANIZE PARTITIONS
+# Should not work on HASH/KEY
+ALTER TABLE TableA REORGANIZE PARTITION parta,partB,Partc INTO
+(PARTITION PARTA ,
+PARTITION partc );
+ERROR HY000: REORGANISE PARTITION can only be used to reorganise partitions not to change their numbers
+ALTER TABLE TableA REORGANIZE PARTITION parta,Partc INTO
+(PARTITION partB ,
+PARTITION parta );
+ERROR HY000: When reorganising a set of partitions they must be in consecutive order
+ALTER TABLE TableA REORGANIZE PARTITION parta,partB INTO
+(PARTITION partB COMMENT="Previusly named parta",
+PARTITION parta COMMENT="Previusly named partB");
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=ARCHIVE DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION partB COMMENT = 'Previusly named parta' ENGINE = ARCHIVE, PARTITION parta COMMENT = 'Previusly named partB' ENGINE = ARCHIVE, PARTITION Partc ENGINE = ARCHIVE) */
+# Test of RENAME TABLE
+RENAME TABLE TableA to TableB;
+SELECT * FROM TableB;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+RENAME TABLE TableB to TableA;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Checking name comparision Upper vs Lower case
+# Error if lower_case_table_names != 0
+# lower_case_table_names: 2
+CREATE TABLE tablea (a INT)
+ENGINE = 'Archive'
+PARTITION BY KEY (a)
+(PARTITION parta ,
+PARTITION partB ,
+PARTITION Partc ,
+PARTITION PartD );
+ERROR 42S01: Table 'tablea' already exists
+SHOW TABLES;
+Tables_in_mysql_test_db
+TableA
+RENAME TABLE TableA to tablea;
+ERROR 42S01: Table 'tablea' already exists
+RENAME TABLE tablea to TableA;
+ERROR 42S01: Table 'TableA' already exists
+SELECT * FROM tablea;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE tablea;
+Table Create Table
+tablea CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=ARCHIVE DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION partB COMMENT = 'Previusly named parta' ENGINE = ARCHIVE, PARTITION parta COMMENT = 'Previusly named partB' ENGINE = ARCHIVE, PARTITION Partc ENGINE = ARCHIVE) */
+# Test of REMOVE PARTITIONING
+ALTER TABLE TableA REMOVE PARTITIONING;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=ARCHIVE DEFAULT CHARSET=latin1
+# Cleaning up after KEY PARTITIONING test
+DROP TABLE TableA;
+# 2.0 HASH partitioning mgm
+# expecting duplicate partition name
+CREATE TABLE TableA (a INT)
+ENGINE = 'Archive'
+PARTITION BY HASH (a)
+(PARTITION parta ,
+PARTITION partA ,
+PARTITION Parta ,
+PARTITION PartA );
+ERROR HY000: Duplicate partition name parta
+# Creating Hash partitioned table
+CREATE TABLE TableA (a INT)
+ENGINE = 'Archive'
+PARTITION BY HASH (a)
+(PARTITION parta ,
+PARTITION partB ,
+PARTITION Partc ,
+PARTITION PartD );
+INSERT INTO TableA VALUES (1), (2), (7), (8), (9), (10);
+INSERT INTO TableA VALUES (3), (4), (5), (6), (11), (12);
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Test of ADD/COALESCE PARTITIONS
+# expecting duplicate partition name
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partA,
+PARTITION Parta,
+PARTITION PartA);
+ERROR HY000: Duplicate partition name parta
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partE,
+PARTITION Partf,
+PARTITION PartG);
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=ARCHIVE DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (a) (PARTITION parta ENGINE = ARCHIVE, PARTITION partB ENGINE = ARCHIVE, PARTITION Partc ENGINE = ARCHIVE, PARTITION PartD ENGINE = ARCHIVE, PARTITION partE ENGINE = ARCHIVE, PARTITION Partf ENGINE = ARCHIVE, PARTITION PartG ENGINE = ARCHIVE) */
+ALTER TABLE TableA COALESCE PARTITION 4;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=ARCHIVE DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (a) (PARTITION parta ENGINE = ARCHIVE, PARTITION partB ENGINE = ARCHIVE, PARTITION Partc ENGINE = ARCHIVE) */
+# Test of REORGANIZE PARTITIONS
+# Should not work on HASH/KEY
+ALTER TABLE TableA REORGANIZE PARTITION parta,partB,Partc INTO
+(PARTITION PARTA ,
+PARTITION partc );
+ERROR HY000: REORGANISE PARTITION can only be used to reorganise partitions not to change their numbers
+ALTER TABLE TableA REORGANIZE PARTITION parta,Partc INTO
+(PARTITION partB ,
+PARTITION parta );
+ERROR HY000: When reorganising a set of partitions they must be in consecutive order
+ALTER TABLE TableA REORGANIZE PARTITION parta,partB INTO
+(PARTITION partB COMMENT="Previusly named parta",
+PARTITION parta COMMENT="Previusly named partB");
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=ARCHIVE DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (a) (PARTITION partB COMMENT = 'Previusly named parta' ENGINE = ARCHIVE, PARTITION parta COMMENT = 'Previusly named partB' ENGINE = ARCHIVE, PARTITION Partc ENGINE = ARCHIVE) */
+# Test of RENAME TABLE
+RENAME TABLE TableA to TableB;
+SELECT * FROM TableB;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+RENAME TABLE TableB to TableA;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Checking name comparision Upper vs Lower case
+# Error if lower_case_table_names != 0
+# lower_case_table_names: 2
+CREATE TABLE tablea (a INT)
+ENGINE = 'Archive'
+PARTITION BY HASH (a)
+(PARTITION parta ,
+PARTITION partB ,
+PARTITION Partc ,
+PARTITION PartD );
+ERROR 42S01: Table 'tablea' already exists
+SHOW TABLES;
+Tables_in_mysql_test_db
+TableA
+RENAME TABLE TableA to tablea;
+ERROR 42S01: Table 'tablea' already exists
+RENAME TABLE tablea to TableA;
+ERROR 42S01: Table 'TableA' already exists
+SELECT * FROM tablea;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE tablea;
+Table Create Table
+tablea CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=ARCHIVE DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (a) (PARTITION partB COMMENT = 'Previusly named parta' ENGINE = ARCHIVE, PARTITION parta COMMENT = 'Previusly named partB' ENGINE = ARCHIVE, PARTITION Partc ENGINE = ARCHIVE) */
+# Test of REMOVE PARTITIONING
+ALTER TABLE TableA REMOVE PARTITIONING;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=ARCHIVE DEFAULT CHARSET=latin1
+# Cleaning up after HASH PARTITIONING test
+DROP TABLE TableA;
+# 3.0 RANGE partitioning mgm
+# Creating RANGE partitioned table
+CREATE TABLE TableA (a INT)
+ENGINE = 'Archive'
+PARTITION BY RANGE (a)
+(PARTITION parta VALUES LESS THAN (4) ,
+PARTITION partB VALUES LESS THAN (7) ,
+PARTITION Partc VALUES LESS THAN (10) ,
+PARTITION PartD VALUES LESS THAN (13) );
+INSERT INTO TableA VALUES (1), (2), (7), (8), (9), (10);
+INSERT INTO TableA VALUES (3), (4), (5), (6), (11), (12);
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Test of ADD/DROP PARTITIONS
+# expecting duplicate partition name
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partA VALUES LESS THAN (MAXVALUE));
+ERROR HY000: Duplicate partition name parta
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partE VALUES LESS THAN (16),
+PARTITION Partf VALUES LESS THAN (19),
+PARTITION PartG VALUES LESS THAN (22));
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=ARCHIVE DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (a) (PARTITION parta VALUES LESS THAN (4) ENGINE = ARCHIVE, PARTITION partB VALUES LESS THAN (7) ENGINE = ARCHIVE, PARTITION Partc VALUES LESS THAN (10) ENGINE = ARCHIVE, PARTITION PartD VALUES LESS THAN (13) ENGINE = ARCHIVE, PARTITION partE VALUES LESS THAN (16) ENGINE = ARCHIVE, PARTITION Partf VALUES LESS THAN (19) ENGINE = ARCHIVE, PARTITION PartG VALUES LESS THAN (22) ENGINE = ARCHIVE) */
+ALTER TABLE TableA DROP PARTITION partE, PartG;
+ALTER TABLE TableA DROP PARTITION Partf;
+ALTER TABLE TableA ADD PARTITION
+(PARTITION PartE VALUES LESS THAN (MAXVALUE));
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=ARCHIVE DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (a) (PARTITION parta VALUES LESS THAN (4) ENGINE = ARCHIVE, PARTITION partB VALUES LESS THAN (7) ENGINE = ARCHIVE, PARTITION Partc VALUES LESS THAN (10) ENGINE = ARCHIVE, PARTITION PartD VALUES LESS THAN (13) ENGINE = ARCHIVE, PARTITION PartE VALUES LESS THAN MAXVALUE ENGINE = ARCHIVE) */
+# Test of REORGANIZE PARTITIONS
+# Error since it must reorganize a consecutive range
+ALTER TABLE TableA REORGANIZE PARTITION parta,Partc INTO
+(PARTITION partB VALUES LESS THAN (3) ,
+PARTITION parta VALUES LESS THAN (11) );
+ERROR HY000: When reorganising a set of partitions they must be in consecutive order
+ALTER TABLE TableA REORGANIZE PARTITION partB,Partc,PartD,PartE INTO
+(PARTITION partD VALUES LESS THAN (8)
+COMMENT="Previously partB and partly Partc",
+PARTITION partB VALUES LESS THAN (11)
+COMMENT="Previously partly Partc and partly PartD",
+PARTITION partC VALUES LESS THAN (MAXVALUE)
+COMMENT="Previously partly PartD");
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=ARCHIVE DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (a) (PARTITION parta VALUES LESS THAN (4) ENGINE = ARCHIVE, PARTITION partD VALUES LESS THAN (8) COMMENT = 'Previously partB and partly Partc' ENGINE = ARCHIVE, PARTITION partB VALUES LESS THAN (11) COMMENT = 'Previously partly Partc and partly PartD' ENGINE = ARCHIVE, PARTITION partC VALUES LESS THAN MAXVALUE COMMENT = 'Previously partly PartD' ENGINE = ARCHIVE) */
+# Test of RENAME TABLE
+RENAME TABLE TableA to TableB;
+SELECT * FROM TableB;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+RENAME TABLE TableB to TableA;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Checking name comparision Upper vs Lower case
+# Error if lower_case_table_names != 0
+# lower_case_table_names: 2
+CREATE TABLE tablea (a INT)
+ENGINE = 'Archive'
+PARTITION BY RANGE (a)
+(PARTITION parta VALUES LESS THAN (4) ,
+PARTITION partB VALUES LESS THAN (7) ,
+PARTITION Partc VALUES LESS THAN (10) ,
+PARTITION PartD VALUES LESS THAN (13) );
+ERROR 42S01: Table 'tablea' already exists
+SHOW TABLES;
+Tables_in_mysql_test_db
+TableA
+RENAME TABLE TableA to tablea;
+ERROR 42S01: Table 'tablea' already exists
+RENAME TABLE tablea to TableA;
+ERROR 42S01: Table 'TableA' already exists
+SELECT * FROM tablea;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE tablea;
+Table Create Table
+tablea CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=ARCHIVE DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (a) (PARTITION parta VALUES LESS THAN (4) ENGINE = ARCHIVE, PARTITION partD VALUES LESS THAN (8) COMMENT = 'Previously partB and partly Partc' ENGINE = ARCHIVE, PARTITION partB VALUES LESS THAN (11) COMMENT = 'Previously partly Partc and partly PartD' ENGINE = ARCHIVE, PARTITION partC VALUES LESS THAN MAXVALUE COMMENT = 'Previously partly PartD' ENGINE = ARCHIVE) */
+# Test of REMOVE PARTITIONING
+ALTER TABLE TableA REMOVE PARTITIONING;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=ARCHIVE DEFAULT CHARSET=latin1
+# Cleaning up after RANGE PARTITIONING test
+DROP TABLE TableA;
+# 4.0 LIST partitioning mgm
+# Creating LIST partitioned table
+CREATE TABLE TableA (a INT)
+ENGINE = 'Archive'
+PARTITION BY LIST (a)
+(PARTITION parta VALUES IN (1,8,9) ,
+PARTITION partB VALUES IN (2,10,11) ,
+PARTITION Partc VALUES IN (3,4,7) ,
+PARTITION PartD VALUES IN (5,6,12) );
+INSERT INTO TableA VALUES (1), (2), (7), (8), (9), (10);
+INSERT INTO TableA VALUES (3), (4), (5), (6), (11), (12);
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Test of ADD/DROP PARTITIONS
+# expecting duplicate partition name
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partA VALUES IN (0));
+ERROR HY000: Duplicate partition name parta
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partE VALUES IN (16),
+PARTITION Partf VALUES IN (19),
+PARTITION PartG VALUES IN (22));
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=ARCHIVE DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (a) (PARTITION parta VALUES IN (1,8,9) ENGINE = ARCHIVE, PARTITION partB VALUES IN (2,10,11) ENGINE = ARCHIVE, PARTITION Partc VALUES IN (3,4,7) ENGINE = ARCHIVE, PARTITION PartD VALUES IN (5,6,12) ENGINE = ARCHIVE, PARTITION partE VALUES IN (16) ENGINE = ARCHIVE, PARTITION Partf VALUES IN (19) ENGINE = ARCHIVE, PARTITION PartG VALUES IN (22) ENGINE = ARCHIVE) */
+ALTER TABLE TableA DROP PARTITION partE, PartG;
+ALTER TABLE TableA DROP PARTITION Partf;
+ALTER TABLE TableA ADD PARTITION
+(PARTITION PartE VALUES IN (13));
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=ARCHIVE DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (a) (PARTITION parta VALUES IN (1,8,9) ENGINE = ARCHIVE, PARTITION partB VALUES IN (2,10,11) ENGINE = ARCHIVE, PARTITION Partc VALUES IN (3,4,7) ENGINE = ARCHIVE, PARTITION PartD VALUES IN (5,6,12) ENGINE = ARCHIVE, PARTITION PartE VALUES IN (13) ENGINE = ARCHIVE) */
+# Test of REORGANIZE PARTITIONS
+ALTER TABLE TableA REORGANIZE PARTITION parta,Partc INTO
+(PARTITION Partc VALUES IN (1,7)
+COMMENT = "Mix 1 of old parta and Partc",
+PARTITION partF VALUES IN (3,9)
+COMMENT = "Mix 2 of old parta and Partc",
+PARTITION parta VALUES IN (4,8)
+COMMENT = "Mix 3 of old parta and Partc");
+ERROR HY000: When reorganising a set of partitions they must be in consecutive order
+ALTER TABLE TableA REORGANIZE PARTITION parta,partB,Partc INTO
+(PARTITION Partc VALUES IN (1,7)
+COMMENT = "Mix 1 of old parta and Partc",
+PARTITION parta VALUES IN (3,9)
+COMMENT = "Mix 2 of old parta and Partc",
+PARTITION partB VALUES IN (4,8)
+COMMENT = "Mix 3 of old parta and Partc");
+SELECT * FROM TableA;
+a
+1
+12
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=ARCHIVE DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (a) (PARTITION Partc VALUES IN (1,7) COMMENT = 'Mix 1 of old parta and Partc' ENGINE = ARCHIVE, PARTITION parta VALUES IN (3,9) COMMENT = 'Mix 2 of old parta and Partc' ENGINE = ARCHIVE, PARTITION partB VALUES IN (4,8) COMMENT = 'Mix 3 of old parta and Partc' ENGINE = ARCHIVE, PARTITION PartD VALUES IN (5,6,12) ENGINE = ARCHIVE, PARTITION PartE VALUES IN (13) ENGINE = ARCHIVE) */
+# Test of RENAME TABLE
+RENAME TABLE TableA to TableB;
+SELECT * FROM TableB;
+a
+1
+12
+3
+4
+5
+6
+7
+8
+9
+RENAME TABLE TableB to TableA;
+SELECT * FROM TableA;
+a
+1
+12
+3
+4
+5
+6
+7
+8
+9
+# Checking name comparision Upper vs Lower case
+# Error if lower_case_table_names != 0
+# lower_case_table_names: 2
+CREATE TABLE tablea (a INT)
+ENGINE = 'Archive'
+PARTITION BY LIST (a)
+(PARTITION parta VALUES IN (1,8,9) ,
+PARTITION partB VALUES IN (2,10,11) ,
+PARTITION Partc VALUES IN (3,4,7) ,
+PARTITION PartD VALUES IN (5,6,12) );
+ERROR 42S01: Table 'tablea' already exists
+SHOW TABLES;
+Tables_in_mysql_test_db
+TableA
+RENAME TABLE TableA to tablea;
+ERROR 42S01: Table 'tablea' already exists
+RENAME TABLE tablea to TableA;
+ERROR 42S01: Table 'TableA' already exists
+SELECT * FROM tablea;
+a
+1
+12
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE tablea;
+Table Create Table
+tablea CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=ARCHIVE DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (a) (PARTITION Partc VALUES IN (1,7) COMMENT = 'Mix 1 of old parta and Partc' ENGINE = ARCHIVE, PARTITION parta VALUES IN (3,9) COMMENT = 'Mix 2 of old parta and Partc' ENGINE = ARCHIVE, PARTITION partB VALUES IN (4,8) COMMENT = 'Mix 3 of old parta and Partc' ENGINE = ARCHIVE, PARTITION PartD VALUES IN (5,6,12) ENGINE = ARCHIVE, PARTITION PartE VALUES IN (13) ENGINE = ARCHIVE) */
+# Test of REMOVE PARTITIONING
+ALTER TABLE TableA REMOVE PARTITIONING;
+SELECT * FROM TableA;
+a
+1
+12
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=ARCHIVE DEFAULT CHARSET=latin1
+# Cleaning up after LIST PARTITIONING test
+DROP TABLE TableA;
+# Cleaning up before exit
+USE test;
+DROP DATABASE MySQL_Test_DB;
diff --git a/mysql-test/suite/parts/r/partition_mgm_lc2_innodb.result b/mysql-test/suite/parts/r/partition_mgm_lc2_innodb.result
new file mode 100644
index 00000000000..6a71a2e2f44
--- /dev/null
+++ b/mysql-test/suite/parts/r/partition_mgm_lc2_innodb.result
@@ -0,0 +1,797 @@
+# Creating database MySQL_TEST_DB
+CREATE DATABASE MySQL_Test_DB;
+USE MySQL_Test_DB;
+# 1.0 KEY partitioning mgm
+# Creating KEY partitioned table
+CREATE TABLE TableA (a INT)
+ENGINE = 'InnoDB'
+PARTITION BY KEY (a)
+(PARTITION parta ,
+PARTITION partB ,
+PARTITION Partc ,
+PARTITION PartD );
+INSERT INTO TableA VALUES (1), (2), (7), (8), (9), (10);
+INSERT INTO TableA VALUES (3), (4), (5), (6), (11), (12);
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Test of ADD/COALESCE PARTITIONS
+# expecting duplicate partition name
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partA,
+PARTITION Parta,
+PARTITION PartA);
+ERROR HY000: Duplicate partition name parta
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partE,
+PARTITION Partf,
+PARTITION PartG);
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION parta ENGINE = InnoDB, PARTITION partB ENGINE = InnoDB, PARTITION Partc ENGINE = InnoDB, PARTITION PartD ENGINE = InnoDB, PARTITION partE ENGINE = InnoDB, PARTITION Partf ENGINE = InnoDB, PARTITION PartG ENGINE = InnoDB) */
+ALTER TABLE TableA COALESCE PARTITION 4;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION parta ENGINE = InnoDB, PARTITION partB ENGINE = InnoDB, PARTITION Partc ENGINE = InnoDB) */
+# Test of REORGANIZE PARTITIONS
+# Should not work on HASH/KEY
+ALTER TABLE TableA REORGANIZE PARTITION parta,partB,Partc INTO
+(PARTITION PARTA ,
+PARTITION partc );
+ERROR HY000: REORGANISE PARTITION can only be used to reorganise partitions not to change their numbers
+ALTER TABLE TableA REORGANIZE PARTITION parta,Partc INTO
+(PARTITION partB ,
+PARTITION parta );
+ERROR HY000: When reorganising a set of partitions they must be in consecutive order
+ALTER TABLE TableA REORGANIZE PARTITION parta,partB INTO
+(PARTITION partB COMMENT="Previusly named parta",
+PARTITION parta COMMENT="Previusly named partB");
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION partB COMMENT = 'Previusly named parta' ENGINE = InnoDB, PARTITION parta COMMENT = 'Previusly named partB' ENGINE = InnoDB, PARTITION Partc ENGINE = InnoDB) */
+# Test of RENAME TABLE
+RENAME TABLE TableA to TableB;
+SELECT * FROM TableB;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+RENAME TABLE TableB to TableA;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Checking name comparision Upper vs Lower case
+# Error if lower_case_table_names != 0
+# lower_case_table_names: 2
+CREATE TABLE tablea (a INT)
+ENGINE = 'InnoDB'
+PARTITION BY KEY (a)
+(PARTITION parta ,
+PARTITION partB ,
+PARTITION Partc ,
+PARTITION PartD );
+ERROR 42S01: Table 'tablea' already exists
+SHOW TABLES;
+Tables_in_mysql_test_db
+TableA
+RENAME TABLE TableA to tablea;
+ERROR 42S01: Table 'tablea' already exists
+RENAME TABLE tablea to TableA;
+ERROR 42S01: Table 'TableA' already exists
+SELECT * FROM tablea;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE tablea;
+Table Create Table
+tablea CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION partB COMMENT = 'Previusly named parta' ENGINE = InnoDB, PARTITION parta COMMENT = 'Previusly named partB' ENGINE = InnoDB, PARTITION Partc ENGINE = InnoDB) */
+# Test of REMOVE PARTITIONING
+ALTER TABLE TableA REMOVE PARTITIONING;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1
+# Cleaning up after KEY PARTITIONING test
+DROP TABLE TableA;
+# 2.0 HASH partitioning mgm
+# expecting duplicate partition name
+CREATE TABLE TableA (a INT)
+ENGINE = 'InnoDB'
+PARTITION BY HASH (a)
+(PARTITION parta ,
+PARTITION partA ,
+PARTITION Parta ,
+PARTITION PartA );
+ERROR HY000: Duplicate partition name parta
+# Creating Hash partitioned table
+CREATE TABLE TableA (a INT)
+ENGINE = 'InnoDB'
+PARTITION BY HASH (a)
+(PARTITION parta ,
+PARTITION partB ,
+PARTITION Partc ,
+PARTITION PartD );
+INSERT INTO TableA VALUES (1), (2), (7), (8), (9), (10);
+INSERT INTO TableA VALUES (3), (4), (5), (6), (11), (12);
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Test of ADD/COALESCE PARTITIONS
+# expecting duplicate partition name
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partA,
+PARTITION Parta,
+PARTITION PartA);
+ERROR HY000: Duplicate partition name parta
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partE,
+PARTITION Partf,
+PARTITION PartG);
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (a) (PARTITION parta ENGINE = InnoDB, PARTITION partB ENGINE = InnoDB, PARTITION Partc ENGINE = InnoDB, PARTITION PartD ENGINE = InnoDB, PARTITION partE ENGINE = InnoDB, PARTITION Partf ENGINE = InnoDB, PARTITION PartG ENGINE = InnoDB) */
+ALTER TABLE TableA COALESCE PARTITION 4;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (a) (PARTITION parta ENGINE = InnoDB, PARTITION partB ENGINE = InnoDB, PARTITION Partc ENGINE = InnoDB) */
+# Test of REORGANIZE PARTITIONS
+# Should not work on HASH/KEY
+ALTER TABLE TableA REORGANIZE PARTITION parta,partB,Partc INTO
+(PARTITION PARTA ,
+PARTITION partc );
+ERROR HY000: REORGANISE PARTITION can only be used to reorganise partitions not to change their numbers
+ALTER TABLE TableA REORGANIZE PARTITION parta,Partc INTO
+(PARTITION partB ,
+PARTITION parta );
+ERROR HY000: When reorganising a set of partitions they must be in consecutive order
+ALTER TABLE TableA REORGANIZE PARTITION parta,partB INTO
+(PARTITION partB COMMENT="Previusly named parta",
+PARTITION parta COMMENT="Previusly named partB");
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (a) (PARTITION partB COMMENT = 'Previusly named parta' ENGINE = InnoDB, PARTITION parta COMMENT = 'Previusly named partB' ENGINE = InnoDB, PARTITION Partc ENGINE = InnoDB) */
+# Test of RENAME TABLE
+RENAME TABLE TableA to TableB;
+SELECT * FROM TableB;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+RENAME TABLE TableB to TableA;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Checking name comparision Upper vs Lower case
+# Error if lower_case_table_names != 0
+# lower_case_table_names: 2
+CREATE TABLE tablea (a INT)
+ENGINE = 'InnoDB'
+PARTITION BY HASH (a)
+(PARTITION parta ,
+PARTITION partB ,
+PARTITION Partc ,
+PARTITION PartD );
+ERROR 42S01: Table 'tablea' already exists
+SHOW TABLES;
+Tables_in_mysql_test_db
+TableA
+RENAME TABLE TableA to tablea;
+ERROR 42S01: Table 'tablea' already exists
+RENAME TABLE tablea to TableA;
+ERROR 42S01: Table 'TableA' already exists
+SELECT * FROM tablea;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE tablea;
+Table Create Table
+tablea CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (a) (PARTITION partB COMMENT = 'Previusly named parta' ENGINE = InnoDB, PARTITION parta COMMENT = 'Previusly named partB' ENGINE = InnoDB, PARTITION Partc ENGINE = InnoDB) */
+# Test of REMOVE PARTITIONING
+ALTER TABLE TableA REMOVE PARTITIONING;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1
+# Cleaning up after HASH PARTITIONING test
+DROP TABLE TableA;
+# 3.0 RANGE partitioning mgm
+# Creating RANGE partitioned table
+CREATE TABLE TableA (a INT)
+ENGINE = 'InnoDB'
+PARTITION BY RANGE (a)
+(PARTITION parta VALUES LESS THAN (4) ,
+PARTITION partB VALUES LESS THAN (7) ,
+PARTITION Partc VALUES LESS THAN (10) ,
+PARTITION PartD VALUES LESS THAN (13) );
+INSERT INTO TableA VALUES (1), (2), (7), (8), (9), (10);
+INSERT INTO TableA VALUES (3), (4), (5), (6), (11), (12);
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Test of ADD/DROP PARTITIONS
+# expecting duplicate partition name
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partA VALUES LESS THAN (MAXVALUE));
+ERROR HY000: Duplicate partition name parta
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partE VALUES LESS THAN (16),
+PARTITION Partf VALUES LESS THAN (19),
+PARTITION PartG VALUES LESS THAN (22));
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (a) (PARTITION parta VALUES LESS THAN (4) ENGINE = InnoDB, PARTITION partB VALUES LESS THAN (7) ENGINE = InnoDB, PARTITION Partc VALUES LESS THAN (10) ENGINE = InnoDB, PARTITION PartD VALUES LESS THAN (13) ENGINE = InnoDB, PARTITION partE VALUES LESS THAN (16) ENGINE = InnoDB, PARTITION Partf VALUES LESS THAN (19) ENGINE = InnoDB, PARTITION PartG VALUES LESS THAN (22) ENGINE = InnoDB) */
+ALTER TABLE TableA DROP PARTITION partE, PartG;
+ALTER TABLE TableA DROP PARTITION Partf;
+ALTER TABLE TableA ADD PARTITION
+(PARTITION PartE VALUES LESS THAN (MAXVALUE));
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (a) (PARTITION parta VALUES LESS THAN (4) ENGINE = InnoDB, PARTITION partB VALUES LESS THAN (7) ENGINE = InnoDB, PARTITION Partc VALUES LESS THAN (10) ENGINE = InnoDB, PARTITION PartD VALUES LESS THAN (13) ENGINE = InnoDB, PARTITION PartE VALUES LESS THAN MAXVALUE ENGINE = InnoDB) */
+# Test of REORGANIZE PARTITIONS
+# Error since it must reorganize a consecutive range
+ALTER TABLE TableA REORGANIZE PARTITION parta,Partc INTO
+(PARTITION partB VALUES LESS THAN (3) ,
+PARTITION parta VALUES LESS THAN (11) );
+ERROR HY000: When reorganising a set of partitions they must be in consecutive order
+ALTER TABLE TableA REORGANIZE PARTITION partB,Partc,PartD,PartE INTO
+(PARTITION partD VALUES LESS THAN (8)
+COMMENT="Previously partB and partly Partc",
+PARTITION partB VALUES LESS THAN (11)
+COMMENT="Previously partly Partc and partly PartD",
+PARTITION partC VALUES LESS THAN (MAXVALUE)
+COMMENT="Previously partly PartD");
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (a) (PARTITION parta VALUES LESS THAN (4) ENGINE = InnoDB, PARTITION partD VALUES LESS THAN (8) COMMENT = 'Previously partB and partly Partc' ENGINE = InnoDB, PARTITION partB VALUES LESS THAN (11) COMMENT = 'Previously partly Partc and partly PartD' ENGINE = InnoDB, PARTITION partC VALUES LESS THAN MAXVALUE COMMENT = 'Previously partly PartD' ENGINE = InnoDB) */
+# Test of RENAME TABLE
+RENAME TABLE TableA to TableB;
+SELECT * FROM TableB;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+RENAME TABLE TableB to TableA;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Checking name comparision Upper vs Lower case
+# Error if lower_case_table_names != 0
+# lower_case_table_names: 2
+CREATE TABLE tablea (a INT)
+ENGINE = 'InnoDB'
+PARTITION BY RANGE (a)
+(PARTITION parta VALUES LESS THAN (4) ,
+PARTITION partB VALUES LESS THAN (7) ,
+PARTITION Partc VALUES LESS THAN (10) ,
+PARTITION PartD VALUES LESS THAN (13) );
+ERROR 42S01: Table 'tablea' already exists
+SHOW TABLES;
+Tables_in_mysql_test_db
+TableA
+RENAME TABLE TableA to tablea;
+ERROR 42S01: Table 'tablea' already exists
+RENAME TABLE tablea to TableA;
+ERROR 42S01: Table 'TableA' already exists
+SELECT * FROM tablea;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE tablea;
+Table Create Table
+tablea CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (a) (PARTITION parta VALUES LESS THAN (4) ENGINE = InnoDB, PARTITION partD VALUES LESS THAN (8) COMMENT = 'Previously partB and partly Partc' ENGINE = InnoDB, PARTITION partB VALUES LESS THAN (11) COMMENT = 'Previously partly Partc and partly PartD' ENGINE = InnoDB, PARTITION partC VALUES LESS THAN MAXVALUE COMMENT = 'Previously partly PartD' ENGINE = InnoDB) */
+# Test of REMOVE PARTITIONING
+ALTER TABLE TableA REMOVE PARTITIONING;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1
+# Cleaning up after RANGE PARTITIONING test
+DROP TABLE TableA;
+# 4.0 LIST partitioning mgm
+# Creating LIST partitioned table
+CREATE TABLE TableA (a INT)
+ENGINE = 'InnoDB'
+PARTITION BY LIST (a)
+(PARTITION parta VALUES IN (1,8,9) ,
+PARTITION partB VALUES IN (2,10,11) ,
+PARTITION Partc VALUES IN (3,4,7) ,
+PARTITION PartD VALUES IN (5,6,12) );
+INSERT INTO TableA VALUES (1), (2), (7), (8), (9), (10);
+INSERT INTO TableA VALUES (3), (4), (5), (6), (11), (12);
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Test of ADD/DROP PARTITIONS
+# expecting duplicate partition name
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partA VALUES IN (0));
+ERROR HY000: Duplicate partition name parta
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partE VALUES IN (16),
+PARTITION Partf VALUES IN (19),
+PARTITION PartG VALUES IN (22));
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (a) (PARTITION parta VALUES IN (1,8,9) ENGINE = InnoDB, PARTITION partB VALUES IN (2,10,11) ENGINE = InnoDB, PARTITION Partc VALUES IN (3,4,7) ENGINE = InnoDB, PARTITION PartD VALUES IN (5,6,12) ENGINE = InnoDB, PARTITION partE VALUES IN (16) ENGINE = InnoDB, PARTITION Partf VALUES IN (19) ENGINE = InnoDB, PARTITION PartG VALUES IN (22) ENGINE = InnoDB) */
+ALTER TABLE TableA DROP PARTITION partE, PartG;
+ALTER TABLE TableA DROP PARTITION Partf;
+ALTER TABLE TableA ADD PARTITION
+(PARTITION PartE VALUES IN (13));
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (a) (PARTITION parta VALUES IN (1,8,9) ENGINE = InnoDB, PARTITION partB VALUES IN (2,10,11) ENGINE = InnoDB, PARTITION Partc VALUES IN (3,4,7) ENGINE = InnoDB, PARTITION PartD VALUES IN (5,6,12) ENGINE = InnoDB, PARTITION PartE VALUES IN (13) ENGINE = InnoDB) */
+# Test of REORGANIZE PARTITIONS
+ALTER TABLE TableA REORGANIZE PARTITION parta,Partc INTO
+(PARTITION Partc VALUES IN (1,7)
+COMMENT = "Mix 1 of old parta and Partc",
+PARTITION partF VALUES IN (3,9)
+COMMENT = "Mix 2 of old parta and Partc",
+PARTITION parta VALUES IN (4,8)
+COMMENT = "Mix 3 of old parta and Partc");
+ERROR HY000: When reorganising a set of partitions they must be in consecutive order
+ALTER TABLE TableA REORGANIZE PARTITION parta,partB,Partc INTO
+(PARTITION Partc VALUES IN (1,7)
+COMMENT = "Mix 1 of old parta and Partc",
+PARTITION parta VALUES IN (3,9)
+COMMENT = "Mix 2 of old parta and Partc",
+PARTITION partB VALUES IN (4,8)
+COMMENT = "Mix 3 of old parta and Partc");
+SELECT * FROM TableA;
+a
+1
+12
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (a) (PARTITION Partc VALUES IN (1,7) COMMENT = 'Mix 1 of old parta and Partc' ENGINE = InnoDB, PARTITION parta VALUES IN (3,9) COMMENT = 'Mix 2 of old parta and Partc' ENGINE = InnoDB, PARTITION partB VALUES IN (4,8) COMMENT = 'Mix 3 of old parta and Partc' ENGINE = InnoDB, PARTITION PartD VALUES IN (5,6,12) ENGINE = InnoDB, PARTITION PartE VALUES IN (13) ENGINE = InnoDB) */
+# Test of RENAME TABLE
+RENAME TABLE TableA to TableB;
+SELECT * FROM TableB;
+a
+1
+12
+3
+4
+5
+6
+7
+8
+9
+RENAME TABLE TableB to TableA;
+SELECT * FROM TableA;
+a
+1
+12
+3
+4
+5
+6
+7
+8
+9
+# Checking name comparision Upper vs Lower case
+# Error if lower_case_table_names != 0
+# lower_case_table_names: 2
+CREATE TABLE tablea (a INT)
+ENGINE = 'InnoDB'
+PARTITION BY LIST (a)
+(PARTITION parta VALUES IN (1,8,9) ,
+PARTITION partB VALUES IN (2,10,11) ,
+PARTITION Partc VALUES IN (3,4,7) ,
+PARTITION PartD VALUES IN (5,6,12) );
+ERROR 42S01: Table 'tablea' already exists
+SHOW TABLES;
+Tables_in_mysql_test_db
+TableA
+RENAME TABLE TableA to tablea;
+ERROR 42S01: Table 'tablea' already exists
+RENAME TABLE tablea to TableA;
+ERROR 42S01: Table 'TableA' already exists
+SELECT * FROM tablea;
+a
+1
+12
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE tablea;
+Table Create Table
+tablea CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (a) (PARTITION Partc VALUES IN (1,7) COMMENT = 'Mix 1 of old parta and Partc' ENGINE = InnoDB, PARTITION parta VALUES IN (3,9) COMMENT = 'Mix 2 of old parta and Partc' ENGINE = InnoDB, PARTITION partB VALUES IN (4,8) COMMENT = 'Mix 3 of old parta and Partc' ENGINE = InnoDB, PARTITION PartD VALUES IN (5,6,12) ENGINE = InnoDB, PARTITION PartE VALUES IN (13) ENGINE = InnoDB) */
+# Test of REMOVE PARTITIONING
+ALTER TABLE TableA REMOVE PARTITIONING;
+SELECT * FROM TableA;
+a
+1
+12
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1
+# Cleaning up after LIST PARTITIONING test
+DROP TABLE TableA;
+# Cleaning up before exit
+USE test;
+DROP DATABASE MySQL_Test_DB;
diff --git a/mysql-test/suite/parts/r/partition_mgm_lc2_memory.result b/mysql-test/suite/parts/r/partition_mgm_lc2_memory.result
new file mode 100644
index 00000000000..988f60042e5
--- /dev/null
+++ b/mysql-test/suite/parts/r/partition_mgm_lc2_memory.result
@@ -0,0 +1,797 @@
+# Creating database MySQL_TEST_DB
+CREATE DATABASE MySQL_Test_DB;
+USE MySQL_Test_DB;
+# 1.0 KEY partitioning mgm
+# Creating KEY partitioned table
+CREATE TABLE TableA (a INT)
+ENGINE = 'Memory'
+PARTITION BY KEY (a)
+(PARTITION parta ,
+PARTITION partB ,
+PARTITION Partc ,
+PARTITION PartD );
+INSERT INTO TableA VALUES (1), (2), (7), (8), (9), (10);
+INSERT INTO TableA VALUES (3), (4), (5), (6), (11), (12);
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Test of ADD/COALESCE PARTITIONS
+# expecting duplicate partition name
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partA,
+PARTITION Parta,
+PARTITION PartA);
+ERROR HY000: Duplicate partition name parta
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partE,
+PARTITION Partf,
+PARTITION PartG);
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MEMORY DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION parta ENGINE = MEMORY, PARTITION partB ENGINE = MEMORY, PARTITION Partc ENGINE = MEMORY, PARTITION PartD ENGINE = MEMORY, PARTITION partE ENGINE = MEMORY, PARTITION Partf ENGINE = MEMORY, PARTITION PartG ENGINE = MEMORY) */
+ALTER TABLE TableA COALESCE PARTITION 4;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MEMORY DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION parta ENGINE = MEMORY, PARTITION partB ENGINE = MEMORY, PARTITION Partc ENGINE = MEMORY) */
+# Test of REORGANIZE PARTITIONS
+# Should not work on HASH/KEY
+ALTER TABLE TableA REORGANIZE PARTITION parta,partB,Partc INTO
+(PARTITION PARTA ,
+PARTITION partc );
+ERROR HY000: REORGANISE PARTITION can only be used to reorganise partitions not to change their numbers
+ALTER TABLE TableA REORGANIZE PARTITION parta,Partc INTO
+(PARTITION partB ,
+PARTITION parta );
+ERROR HY000: When reorganising a set of partitions they must be in consecutive order
+ALTER TABLE TableA REORGANIZE PARTITION parta,partB INTO
+(PARTITION partB COMMENT="Previusly named parta",
+PARTITION parta COMMENT="Previusly named partB");
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MEMORY DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION partB COMMENT = 'Previusly named parta' ENGINE = MEMORY, PARTITION parta COMMENT = 'Previusly named partB' ENGINE = MEMORY, PARTITION Partc ENGINE = MEMORY) */
+# Test of RENAME TABLE
+RENAME TABLE TableA to TableB;
+SELECT * FROM TableB;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+RENAME TABLE TableB to TableA;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Checking name comparision Upper vs Lower case
+# Error if lower_case_table_names != 0
+# lower_case_table_names: 2
+CREATE TABLE tablea (a INT)
+ENGINE = 'Memory'
+PARTITION BY KEY (a)
+(PARTITION parta ,
+PARTITION partB ,
+PARTITION Partc ,
+PARTITION PartD );
+ERROR 42S01: Table 'tablea' already exists
+SHOW TABLES;
+Tables_in_mysql_test_db
+TableA
+RENAME TABLE TableA to tablea;
+ERROR 42S01: Table 'tablea' already exists
+RENAME TABLE tablea to TableA;
+ERROR 42S01: Table 'TableA' already exists
+SELECT * FROM tablea;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE tablea;
+Table Create Table
+tablea CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MEMORY DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION partB COMMENT = 'Previusly named parta' ENGINE = MEMORY, PARTITION parta COMMENT = 'Previusly named partB' ENGINE = MEMORY, PARTITION Partc ENGINE = MEMORY) */
+# Test of REMOVE PARTITIONING
+ALTER TABLE TableA REMOVE PARTITIONING;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MEMORY DEFAULT CHARSET=latin1
+# Cleaning up after KEY PARTITIONING test
+DROP TABLE TableA;
+# 2.0 HASH partitioning mgm
+# expecting duplicate partition name
+CREATE TABLE TableA (a INT)
+ENGINE = 'Memory'
+PARTITION BY HASH (a)
+(PARTITION parta ,
+PARTITION partA ,
+PARTITION Parta ,
+PARTITION PartA );
+ERROR HY000: Duplicate partition name parta
+# Creating Hash partitioned table
+CREATE TABLE TableA (a INT)
+ENGINE = 'Memory'
+PARTITION BY HASH (a)
+(PARTITION parta ,
+PARTITION partB ,
+PARTITION Partc ,
+PARTITION PartD );
+INSERT INTO TableA VALUES (1), (2), (7), (8), (9), (10);
+INSERT INTO TableA VALUES (3), (4), (5), (6), (11), (12);
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Test of ADD/COALESCE PARTITIONS
+# expecting duplicate partition name
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partA,
+PARTITION Parta,
+PARTITION PartA);
+ERROR HY000: Duplicate partition name parta
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partE,
+PARTITION Partf,
+PARTITION PartG);
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MEMORY DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (a) (PARTITION parta ENGINE = MEMORY, PARTITION partB ENGINE = MEMORY, PARTITION Partc ENGINE = MEMORY, PARTITION PartD ENGINE = MEMORY, PARTITION partE ENGINE = MEMORY, PARTITION Partf ENGINE = MEMORY, PARTITION PartG ENGINE = MEMORY) */
+ALTER TABLE TableA COALESCE PARTITION 4;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MEMORY DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (a) (PARTITION parta ENGINE = MEMORY, PARTITION partB ENGINE = MEMORY, PARTITION Partc ENGINE = MEMORY) */
+# Test of REORGANIZE PARTITIONS
+# Should not work on HASH/KEY
+ALTER TABLE TableA REORGANIZE PARTITION parta,partB,Partc INTO
+(PARTITION PARTA ,
+PARTITION partc );
+ERROR HY000: REORGANISE PARTITION can only be used to reorganise partitions not to change their numbers
+ALTER TABLE TableA REORGANIZE PARTITION parta,Partc INTO
+(PARTITION partB ,
+PARTITION parta );
+ERROR HY000: When reorganising a set of partitions they must be in consecutive order
+ALTER TABLE TableA REORGANIZE PARTITION parta,partB INTO
+(PARTITION partB COMMENT="Previusly named parta",
+PARTITION parta COMMENT="Previusly named partB");
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MEMORY DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (a) (PARTITION partB COMMENT = 'Previusly named parta' ENGINE = MEMORY, PARTITION parta COMMENT = 'Previusly named partB' ENGINE = MEMORY, PARTITION Partc ENGINE = MEMORY) */
+# Test of RENAME TABLE
+RENAME TABLE TableA to TableB;
+SELECT * FROM TableB;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+RENAME TABLE TableB to TableA;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Checking name comparision Upper vs Lower case
+# Error if lower_case_table_names != 0
+# lower_case_table_names: 2
+CREATE TABLE tablea (a INT)
+ENGINE = 'Memory'
+PARTITION BY HASH (a)
+(PARTITION parta ,
+PARTITION partB ,
+PARTITION Partc ,
+PARTITION PartD );
+ERROR 42S01: Table 'tablea' already exists
+SHOW TABLES;
+Tables_in_mysql_test_db
+TableA
+RENAME TABLE TableA to tablea;
+ERROR 42S01: Table 'tablea' already exists
+RENAME TABLE tablea to TableA;
+ERROR 42S01: Table 'TableA' already exists
+SELECT * FROM tablea;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE tablea;
+Table Create Table
+tablea CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MEMORY DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (a) (PARTITION partB COMMENT = 'Previusly named parta' ENGINE = MEMORY, PARTITION parta COMMENT = 'Previusly named partB' ENGINE = MEMORY, PARTITION Partc ENGINE = MEMORY) */
+# Test of REMOVE PARTITIONING
+ALTER TABLE TableA REMOVE PARTITIONING;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MEMORY DEFAULT CHARSET=latin1
+# Cleaning up after HASH PARTITIONING test
+DROP TABLE TableA;
+# 3.0 RANGE partitioning mgm
+# Creating RANGE partitioned table
+CREATE TABLE TableA (a INT)
+ENGINE = 'Memory'
+PARTITION BY RANGE (a)
+(PARTITION parta VALUES LESS THAN (4) ,
+PARTITION partB VALUES LESS THAN (7) ,
+PARTITION Partc VALUES LESS THAN (10) ,
+PARTITION PartD VALUES LESS THAN (13) );
+INSERT INTO TableA VALUES (1), (2), (7), (8), (9), (10);
+INSERT INTO TableA VALUES (3), (4), (5), (6), (11), (12);
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Test of ADD/DROP PARTITIONS
+# expecting duplicate partition name
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partA VALUES LESS THAN (MAXVALUE));
+ERROR HY000: Duplicate partition name parta
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partE VALUES LESS THAN (16),
+PARTITION Partf VALUES LESS THAN (19),
+PARTITION PartG VALUES LESS THAN (22));
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MEMORY DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (a) (PARTITION parta VALUES LESS THAN (4) ENGINE = MEMORY, PARTITION partB VALUES LESS THAN (7) ENGINE = MEMORY, PARTITION Partc VALUES LESS THAN (10) ENGINE = MEMORY, PARTITION PartD VALUES LESS THAN (13) ENGINE = MEMORY, PARTITION partE VALUES LESS THAN (16) ENGINE = MEMORY, PARTITION Partf VALUES LESS THAN (19) ENGINE = MEMORY, PARTITION PartG VALUES LESS THAN (22) ENGINE = MEMORY) */
+ALTER TABLE TableA DROP PARTITION partE, PartG;
+ALTER TABLE TableA DROP PARTITION Partf;
+ALTER TABLE TableA ADD PARTITION
+(PARTITION PartE VALUES LESS THAN (MAXVALUE));
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MEMORY DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (a) (PARTITION parta VALUES LESS THAN (4) ENGINE = MEMORY, PARTITION partB VALUES LESS THAN (7) ENGINE = MEMORY, PARTITION Partc VALUES LESS THAN (10) ENGINE = MEMORY, PARTITION PartD VALUES LESS THAN (13) ENGINE = MEMORY, PARTITION PartE VALUES LESS THAN MAXVALUE ENGINE = MEMORY) */
+# Test of REORGANIZE PARTITIONS
+# Error since it must reorganize a consecutive range
+ALTER TABLE TableA REORGANIZE PARTITION parta,Partc INTO
+(PARTITION partB VALUES LESS THAN (3) ,
+PARTITION parta VALUES LESS THAN (11) );
+ERROR HY000: When reorganising a set of partitions they must be in consecutive order
+ALTER TABLE TableA REORGANIZE PARTITION partB,Partc,PartD,PartE INTO
+(PARTITION partD VALUES LESS THAN (8)
+COMMENT="Previously partB and partly Partc",
+PARTITION partB VALUES LESS THAN (11)
+COMMENT="Previously partly Partc and partly PartD",
+PARTITION partC VALUES LESS THAN (MAXVALUE)
+COMMENT="Previously partly PartD");
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MEMORY DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (a) (PARTITION parta VALUES LESS THAN (4) ENGINE = MEMORY, PARTITION partD VALUES LESS THAN (8) COMMENT = 'Previously partB and partly Partc' ENGINE = MEMORY, PARTITION partB VALUES LESS THAN (11) COMMENT = 'Previously partly Partc and partly PartD' ENGINE = MEMORY, PARTITION partC VALUES LESS THAN MAXVALUE COMMENT = 'Previously partly PartD' ENGINE = MEMORY) */
+# Test of RENAME TABLE
+RENAME TABLE TableA to TableB;
+SELECT * FROM TableB;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+RENAME TABLE TableB to TableA;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Checking name comparision Upper vs Lower case
+# Error if lower_case_table_names != 0
+# lower_case_table_names: 2
+CREATE TABLE tablea (a INT)
+ENGINE = 'Memory'
+PARTITION BY RANGE (a)
+(PARTITION parta VALUES LESS THAN (4) ,
+PARTITION partB VALUES LESS THAN (7) ,
+PARTITION Partc VALUES LESS THAN (10) ,
+PARTITION PartD VALUES LESS THAN (13) );
+ERROR 42S01: Table 'tablea' already exists
+SHOW TABLES;
+Tables_in_mysql_test_db
+TableA
+RENAME TABLE TableA to tablea;
+ERROR 42S01: Table 'tablea' already exists
+RENAME TABLE tablea to TableA;
+ERROR 42S01: Table 'TableA' already exists
+SELECT * FROM tablea;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE tablea;
+Table Create Table
+tablea CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MEMORY DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (a) (PARTITION parta VALUES LESS THAN (4) ENGINE = MEMORY, PARTITION partD VALUES LESS THAN (8) COMMENT = 'Previously partB and partly Partc' ENGINE = MEMORY, PARTITION partB VALUES LESS THAN (11) COMMENT = 'Previously partly Partc and partly PartD' ENGINE = MEMORY, PARTITION partC VALUES LESS THAN MAXVALUE COMMENT = 'Previously partly PartD' ENGINE = MEMORY) */
+# Test of REMOVE PARTITIONING
+ALTER TABLE TableA REMOVE PARTITIONING;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MEMORY DEFAULT CHARSET=latin1
+# Cleaning up after RANGE PARTITIONING test
+DROP TABLE TableA;
+# 4.0 LIST partitioning mgm
+# Creating LIST partitioned table
+CREATE TABLE TableA (a INT)
+ENGINE = 'Memory'
+PARTITION BY LIST (a)
+(PARTITION parta VALUES IN (1,8,9) ,
+PARTITION partB VALUES IN (2,10,11) ,
+PARTITION Partc VALUES IN (3,4,7) ,
+PARTITION PartD VALUES IN (5,6,12) );
+INSERT INTO TableA VALUES (1), (2), (7), (8), (9), (10);
+INSERT INTO TableA VALUES (3), (4), (5), (6), (11), (12);
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Test of ADD/DROP PARTITIONS
+# expecting duplicate partition name
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partA VALUES IN (0));
+ERROR HY000: Duplicate partition name parta
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partE VALUES IN (16),
+PARTITION Partf VALUES IN (19),
+PARTITION PartG VALUES IN (22));
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MEMORY DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (a) (PARTITION parta VALUES IN (1,8,9) ENGINE = MEMORY, PARTITION partB VALUES IN (2,10,11) ENGINE = MEMORY, PARTITION Partc VALUES IN (3,4,7) ENGINE = MEMORY, PARTITION PartD VALUES IN (5,6,12) ENGINE = MEMORY, PARTITION partE VALUES IN (16) ENGINE = MEMORY, PARTITION Partf VALUES IN (19) ENGINE = MEMORY, PARTITION PartG VALUES IN (22) ENGINE = MEMORY) */
+ALTER TABLE TableA DROP PARTITION partE, PartG;
+ALTER TABLE TableA DROP PARTITION Partf;
+ALTER TABLE TableA ADD PARTITION
+(PARTITION PartE VALUES IN (13));
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MEMORY DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (a) (PARTITION parta VALUES IN (1,8,9) ENGINE = MEMORY, PARTITION partB VALUES IN (2,10,11) ENGINE = MEMORY, PARTITION Partc VALUES IN (3,4,7) ENGINE = MEMORY, PARTITION PartD VALUES IN (5,6,12) ENGINE = MEMORY, PARTITION PartE VALUES IN (13) ENGINE = MEMORY) */
+# Test of REORGANIZE PARTITIONS
+ALTER TABLE TableA REORGANIZE PARTITION parta,Partc INTO
+(PARTITION Partc VALUES IN (1,7)
+COMMENT = "Mix 1 of old parta and Partc",
+PARTITION partF VALUES IN (3,9)
+COMMENT = "Mix 2 of old parta and Partc",
+PARTITION parta VALUES IN (4,8)
+COMMENT = "Mix 3 of old parta and Partc");
+ERROR HY000: When reorganising a set of partitions they must be in consecutive order
+ALTER TABLE TableA REORGANIZE PARTITION parta,partB,Partc INTO
+(PARTITION Partc VALUES IN (1,7)
+COMMENT = "Mix 1 of old parta and Partc",
+PARTITION parta VALUES IN (3,9)
+COMMENT = "Mix 2 of old parta and Partc",
+PARTITION partB VALUES IN (4,8)
+COMMENT = "Mix 3 of old parta and Partc");
+SELECT * FROM TableA;
+a
+1
+12
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MEMORY DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (a) (PARTITION Partc VALUES IN (1,7) COMMENT = 'Mix 1 of old parta and Partc' ENGINE = MEMORY, PARTITION parta VALUES IN (3,9) COMMENT = 'Mix 2 of old parta and Partc' ENGINE = MEMORY, PARTITION partB VALUES IN (4,8) COMMENT = 'Mix 3 of old parta and Partc' ENGINE = MEMORY, PARTITION PartD VALUES IN (5,6,12) ENGINE = MEMORY, PARTITION PartE VALUES IN (13) ENGINE = MEMORY) */
+# Test of RENAME TABLE
+RENAME TABLE TableA to TableB;
+SELECT * FROM TableB;
+a
+1
+12
+3
+4
+5
+6
+7
+8
+9
+RENAME TABLE TableB to TableA;
+SELECT * FROM TableA;
+a
+1
+12
+3
+4
+5
+6
+7
+8
+9
+# Checking name comparision Upper vs Lower case
+# Error if lower_case_table_names != 0
+# lower_case_table_names: 2
+CREATE TABLE tablea (a INT)
+ENGINE = 'Memory'
+PARTITION BY LIST (a)
+(PARTITION parta VALUES IN (1,8,9) ,
+PARTITION partB VALUES IN (2,10,11) ,
+PARTITION Partc VALUES IN (3,4,7) ,
+PARTITION PartD VALUES IN (5,6,12) );
+ERROR 42S01: Table 'tablea' already exists
+SHOW TABLES;
+Tables_in_mysql_test_db
+TableA
+RENAME TABLE TableA to tablea;
+ERROR 42S01: Table 'tablea' already exists
+RENAME TABLE tablea to TableA;
+ERROR 42S01: Table 'TableA' already exists
+SELECT * FROM tablea;
+a
+1
+12
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE tablea;
+Table Create Table
+tablea CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MEMORY DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (a) (PARTITION Partc VALUES IN (1,7) COMMENT = 'Mix 1 of old parta and Partc' ENGINE = MEMORY, PARTITION parta VALUES IN (3,9) COMMENT = 'Mix 2 of old parta and Partc' ENGINE = MEMORY, PARTITION partB VALUES IN (4,8) COMMENT = 'Mix 3 of old parta and Partc' ENGINE = MEMORY, PARTITION PartD VALUES IN (5,6,12) ENGINE = MEMORY, PARTITION PartE VALUES IN (13) ENGINE = MEMORY) */
+# Test of REMOVE PARTITIONING
+ALTER TABLE TableA REMOVE PARTITIONING;
+SELECT * FROM TableA;
+a
+1
+12
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MEMORY DEFAULT CHARSET=latin1
+# Cleaning up after LIST PARTITIONING test
+DROP TABLE TableA;
+# Cleaning up before exit
+USE test;
+DROP DATABASE MySQL_Test_DB;
diff --git a/mysql-test/suite/parts/r/partition_mgm_lc2_myisam.result b/mysql-test/suite/parts/r/partition_mgm_lc2_myisam.result
new file mode 100644
index 00000000000..c586347f23c
--- /dev/null
+++ b/mysql-test/suite/parts/r/partition_mgm_lc2_myisam.result
@@ -0,0 +1,797 @@
+# Creating database MySQL_TEST_DB
+CREATE DATABASE MySQL_Test_DB;
+USE MySQL_Test_DB;
+# 1.0 KEY partitioning mgm
+# Creating KEY partitioned table
+CREATE TABLE TableA (a INT)
+ENGINE = 'MyISAM'
+PARTITION BY KEY (a)
+(PARTITION parta ,
+PARTITION partB ,
+PARTITION Partc ,
+PARTITION PartD );
+INSERT INTO TableA VALUES (1), (2), (7), (8), (9), (10);
+INSERT INTO TableA VALUES (3), (4), (5), (6), (11), (12);
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Test of ADD/COALESCE PARTITIONS
+# expecting duplicate partition name
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partA,
+PARTITION Parta,
+PARTITION PartA);
+ERROR HY000: Duplicate partition name parta
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partE,
+PARTITION Partf,
+PARTITION PartG);
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION parta ENGINE = MyISAM, PARTITION partB ENGINE = MyISAM, PARTITION Partc ENGINE = MyISAM, PARTITION PartD ENGINE = MyISAM, PARTITION partE ENGINE = MyISAM, PARTITION Partf ENGINE = MyISAM, PARTITION PartG ENGINE = MyISAM) */
+ALTER TABLE TableA COALESCE PARTITION 4;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION parta ENGINE = MyISAM, PARTITION partB ENGINE = MyISAM, PARTITION Partc ENGINE = MyISAM) */
+# Test of REORGANIZE PARTITIONS
+# Should not work on HASH/KEY
+ALTER TABLE TableA REORGANIZE PARTITION parta,partB,Partc INTO
+(PARTITION PARTA ,
+PARTITION partc );
+ERROR HY000: REORGANISE PARTITION can only be used to reorganise partitions not to change their numbers
+ALTER TABLE TableA REORGANIZE PARTITION parta,Partc INTO
+(PARTITION partB ,
+PARTITION parta );
+ERROR HY000: When reorganising a set of partitions they must be in consecutive order
+ALTER TABLE TableA REORGANIZE PARTITION parta,partB INTO
+(PARTITION partB COMMENT="Previusly named parta",
+PARTITION parta COMMENT="Previusly named partB");
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION partB COMMENT = 'Previusly named parta' ENGINE = MyISAM, PARTITION parta COMMENT = 'Previusly named partB' ENGINE = MyISAM, PARTITION Partc ENGINE = MyISAM) */
+# Test of RENAME TABLE
+RENAME TABLE TableA to TableB;
+SELECT * FROM TableB;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+RENAME TABLE TableB to TableA;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Checking name comparision Upper vs Lower case
+# Error if lower_case_table_names != 0
+# lower_case_table_names: 2
+CREATE TABLE tablea (a INT)
+ENGINE = 'MyISAM'
+PARTITION BY KEY (a)
+(PARTITION parta ,
+PARTITION partB ,
+PARTITION Partc ,
+PARTITION PartD );
+ERROR 42S01: Table 'tablea' already exists
+SHOW TABLES;
+Tables_in_mysql_test_db
+TableA
+RENAME TABLE TableA to tablea;
+ERROR 42S01: Table 'tablea' already exists
+RENAME TABLE tablea to TableA;
+ERROR 42S01: Table 'TableA' already exists
+SELECT * FROM tablea;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE tablea;
+Table Create Table
+tablea CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION partB COMMENT = 'Previusly named parta' ENGINE = MyISAM, PARTITION parta COMMENT = 'Previusly named partB' ENGINE = MyISAM, PARTITION Partc ENGINE = MyISAM) */
+# Test of REMOVE PARTITIONING
+ALTER TABLE TableA REMOVE PARTITIONING;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+# Cleaning up after KEY PARTITIONING test
+DROP TABLE TableA;
+# 2.0 HASH partitioning mgm
+# expecting duplicate partition name
+CREATE TABLE TableA (a INT)
+ENGINE = 'MyISAM'
+PARTITION BY HASH (a)
+(PARTITION parta ,
+PARTITION partA ,
+PARTITION Parta ,
+PARTITION PartA );
+ERROR HY000: Duplicate partition name parta
+# Creating Hash partitioned table
+CREATE TABLE TableA (a INT)
+ENGINE = 'MyISAM'
+PARTITION BY HASH (a)
+(PARTITION parta ,
+PARTITION partB ,
+PARTITION Partc ,
+PARTITION PartD );
+INSERT INTO TableA VALUES (1), (2), (7), (8), (9), (10);
+INSERT INTO TableA VALUES (3), (4), (5), (6), (11), (12);
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Test of ADD/COALESCE PARTITIONS
+# expecting duplicate partition name
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partA,
+PARTITION Parta,
+PARTITION PartA);
+ERROR HY000: Duplicate partition name parta
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partE,
+PARTITION Partf,
+PARTITION PartG);
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (a) (PARTITION parta ENGINE = MyISAM, PARTITION partB ENGINE = MyISAM, PARTITION Partc ENGINE = MyISAM, PARTITION PartD ENGINE = MyISAM, PARTITION partE ENGINE = MyISAM, PARTITION Partf ENGINE = MyISAM, PARTITION PartG ENGINE = MyISAM) */
+ALTER TABLE TableA COALESCE PARTITION 4;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (a) (PARTITION parta ENGINE = MyISAM, PARTITION partB ENGINE = MyISAM, PARTITION Partc ENGINE = MyISAM) */
+# Test of REORGANIZE PARTITIONS
+# Should not work on HASH/KEY
+ALTER TABLE TableA REORGANIZE PARTITION parta,partB,Partc INTO
+(PARTITION PARTA ,
+PARTITION partc );
+ERROR HY000: REORGANISE PARTITION can only be used to reorganise partitions not to change their numbers
+ALTER TABLE TableA REORGANIZE PARTITION parta,Partc INTO
+(PARTITION partB ,
+PARTITION parta );
+ERROR HY000: When reorganising a set of partitions they must be in consecutive order
+ALTER TABLE TableA REORGANIZE PARTITION parta,partB INTO
+(PARTITION partB COMMENT="Previusly named parta",
+PARTITION parta COMMENT="Previusly named partB");
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (a) (PARTITION partB COMMENT = 'Previusly named parta' ENGINE = MyISAM, PARTITION parta COMMENT = 'Previusly named partB' ENGINE = MyISAM, PARTITION Partc ENGINE = MyISAM) */
+# Test of RENAME TABLE
+RENAME TABLE TableA to TableB;
+SELECT * FROM TableB;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+RENAME TABLE TableB to TableA;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Checking name comparision Upper vs Lower case
+# Error if lower_case_table_names != 0
+# lower_case_table_names: 2
+CREATE TABLE tablea (a INT)
+ENGINE = 'MyISAM'
+PARTITION BY HASH (a)
+(PARTITION parta ,
+PARTITION partB ,
+PARTITION Partc ,
+PARTITION PartD );
+ERROR 42S01: Table 'tablea' already exists
+SHOW TABLES;
+Tables_in_mysql_test_db
+TableA
+RENAME TABLE TableA to tablea;
+ERROR 42S01: Table 'tablea' already exists
+RENAME TABLE tablea to TableA;
+ERROR 42S01: Table 'TableA' already exists
+SELECT * FROM tablea;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE tablea;
+Table Create Table
+tablea CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (a) (PARTITION partB COMMENT = 'Previusly named parta' ENGINE = MyISAM, PARTITION parta COMMENT = 'Previusly named partB' ENGINE = MyISAM, PARTITION Partc ENGINE = MyISAM) */
+# Test of REMOVE PARTITIONING
+ALTER TABLE TableA REMOVE PARTITIONING;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+# Cleaning up after HASH PARTITIONING test
+DROP TABLE TableA;
+# 3.0 RANGE partitioning mgm
+# Creating RANGE partitioned table
+CREATE TABLE TableA (a INT)
+ENGINE = 'MyISAM'
+PARTITION BY RANGE (a)
+(PARTITION parta VALUES LESS THAN (4) ,
+PARTITION partB VALUES LESS THAN (7) ,
+PARTITION Partc VALUES LESS THAN (10) ,
+PARTITION PartD VALUES LESS THAN (13) );
+INSERT INTO TableA VALUES (1), (2), (7), (8), (9), (10);
+INSERT INTO TableA VALUES (3), (4), (5), (6), (11), (12);
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Test of ADD/DROP PARTITIONS
+# expecting duplicate partition name
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partA VALUES LESS THAN (MAXVALUE));
+ERROR HY000: Duplicate partition name parta
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partE VALUES LESS THAN (16),
+PARTITION Partf VALUES LESS THAN (19),
+PARTITION PartG VALUES LESS THAN (22));
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (a) (PARTITION parta VALUES LESS THAN (4) ENGINE = MyISAM, PARTITION partB VALUES LESS THAN (7) ENGINE = MyISAM, PARTITION Partc VALUES LESS THAN (10) ENGINE = MyISAM, PARTITION PartD VALUES LESS THAN (13) ENGINE = MyISAM, PARTITION partE VALUES LESS THAN (16) ENGINE = MyISAM, PARTITION Partf VALUES LESS THAN (19) ENGINE = MyISAM, PARTITION PartG VALUES LESS THAN (22) ENGINE = MyISAM) */
+ALTER TABLE TableA DROP PARTITION partE, PartG;
+ALTER TABLE TableA DROP PARTITION Partf;
+ALTER TABLE TableA ADD PARTITION
+(PARTITION PartE VALUES LESS THAN (MAXVALUE));
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (a) (PARTITION parta VALUES LESS THAN (4) ENGINE = MyISAM, PARTITION partB VALUES LESS THAN (7) ENGINE = MyISAM, PARTITION Partc VALUES LESS THAN (10) ENGINE = MyISAM, PARTITION PartD VALUES LESS THAN (13) ENGINE = MyISAM, PARTITION PartE VALUES LESS THAN MAXVALUE ENGINE = MyISAM) */
+# Test of REORGANIZE PARTITIONS
+# Error since it must reorganize a consecutive range
+ALTER TABLE TableA REORGANIZE PARTITION parta,Partc INTO
+(PARTITION partB VALUES LESS THAN (3) ,
+PARTITION parta VALUES LESS THAN (11) );
+ERROR HY000: When reorganising a set of partitions they must be in consecutive order
+ALTER TABLE TableA REORGANIZE PARTITION partB,Partc,PartD,PartE INTO
+(PARTITION partD VALUES LESS THAN (8)
+COMMENT="Previously partB and partly Partc",
+PARTITION partB VALUES LESS THAN (11)
+COMMENT="Previously partly Partc and partly PartD",
+PARTITION partC VALUES LESS THAN (MAXVALUE)
+COMMENT="Previously partly PartD");
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (a) (PARTITION parta VALUES LESS THAN (4) ENGINE = MyISAM, PARTITION partD VALUES LESS THAN (8) COMMENT = 'Previously partB and partly Partc' ENGINE = MyISAM, PARTITION partB VALUES LESS THAN (11) COMMENT = 'Previously partly Partc and partly PartD' ENGINE = MyISAM, PARTITION partC VALUES LESS THAN MAXVALUE COMMENT = 'Previously partly PartD' ENGINE = MyISAM) */
+# Test of RENAME TABLE
+RENAME TABLE TableA to TableB;
+SELECT * FROM TableB;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+RENAME TABLE TableB to TableA;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Checking name comparision Upper vs Lower case
+# Error if lower_case_table_names != 0
+# lower_case_table_names: 2
+CREATE TABLE tablea (a INT)
+ENGINE = 'MyISAM'
+PARTITION BY RANGE (a)
+(PARTITION parta VALUES LESS THAN (4) ,
+PARTITION partB VALUES LESS THAN (7) ,
+PARTITION Partc VALUES LESS THAN (10) ,
+PARTITION PartD VALUES LESS THAN (13) );
+ERROR 42S01: Table 'tablea' already exists
+SHOW TABLES;
+Tables_in_mysql_test_db
+TableA
+RENAME TABLE TableA to tablea;
+ERROR 42S01: Table 'tablea' already exists
+RENAME TABLE tablea to TableA;
+ERROR 42S01: Table 'TableA' already exists
+SELECT * FROM tablea;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE tablea;
+Table Create Table
+tablea CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (a) (PARTITION parta VALUES LESS THAN (4) ENGINE = MyISAM, PARTITION partD VALUES LESS THAN (8) COMMENT = 'Previously partB and partly Partc' ENGINE = MyISAM, PARTITION partB VALUES LESS THAN (11) COMMENT = 'Previously partly Partc and partly PartD' ENGINE = MyISAM, PARTITION partC VALUES LESS THAN MAXVALUE COMMENT = 'Previously partly PartD' ENGINE = MyISAM) */
+# Test of REMOVE PARTITIONING
+ALTER TABLE TableA REMOVE PARTITIONING;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+# Cleaning up after RANGE PARTITIONING test
+DROP TABLE TableA;
+# 4.0 LIST partitioning mgm
+# Creating LIST partitioned table
+CREATE TABLE TableA (a INT)
+ENGINE = 'MyISAM'
+PARTITION BY LIST (a)
+(PARTITION parta VALUES IN (1,8,9) ,
+PARTITION partB VALUES IN (2,10,11) ,
+PARTITION Partc VALUES IN (3,4,7) ,
+PARTITION PartD VALUES IN (5,6,12) );
+INSERT INTO TableA VALUES (1), (2), (7), (8), (9), (10);
+INSERT INTO TableA VALUES (3), (4), (5), (6), (11), (12);
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Test of ADD/DROP PARTITIONS
+# expecting duplicate partition name
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partA VALUES IN (0));
+ERROR HY000: Duplicate partition name parta
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partE VALUES IN (16),
+PARTITION Partf VALUES IN (19),
+PARTITION PartG VALUES IN (22));
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (a) (PARTITION parta VALUES IN (1,8,9) ENGINE = MyISAM, PARTITION partB VALUES IN (2,10,11) ENGINE = MyISAM, PARTITION Partc VALUES IN (3,4,7) ENGINE = MyISAM, PARTITION PartD VALUES IN (5,6,12) ENGINE = MyISAM, PARTITION partE VALUES IN (16) ENGINE = MyISAM, PARTITION Partf VALUES IN (19) ENGINE = MyISAM, PARTITION PartG VALUES IN (22) ENGINE = MyISAM) */
+ALTER TABLE TableA DROP PARTITION partE, PartG;
+ALTER TABLE TableA DROP PARTITION Partf;
+ALTER TABLE TableA ADD PARTITION
+(PARTITION PartE VALUES IN (13));
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (a) (PARTITION parta VALUES IN (1,8,9) ENGINE = MyISAM, PARTITION partB VALUES IN (2,10,11) ENGINE = MyISAM, PARTITION Partc VALUES IN (3,4,7) ENGINE = MyISAM, PARTITION PartD VALUES IN (5,6,12) ENGINE = MyISAM, PARTITION PartE VALUES IN (13) ENGINE = MyISAM) */
+# Test of REORGANIZE PARTITIONS
+ALTER TABLE TableA REORGANIZE PARTITION parta,Partc INTO
+(PARTITION Partc VALUES IN (1,7)
+COMMENT = "Mix 1 of old parta and Partc",
+PARTITION partF VALUES IN (3,9)
+COMMENT = "Mix 2 of old parta and Partc",
+PARTITION parta VALUES IN (4,8)
+COMMENT = "Mix 3 of old parta and Partc");
+ERROR HY000: When reorganising a set of partitions they must be in consecutive order
+ALTER TABLE TableA REORGANIZE PARTITION parta,partB,Partc INTO
+(PARTITION Partc VALUES IN (1,7)
+COMMENT = "Mix 1 of old parta and Partc",
+PARTITION parta VALUES IN (3,9)
+COMMENT = "Mix 2 of old parta and Partc",
+PARTITION partB VALUES IN (4,8)
+COMMENT = "Mix 3 of old parta and Partc");
+SELECT * FROM TableA;
+a
+1
+12
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (a) (PARTITION Partc VALUES IN (1,7) COMMENT = 'Mix 1 of old parta and Partc' ENGINE = MyISAM, PARTITION parta VALUES IN (3,9) COMMENT = 'Mix 2 of old parta and Partc' ENGINE = MyISAM, PARTITION partB VALUES IN (4,8) COMMENT = 'Mix 3 of old parta and Partc' ENGINE = MyISAM, PARTITION PartD VALUES IN (5,6,12) ENGINE = MyISAM, PARTITION PartE VALUES IN (13) ENGINE = MyISAM) */
+# Test of RENAME TABLE
+RENAME TABLE TableA to TableB;
+SELECT * FROM TableB;
+a
+1
+12
+3
+4
+5
+6
+7
+8
+9
+RENAME TABLE TableB to TableA;
+SELECT * FROM TableA;
+a
+1
+12
+3
+4
+5
+6
+7
+8
+9
+# Checking name comparision Upper vs Lower case
+# Error if lower_case_table_names != 0
+# lower_case_table_names: 2
+CREATE TABLE tablea (a INT)
+ENGINE = 'MyISAM'
+PARTITION BY LIST (a)
+(PARTITION parta VALUES IN (1,8,9) ,
+PARTITION partB VALUES IN (2,10,11) ,
+PARTITION Partc VALUES IN (3,4,7) ,
+PARTITION PartD VALUES IN (5,6,12) );
+ERROR 42S01: Table 'tablea' already exists
+SHOW TABLES;
+Tables_in_mysql_test_db
+TableA
+RENAME TABLE TableA to tablea;
+ERROR 42S01: Table 'tablea' already exists
+RENAME TABLE tablea to TableA;
+ERROR 42S01: Table 'TableA' already exists
+SELECT * FROM tablea;
+a
+1
+12
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE tablea;
+Table Create Table
+tablea CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (a) (PARTITION Partc VALUES IN (1,7) COMMENT = 'Mix 1 of old parta and Partc' ENGINE = MyISAM, PARTITION parta VALUES IN (3,9) COMMENT = 'Mix 2 of old parta and Partc' ENGINE = MyISAM, PARTITION partB VALUES IN (4,8) COMMENT = 'Mix 3 of old parta and Partc' ENGINE = MyISAM, PARTITION PartD VALUES IN (5,6,12) ENGINE = MyISAM, PARTITION PartE VALUES IN (13) ENGINE = MyISAM) */
+# Test of REMOVE PARTITIONING
+ALTER TABLE TableA REMOVE PARTITIONING;
+SELECT * FROM TableA;
+a
+1
+12
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+# Cleaning up after LIST PARTITIONING test
+DROP TABLE TableA;
+# Cleaning up before exit
+USE test;
+DROP DATABASE MySQL_Test_DB;
diff --git a/mysql-test/suite/parts/r/partition_mgm_lc2_ndb.result b/mysql-test/suite/parts/r/partition_mgm_lc2_ndb.result
new file mode 100644
index 00000000000..1c9952370f0
--- /dev/null
+++ b/mysql-test/suite/parts/r/partition_mgm_lc2_ndb.result
@@ -0,0 +1,204 @@
+# Creating database MySQL_TEST_DB
+CREATE DATABASE MySQL_Test_DB;
+USE MySQL_Test_DB;
+# 1.0 KEY partitioning mgm
+# Creating KEY partitioned table
+CREATE TABLE TableA (a INT)
+ENGINE = 'NDBCluster'
+PARTITION BY KEY (a)
+(PARTITION parta ,
+PARTITION partB ,
+PARTITION Partc ,
+PARTITION PartD );
+INSERT INTO TableA VALUES (1), (2), (7), (8), (9), (10);
+INSERT INTO TableA VALUES (3), (4), (5), (6), (11), (12);
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Test of ADD/COALESCE PARTITIONS
+# expecting duplicate partition name
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partA,
+PARTITION Parta,
+PARTITION PartA);
+ERROR HY000: Duplicate partition name parta
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partE,
+PARTITION Partf,
+PARTITION PartG);
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=ndbcluster DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION parta ENGINE = ndbcluster, PARTITION partB ENGINE = ndbcluster, PARTITION Partc ENGINE = ndbcluster, PARTITION PartD ENGINE = ndbcluster, PARTITION partE ENGINE = ndbcluster, PARTITION Partf ENGINE = ndbcluster, PARTITION PartG ENGINE = ndbcluster) */
+ALTER TABLE TableA COALESCE PARTITION 4;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=ndbcluster DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION parta ENGINE = ndbcluster, PARTITION partB ENGINE = ndbcluster, PARTITION Partc ENGINE = ndbcluster) */
+# Test of REORGANIZE PARTITIONS
+# Should not work on HASH/KEY
+ALTER TABLE TableA REORGANIZE PARTITION parta,partB,Partc INTO
+(PARTITION PARTA ,
+PARTITION partc );
+ERROR HY000: REORGANISE PARTITION can only be used to reorganise partitions not to change their numbers
+ALTER TABLE TableA REORGANIZE PARTITION parta,Partc INTO
+(PARTITION partB ,
+PARTITION parta );
+ERROR HY000: When reorganising a set of partitions they must be in consecutive order
+ALTER TABLE TableA REORGANIZE PARTITION parta,partB INTO
+(PARTITION partB COMMENT="Previusly named parta",
+PARTITION parta COMMENT="Previusly named partB");
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=ndbcluster DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION partB COMMENT = 'Previusly named parta' ENGINE = ndbcluster, PARTITION parta COMMENT = 'Previusly named partB' ENGINE = ndbcluster, PARTITION Partc ENGINE = ndbcluster) */
+# Test of RENAME TABLE
+RENAME TABLE TableA to TableB;
+SELECT * FROM TableB;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+RENAME TABLE TableB to TableA;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Checking name comparision Upper vs Lower case
+# Error if lower_case_table_names != 0
+# lower_case_table_names: 2
+CREATE TABLE tablea (a INT)
+ENGINE = 'NDBCluster'
+PARTITION BY KEY (a)
+(PARTITION parta ,
+PARTITION partB ,
+PARTITION Partc ,
+PARTITION PartD );
+ERROR 42S01: Table 'tablea' already exists
+SHOW TABLES;
+Tables_in_mysql_test_db
+TableA
+RENAME TABLE TableA to tablea;
+ERROR 42S01: Table 'tablea' already exists
+RENAME TABLE tablea to TableA;
+ERROR 42S01: Table 'TableA' already exists
+SELECT * FROM tablea;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE tablea;
+Table Create Table
+tablea CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=ndbcluster DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION partB COMMENT = 'Previusly named parta' ENGINE = ndbcluster, PARTITION parta COMMENT = 'Previusly named partB' ENGINE = ndbcluster, PARTITION Partc ENGINE = ndbcluster) */
+# Test of REMOVE PARTITIONING
+ALTER TABLE TableA REMOVE PARTITIONING;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=ndbcluster DEFAULT CHARSET=latin1
+# Cleaning up after KEY PARTITIONING test
+DROP TABLE TableA;
+# Cleaning up before exit
+USE test;
+DROP DATABASE MySQL_Test_DB;
diff --git a/mysql-test/suite/parts/t/partition_mgm_lc0_archive.test b/mysql-test/suite/parts/t/partition_mgm_lc0_archive.test
new file mode 100644
index 00000000000..460e08bc124
--- /dev/null
+++ b/mysql-test/suite/parts/t/partition_mgm_lc0_archive.test
@@ -0,0 +1,42 @@
+################################################################################
+# t/partition_mgm_lc0_archive.test #
+# #
+# Purpose: #
+# Test of partitioning management functions (incl upper/lower case names): #
+# Archive branch + lower_case_table_names = 0 #
+# (usually Unix like, apart from Mac OS X) #
+# Also requires lower_case_file_system OFF #
+# #
+#------------------------------------------------------------------------------#
+# Original Author: mattiasj #
+# Original Date: 2008-06-27 #
+################################################################################
+
+# The server must support partitioning.
+--source include/have_partition.inc
+
+#
+# NOTE: PLEASE DO NOT ADD NOT INNODB SPECIFIC TESTCASES HERE !
+# TESTCASES WHICH MUST BE APPLIED TO ALL STORAGE ENGINES MUST BE ADDED IN
+# THE SOURCED FILES ONLY.
+#
+# Please read the README at the end of inc/partition.pre before changing
+# any of the variables.
+#
+
+#------------------------------------------------------------------------------#
+# General not engine specific settings and requirements
+--source include/have_lowercase0.inc
+--source include/have_case_sensitive_file_system.inc
+
+#------------------------------------------------------------------------------#
+# Engine specific settings and requirements
+let $have_bug37719= 1;
+
+##### Storage engine to be tested
+--source include/have_archive.inc
+let $engine= 'Archive';
+
+#------------------------------------------------------------------------------#
+# Execute the tests to be applied to all storage engines
+--source suite/parts/inc/partition_mgm.inc
diff --git a/mysql-test/suite/parts/t/partition_mgm_lc0_innodb.test b/mysql-test/suite/parts/t/partition_mgm_lc0_innodb.test
new file mode 100644
index 00000000000..ff218dcb1c8
--- /dev/null
+++ b/mysql-test/suite/parts/t/partition_mgm_lc0_innodb.test
@@ -0,0 +1,41 @@
+################################################################################
+# t/partition_mgm_lc0_innodb.test #
+# #
+# Purpose: #
+# Test of partitioning management functions (incl upper/lower case names): #
+# InnoDB branch + lower_case_table_names = 0 #
+# (usually Unix like, apart from Mac OS X) #
+# Also requires lower_case_file_system OFF #
+# #
+#------------------------------------------------------------------------------#
+# Original Author: mattiasj #
+# Original Date: 2008-06-27 #
+################################################################################
+
+# The server must support partitioning.
+--source include/have_partition.inc
+
+#
+# NOTE: PLEASE DO NOT ADD NOT INNODB SPECIFIC TESTCASES HERE !
+# TESTCASES WHICH MUST BE APPLIED TO ALL STORAGE ENGINES MUST BE ADDED IN
+# THE SOURCED FILES ONLY.
+#
+# Please read the README at the end of inc/partition.pre before changing
+# any of the variables.
+#
+
+#------------------------------------------------------------------------------#
+# General not engine specific settings and requirements
+--source include/have_lowercase0.inc
+--source include/have_case_sensitive_file_system.inc
+
+#------------------------------------------------------------------------------#
+# Engine specific settings and requirements
+
+##### Storage engine to be tested
+--source include/have_innodb.inc
+let $engine= 'InnoDB';
+
+#------------------------------------------------------------------------------#
+# Execute the tests to be applied to all storage engines
+--source suite/parts/inc/partition_mgm.inc
diff --git a/mysql-test/suite/parts/t/partition_mgm_lc0_memory.test b/mysql-test/suite/parts/t/partition_mgm_lc0_memory.test
new file mode 100644
index 00000000000..209387a548b
--- /dev/null
+++ b/mysql-test/suite/parts/t/partition_mgm_lc0_memory.test
@@ -0,0 +1,41 @@
+################################################################################
+# t/partition_mgm_lc0_memory.test #
+# #
+# Purpose: #
+# Test of partitioning management functions (incl upper/lower case names): #
+# Memory branch + lower_case_table_names = 0 #
+# (usually Unix like, apart from Mac OS X) #
+# Also requires lower_case_file_system OFF #
+# #
+#------------------------------------------------------------------------------#
+# Original Author: mattiasj #
+# Original Date: 2008-06-27 #
+################################################################################
+
+# The server must support partitioning.
+--source include/have_partition.inc
+
+#
+# NOTE: PLEASE DO NOT ADD NOT INNODB SPECIFIC TESTCASES HERE !
+# TESTCASES WHICH MUST BE APPLIED TO ALL STORAGE ENGINES MUST BE ADDED IN
+# THE SOURCED FILES ONLY.
+#
+# Please read the README at the end of inc/partition.pre before changing
+# any of the variables.
+#
+
+#------------------------------------------------------------------------------#
+# General not engine specific settings and requirements
+--source include/have_lowercase0.inc
+--source include/have_case_sensitive_file_system.inc
+
+#------------------------------------------------------------------------------#
+# Engine specific settings and requirements
+
+##### Storage engine to be tested
+#--source include/have_memory.inc
+let $engine= 'Memory';
+
+#------------------------------------------------------------------------------#
+# Execute the tests to be applied to all storage engines
+--source suite/parts/inc/partition_mgm.inc
diff --git a/mysql-test/suite/parts/t/partition_mgm_lc0_myisam.test b/mysql-test/suite/parts/t/partition_mgm_lc0_myisam.test
new file mode 100644
index 00000000000..31ed4776530
--- /dev/null
+++ b/mysql-test/suite/parts/t/partition_mgm_lc0_myisam.test
@@ -0,0 +1,41 @@
+################################################################################
+# t/partition_mgm_lc0_myisam.test #
+# #
+# Purpose: #
+# Test of partitioning management functions (incl upper/lower case names): #
+# MyISAM branch + lower_case_table_names = 0 #
+# (usually Unix like, apart from Mac OS X) #
+# Also requires lower_case_file_system OFF #
+# #
+#------------------------------------------------------------------------------#
+# Original Author: mattiasj #
+# Original Date: 2008-06-27 #
+################################################################################
+
+# The server must support partitioning.
+--source include/have_partition.inc
+
+#
+# NOTE: PLEASE DO NOT ADD NOT INNODB SPECIFIC TESTCASES HERE !
+# TESTCASES WHICH MUST BE APPLIED TO ALL STORAGE ENGINES MUST BE ADDED IN
+# THE SOURCED FILES ONLY.
+#
+# Please read the README at the end of inc/partition.pre before changing
+# any of the variables.
+#
+
+#------------------------------------------------------------------------------#
+# General not engine specific settings and requirements
+--source include/have_lowercase0.inc
+--source include/have_case_sensitive_file_system.inc
+
+#------------------------------------------------------------------------------#
+# Engine specific settings and requirements
+
+##### Storage engine to be tested
+#--source include/have_myisam.inc
+let $engine= 'MyISAM';
+
+#------------------------------------------------------------------------------#
+# Execute the tests to be applied to all storage engines
+--source suite/parts/inc/partition_mgm.inc
diff --git a/mysql-test/suite/parts/t/partition_mgm_lc0_ndb.test b/mysql-test/suite/parts/t/partition_mgm_lc0_ndb.test
new file mode 100644
index 00000000000..686c69cca25
--- /dev/null
+++ b/mysql-test/suite/parts/t/partition_mgm_lc0_ndb.test
@@ -0,0 +1,47 @@
+################################################################################
+# t/partition_mgm_lc0_ndb.test #
+# #
+# Purpose: #
+# Test of partitioning management functions (incl upper/lower case names): #
+# NDB branch + lower_case_table_names = 0 #
+# (usually Unix like, apart from Mac OS X) #
+# Also requires lower_case_file_system OFF #
+# #
+#------------------------------------------------------------------------------#
+# Original Author: mattiasj #
+# Original Date: 2008-06-27 #
+################################################################################
+
+# The server must support partitioning.
+--source include/have_partition.inc
+
+#
+# NOTE: PLEASE DO NOT ADD NOT INNODB SPECIFIC TESTCASES HERE !
+# TESTCASES WHICH MUST BE APPLIED TO ALL STORAGE ENGINES MUST BE ADDED IN
+# THE SOURCED FILES ONLY.
+#
+# Please read the README at the end of inc/partition.pre before changing
+# any of the variables.
+#
+
+#------------------------------------------------------------------------------#
+# General not engine specific settings and requirements
+--source include/have_lowercase0.inc
+--source include/have_case_sensitive_file_system.inc
+
+#------------------------------------------------------------------------------#
+# Engine specific settings and requirements
+let $have_bug33158= 1;
+
+##### Storage engine to be tested
+--source include/have_ndb.inc
+connection default;
+# Use either $can_only_key or new=on option to run test.
+let $can_only_key= 1;
+# Allow hash/list/range partitioning with ndb
+#SET new=on;
+let $engine= 'NDBCluster';
+
+#------------------------------------------------------------------------------#
+# Execute the tests to be applied to all storage engines
+--source suite/parts/inc/partition_mgm.inc
diff --git a/mysql-test/suite/parts/t/partition_mgm_lc1_archive-master.opt b/mysql-test/suite/parts/t/partition_mgm_lc1_archive-master.opt
new file mode 100644
index 00000000000..62ab6dad1e0
--- /dev/null
+++ b/mysql-test/suite/parts/t/partition_mgm_lc1_archive-master.opt
@@ -0,0 +1 @@
+--lower_case_table_names=1
diff --git a/mysql-test/suite/parts/t/partition_mgm_lc1_archive.test b/mysql-test/suite/parts/t/partition_mgm_lc1_archive.test
new file mode 100644
index 00000000000..2bc643db75f
--- /dev/null
+++ b/mysql-test/suite/parts/t/partition_mgm_lc1_archive.test
@@ -0,0 +1,38 @@
+################################################################################
+# t/partition_mgm_lc1_archive.test #
+# #
+# Purpose: #
+# Test of partitioning management functions (incl upper/lower case names): #
+# Archive branch + lower_case_table_names = 1 (usually Windows) #
+# #
+#------------------------------------------------------------------------------#
+# Original Author: mattiasj #
+# Original Date: 2008-06-27 #
+################################################################################
+
+# The server must support partitioning.
+--source include/have_partition.inc
+
+#
+# NOTE: PLEASE DO NOT ADD NOT INNODB SPECIFIC TESTCASES HERE !
+# TESTCASES WHICH MUST BE APPLIED TO ALL STORAGE ENGINES MUST BE ADDED IN
+# THE SOURCED FILES ONLY.
+#
+# Please read the README at the end of inc/partition.pre before changing
+# any of the variables.
+#
+
+#------------------------------------------------------------------------------#
+# General not engine specific settings and requirements
+--source include/have_lowercase1.inc
+
+#------------------------------------------------------------------------------#
+# Engine specific settings and requirements
+
+##### Storage engine to be tested
+--source include/have_archive.inc
+let $engine= 'Archive';
+
+#------------------------------------------------------------------------------#
+# Execute the tests to be applied to all storage engines
+--source suite/parts/inc/partition_mgm.inc
diff --git a/mysql-test/suite/parts/t/partition_mgm_lc1_innodb-master.opt b/mysql-test/suite/parts/t/partition_mgm_lc1_innodb-master.opt
new file mode 100644
index 00000000000..62ab6dad1e0
--- /dev/null
+++ b/mysql-test/suite/parts/t/partition_mgm_lc1_innodb-master.opt
@@ -0,0 +1 @@
+--lower_case_table_names=1
diff --git a/mysql-test/suite/parts/t/partition_mgm_lc1_innodb.test b/mysql-test/suite/parts/t/partition_mgm_lc1_innodb.test
new file mode 100644
index 00000000000..f14012d2b5b
--- /dev/null
+++ b/mysql-test/suite/parts/t/partition_mgm_lc1_innodb.test
@@ -0,0 +1,38 @@
+################################################################################
+# t/partition_mgm_lc1_innodb.test #
+# #
+# Purpose: #
+# Test of partitioning management functions (incl upper/lower case names): #
+# InnoDB branch + lower_case_table_names = 1 (usually Windows) #
+# #
+#------------------------------------------------------------------------------#
+# Original Author: mattiasj #
+# Original Date: 2008-06-27 #
+################################################################################
+
+# The server must support partitioning.
+--source include/have_partition.inc
+
+#
+# NOTE: PLEASE DO NOT ADD NOT INNODB SPECIFIC TESTCASES HERE !
+# TESTCASES WHICH MUST BE APPLIED TO ALL STORAGE ENGINES MUST BE ADDED IN
+# THE SOURCED FILES ONLY.
+#
+# Please read the README at the end of inc/partition.pre before changing
+# any of the variables.
+#
+
+#------------------------------------------------------------------------------#
+# General not engine specific settings and requirements
+--source include/have_lowercase1.inc
+
+#------------------------------------------------------------------------------#
+# Engine specific settings and requirements
+
+##### Storage engine to be tested
+--source include/have_innodb.inc
+let $engine= 'InnoDB';
+
+#------------------------------------------------------------------------------#
+# Execute the tests to be applied to all storage engines
+--source suite/parts/inc/partition_mgm.inc
diff --git a/mysql-test/suite/parts/t/partition_mgm_lc1_memory-master.opt b/mysql-test/suite/parts/t/partition_mgm_lc1_memory-master.opt
new file mode 100644
index 00000000000..62ab6dad1e0
--- /dev/null
+++ b/mysql-test/suite/parts/t/partition_mgm_lc1_memory-master.opt
@@ -0,0 +1 @@
+--lower_case_table_names=1
diff --git a/mysql-test/suite/parts/t/partition_mgm_lc1_memory.test b/mysql-test/suite/parts/t/partition_mgm_lc1_memory.test
new file mode 100644
index 00000000000..35d933d2a8c
--- /dev/null
+++ b/mysql-test/suite/parts/t/partition_mgm_lc1_memory.test
@@ -0,0 +1,38 @@
+################################################################################
+# t/partition_mgm_lc1_memory.test #
+# #
+# Purpose: #
+# Test of partitioning management functions (incl upper/lower case names): #
+# Memory branch + lower_case_table_names = 1 (usually Windows) #
+# #
+#------------------------------------------------------------------------------#
+# Original Author: mattiasj #
+# Original Date: 2008-06-27 #
+################################################################################
+
+# The server must support partitioning.
+--source include/have_partition.inc
+
+#
+# NOTE: PLEASE DO NOT ADD NOT INNODB SPECIFIC TESTCASES HERE !
+# TESTCASES WHICH MUST BE APPLIED TO ALL STORAGE ENGINES MUST BE ADDED IN
+# THE SOURCED FILES ONLY.
+#
+# Please read the README at the end of inc/partition.pre before changing
+# any of the variables.
+#
+
+#------------------------------------------------------------------------------#
+# General not engine specific settings and requirements
+--source include/have_lowercase1.inc
+
+#------------------------------------------------------------------------------#
+# Engine specific settings and requirements
+
+##### Storage engine to be tested
+#--source include/have_memory.inc
+let $engine= 'Memory';
+
+#------------------------------------------------------------------------------#
+# Execute the tests to be applied to all storage engines
+--source suite/parts/inc/partition_mgm.inc
diff --git a/mysql-test/suite/parts/t/partition_mgm_lc1_myisam-master.opt b/mysql-test/suite/parts/t/partition_mgm_lc1_myisam-master.opt
new file mode 100644
index 00000000000..62ab6dad1e0
--- /dev/null
+++ b/mysql-test/suite/parts/t/partition_mgm_lc1_myisam-master.opt
@@ -0,0 +1 @@
+--lower_case_table_names=1
diff --git a/mysql-test/suite/parts/t/partition_mgm_lc1_myisam.test b/mysql-test/suite/parts/t/partition_mgm_lc1_myisam.test
new file mode 100644
index 00000000000..78b51da0a6b
--- /dev/null
+++ b/mysql-test/suite/parts/t/partition_mgm_lc1_myisam.test
@@ -0,0 +1,38 @@
+################################################################################
+# t/partition_mgm_lc1_myisam.test #
+# #
+# Purpose: #
+# Test of partitioning management functions (incl upper/lower case names): #
+# MyISAM branch + lower_case_table_names = 1 (usually Windows) #
+# #
+#------------------------------------------------------------------------------#
+# Original Author: mattiasj #
+# Original Date: 2008-06-27 #
+################################################################################
+
+# The server must support partitioning.
+--source include/have_partition.inc
+
+#
+# NOTE: PLEASE DO NOT ADD NOT INNODB SPECIFIC TESTCASES HERE !
+# TESTCASES WHICH MUST BE APPLIED TO ALL STORAGE ENGINES MUST BE ADDED IN
+# THE SOURCED FILES ONLY.
+#
+# Please read the README at the end of inc/partition.pre before changing
+# any of the variables.
+#
+
+#------------------------------------------------------------------------------#
+# General not engine specific settings and requirements
+--source include/have_lowercase1.inc
+
+#------------------------------------------------------------------------------#
+# Engine specific settings and requirements
+
+##### Storage engine to be tested
+#--source include/have_myisam.inc
+let $engine= 'MyISAM';
+
+#------------------------------------------------------------------------------#
+# Execute the tests to be applied to all storage engines
+--source suite/parts/inc/partition_mgm.inc
diff --git a/mysql-test/suite/parts/t/partition_mgm_lc1_ndb-master.opt b/mysql-test/suite/parts/t/partition_mgm_lc1_ndb-master.opt
new file mode 100644
index 00000000000..62ab6dad1e0
--- /dev/null
+++ b/mysql-test/suite/parts/t/partition_mgm_lc1_ndb-master.opt
@@ -0,0 +1 @@
+--lower_case_table_names=1
diff --git a/mysql-test/suite/parts/t/partition_mgm_lc1_ndb.test b/mysql-test/suite/parts/t/partition_mgm_lc1_ndb.test
new file mode 100644
index 00000000000..a70b9b5c41c
--- /dev/null
+++ b/mysql-test/suite/parts/t/partition_mgm_lc1_ndb.test
@@ -0,0 +1,44 @@
+################################################################################
+# t/partition_mgm_lc1_ndb.test #
+# #
+# Purpose: #
+# Test of partitioning management functions (incl upper/lower case names): #
+# NDB branch + lower_case_table_names = 1 (usually Windows) #
+# #
+#------------------------------------------------------------------------------#
+# Original Author: mattiasj #
+# Original Date: 2008-06-27 #
+################################################################################
+
+# The server must support partitioning.
+--source include/have_partition.inc
+
+#
+# NOTE: PLEASE DO NOT ADD NOT INNODB SPECIFIC TESTCASES HERE !
+# TESTCASES WHICH MUST BE APPLIED TO ALL STORAGE ENGINES MUST BE ADDED IN
+# THE SOURCED FILES ONLY.
+#
+# Please read the README at the end of inc/partition.pre before changing
+# any of the variables.
+#
+
+#------------------------------------------------------------------------------#
+# General not engine specific settings and requirements
+--source include/have_lowercase1.inc
+
+#------------------------------------------------------------------------------#
+# Engine specific settings and requirements
+let $have_bug33158= 1;
+
+##### Storage engine to be tested
+--source include/have_ndb.inc
+connection default;
+# Use either $can_only_key or new=on option to run test.
+let $can_only_key= 1;
+# Allow hash/list/range partitioning with ndb
+#SET new=on;
+let $engine= 'NDBCluster';
+
+#------------------------------------------------------------------------------#
+# Execute the tests to be applied to all storage engines
+--source suite/parts/inc/partition_mgm.inc
diff --git a/mysql-test/suite/parts/t/partition_mgm_lc2_archive-master.opt b/mysql-test/suite/parts/t/partition_mgm_lc2_archive-master.opt
new file mode 100644
index 00000000000..f18979f5a6a
--- /dev/null
+++ b/mysql-test/suite/parts/t/partition_mgm_lc2_archive-master.opt
@@ -0,0 +1 @@
+--lower_case_table_names=2
diff --git a/mysql-test/suite/parts/t/partition_mgm_lc2_archive.test b/mysql-test/suite/parts/t/partition_mgm_lc2_archive.test
new file mode 100644
index 00000000000..d0e2591804d
--- /dev/null
+++ b/mysql-test/suite/parts/t/partition_mgm_lc2_archive.test
@@ -0,0 +1,38 @@
+################################################################################
+# t/partition_mgm_lc2_archive.test #
+# #
+# Purpose: #
+# Test of partitioning management functions (incl upper/lower case names): #
+# Archive branch + lower_case_table_names = 2 (usually Mac OS X) #
+# #
+#------------------------------------------------------------------------------#
+# Original Author: mattiasj #
+# Original Date: 2008-06-27 #
+################################################################################
+
+# The server must support partitioning.
+--source include/have_partition.inc
+
+#
+# NOTE: PLEASE DO NOT ADD NOT INNODB SPECIFIC TESTCASES HERE !
+# TESTCASES WHICH MUST BE APPLIED TO ALL STORAGE ENGINES MUST BE ADDED IN
+# THE SOURCED FILES ONLY.
+#
+# Please read the README at the end of inc/partition.pre before changing
+# any of the variables.
+#
+
+#------------------------------------------------------------------------------#
+# General not engine specific settings and requirements
+--source include/have_lowercase2.inc
+
+#------------------------------------------------------------------------------#
+# Engine specific settings and requirements
+
+##### Storage engine to be tested
+--source include/have_archive.inc
+let $engine= 'Archive';
+
+#------------------------------------------------------------------------------#
+# Execute the tests to be applied to all storage engines
+--source suite/parts/inc/partition_mgm.inc
diff --git a/mysql-test/suite/parts/t/partition_mgm_lc2_innodb-master.opt b/mysql-test/suite/parts/t/partition_mgm_lc2_innodb-master.opt
new file mode 100644
index 00000000000..f18979f5a6a
--- /dev/null
+++ b/mysql-test/suite/parts/t/partition_mgm_lc2_innodb-master.opt
@@ -0,0 +1 @@
+--lower_case_table_names=2
diff --git a/mysql-test/suite/parts/t/partition_mgm_lc2_innodb.test b/mysql-test/suite/parts/t/partition_mgm_lc2_innodb.test
new file mode 100644
index 00000000000..edcce4f9358
--- /dev/null
+++ b/mysql-test/suite/parts/t/partition_mgm_lc2_innodb.test
@@ -0,0 +1,38 @@
+################################################################################
+# t/partition_mgm_lc2_innodb.test #
+# #
+# Purpose: #
+# Test of partitioning management functions (incl upper/lower case names): #
+# InnoDB branch + lower_case_table_names = 2 (usually Mac OS X) #
+# #
+#------------------------------------------------------------------------------#
+# Original Author: mattiasj #
+# Original Date: 2008-06-27 #
+################################################################################
+
+# The server must support partitioning.
+--source include/have_partition.inc
+
+#
+# NOTE: PLEASE DO NOT ADD NOT INNODB SPECIFIC TESTCASES HERE !
+# TESTCASES WHICH MUST BE APPLIED TO ALL STORAGE ENGINES MUST BE ADDED IN
+# THE SOURCED FILES ONLY.
+#
+# Please read the README at the end of inc/partition.pre before changing
+# any of the variables.
+#
+
+#------------------------------------------------------------------------------#
+# General not engine specific settings and requirements
+--source include/have_lowercase2.inc
+
+#------------------------------------------------------------------------------#
+# Engine specific settings and requirements
+
+##### Storage engine to be tested
+--source include/have_innodb.inc
+let $engine= 'InnoDB';
+
+#------------------------------------------------------------------------------#
+# Execute the tests to be applied to all storage engines
+--source suite/parts/inc/partition_mgm.inc
diff --git a/mysql-test/suite/parts/t/partition_mgm_lc2_memory-master.opt b/mysql-test/suite/parts/t/partition_mgm_lc2_memory-master.opt
new file mode 100644
index 00000000000..f18979f5a6a
--- /dev/null
+++ b/mysql-test/suite/parts/t/partition_mgm_lc2_memory-master.opt
@@ -0,0 +1 @@
+--lower_case_table_names=2
diff --git a/mysql-test/suite/parts/t/partition_mgm_lc2_memory.test b/mysql-test/suite/parts/t/partition_mgm_lc2_memory.test
new file mode 100644
index 00000000000..5bed32b958a
--- /dev/null
+++ b/mysql-test/suite/parts/t/partition_mgm_lc2_memory.test
@@ -0,0 +1,38 @@
+################################################################################
+# t/partition_mgm_lc2_memory.test #
+# #
+# Purpose: #
+# Test of partitioning management functions (incl upper/lower case names): #
+# Memory branch + lower_case_table_names = 2 (usually Mac OS X) #
+# #
+#------------------------------------------------------------------------------#
+# Original Author: mattiasj #
+# Original Date: 2008-06-27 #
+################################################################################
+
+# The server must support partitioning.
+--source include/have_partition.inc
+
+#
+# NOTE: PLEASE DO NOT ADD NOT INNODB SPECIFIC TESTCASES HERE !
+# TESTCASES WHICH MUST BE APPLIED TO ALL STORAGE ENGINES MUST BE ADDED IN
+# THE SOURCED FILES ONLY.
+#
+# Please read the README at the end of inc/partition.pre before changing
+# any of the variables.
+#
+
+#------------------------------------------------------------------------------#
+# General not engine specific settings and requirements
+--source include/have_lowercase2.inc
+
+#------------------------------------------------------------------------------#
+# Engine specific settings and requirements
+
+##### Storage engine to be tested
+#--source include/have_memory.inc
+let $engine= 'Memory';
+
+#------------------------------------------------------------------------------#
+# Execute the tests to be applied to all storage engines
+--source suite/parts/inc/partition_mgm.inc
diff --git a/mysql-test/suite/parts/t/partition_mgm_lc2_myisam-master.opt b/mysql-test/suite/parts/t/partition_mgm_lc2_myisam-master.opt
new file mode 100644
index 00000000000..f18979f5a6a
--- /dev/null
+++ b/mysql-test/suite/parts/t/partition_mgm_lc2_myisam-master.opt
@@ -0,0 +1 @@
+--lower_case_table_names=2
diff --git a/mysql-test/suite/parts/t/partition_mgm_lc2_myisam.test b/mysql-test/suite/parts/t/partition_mgm_lc2_myisam.test
new file mode 100644
index 00000000000..83d35050019
--- /dev/null
+++ b/mysql-test/suite/parts/t/partition_mgm_lc2_myisam.test
@@ -0,0 +1,38 @@
+################################################################################
+# t/partition_mgm_lc2_myisam.test #
+# #
+# Purpose: #
+# Test of partitioning management functions (incl upper/lower case names): #
+# MyISAM branch + lower_case_table_names = 2 (usually Mac OS X) #
+# #
+#------------------------------------------------------------------------------#
+# Original Author: mattiasj #
+# Original Date: 2008-06-27 #
+################################################################################
+
+# The server must support partitioning.
+--source include/have_partition.inc
+
+#
+# NOTE: PLEASE DO NOT ADD NOT INNODB SPECIFIC TESTCASES HERE !
+# TESTCASES WHICH MUST BE APPLIED TO ALL STORAGE ENGINES MUST BE ADDED IN
+# THE SOURCED FILES ONLY.
+#
+# Please read the README at the end of inc/partition.pre before changing
+# any of the variables.
+#
+
+#------------------------------------------------------------------------------#
+# General not engine specific settings and requirements
+--source include/have_lowercase2.inc
+
+#------------------------------------------------------------------------------#
+# Engine specific settings and requirements
+
+##### Storage engine to be tested
+#--source include/have_myisam.inc
+let $engine= 'MyISAM';
+
+#------------------------------------------------------------------------------#
+# Execute the tests to be applied to all storage engines
+--source suite/parts/inc/partition_mgm.inc
diff --git a/mysql-test/suite/parts/t/partition_mgm_lc2_ndb-master.opt b/mysql-test/suite/parts/t/partition_mgm_lc2_ndb-master.opt
new file mode 100644
index 00000000000..f18979f5a6a
--- /dev/null
+++ b/mysql-test/suite/parts/t/partition_mgm_lc2_ndb-master.opt
@@ -0,0 +1 @@
+--lower_case_table_names=2
diff --git a/mysql-test/suite/parts/t/partition_mgm_lc2_ndb.test b/mysql-test/suite/parts/t/partition_mgm_lc2_ndb.test
new file mode 100644
index 00000000000..67fdfdde70b
--- /dev/null
+++ b/mysql-test/suite/parts/t/partition_mgm_lc2_ndb.test
@@ -0,0 +1,43 @@
+################################################################################
+# t/partition_mgm_lc2_ndb.test #
+# #
+# Purpose: #
+# Test of partitioning management functions (incl upper/lower case names): #
+# NDB branch + lower_case_table_names = 2 (usually Mac OS X) #
+# #
+#------------------------------------------------------------------------------#
+# Original Author: mattiasj #
+# Original Date: 2008-06-27 #
+################################################################################
+
+# The server must support partitioning.
+--source include/have_partition.inc
+
+#
+# NOTE: PLEASE DO NOT ADD NOT INNODB SPECIFIC TESTCASES HERE !
+# TESTCASES WHICH MUST BE APPLIED TO ALL STORAGE ENGINES MUST BE ADDED IN
+# THE SOURCED FILES ONLY.
+#
+# Please read the README at the end of inc/partition.pre before changing
+# any of the variables.
+#
+
+#------------------------------------------------------------------------------#
+# General not engine specific settings and requirements
+--source include/have_lowercase2.inc
+
+#------------------------------------------------------------------------------#
+# Engine specific settings and requirements
+
+##### Storage engine to be tested
+--source include/have_ndb.inc
+connection default;
+# Use either $can_only_key or new=on option to run test.
+let $can_only_key= 1;
+# Allow hash/list/range partitioning with ndb
+#SET new=on;
+let $engine= 'NDBCluster';
+
+#------------------------------------------------------------------------------#
+# Execute the tests to be applied to all storage engines
+--source suite/parts/inc/partition_mgm.inc