List:Commits« Previous MessageNext Message »
From:Mattias Jonsson Date:June 29 2008 4:36pm
Subject:bzr commit into mysql-5.1 branch (mattiasj:2673) Bug#37402
View as plain text  
#At file:///Users/mattiasj/clones/bzrroot/b37402-51-bugteam/

 2673 Mattias Jonsson	2008-06-29
      Bug#37402: Mysql cant read partitioned table with capital letter in the name
      
      Problem was that ha_partition had HA_FILE_BASED flag set
      (since it uses a .par file), but after open it uses the first partitions
      flags, which results in different case handling for create and for
      open.
      
      Solution was to change the underlying partition name so it was consistent.
      (Only happens when lower_case_table_names = 2, i.e. Mac OS X and storage
      engines without HA_FILE_BASED, like InnoDB and Memory.)
added:
  mysql-test/include/have_case_insensitive_file_system.inc
  mysql-test/include/have_lowercase2.inc
  mysql-test/r/case_insensitive_file_system.require
  mysql-test/suite/parts/inc/partition_mgm.inc
  mysql-test/suite/parts/r/partition_mgm_lc0_archive.result
  mysql-test/suite/parts/r/partition_mgm_lc0_innodb.result
  mysql-test/suite/parts/r/partition_mgm_lc0_memory.result
  mysql-test/suite/parts/r/partition_mgm_lc0_myisam.result
  mysql-test/suite/parts/r/partition_mgm_lc0_ndb.result
  mysql-test/suite/parts/r/partition_mgm_lc1_archive.result
  mysql-test/suite/parts/r/partition_mgm_lc1_innodb.result
  mysql-test/suite/parts/r/partition_mgm_lc1_memory.result
  mysql-test/suite/parts/r/partition_mgm_lc1_myisam.result
  mysql-test/suite/parts/r/partition_mgm_lc1_ndb.result
  mysql-test/suite/parts/r/partition_mgm_lc2_archive.result
  mysql-test/suite/parts/r/partition_mgm_lc2_innodb.result
  mysql-test/suite/parts/r/partition_mgm_lc2_memory.result
  mysql-test/suite/parts/r/partition_mgm_lc2_myisam.result
  mysql-test/suite/parts/r/partition_mgm_lc2_ndb.result
  mysql-test/suite/parts/t/partition_mgm_lc0_archive.test
  mysql-test/suite/parts/t/partition_mgm_lc0_innodb.test
  mysql-test/suite/parts/t/partition_mgm_lc0_memory.test
  mysql-test/suite/parts/t/partition_mgm_lc0_myisam.test
  mysql-test/suite/parts/t/partition_mgm_lc0_ndb.test
  mysql-test/suite/parts/t/partition_mgm_lc1_archive-master.opt
  mysql-test/suite/parts/t/partition_mgm_lc1_archive.test
  mysql-test/suite/parts/t/partition_mgm_lc1_innodb-master.opt
  mysql-test/suite/parts/t/partition_mgm_lc1_innodb.test
  mysql-test/suite/parts/t/partition_mgm_lc1_memory-master.opt
  mysql-test/suite/parts/t/partition_mgm_lc1_memory.test
  mysql-test/suite/parts/t/partition_mgm_lc1_myisam-master.opt
  mysql-test/suite/parts/t/partition_mgm_lc1_myisam.test
  mysql-test/suite/parts/t/partition_mgm_lc1_ndb-master.opt
  mysql-test/suite/parts/t/partition_mgm_lc1_ndb.test
  mysql-test/suite/parts/t/partition_mgm_lc2_archive-master.opt
  mysql-test/suite/parts/t/partition_mgm_lc2_archive.test
  mysql-test/suite/parts/t/partition_mgm_lc2_innodb-master.opt
  mysql-test/suite/parts/t/partition_mgm_lc2_innodb.test
  mysql-test/suite/parts/t/partition_mgm_lc2_memory-master.opt
  mysql-test/suite/parts/t/partition_mgm_lc2_memory.test
  mysql-test/suite/parts/t/partition_mgm_lc2_myisam-master.opt
  mysql-test/suite/parts/t/partition_mgm_lc2_myisam.test
  mysql-test/suite/parts/t/partition_mgm_lc2_ndb-master.opt
  mysql-test/suite/parts/t/partition_mgm_lc2_ndb.test
modified:
  mysql-test/include/have_lowercase0.inc
  mysql-test/lib/mtr_report.pl
  mysql-test/r/lowercase0.require
  mysql-test/t/lowercase_table3.test
  sql/ha_partition.cc
  sql/handler.cc
  sql/handler.h

per-file messages:
  mysql-test/include/have_case_insensitive_file_system.inc
    Bug#37402: Mysql cant read partitioned table with capital letter in the name
    
    Added include file
  mysql-test/include/have_lowercase0.inc
    Bug#37402: Mysql cant read partitioned table with capital letter in the name
    
    moved case insensitive file system to a new file, leaving only
    lower_case_table_names
  mysql-test/include/have_lowercase2.inc
    Bug#37402: Mysql cant read partitioned table with capital letter in the name
    
    Added include file
  mysql-test/lib/mtr_report.pl
    Bug#37402: Mysql cant read partitioned table with capital letter in the name
    
    Removed a duplicate row and suppressed warning about setting
    lower_case_table_names to 2 on case sensitive file systems
  mysql-test/r/case_insensitive_file_system.require
    Bug#37402: Mysql cant read partitioned table with capital letter in the name
    
    Added requirement file
  mysql-test/r/lowercase0.require
    Bug#37402: Mysql cant read partitioned table with capital letter in the name
    
    moved case insensitive file system to a new file, leaving only
    lower_case_table_names
  mysql-test/suite/parts/inc/partition_mgm.inc
    Bug#37402: Mysql cant read partitioned table with capital letter in the name
    
    New include file for testing partitioning management functions for different
    settings of lower_case_table_names
  mysql-test/suite/parts/r/partition_mgm_lc0_archive.result
    Bug#37402: Mysql cant read partitioned table with capital letter in the name
    
    New result file
  mysql-test/suite/parts/r/partition_mgm_lc0_innodb.result
    Bug#37402: Mysql cant read partitioned table with capital letter in the name
    
    New result file
  mysql-test/suite/parts/r/partition_mgm_lc0_memory.result
    Bug#37402: Mysql cant read partitioned table with capital letter in the name
    
    New result file
  mysql-test/suite/parts/r/partition_mgm_lc0_myisam.result
    Bug#37402: Mysql cant read partitioned table with capital letter in the name
    
    New result file
  mysql-test/suite/parts/r/partition_mgm_lc0_ndb.result
    Bug#37402: Mysql cant read partitioned table with capital letter in the name
    
    New result file
  mysql-test/suite/parts/r/partition_mgm_lc1_archive.result
    Bug#37402: Mysql cant read partitioned table with capital letter in the name
    
    New result file
  mysql-test/suite/parts/r/partition_mgm_lc1_innodb.result
    Bug#37402: Mysql cant read partitioned table with capital letter in the name
    
    New result file
  mysql-test/suite/parts/r/partition_mgm_lc1_memory.result
    Bug#37402: Mysql cant read partitioned table with capital letter in the name
    
    New result file
  mysql-test/suite/parts/r/partition_mgm_lc1_myisam.result
    Bug#37402: Mysql cant read partitioned table with capital letter in the name
    
    New result file
  mysql-test/suite/parts/r/partition_mgm_lc1_ndb.result
    Bug#37402: Mysql cant read partitioned table with capital letter in the name
    
    New result file
  mysql-test/suite/parts/r/partition_mgm_lc2_archive.result
    Bug#37402: Mysql cant read partitioned table with capital letter in the name
    
    New result file
  mysql-test/suite/parts/r/partition_mgm_lc2_innodb.result
    Bug#37402: Mysql cant read partitioned table with capital letter in the name
    
    New result file
  mysql-test/suite/parts/r/partition_mgm_lc2_memory.result
    Bug#37402: Mysql cant read partitioned table with capital letter in the name
    
    New result file
  mysql-test/suite/parts/r/partition_mgm_lc2_myisam.result
    Bug#37402: Mysql cant read partitioned table with capital letter in the name
    
    New result file
  mysql-test/suite/parts/r/partition_mgm_lc2_ndb.result
    Bug#37402: Mysql cant read partitioned table with capital letter in the name
    
    New result file
  mysql-test/suite/parts/t/partition_mgm_lc0_archive.test
    Bug#37402: Mysql cant read partitioned table with capital letter in the name
    
    New test file
  mysql-test/suite/parts/t/partition_mgm_lc0_innodb.test
    Bug#37402: Mysql cant read partitioned table with capital letter in the name
    
    New test file
  mysql-test/suite/parts/t/partition_mgm_lc0_memory.test
    Bug#37402: Mysql cant read partitioned table with capital letter in the name
    
    New test file
  mysql-test/suite/parts/t/partition_mgm_lc0_myisam.test
    Bug#37402: Mysql cant read partitioned table with capital letter in the name
    
    New test file
  mysql-test/suite/parts/t/partition_mgm_lc0_ndb.test
    Bug#37402: Mysql cant read partitioned table with capital letter in the name
    
    New test file
  mysql-test/suite/parts/t/partition_mgm_lc1_archive-master.opt
    Bug#37402: Mysql cant read partitioned table with capital letter in the name
    
    New opt file
  mysql-test/suite/parts/t/partition_mgm_lc1_archive.test
    Bug#37402: Mysql cant read partitioned table with capital letter in the name
    
    New test file
  mysql-test/suite/parts/t/partition_mgm_lc1_innodb-master.opt
    Bug#37402: Mysql cant read partitioned table with capital letter in the name
    
    New opt file
  mysql-test/suite/parts/t/partition_mgm_lc1_innodb.test
    Bug#37402: Mysql cant read partitioned table with capital letter in the name
    
    New test file
  mysql-test/suite/parts/t/partition_mgm_lc1_memory-master.opt
    Bug#37402: Mysql cant read partitioned table with capital letter in the name
    
    New opt file
  mysql-test/suite/parts/t/partition_mgm_lc1_memory.test
    Bug#37402: Mysql cant read partitioned table with capital letter in the name
    
    New test file
  mysql-test/suite/parts/t/partition_mgm_lc1_myisam-master.opt
    Bug#37402: Mysql cant read partitioned table with capital letter in the name
    
    New opt file
  mysql-test/suite/parts/t/partition_mgm_lc1_myisam.test
    Bug#37402: Mysql cant read partitioned table with capital letter in the name
    
    New test file
  mysql-test/suite/parts/t/partition_mgm_lc1_ndb-master.opt
    Bug#37402: Mysql cant read partitioned table with capital letter in the name
    
    New opt file
  mysql-test/suite/parts/t/partition_mgm_lc1_ndb.test
    Bug#37402: Mysql cant read partitioned table with capital letter in the name
    
    New test file
  mysql-test/suite/parts/t/partition_mgm_lc2_archive-master.opt
    Bug#37402: Mysql cant read partitioned table with capital letter in the name
    
    New opt file
  mysql-test/suite/parts/t/partition_mgm_lc2_archive.test
    Bug#37402: Mysql cant read partitioned table with capital letter in the name
    
    New test file
  mysql-test/suite/parts/t/partition_mgm_lc2_innodb-master.opt
    Bug#37402: Mysql cant read partitioned table with capital letter in the name
    
    New opt file
  mysql-test/suite/parts/t/partition_mgm_lc2_innodb.test
    Bug#37402: Mysql cant read partitioned table with capital letter in the name
    
    New test file
  mysql-test/suite/parts/t/partition_mgm_lc2_memory-master.opt
    Bug#37402: Mysql cant read partitioned table with capital letter in the name
    
    New opt file
  mysql-test/suite/parts/t/partition_mgm_lc2_memory.test
    Bug#37402: Mysql cant read partitioned table with capital letter in the name
    
    New test file
  mysql-test/suite/parts/t/partition_mgm_lc2_myisam-master.opt
    Bug#37402: Mysql cant read partitioned table with capital letter in the name
    
    New opt file
  mysql-test/suite/parts/t/partition_mgm_lc2_myisam.test
    Bug#37402: Mysql cant read partitioned table with capital letter in the name
    
    New test file
  mysql-test/suite/parts/t/partition_mgm_lc2_ndb-master.opt
    Bug#37402: Mysql cant read partitioned table with capital letter in the name
    
    New opt file
  mysql-test/suite/parts/t/partition_mgm_lc2_ndb.test
    Bug#37402: Mysql cant read partitioned table with capital letter in the name
    
    New test file
  mysql-test/t/lowercase_table3.test
    Bug#37402: Mysql cant read partitioned table with capital letter in the name
    
    Moved case sensitive file system to a specific inc-file instead of
    included in lowercase0.inc
  sql/ha_partition.cc
    Bug#37402: Mysql cant read partitioned table with capital letter in the name
    
    Problem was that ha_partition had HA_FILE_BASED set
    (since it uses a .par file), but after open it uses the first partitions
    table_flags(), which results in different case handling for create and for
    open.
    
    Solution was to change the underlying partition name so it was consistent.
    (Only happens when lower_case_table_names = 2, i.e. Mac OS X)
  sql/handler.cc
    Bug#37402: Mysql cant read partitioned table with capital letter in the name
    
    exporting check_lowercase_names, so that ha_partition.cc can use the function
  sql/handler.h
    Bug#37402: Mysql cant read partitioned table with capital letter in the name
    
    exporting check_lowercase_names, so that ha_partition.cc can use the function
=== added file 'mysql-test/include/have_case_insensitive_file_system.inc'
--- a/mysql-test/include/have_case_insensitive_file_system.inc	1970-01-01 00:00:00 +0000
+++ b/mysql-test/include/have_case_insensitive_file_system.inc	2008-06-29 14:35:46 +0000
@@ -0,0 +1,4 @@
+--require r/case_insensitive_file_system.require
+--disable_query_log
+show variables like "lower_case_file_system";
+--enable_query_log

=== modified file 'mysql-test/include/have_lowercase0.inc'
--- a/mysql-test/include/have_lowercase0.inc	2006-10-19 09:35:10 +0000
+++ b/mysql-test/include/have_lowercase0.inc	2008-06-29 14:35:46 +0000
@@ -1,4 +1,4 @@
 --require r/lowercase0.require
 --disable_query_log
-show variables like "lower_case_%";
+show variables like "lower_case_table_names";
 --enable_query_log

=== added file 'mysql-test/include/have_lowercase2.inc'
--- a/mysql-test/include/have_lowercase2.inc	1970-01-01 00:00:00 +0000
+++ b/mysql-test/include/have_lowercase2.inc	2008-06-29 14:35:46 +0000
@@ -0,0 +1,4 @@
+--require r/lowercase2.require
+--disable_query_log
+show variables like 'lower_case_table_names';
+--enable_query_log

=== modified file 'mysql-test/lib/mtr_report.pl'
--- a/mysql-test/lib/mtr_report.pl	2008-03-28 10:14:27 +0000
+++ b/mysql-test/lib/mtr_report.pl	2008-06-29 14:35:46 +0000
@@ -327,7 +327,6 @@ sub mtr_report_stats ($) {
 		/Sort aborted/ or
 		/Time-out in NDB/ or
 		/One can only use the --user.*root/ or
-		/Setting lower_case_table_names=2/ or
 		/Table:.* on (delete|rename)/ or
 		/You have an error in your SQL syntax/ or
 		/deprecated/ or
@@ -402,7 +401,15 @@ sub mtr_report_stats ($) {
 		 )) or
 
                 # Test case for Bug#31590 produces the following error:
-                /Out of sort memory; increase server sort buffer size/
+                /Out of sort memory; increase server sort buffer size/ or
+
+                # lowercase_table3 using case sensitive option on
+                # case insensitive filesystem (InnoDB error).
+                /Cannot find or open table test\/BUG29839 from/ or
+
+                # When trying to set lower_case_table_names = 2
+                # on a case sensitive file system. Bug#37402.
+                /lower_case_table_names was set to 2, even though your the file system
'.*' is case sensitive.  Now setting lower_case_table_names to 0 to avoid future
problems./
 		)
             {
               next;                       # Skip these lines

=== added file 'mysql-test/r/case_insensitive_file_system.require'
--- a/mysql-test/r/case_insensitive_file_system.require	1970-01-01 00:00:00 +0000
+++ b/mysql-test/r/case_insensitive_file_system.require	2008-06-29 14:35:46 +0000
@@ -0,0 +1,2 @@
+Variable_name	Value
+lower_case_file_system	ON

=== modified file 'mysql-test/r/lowercase0.require'
--- a/mysql-test/r/lowercase0.require	2004-03-06 08:43:35 +0000
+++ b/mysql-test/r/lowercase0.require	2008-06-29 14:35:46 +0000
@@ -1,3 +1,2 @@
 Variable_name	Value
-lower_case_file_system	ON
 lower_case_table_names	0

=== added file 'mysql-test/suite/parts/inc/partition_mgm.inc'
--- a/mysql-test/suite/parts/inc/partition_mgm.inc	1970-01-01 00:00:00 +0000
+++ b/mysql-test/suite/parts/inc/partition_mgm.inc	2008-06-29 14:35:46 +0000
@@ -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;

=== added file 'mysql-test/suite/parts/r/partition_mgm_lc0_archive.result'
--- a/mysql-test/suite/parts/r/partition_mgm_lc0_archive.result	1970-01-01 00:00:00 +0000
+++ b/mysql-test/suite/parts/r/partition_mgm_lc0_archive.result	2008-06-29 14:35:46 +0000
@@ -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;

=== added file 'mysql-test/suite/parts/r/partition_mgm_lc0_innodb.result'
--- a/mysql-test/suite/parts/r/partition_mgm_lc0_innodb.result	1970-01-01 00:00:00 +0000
+++ b/mysql-test/suite/parts/r/partition_mgm_lc0_innodb.result	2008-06-29 14:35:46 +0000
@@ -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;

=== added file 'mysql-test/suite/parts/r/partition_mgm_lc0_memory.result'
--- a/mysql-test/suite/parts/r/partition_mgm_lc0_memory.result	1970-01-01 00:00:00 +0000
+++ b/mysql-test/suite/parts/r/partition_mgm_lc0_memory.result	2008-06-29 14:35:46 +0000
@@ -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;

=== added file 'mysql-test/suite/parts/r/partition_mgm_lc0_myisam.result'
--- a/mysql-test/suite/parts/r/partition_mgm_lc0_myisam.result	1970-01-01 00:00:00 +0000
+++ b/mysql-test/suite/parts/r/partition_mgm_lc0_myisam.result	2008-06-29 14:35:46 +0000
@@ -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;

=== added file 'mysql-test/suite/parts/r/partition_mgm_lc0_ndb.result'
--- a/mysql-test/suite/parts/r/partition_mgm_lc0_ndb.result	1970-01-01 00:00:00 +0000
+++ b/mysql-test/suite/parts/r/partition_mgm_lc0_ndb.result	2008-06-29 14:35:46 +0000
@@ -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;

=== added file 'mysql-test/suite/parts/r/partition_mgm_lc1_archive.result'
--- a/mysql-test/suite/parts/r/partition_mgm_lc1_archive.result	1970-01-01 00:00:00 +0000
+++ b/mysql-test/suite/parts/r/partition_mgm_lc1_archive.result	2008-06-29 14:35:46 +0000
@@ -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;

=== added file 'mysql-test/suite/parts/r/partition_mgm_lc1_innodb.result'
--- a/mysql-test/suite/parts/r/partition_mgm_lc1_innodb.result	1970-01-01 00:00:00 +0000
+++ b/mysql-test/suite/parts/r/partition_mgm_lc1_innodb.result	2008-06-29 14:35:46 +0000
@@ -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;

=== added file 'mysql-test/suite/parts/r/partition_mgm_lc1_memory.result'
--- a/mysql-test/suite/parts/r/partition_mgm_lc1_memory.result	1970-01-01 00:00:00 +0000
+++ b/mysql-test/suite/parts/r/partition_mgm_lc1_memory.result	2008-06-29 14:35:46 +0000
@@ -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;

=== added file 'mysql-test/suite/parts/r/partition_mgm_lc1_myisam.result'
--- a/mysql-test/suite/parts/r/partition_mgm_lc1_myisam.result	1970-01-01 00:00:00 +0000
+++ b/mysql-test/suite/parts/r/partition_mgm_lc1_myisam.result	2008-06-29 14:35:46 +0000
@@ -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;

=== added file 'mysql-test/suite/parts/r/partition_mgm_lc1_ndb.result'
--- a/mysql-test/suite/parts/r/partition_mgm_lc1_ndb.result	1970-01-01 00:00:00 +0000
+++ b/mysql-test/suite/parts/r/partition_mgm_lc1_ndb.result	2008-06-29 14:35:46 +0000
@@ -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;

=== added file 'mysql-test/suite/parts/r/partition_mgm_lc2_archive.result'
--- a/mysql-test/suite/parts/r/partition_mgm_lc2_archive.result	1970-01-01 00:00:00 +0000
+++ b/mysql-test/suite/parts/r/partition_mgm_lc2_archive.result	2008-06-29 14:35:46 +0000
@@ -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;

=== added file 'mysql-test/suite/parts/r/partition_mgm_lc2_innodb.result'
--- a/mysql-test/suite/parts/r/partition_mgm_lc2_innodb.result	1970-01-01 00:00:00 +0000
+++ b/mysql-test/suite/parts/r/partition_mgm_lc2_innodb.result	2008-06-29 14:35:46 +0000
@@ -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;

=== added file 'mysql-test/suite/parts/r/partition_mgm_lc2_memory.result'
--- a/mysql-test/suite/parts/r/partition_mgm_lc2_memory.result	1970-01-01 00:00:00 +0000
+++ b/mysql-test/suite/parts/r/partition_mgm_lc2_memory.result	2008-06-29 14:35:46 +0000
@@ -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;

=== added file 'mysql-test/suite/parts/r/partition_mgm_lc2_myisam.result'
--- a/mysql-test/suite/parts/r/partition_mgm_lc2_myisam.result	1970-01-01 00:00:00 +0000
+++ b/mysql-test/suite/parts/r/partition_mgm_lc2_myisam.result	2008-06-29 14:35:46 +0000
@@ -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,