#At file:///Users/mattiasj/clones/bzrroot/topush-51-bugteam/
2693 Mattias Jonsson 2008-08-12 [merge]
manual merge of bug#37402
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/mysql_priv.h
=== 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-07-10 23:14:13 +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 2008-07-04 16:41:27 +0000
+++ b/mysql-test/include/have_lowercase0.inc 2008-08-12 10:26:23 +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-07-10 23:14:13 +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-07-07 15:54:42 +0000
+++ b/mysql-test/lib/mtr_report.pl 2008-08-12 10:26:23 +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
@@ -405,7 +404,15 @@ sub mtr_report_stats ($) {
/Out of sort memory; increase server sort buffer size/ or
# Bug#35161, test of auto repair --myisam-recover
- /able.*_will_crash/
+ /able.*_will_crash/ 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-07-10 23:14:13 +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-07-10 23:14:13 +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-07-10 23:14:13 +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-07-10 23:14:13 +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-07-10 23:14:13 +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-07-10 23:14:13 +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-07-10 23:14:13 +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-07-10 23:14:13 +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-07-10 23:14:13 +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-07-10 23:14:13 +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-07-10 23:14:13 +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-07-10 23:14:13 +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-07-10 23:14:13 +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-07-10 23:14:13 +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-07-10 23:14:13 +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-07-10 23:14:13 +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-07-10 23:14:13 +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: 2
+CREATE TABLE tablea (a INT)
+ENGINE = 'MyISAM'
+PARTITION BY KEY (a)
+(PARTITION parta ,
+PARTITION partB ,
+PARTITION Partc ,
+PARTITION PartD );
+ERROR 42S01: Table 'tablea' already exists
+SHOW TABLES;
+Tables_in_mysql_test_db
+TableA
+RENAME TABLE TableA to tablea;
+ERROR 42S01: Table 'tablea' already exists
+RENAME TABLE tablea to TableA;
+ERROR 42S01: Table 'TableA' already exists
+SELECT * FROM tablea;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE tablea;
+Table Create Table
+tablea CREATE TABLE `tablea` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION partB
COMMENT = 'Previusly named parta' ENGINE = MyISAM, PARTITION parta COMMENT = 'Previusly
named partB' ENGINE = MyISAM, PARTITION Partc ENGINE = MyISAM) */
+# Test of REMOVE PARTITIONING
+ALTER TABLE TableA REMOVE PARTITIONING;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+# Cleaning up after KEY PARTITIONING test
+DROP TABLE TableA;
+# 2.0 HASH partitioning mgm
+# expecting duplicate partition name
+CREATE TABLE TableA (a INT)
+ENGINE = 'MyISAM'
+PARTITION BY HASH (a)
+(PARTITION parta ,
+PARTITION partA ,
+PARTITION Parta ,
+PARTITION PartA );
+ERROR HY000: Duplicate partition name parta
+# Creating Hash partitioned table
+CREATE TABLE TableA (a INT)
+ENGINE = 'MyISAM'
+PARTITION BY HASH (a)
+(PARTITION parta ,
+PARTITION partB ,
+PARTITION Partc ,
+PARTITION PartD );
+INSERT INTO TableA VALUES (1), (2), (7), (8), (9), (10);
+INSERT INTO TableA VALUES (3), (4), (5), (6), (11), (12);
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+# Test of ADD/COALESCE PARTITIONS
+# expecting duplicate partition name
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partA,
+PARTITION Parta,
+PARTITION PartA);
+ERROR HY000: Duplicate partition name parta
+ALTER TABLE TableA ADD PARTITION
+(PARTITION partE,
+PARTITION Partf,
+PARTITION PartG);
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (a) (PARTITION parta
ENGINE = MyISAM, PARTITION partB ENGINE = MyISAM, PARTITION Partc ENGINE = MyISAM,
PARTITION PartD ENGINE = MyISAM, PARTITION partE ENGINE = MyISAM, PARTITION Partf ENGINE
= MyISAM, PARTITION PartG ENGINE = MyISAM) */
+ALTER TABLE TableA COALESCE PARTITION 4;
+SELECT * FROM TableA;
+a
+1
+10
+11
+12
+2
+3
+4
+5
+6
+7
+8
+9
+SHOW CREATE TABLE TableA;
+Table Create Table
+TableA CREATE TABLE `TableA` (
+ `a` int(11) DEFAULT NULL