manual merge of bug#37402
This commit is contained in:
commit
642bf9022a
4
mysql-test/include/have_case_insensitive_file_system.inc
Normal file
4
mysql-test/include/have_case_insensitive_file_system.inc
Normal file
@ -0,0 +1,4 @@
|
||||
--require r/case_insensitive_file_system.require
|
||||
--disable_query_log
|
||||
show variables like "lower_case_file_system";
|
||||
--enable_query_log
|
@ -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
|
||||
|
4
mysql-test/include/have_lowercase2.inc
Normal file
4
mysql-test/include/have_lowercase2.inc
Normal file
@ -0,0 +1,4 @@
|
||||
--require r/lowercase2.require
|
||||
--disable_query_log
|
||||
show variables like 'lower_case_table_names';
|
||||
--enable_query_log
|
@ -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
|
||||
|
2
mysql-test/r/case_insensitive_file_system.require
Normal file
2
mysql-test/r/case_insensitive_file_system.require
Normal file
@ -0,0 +1,2 @@
|
||||
Variable_name Value
|
||||
lower_case_file_system ON
|
@ -1,3 +1,2 @@
|
||||
Variable_name Value
|
||||
lower_case_file_system ON
|
||||
lower_case_table_names 0
|
||||
|
548
mysql-test/suite/parts/inc/partition_mgm.inc
Normal file
548
mysql-test/suite/parts/inc/partition_mgm.inc
Normal file
@ -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;
|
834
mysql-test/suite/parts/r/partition_mgm_lc0_archive.result
Normal file
834
mysql-test/suite/parts/r/partition_mgm_lc0_archive.result
Normal file
@ -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;
|
829
mysql-test/suite/parts/r/partition_mgm_lc0_innodb.result
Normal file
829
mysql-test/suite/parts/r/partition_mgm_lc0_innodb.result
Normal file
@ -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;
|
829
mysql-test/suite/parts/r/partition_mgm_lc0_memory.result
Normal file
829
mysql-test/suite/parts/r/partition_mgm_lc0_memory.result
Normal file
@ -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;
|
829
mysql-test/suite/parts/r/partition_mgm_lc0_myisam.result
Normal file
829
mysql-test/suite/parts/r/partition_mgm_lc0_myisam.result
Normal file
@ -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;
|
170
mysql-test/suite/parts/r/partition_mgm_lc0_ndb.result
Normal file
170
mysql-test/suite/parts/r/partition_mgm_lc0_ndb.result
Normal file
@ -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;
|
797
mysql-test/suite/parts/r/partition_mgm_lc1_archive.result
Normal file
797
mysql-test/suite/parts/r/partition_mgm_lc1_archive.result
Normal file
@ -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;
|
797
mysql-test/suite/parts/r/partition_mgm_lc1_innodb.result
Normal file
797
mysql-test/suite/parts/r/partition_mgm_lc1_innodb.result
Normal file
@ -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;
|
797
mysql-test/suite/parts/r/partition_mgm_lc1_memory.result
Normal file
797
mysql-test/suite/parts/r/partition_mgm_lc1_memory.result
Normal file
@ -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;
|
797
mysql-test/suite/parts/r/partition_mgm_lc1_myisam.result
Normal file
797
mysql-test/suite/parts/r/partition_mgm_lc1_myisam.result
Normal file
@ -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;
|
204
mysql-test/suite/parts/r/partition_mgm_lc1_ndb.result
Normal file
204
mysql-test/suite/parts/r/partition_mgm_lc1_ndb.result
Normal file
@ -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;
|
797
mysql-test/suite/parts/r/partition_mgm_lc2_archive.result
Normal file
797
mysql-test/suite/parts/r/partition_mgm_lc2_archive.result
Normal file
@ -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;
|
797
mysql-test/suite/parts/r/partition_mgm_lc2_innodb.result
Normal file
797
mysql-test/suite/parts/r/partition_mgm_lc2_innodb.result
Normal file
@ -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;
|
797
mysql-test/suite/parts/r/partition_mgm_lc2_memory.result
Normal file
797
mysql-test/suite/parts/r/partition_mgm_lc2_memory.result
Normal file
@ -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;
|
797
mysql-test/suite/parts/r/partition_mgm_lc2_myisam.result
Normal file
797
mysql-test/suite/parts/r/partition_mgm_lc2_myisam.result
Normal file
@ -0,0 +1,797 @@
|
||||
# Creating database MySQL_TEST_DB
|
||||
CREATE DATABASE MySQL_Test_DB;
|
||||
USE MySQL_Test_DB;
|
||||
# 1.0 KEY partitioning mgm
|
||||
# Creating KEY partitioned table
|
||||
CREATE TABLE TableA (a INT)
|
||||
ENGINE = 'MyISAM'
|
||||
PARTITION BY KEY (a)
|
||||
(PARTITION parta ,
|
||||
PARTITION partB ,
|
||||
PARTITION Partc ,
|
||||
PARTITION PartD );
|
||||
INSERT INTO TableA VALUES (1), (2), (7), (8), (9), (10);
|
||||
INSERT INTO TableA VALUES (3), (4), (5), (6), (11), (12);
|
||||
SELECT * FROM TableA;
|
||||
a
|
||||
1
|
||||
10
|
||||
11
|
||||
12
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
9
|
||||
# Test of ADD/COALESCE PARTITIONS
|
||||
# expecting duplicate partition name
|
||||
ALTER TABLE TableA ADD PARTITION
|
||||
(PARTITION partA,
|
||||
PARTITION Parta,
|
||||
PARTITION PartA);
|
||||
ERROR HY000: Duplicate partition name parta
|
||||
ALTER TABLE TableA ADD PARTITION
|
||||
(PARTITION partE,
|
||||
PARTITION Partf,
|
||||
PARTITION PartG);
|
||||
SELECT * FROM TableA;
|
||||
a
|
||||
1
|
||||
10
|
||||
11
|
||||
12
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
9
|
||||
SHOW CREATE TABLE TableA;
|
||||
Table Create Table
|
||||
TableA CREATE TABLE `TableA` (
|
||||
`a` int(11) DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION parta ENGINE = MyISAM, PARTITION partB ENGINE = MyISAM, PARTITION Partc ENGINE = MyISAM, PARTITION PartD ENGINE = MyISAM, PARTITION partE ENGINE = MyISAM, PARTITION Partf ENGINE = MyISAM, PARTITION PartG ENGINE = MyISAM) */
|
||||
ALTER TABLE TableA COALESCE PARTITION 4;
|
||||
SELECT * FROM TableA;
|
||||
a
|
||||
1
|
||||
10
|
||||
11
|
||||
12
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
9
|
||||
SHOW CREATE TABLE TableA;
|
||||
Table Create Table
|
||||
TableA CREATE TABLE `TableA` (
|
||||
`a` int(11) DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION parta ENGINE = MyISAM, PARTITION partB ENGINE = MyISAM, PARTITION Partc ENGINE = MyISAM) */
|
||||
# Test of REORGANIZE PARTITIONS
|
||||
# Should not work on HASH/KEY
|
||||
ALTER TABLE TableA REORGANIZE PARTITION parta,partB,Partc INTO
|
||||
(PARTITION PARTA ,
|
||||
PARTITION partc );
|
||||
ERROR HY000: REORGANISE PARTITION can only be used to reorganise partitions not to change their numbers
|
||||
ALTER TABLE TableA REORGANIZE PARTITION parta,Partc INTO
|
||||
(PARTITION partB ,
|
||||
PARTITION parta );
|
||||
ERROR HY000: When reorganising a set of partitions they must be in consecutive order
|
||||
ALTER TABLE TableA REORGANIZE PARTITION parta,partB INTO
|
||||
(PARTITION partB COMMENT="Previusly named parta",
|
||||
PARTITION parta COMMENT="Previusly named partB");
|
||||
SELECT * FROM TableA;
|
||||
a
|
||||
1
|
||||
10
|
||||
11
|
||||
12
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
9
|
||||
SHOW CREATE TABLE TableA;
|
||||
Table Create Table
|
||||
TableA CREATE TABLE `TableA` (
|
||||
`a` int(11) DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION partB COMMENT = 'Previusly named parta' ENGINE = MyISAM, PARTITION parta COMMENT = 'Previusly named partB' ENGINE = MyISAM, PARTITION Partc ENGINE = MyISAM) */
|
||||
# Test of RENAME TABLE
|
||||
RENAME TABLE TableA to TableB;
|
||||
SELECT * FROM TableB;
|
||||
a
|
||||
1
|
||||
10
|
||||
11
|
||||
12
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
9
|
||||
RENAME TABLE TableB to TableA;
|
||||
SELECT * FROM TableA;
|
||||
a
|
||||
1
|
||||
10
|
||||
11
|
||||
12
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
9
|
||||
# Checking name comparision Upper vs Lower case
|
||||
# Error if lower_case_table_names != 0
|
||||
# lower_case_table_names: 2
|
||||
CREATE TABLE tablea (a INT)
|
||||
ENGINE = 'MyISAM'
|
||||
PARTITION BY KEY (a)
|
||||
(PARTITION parta ,
|
||||
PARTITION partB ,
|
||||
PARTITION Partc ,
|
||||
PARTITION PartD );
|
||||
ERROR 42S01: Table 'tablea' already exists
|
||||
SHOW TABLES;
|
||||
Tables_in_mysql_test_db
|
||||
TableA
|
||||
RENAME TABLE TableA to tablea;
|
||||
ERROR 42S01: Table 'tablea' already exists
|
||||
RENAME TABLE tablea to TableA;
|
||||
ERROR 42S01: Table 'TableA' already exists
|
||||
SELECT * FROM tablea;
|
||||
a
|
||||
1
|
||||
10
|
||||
11
|
||||
12
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
9
|
||||
SHOW CREATE TABLE tablea;
|
||||
Table Create Table
|
||||
tablea CREATE TABLE `tablea` (
|
||||
`a` int(11) DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION partB COMMENT = 'Previusly named parta' ENGINE = MyISAM, PARTITION parta COMMENT = 'Previusly named partB' ENGINE = MyISAM, PARTITION Partc ENGINE = MyISAM) */
|
||||
# Test of REMOVE PARTITIONING
|
||||
ALTER TABLE TableA REMOVE PARTITIONING;
|
||||
SELECT * FROM TableA;
|
||||
a
|
||||
1
|
||||
10
|
||||
11
|
||||
12
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
9
|
||||
SHOW CREATE TABLE TableA;
|
||||
Table Create Table
|
||||
TableA CREATE TABLE `TableA` (
|
||||
`a` int(11) DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
# Cleaning up after KEY PARTITIONING test
|
||||
DROP TABLE TableA;
|
||||
# 2.0 HASH partitioning mgm
|
||||
# expecting duplicate partition name
|
||||
CREATE TABLE TableA (a INT)
|
||||
ENGINE = 'MyISAM'
|
||||
PARTITION BY HASH (a)
|
||||
(PARTITION parta ,
|
||||
PARTITION partA ,
|
||||
PARTITION Parta ,
|
||||
PARTITION PartA );
|
||||
ERROR HY000: Duplicate partition name parta
|
||||
# Creating Hash partitioned table
|
||||
CREATE TABLE TableA (a INT)
|
||||
ENGINE = 'MyISAM'
|
||||
PARTITION BY HASH (a)
|
||||
(PARTITION parta ,
|
||||
PARTITION partB ,
|
||||
PARTITION Partc ,
|
||||
PARTITION PartD );
|
||||
INSERT INTO TableA VALUES (1), (2), (7), (8), (9), (10);
|
||||
INSERT INTO TableA VALUES (3), (4), (5), (6), (11), (12);
|
||||
SELECT * FROM TableA;
|
||||
a
|
||||
1
|
||||
10
|
||||
11
|
||||
12
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
9
|
||||
# Test of ADD/COALESCE PARTITIONS
|
||||
# expecting duplicate partition name
|
||||
ALTER TABLE TableA ADD PARTITION
|
||||
(PARTITION partA,
|
||||
PARTITION Parta,
|
||||
PARTITION PartA);
|
||||
ERROR HY000: Duplicate partition name parta
|
||||
ALTER TABLE TableA ADD PARTITION
|
||||
(PARTITION partE,
|
||||
PARTITION Partf,
|
||||
PARTITION PartG);
|
||||
SELECT * FROM TableA;
|
||||
a
|
||||
1
|
||||
10
|
||||
11
|
||||
12
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
9
|
||||
SHOW CREATE TABLE TableA;
|
||||
Table Create Table
|
||||
TableA CREATE TABLE `TableA` (
|
||||
`a` int(11) DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (a) (PARTITION parta ENGINE = MyISAM, PARTITION partB ENGINE = MyISAM, PARTITION Partc ENGINE = MyISAM, PARTITION PartD ENGINE = MyISAM, PARTITION partE ENGINE = MyISAM, PARTITION Partf ENGINE = MyISAM, PARTITION PartG ENGINE = MyISAM) */
|
||||
ALTER TABLE TableA COALESCE PARTITION 4;
|
||||
SELECT * FROM TableA;
|
||||
a
|
||||
1
|
||||
10
|
||||
11
|
||||
12
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
9
|
||||
SHOW CREATE TABLE TableA;
|
||||
Table Create Table
|
||||
TableA CREATE TABLE `TableA` (
|
||||
`a` int(11) DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (a) (PARTITION parta ENGINE = MyISAM, PARTITION partB ENGINE = MyISAM, PARTITION Partc ENGINE = MyISAM) */
|
||||
# Test of REORGANIZE PARTITIONS
|
||||
# Should not work on HASH/KEY
|
||||
ALTER TABLE TableA REORGANIZE PARTITION parta,partB,Partc INTO
|
||||
(PARTITION PARTA ,
|
||||
PARTITION partc );
|
||||
ERROR HY000: REORGANISE PARTITION can only be used to reorganise partitions not to change their numbers
|
||||
ALTER TABLE TableA REORGANIZE PARTITION parta,Partc INTO
|
||||
(PARTITION partB ,
|
||||
PARTITION parta );
|
||||
ERROR HY000: When reorganising a set of partitions they must be in consecutive order
|
||||
ALTER TABLE TableA REORGANIZE PARTITION parta,partB INTO
|
||||
(PARTITION partB COMMENT="Previusly named parta",
|
||||
PARTITION parta COMMENT="Previusly named partB");
|
||||
SELECT * FROM TableA;
|
||||
a
|
||||
1
|
||||
10
|
||||
11
|
||||
12
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
9
|
||||
SHOW CREATE TABLE TableA;
|
||||
Table Create Table
|
||||
TableA CREATE TABLE `TableA` (
|
||||
`a` int(11) DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (a) (PARTITION partB COMMENT = 'Previusly named parta' ENGINE = MyISAM, PARTITION parta COMMENT = 'Previusly named partB' ENGINE = MyISAM, PARTITION Partc ENGINE = MyISAM) */
|
||||
# Test of RENAME TABLE
|
||||
RENAME TABLE TableA to TableB;
|
||||
SELECT * FROM TableB;
|
||||
a
|
||||
1
|
||||
10
|
||||
11
|
||||
12
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
9
|
||||
RENAME TABLE TableB to TableA;
|
||||
SELECT * FROM TableA;
|
||||
a
|
||||
1
|
||||
10
|
||||
11
|
||||
12
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
9
|
||||
# Checking name comparision Upper vs Lower case
|
||||
# Error if lower_case_table_names != 0
|
||||
# lower_case_table_names: 2
|
||||
CREATE TABLE tablea (a INT)
|
||||
ENGINE = 'MyISAM'
|
||||
PARTITION BY HASH (a)
|
||||
(PARTITION parta ,
|
||||
PARTITION partB ,
|
||||
PARTITION Partc ,
|
||||
PARTITION PartD );
|
||||
ERROR 42S01: Table 'tablea' already exists
|
||||
SHOW TABLES;
|
||||
Tables_in_mysql_test_db
|
||||
TableA
|
||||
RENAME TABLE TableA to tablea;
|
||||
ERROR 42S01: Table 'tablea' already exists
|
||||
RENAME TABLE tablea to TableA;
|
||||
ERROR 42S01: Table 'TableA' already exists
|
||||
SELECT * FROM tablea;
|
||||
a
|
||||
1
|
||||
10
|
||||
11
|
||||
12
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
9
|
||||
SHOW CREATE TABLE tablea;
|
||||
Table Create Table
|
||||
tablea CREATE TABLE `tablea` (
|
||||
`a` int(11) DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (a) (PARTITION partB COMMENT = 'Previusly named parta' ENGINE = MyISAM, PARTITION parta COMMENT = 'Previusly named partB' ENGINE = MyISAM, PARTITION Partc ENGINE = MyISAM) */
|
||||
# Test of REMOVE PARTITIONING
|
||||
ALTER TABLE TableA REMOVE PARTITIONING;
|
||||
SELECT * FROM TableA;
|
||||
a
|
||||
1
|
||||
10
|
||||
11
|
||||
12
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
9
|
||||
SHOW CREATE TABLE TableA;
|
||||
Table Create Table
|
||||
TableA CREATE TABLE `TableA` (
|
||||
`a` int(11) DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
# Cleaning up after HASH PARTITIONING test
|
||||
DROP TABLE TableA;
|
||||
# 3.0 RANGE partitioning mgm
|
||||
# Creating RANGE partitioned table
|
||||
CREATE TABLE TableA (a INT)
|
||||
ENGINE = 'MyISAM'
|
||||
PARTITION BY RANGE (a)
|
||||
(PARTITION parta VALUES LESS THAN (4) ,
|
||||
PARTITION partB VALUES LESS THAN (7) ,
|
||||
PARTITION Partc VALUES LESS THAN (10) ,
|
||||
PARTITION PartD VALUES LESS THAN (13) );
|
||||
INSERT INTO TableA VALUES (1), (2), (7), (8), (9), (10);
|
||||
INSERT INTO TableA VALUES (3), (4), (5), (6), (11), (12);
|
||||
SELECT * FROM TableA;
|
||||
a
|
||||
1
|
||||
10
|
||||
11
|
||||
12
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
9
|
||||
# Test of ADD/DROP PARTITIONS
|
||||
# expecting duplicate partition name
|
||||
ALTER TABLE TableA ADD PARTITION
|
||||
(PARTITION partA VALUES LESS THAN (MAXVALUE));
|
||||
ERROR HY000: Duplicate partition name parta
|
||||
ALTER TABLE TableA ADD PARTITION
|
||||
(PARTITION partE VALUES LESS THAN (16),
|
||||
PARTITION Partf VALUES LESS THAN (19),
|
||||
PARTITION PartG VALUES LESS THAN (22));
|
||||
SELECT * FROM TableA;
|
||||
a
|
||||
1
|
||||
10
|
||||
11
|
||||
12
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
9
|
||||
SHOW CREATE TABLE TableA;
|
||||
Table Create Table
|
||||
TableA CREATE TABLE `TableA` (
|
||||
`a` int(11) DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (a) (PARTITION parta VALUES LESS THAN (4) ENGINE = MyISAM, PARTITION partB VALUES LESS THAN (7) ENGINE = MyISAM, PARTITION Partc VALUES LESS THAN (10) ENGINE = MyISAM, PARTITION PartD VALUES LESS THAN (13) ENGINE = MyISAM, PARTITION partE VALUES LESS THAN (16) ENGINE = MyISAM, PARTITION Partf VALUES LESS THAN (19) ENGINE = MyISAM, PARTITION PartG VALUES LESS THAN (22) ENGINE = MyISAM) */
|
||||
ALTER TABLE TableA DROP PARTITION partE, PartG;
|
||||
ALTER TABLE TableA DROP PARTITION Partf;
|
||||
ALTER TABLE TableA ADD PARTITION
|
||||
(PARTITION PartE VALUES LESS THAN (MAXVALUE));
|
||||
SELECT * FROM TableA;
|
||||
a
|
||||
1
|
||||
10
|
||||
11
|
||||
12
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
9
|
||||
SHOW CREATE TABLE TableA;
|
||||
Table Create Table
|
||||
TableA CREATE TABLE `TableA` (
|
||||
`a` int(11) DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (a) (PARTITION parta VALUES LESS THAN (4) ENGINE = MyISAM, PARTITION partB VALUES LESS THAN (7) ENGINE = MyISAM, PARTITION Partc VALUES LESS THAN (10) ENGINE = MyISAM, PARTITION PartD VALUES LESS THAN (13) ENGINE = MyISAM, PARTITION PartE VALUES LESS THAN MAXVALUE ENGINE = MyISAM) */
|
||||
# Test of REORGANIZE PARTITIONS
|
||||
# Error since it must reorganize a consecutive range
|
||||
ALTER TABLE TableA REORGANIZE PARTITION parta,Partc INTO
|
||||
(PARTITION partB VALUES LESS THAN (3) ,
|
||||
PARTITION parta VALUES LESS THAN (11) );
|
||||
ERROR HY000: When reorganising a set of partitions they must be in consecutive order
|
||||
ALTER TABLE TableA REORGANIZE PARTITION partB,Partc,PartD,PartE INTO
|
||||
(PARTITION partD VALUES LESS THAN (8)
|
||||
COMMENT="Previously partB and partly Partc",
|
||||
PARTITION partB VALUES LESS THAN (11)
|
||||
COMMENT="Previously partly Partc and partly PartD",
|
||||
PARTITION partC VALUES LESS THAN (MAXVALUE)
|
||||
COMMENT="Previously partly PartD");
|
||||
SELECT * FROM TableA;
|
||||
a
|
||||
1
|
||||
10
|
||||
11
|
||||
12
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
9
|
||||
SHOW CREATE TABLE TableA;
|
||||
Table Create Table
|
||||
TableA CREATE TABLE `TableA` (
|
||||
`a` int(11) DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (a) (PARTITION parta VALUES LESS THAN (4) ENGINE = MyISAM, PARTITION partD VALUES LESS THAN (8) COMMENT = 'Previously partB and partly Partc' ENGINE = MyISAM, PARTITION partB VALUES LESS THAN (11) COMMENT = 'Previously partly Partc and partly PartD' ENGINE = MyISAM, PARTITION partC VALUES LESS THAN MAXVALUE COMMENT = 'Previously partly PartD' ENGINE = MyISAM) */
|
||||
# Test of RENAME TABLE
|
||||
RENAME TABLE TableA to TableB;
|
||||
SELECT * FROM TableB;
|
||||
a
|
||||
1
|
||||
10
|
||||
11
|
||||
12
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
9
|
||||
RENAME TABLE TableB to TableA;
|
||||
SELECT * FROM TableA;
|
||||
a
|
||||
1
|
||||
10
|
||||
11
|
||||
12
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
9
|
||||
# Checking name comparision Upper vs Lower case
|
||||
# Error if lower_case_table_names != 0
|
||||
# lower_case_table_names: 2
|
||||
CREATE TABLE tablea (a INT)
|
||||
ENGINE = 'MyISAM'
|
||||
PARTITION BY RANGE (a)
|
||||
(PARTITION parta VALUES LESS THAN (4) ,
|
||||
PARTITION partB VALUES LESS THAN (7) ,
|
||||
PARTITION Partc VALUES LESS THAN (10) ,
|
||||
PARTITION PartD VALUES LESS THAN (13) );
|
||||
ERROR 42S01: Table 'tablea' already exists
|
||||
SHOW TABLES;
|
||||
Tables_in_mysql_test_db
|
||||
TableA
|
||||
RENAME TABLE TableA to tablea;
|
||||
ERROR 42S01: Table 'tablea' already exists
|
||||
RENAME TABLE tablea to TableA;
|
||||
ERROR 42S01: Table 'TableA' already exists
|
||||
SELECT * FROM tablea;
|
||||
a
|
||||
1
|
||||
10
|
||||
11
|
||||
12
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
9
|
||||
SHOW CREATE TABLE tablea;
|
||||
Table Create Table
|
||||
tablea CREATE TABLE `tablea` (
|
||||
`a` int(11) DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (a) (PARTITION parta VALUES LESS THAN (4) ENGINE = MyISAM, PARTITION partD VALUES LESS THAN (8) COMMENT = 'Previously partB and partly Partc' ENGINE = MyISAM, PARTITION partB VALUES LESS THAN (11) COMMENT = 'Previously partly Partc and partly PartD' ENGINE = MyISAM, PARTITION partC VALUES LESS THAN MAXVALUE COMMENT = 'Previously partly PartD' ENGINE = MyISAM) */
|
||||
# Test of REMOVE PARTITIONING
|
||||
ALTER TABLE TableA REMOVE PARTITIONING;
|
||||
SELECT * FROM TableA;
|
||||
a
|
||||
1
|
||||
10
|
||||
11
|
||||
12
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
9
|
||||
SHOW CREATE TABLE TableA;
|
||||
Table Create Table
|
||||
TableA CREATE TABLE `TableA` (
|
||||
`a` int(11) DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
# Cleaning up after RANGE PARTITIONING test
|
||||
DROP TABLE TableA;
|
||||
# 4.0 LIST partitioning mgm
|
||||
# Creating LIST partitioned table
|
||||
CREATE TABLE TableA (a INT)
|
||||
ENGINE = 'MyISAM'
|
||||
PARTITION BY LIST (a)
|
||||
(PARTITION parta VALUES IN (1,8,9) ,
|
||||
PARTITION partB VALUES IN (2,10,11) ,
|
||||
PARTITION Partc VALUES IN (3,4,7) ,
|
||||
PARTITION PartD VALUES IN (5,6,12) );
|
||||
INSERT INTO TableA VALUES (1), (2), (7), (8), (9), (10);
|
||||
INSERT INTO TableA VALUES (3), (4), (5), (6), (11), (12);
|
||||
SELECT * FROM TableA;
|
||||
a
|
||||
1
|
||||
10
|
||||
11
|
||||
12
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
9
|
||||
# Test of ADD/DROP PARTITIONS
|
||||
# expecting duplicate partition name
|
||||
ALTER TABLE TableA ADD PARTITION
|
||||
(PARTITION partA VALUES IN (0));
|
||||
ERROR HY000: Duplicate partition name parta
|
||||
ALTER TABLE TableA ADD PARTITION
|
||||
(PARTITION partE VALUES IN (16),
|
||||
PARTITION Partf VALUES IN (19),
|
||||
PARTITION PartG VALUES IN (22));
|
||||
SELECT * FROM TableA;
|
||||
a
|
||||
1
|
||||
10
|
||||
11
|
||||
12
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
9
|
||||
SHOW CREATE TABLE TableA;
|
||||
Table Create Table
|
||||
TableA CREATE TABLE `TableA` (
|
||||
`a` int(11) DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (a) (PARTITION parta VALUES IN (1,8,9) ENGINE = MyISAM, PARTITION partB VALUES IN (2,10,11) ENGINE = MyISAM, PARTITION Partc VALUES IN (3,4,7) ENGINE = MyISAM, PARTITION PartD VALUES IN (5,6,12) ENGINE = MyISAM, PARTITION partE VALUES IN (16) ENGINE = MyISAM, PARTITION Partf VALUES IN (19) ENGINE = MyISAM, PARTITION PartG VALUES IN (22) ENGINE = MyISAM) */
|
||||
ALTER TABLE TableA DROP PARTITION partE, PartG;
|
||||
ALTER TABLE TableA DROP PARTITION Partf;
|
||||
ALTER TABLE TableA ADD PARTITION
|
||||
(PARTITION PartE VALUES IN (13));
|
||||
SELECT * FROM TableA;
|
||||
a
|
||||
1
|
||||
10
|
||||
11
|
||||
12
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
9
|
||||
SHOW CREATE TABLE TableA;
|
||||
Table Create Table
|
||||
TableA CREATE TABLE `TableA` (
|
||||
`a` int(11) DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (a) (PARTITION parta VALUES IN (1,8,9) ENGINE = MyISAM, PARTITION partB VALUES IN (2,10,11) ENGINE = MyISAM, PARTITION Partc VALUES IN (3,4,7) ENGINE = MyISAM, PARTITION PartD VALUES IN (5,6,12) ENGINE = MyISAM, PARTITION PartE VALUES IN (13) ENGINE = MyISAM) */
|
||||
# Test of REORGANIZE PARTITIONS
|
||||
ALTER TABLE TableA REORGANIZE PARTITION parta,Partc INTO
|
||||
(PARTITION Partc VALUES IN (1,7)
|
||||
COMMENT = "Mix 1 of old parta and Partc",
|
||||
PARTITION partF VALUES IN (3,9)
|
||||
COMMENT = "Mix 2 of old parta and Partc",
|
||||
PARTITION parta VALUES IN (4,8)
|
||||
COMMENT = "Mix 3 of old parta and Partc");
|
||||
ERROR HY000: When reorganising a set of partitions they must be in consecutive order
|
||||
ALTER TABLE TableA REORGANIZE PARTITION parta,partB,Partc INTO
|
||||
(PARTITION Partc VALUES IN (1,7)
|
||||
COMMENT = "Mix 1 of old parta and Partc",
|
||||
PARTITION parta VALUES IN (3,9)
|
||||
COMMENT = "Mix 2 of old parta and Partc",
|
||||
PARTITION partB VALUES IN (4,8)
|
||||
COMMENT = "Mix 3 of old parta and Partc");
|
||||
SELECT * FROM TableA;
|
||||
a
|
||||
1
|
||||
12
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
9
|
||||
SHOW CREATE TABLE TableA;
|
||||
Table Create Table
|
||||
TableA CREATE TABLE `TableA` (
|
||||
`a` int(11) DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (a) (PARTITION Partc VALUES IN (1,7) COMMENT = 'Mix 1 of old parta and Partc' ENGINE = MyISAM, PARTITION parta VALUES IN (3,9) COMMENT = 'Mix 2 of old parta and Partc' ENGINE = MyISAM, PARTITION partB VALUES IN (4,8) COMMENT = 'Mix 3 of old parta and Partc' ENGINE = MyISAM, PARTITION PartD VALUES IN (5,6,12) ENGINE = MyISAM, PARTITION PartE VALUES IN (13) ENGINE = MyISAM) */
|
||||
# Test of RENAME TABLE
|
||||
RENAME TABLE TableA to TableB;
|
||||
SELECT * FROM TableB;
|
||||
a
|
||||
1
|
||||
12
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
9
|
||||
RENAME TABLE TableB to TableA;
|
||||
SELECT * FROM TableA;
|
||||
a
|
||||
1
|
||||
12
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
9
|
||||
# Checking name comparision Upper vs Lower case
|
||||
# Error if lower_case_table_names != 0
|
||||
# lower_case_table_names: 2
|
||||
CREATE TABLE tablea (a INT)
|
||||
ENGINE = 'MyISAM'
|
||||
PARTITION BY LIST (a)
|
||||
(PARTITION parta VALUES IN (1,8,9) ,
|
||||
PARTITION partB VALUES IN (2,10,11) ,
|
||||
PARTITION Partc VALUES IN (3,4,7) ,
|
||||
PARTITION PartD VALUES IN (5,6,12) );
|
||||
ERROR 42S01: Table 'tablea' already exists
|
||||
SHOW TABLES;
|
||||
Tables_in_mysql_test_db
|
||||
TableA
|
||||
RENAME TABLE TableA to tablea;
|
||||
ERROR 42S01: Table 'tablea' already exists
|
||||
RENAME TABLE tablea to TableA;
|
||||
ERROR 42S01: Table 'TableA' already exists
|
||||
SELECT * FROM tablea;
|
||||
a
|
||||
1
|
||||
12
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
9
|
||||
SHOW CREATE TABLE tablea;
|
||||
Table Create Table
|
||||
tablea CREATE TABLE `tablea` (
|
||||
`a` int(11) DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (a) (PARTITION Partc VALUES IN (1,7) COMMENT = 'Mix 1 of old parta and Partc' ENGINE = MyISAM, PARTITION parta VALUES IN (3,9) COMMENT = 'Mix 2 of old parta and Partc' ENGINE = MyISAM, PARTITION partB VALUES IN (4,8) COMMENT = 'Mix 3 of old parta and Partc' ENGINE = MyISAM, PARTITION PartD VALUES IN (5,6,12) ENGINE = MyISAM, PARTITION PartE VALUES IN (13) ENGINE = MyISAM) */
|
||||
# Test of REMOVE PARTITIONING
|
||||
ALTER TABLE TableA REMOVE PARTITIONING;
|
||||
SELECT * FROM TableA;
|
||||
a
|
||||
1
|
||||
12
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
9
|
||||
SHOW CREATE TABLE TableA;
|
||||
Table Create Table
|
||||
TableA CREATE TABLE `TableA` (
|
||||
`a` int(11) DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
# Cleaning up after LIST PARTITIONING test
|
||||
DROP TABLE TableA;
|
||||
# Cleaning up before exit
|
||||
USE test;
|
||||
DROP DATABASE MySQL_Test_DB;
|
204
mysql-test/suite/parts/r/partition_mgm_lc2_ndb.result
Normal file
204
mysql-test/suite/parts/r/partition_mgm_lc2_ndb.result
Normal file
@ -0,0 +1,204 @@
|
||||
# Creating database MySQL_TEST_DB
|
||||
CREATE DATABASE MySQL_Test_DB;
|
||||
USE MySQL_Test_DB;
|
||||
# 1.0 KEY partitioning mgm
|
||||
# Creating KEY partitioned table
|
||||
CREATE TABLE TableA (a INT)
|
||||
ENGINE = 'NDBCluster'
|
||||
PARTITION BY KEY (a)
|
||||
(PARTITION parta ,
|
||||
PARTITION partB ,
|
||||
PARTITION Partc ,
|
||||
PARTITION PartD );
|
||||
INSERT INTO TableA VALUES (1), (2), (7), (8), (9), (10);
|
||||
INSERT INTO TableA VALUES (3), (4), (5), (6), (11), (12);
|
||||
SELECT * FROM TableA;
|
||||
a
|
||||
1
|
||||
10
|
||||
11
|
||||
12
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
9
|
||||
# Test of ADD/COALESCE PARTITIONS
|
||||
# expecting duplicate partition name
|
||||
ALTER TABLE TableA ADD PARTITION
|
||||
(PARTITION partA,
|
||||
PARTITION Parta,
|
||||
PARTITION PartA);
|
||||
ERROR HY000: Duplicate partition name parta
|
||||
ALTER TABLE TableA ADD PARTITION
|
||||
(PARTITION partE,
|
||||
PARTITION Partf,
|
||||
PARTITION PartG);
|
||||
SELECT * FROM TableA;
|
||||
a
|
||||
1
|
||||
10
|
||||
11
|
||||
12
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
9
|
||||
SHOW CREATE TABLE TableA;
|
||||
Table Create Table
|
||||
TableA CREATE TABLE `TableA` (
|
||||
`a` int(11) DEFAULT NULL
|
||||
) ENGINE=ndbcluster DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION parta ENGINE = ndbcluster, PARTITION partB ENGINE = ndbcluster, PARTITION Partc ENGINE = ndbcluster, PARTITION PartD ENGINE = ndbcluster, PARTITION partE ENGINE = ndbcluster, PARTITION Partf ENGINE = ndbcluster, PARTITION PartG ENGINE = ndbcluster) */
|
||||
ALTER TABLE TableA COALESCE PARTITION 4;
|
||||
SELECT * FROM TableA;
|
||||
a
|
||||
1
|
||||
10
|
||||
11
|
||||
12
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
9
|
||||
SHOW CREATE TABLE TableA;
|
||||
Table Create Table
|
||||
TableA CREATE TABLE `TableA` (
|
||||
`a` int(11) DEFAULT NULL
|
||||
) ENGINE=ndbcluster DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION parta ENGINE = ndbcluster, PARTITION partB ENGINE = ndbcluster, PARTITION Partc ENGINE = ndbcluster) */
|
||||
# Test of REORGANIZE PARTITIONS
|
||||
# Should not work on HASH/KEY
|
||||
ALTER TABLE TableA REORGANIZE PARTITION parta,partB,Partc INTO
|
||||
(PARTITION PARTA ,
|
||||
PARTITION partc );
|
||||
ERROR HY000: REORGANISE PARTITION can only be used to reorganise partitions not to change their numbers
|
||||
ALTER TABLE TableA REORGANIZE PARTITION parta,Partc INTO
|
||||
(PARTITION partB ,
|
||||
PARTITION parta );
|
||||
ERROR HY000: When reorganising a set of partitions they must be in consecutive order
|
||||
ALTER TABLE TableA REORGANIZE PARTITION parta,partB INTO
|
||||
(PARTITION partB COMMENT="Previusly named parta",
|
||||
PARTITION parta COMMENT="Previusly named partB");
|
||||
SELECT * FROM TableA;
|
||||
a
|
||||
1
|
||||
10
|
||||
11
|
||||
12
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
9
|
||||
SHOW CREATE TABLE TableA;
|
||||
Table Create Table
|
||||
TableA CREATE TABLE `TableA` (
|
||||
`a` int(11) DEFAULT NULL
|
||||
) ENGINE=ndbcluster DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION partB COMMENT = 'Previusly named parta' ENGINE = ndbcluster, PARTITION parta COMMENT = 'Previusly named partB' ENGINE = ndbcluster, PARTITION Partc ENGINE = ndbcluster) */
|
||||
# Test of RENAME TABLE
|
||||
RENAME TABLE TableA to TableB;
|
||||
SELECT * FROM TableB;
|
||||
a
|
||||
1
|
||||
10
|
||||
11
|
||||
12
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
9
|
||||
RENAME TABLE TableB to TableA;
|
||||
SELECT * FROM TableA;
|
||||
a
|
||||
1
|
||||
10
|
||||
11
|
||||
12
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
9
|
||||
# Checking name comparision Upper vs Lower case
|
||||
# Error if lower_case_table_names != 0
|
||||
# lower_case_table_names: 2
|
||||
CREATE TABLE tablea (a INT)
|
||||
ENGINE = 'NDBCluster'
|
||||
PARTITION BY KEY (a)
|
||||
(PARTITION parta ,
|
||||
PARTITION partB ,
|
||||
PARTITION Partc ,
|
||||
PARTITION PartD );
|
||||
ERROR 42S01: Table 'tablea' already exists
|
||||
SHOW TABLES;
|
||||
Tables_in_mysql_test_db
|
||||
TableA
|
||||
RENAME TABLE TableA to tablea;
|
||||
ERROR 42S01: Table 'tablea' already exists
|
||||
RENAME TABLE tablea to TableA;
|
||||
ERROR 42S01: Table 'TableA' already exists
|
||||
SELECT * FROM tablea;
|
||||
a
|
||||
1
|
||||
10
|
||||
11
|
||||
12
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
9
|
||||
SHOW CREATE TABLE tablea;
|
||||
Table Create Table
|
||||
tablea CREATE TABLE `tablea` (
|
||||
`a` int(11) DEFAULT NULL
|
||||
) ENGINE=ndbcluster DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION partB COMMENT = 'Previusly named parta' ENGINE = ndbcluster, PARTITION parta COMMENT = 'Previusly named partB' ENGINE = ndbcluster, PARTITION Partc ENGINE = ndbcluster) */
|
||||
# Test of REMOVE PARTITIONING
|
||||
ALTER TABLE TableA REMOVE PARTITIONING;
|
||||
SELECT * FROM TableA;
|
||||
a
|
||||
1
|
||||
10
|
||||
11
|
||||
12
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
9
|
||||
SHOW CREATE TABLE TableA;
|
||||
Table Create Table
|
||||
TableA CREATE TABLE `TableA` (
|
||||
`a` int(11) DEFAULT NULL
|
||||
) ENGINE=ndbcluster DEFAULT CHARSET=latin1
|
||||
# Cleaning up after KEY PARTITIONING test
|
||||
DROP TABLE TableA;
|
||||
# Cleaning up before exit
|
||||
USE test;
|
||||
DROP DATABASE MySQL_Test_DB;
|
42
mysql-test/suite/parts/t/partition_mgm_lc0_archive.test
Normal file
42
mysql-test/suite/parts/t/partition_mgm_lc0_archive.test
Normal file
@ -0,0 +1,42 @@
|
||||
################################################################################
|
||||
# t/partition_mgm_lc0_archive.test #
|
||||
# #
|
||||
# Purpose: #
|
||||
# Test of partitioning management functions (incl upper/lower case names): #
|
||||
# Archive branch + lower_case_table_names = 0 #
|
||||
# (usually Unix like, apart from Mac OS X) #
|
||||
# Also requires lower_case_file_system OFF #
|
||||
# #
|
||||
#------------------------------------------------------------------------------#
|
||||
# Original Author: mattiasj #
|
||||
# Original Date: 2008-06-27 #
|
||||
################################################################################
|
||||
|
||||
# The server must support partitioning.
|
||||
--source include/have_partition.inc
|
||||
|
||||
#
|
||||
# NOTE: PLEASE DO NOT ADD NOT INNODB SPECIFIC TESTCASES HERE !
|
||||
# TESTCASES WHICH MUST BE APPLIED TO ALL STORAGE ENGINES MUST BE ADDED IN
|
||||
# THE SOURCED FILES ONLY.
|
||||
#
|
||||
# Please read the README at the end of inc/partition.pre before changing
|
||||
# any of the variables.
|
||||
#
|
||||
|
||||
#------------------------------------------------------------------------------#
|
||||
# General not engine specific settings and requirements
|
||||
--source include/have_lowercase0.inc
|
||||
--source include/have_case_sensitive_file_system.inc
|
||||
|
||||
#------------------------------------------------------------------------------#
|
||||
# Engine specific settings and requirements
|
||||
let $have_bug37719= 1;
|
||||
|
||||
##### Storage engine to be tested
|
||||
--source include/have_archive.inc
|
||||
let $engine= 'Archive';
|
||||
|
||||
#------------------------------------------------------------------------------#
|
||||
# Execute the tests to be applied to all storage engines
|
||||
--source suite/parts/inc/partition_mgm.inc
|
41
mysql-test/suite/parts/t/partition_mgm_lc0_innodb.test
Normal file
41
mysql-test/suite/parts/t/partition_mgm_lc0_innodb.test
Normal file
@ -0,0 +1,41 @@
|
||||
################################################################################
|
||||
# t/partition_mgm_lc0_innodb.test #
|
||||
# #
|
||||
# Purpose: #
|
||||
# Test of partitioning management functions (incl upper/lower case names): #
|
||||
# InnoDB branch + lower_case_table_names = 0 #
|
||||
# (usually Unix like, apart from Mac OS X) #
|
||||
# Also requires lower_case_file_system OFF #
|
||||
# #
|
||||
#------------------------------------------------------------------------------#
|
||||
# Original Author: mattiasj #
|
||||
# Original Date: 2008-06-27 #
|
||||
################################################################################
|
||||
|
||||
# The server must support partitioning.
|
||||
--source include/have_partition.inc
|
||||
|
||||
#
|
||||
# NOTE: PLEASE DO NOT ADD NOT INNODB SPECIFIC TESTCASES HERE !
|
||||
# TESTCASES WHICH MUST BE APPLIED TO ALL STORAGE ENGINES MUST BE ADDED IN
|
||||
# THE SOURCED FILES ONLY.
|
||||
#
|
||||
# Please read the README at the end of inc/partition.pre before changing
|
||||
# any of the variables.
|
||||
#
|
||||
|
||||
#------------------------------------------------------------------------------#
|
||||
# General not engine specific settings and requirements
|
||||
--source include/have_lowercase0.inc
|
||||
--source include/have_case_sensitive_file_system.inc
|
||||
|
||||
#------------------------------------------------------------------------------#
|
||||
# Engine specific settings and requirements
|
||||
|
||||
##### Storage engine to be tested
|
||||
--source include/have_innodb.inc
|
||||
let $engine= 'InnoDB';
|
||||
|
||||
#------------------------------------------------------------------------------#
|
||||
# Execute the tests to be applied to all storage engines
|
||||
--source suite/parts/inc/partition_mgm.inc
|
41
mysql-test/suite/parts/t/partition_mgm_lc0_memory.test
Normal file
41
mysql-test/suite/parts/t/partition_mgm_lc0_memory.test
Normal file
@ -0,0 +1,41 @@
|
||||
################################################################################
|
||||
# t/partition_mgm_lc0_memory.test #
|
||||
# #
|
||||
# Purpose: #
|
||||
# Test of partitioning management functions (incl upper/lower case names): #
|
||||
# Memory branch + lower_case_table_names = 0 #
|
||||
# (usually Unix like, apart from Mac OS X) #
|
||||
# Also requires lower_case_file_system OFF #
|
||||
# #
|
||||
#------------------------------------------------------------------------------#
|
||||
# Original Author: mattiasj #
|
||||
# Original Date: 2008-06-27 #
|
||||
################################################################################
|
||||
|
||||
# The server must support partitioning.
|
||||
--source include/have_partition.inc
|
||||
|
||||
#
|
||||
# NOTE: PLEASE DO NOT ADD NOT INNODB SPECIFIC TESTCASES HERE !
|
||||
# TESTCASES WHICH MUST BE APPLIED TO ALL STORAGE ENGINES MUST BE ADDED IN
|
||||
# THE SOURCED FILES ONLY.
|
||||
#
|
||||
# Please read the README at the end of inc/partition.pre before changing
|
||||
# any of the variables.
|
||||
#
|
||||
|
||||
#------------------------------------------------------------------------------#
|
||||
# General not engine specific settings and requirements
|
||||
--source include/have_lowercase0.inc
|
||||
--source include/have_case_sensitive_file_system.inc
|
||||
|
||||
#------------------------------------------------------------------------------#
|
||||
# Engine specific settings and requirements
|
||||
|
||||
##### Storage engine to be tested
|
||||
#--source include/have_memory.inc
|
||||
let $engine= 'Memory';
|
||||
|
||||
#------------------------------------------------------------------------------#
|
||||
# Execute the tests to be applied to all storage engines
|
||||
--source suite/parts/inc/partition_mgm.inc
|
41
mysql-test/suite/parts/t/partition_mgm_lc0_myisam.test
Normal file
41
mysql-test/suite/parts/t/partition_mgm_lc0_myisam.test
Normal file
@ -0,0 +1,41 @@
|
||||
################################################################################
|
||||
# t/partition_mgm_lc0_myisam.test #
|
||||
# #
|
||||
# Purpose: #
|
||||
# Test of partitioning management functions (incl upper/lower case names): #
|
||||
# MyISAM branch + lower_case_table_names = 0 #
|
||||
# (usually Unix like, apart from Mac OS X) #
|
||||
# Also requires lower_case_file_system OFF #
|
||||
# #
|
||||
#------------------------------------------------------------------------------#
|
||||
# Original Author: mattiasj #
|
||||
# Original Date: 2008-06-27 #
|
||||
################################################################################
|
||||
|
||||
# The server must support partitioning.
|
||||
--source include/have_partition.inc
|
||||
|
||||
#
|
||||
# NOTE: PLEASE DO NOT ADD NOT INNODB SPECIFIC TESTCASES HERE !
|
||||
# TESTCASES WHICH MUST BE APPLIED TO ALL STORAGE ENGINES MUST BE ADDED IN
|
||||
# THE SOURCED FILES ONLY.
|
||||
#
|
||||
# Please read the README at the end of inc/partition.pre before changing
|
||||
# any of the variables.
|
||||
#
|
||||
|
||||
#------------------------------------------------------------------------------#
|
||||
# General not engine specific settings and requirements
|
||||
--source include/have_lowercase0.inc
|
||||
--source include/have_case_sensitive_file_system.inc
|
||||
|
||||
#------------------------------------------------------------------------------#
|
||||
# Engine specific settings and requirements
|
||||
|
||||
##### Storage engine to be tested
|
||||
#--source include/have_myisam.inc
|
||||
let $engine= 'MyISAM';
|
||||
|
||||
#------------------------------------------------------------------------------#
|
||||
# Execute the tests to be applied to all storage engines
|
||||
--source suite/parts/inc/partition_mgm.inc
|
47
mysql-test/suite/parts/t/partition_mgm_lc0_ndb.test
Normal file
47
mysql-test/suite/parts/t/partition_mgm_lc0_ndb.test
Normal file
@ -0,0 +1,47 @@
|
||||
################################################################################
|
||||
# t/partition_mgm_lc0_ndb.test #
|
||||
# #
|
||||
# Purpose: #
|
||||
# Test of partitioning management functions (incl upper/lower case names): #
|
||||
# NDB branch + lower_case_table_names = 0 #
|
||||
# (usually Unix like, apart from Mac OS X) #
|
||||
# Also requires lower_case_file_system OFF #
|
||||
# #
|
||||
#------------------------------------------------------------------------------#
|
||||
# Original Author: mattiasj #
|
||||
# Original Date: 2008-06-27 #
|
||||
################################################################################
|
||||
|
||||
# The server must support partitioning.
|
||||
--source include/have_partition.inc
|
||||
|
||||
#
|
||||
# NOTE: PLEASE DO NOT ADD NOT INNODB SPECIFIC TESTCASES HERE !
|
||||
# TESTCASES WHICH MUST BE APPLIED TO ALL STORAGE ENGINES MUST BE ADDED IN
|
||||
# THE SOURCED FILES ONLY.
|
||||
#
|
||||
# Please read the README at the end of inc/partition.pre before changing
|
||||
# any of the variables.
|
||||
#
|
||||
|
||||
#------------------------------------------------------------------------------#
|
||||
# General not engine specific settings and requirements
|
||||
--source include/have_lowercase0.inc
|
||||
--source include/have_case_sensitive_file_system.inc
|
||||
|
||||
#------------------------------------------------------------------------------#
|
||||
# Engine specific settings and requirements
|
||||
let $have_bug33158= 1;
|
||||
|
||||
##### Storage engine to be tested
|
||||
--source include/have_ndb.inc
|
||||
connection default;
|
||||
# Use either $can_only_key or new=on option to run test.
|
||||
let $can_only_key= 1;
|
||||
# Allow hash/list/range partitioning with ndb
|
||||
#SET new=on;
|
||||
let $engine= 'NDBCluster';
|
||||
|
||||
#------------------------------------------------------------------------------#
|
||||
# Execute the tests to be applied to all storage engines
|
||||
--source suite/parts/inc/partition_mgm.inc
|
@ -0,0 +1 @@
|
||||
--lower_case_table_names=1
|
38
mysql-test/suite/parts/t/partition_mgm_lc1_archive.test
Normal file
38
mysql-test/suite/parts/t/partition_mgm_lc1_archive.test
Normal file
@ -0,0 +1,38 @@
|
||||
################################################################################
|
||||
# t/partition_mgm_lc1_archive.test #
|
||||
# #
|
||||
# Purpose: #
|
||||
# Test of partitioning management functions (incl upper/lower case names): #
|
||||
# Archive branch + lower_case_table_names = 1 (usually Windows) #
|
||||
# #
|
||||
#------------------------------------------------------------------------------#
|
||||
# Original Author: mattiasj #
|
||||
# Original Date: 2008-06-27 #
|
||||
################################################################################
|
||||
|
||||
# The server must support partitioning.
|
||||
--source include/have_partition.inc
|
||||
|
||||
#
|
||||
# NOTE: PLEASE DO NOT ADD NOT INNODB SPECIFIC TESTCASES HERE !
|
||||
# TESTCASES WHICH MUST BE APPLIED TO ALL STORAGE ENGINES MUST BE ADDED IN
|
||||
# THE SOURCED FILES ONLY.
|
||||
#
|
||||
# Please read the README at the end of inc/partition.pre before changing
|
||||
# any of the variables.
|
||||
#
|
||||
|
||||
#------------------------------------------------------------------------------#
|
||||
# General not engine specific settings and requirements
|
||||
--source include/have_lowercase1.inc
|
||||
|
||||
#------------------------------------------------------------------------------#
|
||||
# Engine specific settings and requirements
|
||||
|
||||
##### Storage engine to be tested
|
||||
--source include/have_archive.inc
|
||||
let $engine= 'Archive';
|
||||
|
||||
#------------------------------------------------------------------------------#
|
||||
# Execute the tests to be applied to all storage engines
|
||||
--source suite/parts/inc/partition_mgm.inc
|
@ -0,0 +1 @@
|
||||
--lower_case_table_names=1
|
38
mysql-test/suite/parts/t/partition_mgm_lc1_innodb.test
Normal file
38
mysql-test/suite/parts/t/partition_mgm_lc1_innodb.test
Normal file
@ -0,0 +1,38 @@
|
||||
################################################################################
|
||||
# t/partition_mgm_lc1_innodb.test #
|
||||
# #
|
||||
# Purpose: #
|
||||
# Test of partitioning management functions (incl upper/lower case names): #
|
||||
# InnoDB branch + lower_case_table_names = 1 (usually Windows) #
|
||||
# #
|
||||
#------------------------------------------------------------------------------#
|
||||
# Original Author: mattiasj #
|
||||
# Original Date: 2008-06-27 #
|
||||
################################################################################
|
||||
|
||||
# The server must support partitioning.
|
||||
--source include/have_partition.inc
|
||||
|
||||
#
|
||||
# NOTE: PLEASE DO NOT ADD NOT INNODB SPECIFIC TESTCASES HERE !
|
||||
# TESTCASES WHICH MUST BE APPLIED TO ALL STORAGE ENGINES MUST BE ADDED IN
|
||||
# THE SOURCED FILES ONLY.
|
||||
#
|
||||
# Please read the README at the end of inc/partition.pre before changing
|
||||
# any of the variables.
|
||||
#
|
||||
|
||||
#------------------------------------------------------------------------------#
|
||||
# General not engine specific settings and requirements
|
||||
--source include/have_lowercase1.inc
|
||||
|
||||
#------------------------------------------------------------------------------#
|
||||
# Engine specific settings and requirements
|
||||
|
||||
##### Storage engine to be tested
|
||||
--source include/have_innodb.inc
|
||||
let $engine= 'InnoDB';
|
||||
|
||||
#------------------------------------------------------------------------------#
|
||||
# Execute the tests to be applied to all storage engines
|
||||
--source suite/parts/inc/partition_mgm.inc
|
@ -0,0 +1 @@
|
||||
--lower_case_table_names=1
|
38
mysql-test/suite/parts/t/partition_mgm_lc1_memory.test
Normal file
38
mysql-test/suite/parts/t/partition_mgm_lc1_memory.test
Normal file
@ -0,0 +1,38 @@
|
||||
################################################################################
|
||||
# t/partition_mgm_lc1_memory.test #
|
||||
# #
|
||||
# Purpose: #
|
||||
# Test of partitioning management functions (incl upper/lower case names): #
|
||||
# Memory branch + lower_case_table_names = 1 (usually Windows) #
|
||||
# #
|
||||
#------------------------------------------------------------------------------#
|
||||
# Original Author: mattiasj #
|
||||
# Original Date: 2008-06-27 #
|
||||
################################################################################
|
||||
|
||||
# The server must support partitioning.
|
||||
--source include/have_partition.inc
|
||||
|
||||
#
|
||||
# NOTE: PLEASE DO NOT ADD NOT INNODB SPECIFIC TESTCASES HERE !
|
||||
# TESTCASES WHICH MUST BE APPLIED TO ALL STORAGE ENGINES MUST BE ADDED IN
|
||||
# THE SOURCED FILES ONLY.
|
||||
#
|
||||
# Please read the README at the end of inc/partition.pre before changing
|
||||
# any of the variables.
|
||||
#
|
||||
|
||||
#------------------------------------------------------------------------------#
|
||||
# General not engine specific settings and requirements
|
||||
--source include/have_lowercase1.inc
|
||||
|
||||
#------------------------------------------------------------------------------#
|
||||
# Engine specific settings and requirements
|
||||
|
||||
##### Storage engine to be tested
|
||||
#--source include/have_memory.inc
|
||||
let $engine= 'Memory';
|
||||
|
||||
#------------------------------------------------------------------------------#
|
||||
# Execute the tests to be applied to all storage engines
|
||||
--source suite/parts/inc/partition_mgm.inc
|
@ -0,0 +1 @@
|
||||
--lower_case_table_names=1
|
38
mysql-test/suite/parts/t/partition_mgm_lc1_myisam.test
Normal file
38
mysql-test/suite/parts/t/partition_mgm_lc1_myisam.test
Normal file
@ -0,0 +1,38 @@
|
||||
################################################################################
|
||||
# t/partition_mgm_lc1_myisam.test #
|
||||
# #
|
||||
# Purpose: #
|
||||
# Test of partitioning management functions (incl upper/lower case names): #
|
||||
# MyISAM branch + lower_case_table_names = 1 (usually Windows) #
|
||||
# #
|
||||
#------------------------------------------------------------------------------#
|
||||
# Original Author: mattiasj #
|
||||
# Original Date: 2008-06-27 #
|
||||
################################################################################
|
||||
|
||||
# The server must support partitioning.
|
||||
--source include/have_partition.inc
|
||||
|
||||
#
|
||||
# NOTE: PLEASE DO NOT ADD NOT INNODB SPECIFIC TESTCASES HERE !
|
||||
# TESTCASES WHICH MUST BE APPLIED TO ALL STORAGE ENGINES MUST BE ADDED IN
|
||||
# THE SOURCED FILES ONLY.
|
||||
#
|
||||
# Please read the README at the end of inc/partition.pre before changing
|
||||
# any of the variables.
|
||||
#
|
||||
|
||||
#------------------------------------------------------------------------------#
|
||||
# General not engine specific settings and requirements
|
||||
--source include/have_lowercase1.inc
|
||||
|
||||
#------------------------------------------------------------------------------#
|
||||
# Engine specific settings and requirements
|
||||
|
||||
##### Storage engine to be tested
|
||||
#--source include/have_myisam.inc
|
||||
let $engine= 'MyISAM';
|
||||
|
||||
#------------------------------------------------------------------------------#
|
||||
# Execute the tests to be applied to all storage engines
|
||||
--source suite/parts/inc/partition_mgm.inc
|
@ -0,0 +1 @@
|
||||
--lower_case_table_names=1
|
44
mysql-test/suite/parts/t/partition_mgm_lc1_ndb.test
Normal file
44
mysql-test/suite/parts/t/partition_mgm_lc1_ndb.test
Normal file
@ -0,0 +1,44 @@
|
||||
################################################################################
|
||||
# t/partition_mgm_lc1_ndb.test #
|
||||
# #
|
||||
# Purpose: #
|
||||
# Test of partitioning management functions (incl upper/lower case names): #
|
||||
# NDB branch + lower_case_table_names = 1 (usually Windows) #
|
||||
# #
|
||||
#------------------------------------------------------------------------------#
|
||||
# Original Author: mattiasj #
|
||||
# Original Date: 2008-06-27 #
|
||||
################################################################################
|
||||
|
||||
# The server must support partitioning.
|
||||
--source include/have_partition.inc
|
||||
|
||||
#
|
||||
# NOTE: PLEASE DO NOT ADD NOT INNODB SPECIFIC TESTCASES HERE !
|
||||
# TESTCASES WHICH MUST BE APPLIED TO ALL STORAGE ENGINES MUST BE ADDED IN
|
||||
# THE SOURCED FILES ONLY.
|
||||
#
|
||||
# Please read the README at the end of inc/partition.pre before changing
|
||||
# any of the variables.
|
||||
#
|
||||
|
||||
#------------------------------------------------------------------------------#
|
||||
# General not engine specific settings and requirements
|
||||
--source include/have_lowercase1.inc
|
||||
|
||||
#------------------------------------------------------------------------------#
|
||||
# Engine specific settings and requirements
|
||||
let $have_bug33158= 1;
|
||||
|
||||
##### Storage engine to be tested
|
||||
--source include/have_ndb.inc
|
||||
connection default;
|
||||
# Use either $can_only_key or new=on option to run test.
|
||||
let $can_only_key= 1;
|
||||
# Allow hash/list/range partitioning with ndb
|
||||
#SET new=on;
|
||||
let $engine= 'NDBCluster';
|
||||
|
||||
#------------------------------------------------------------------------------#
|
||||
# Execute the tests to be applied to all storage engines
|
||||
--source suite/parts/inc/partition_mgm.inc
|
@ -0,0 +1 @@
|
||||
--lower_case_table_names=2
|
38
mysql-test/suite/parts/t/partition_mgm_lc2_archive.test
Normal file
38
mysql-test/suite/parts/t/partition_mgm_lc2_archive.test
Normal file
@ -0,0 +1,38 @@
|
||||
################################################################################
|
||||
# t/partition_mgm_lc2_archive.test #
|
||||
# #
|
||||
# Purpose: #
|
||||
# Test of partitioning management functions (incl upper/lower case names): #
|
||||
# Archive branch + lower_case_table_names = 2 (usually Mac OS X) #
|
||||
# #
|
||||
#------------------------------------------------------------------------------#
|
||||
# Original Author: mattiasj #
|
||||
# Original Date: 2008-06-27 #
|
||||
################################################################################
|
||||
|
||||
# The server must support partitioning.
|
||||
--source include/have_partition.inc
|
||||
|
||||
#
|
||||
# NOTE: PLEASE DO NOT ADD NOT INNODB SPECIFIC TESTCASES HERE !
|
||||
# TESTCASES WHICH MUST BE APPLIED TO ALL STORAGE ENGINES MUST BE ADDED IN
|
||||
# THE SOURCED FILES ONLY.
|
||||
#
|
||||
# Please read the README at the end of inc/partition.pre before changing
|
||||
# any of the variables.
|
||||
#
|
||||
|
||||
#------------------------------------------------------------------------------#
|
||||
# General not engine specific settings and requirements
|
||||
--source include/have_lowercase2.inc
|
||||
|
||||
#------------------------------------------------------------------------------#
|
||||
# Engine specific settings and requirements
|
||||
|
||||
##### Storage engine to be tested
|
||||
--source include/have_archive.inc
|
||||
let $engine= 'Archive';
|
||||
|
||||
#------------------------------------------------------------------------------#
|
||||
# Execute the tests to be applied to all storage engines
|
||||
--source suite/parts/inc/partition_mgm.inc
|
@ -0,0 +1 @@
|
||||
--lower_case_table_names=2
|
38
mysql-test/suite/parts/t/partition_mgm_lc2_innodb.test
Normal file
38
mysql-test/suite/parts/t/partition_mgm_lc2_innodb.test
Normal file
@ -0,0 +1,38 @@
|
||||
################################################################################
|
||||
# t/partition_mgm_lc2_innodb.test #
|
||||
# #
|
||||
# Purpose: #
|
||||
# Test of partitioning management functions (incl upper/lower case names): #
|
||||
# InnoDB branch + lower_case_table_names = 2 (usually Mac OS X) #
|
||||
# #
|
||||
#------------------------------------------------------------------------------#
|
||||
# Original Author: mattiasj #
|
||||
# Original Date: 2008-06-27 #
|
||||
################################################################################
|
||||
|
||||
# The server must support partitioning.
|
||||
--source include/have_partition.inc
|
||||
|
||||
#
|
||||
# NOTE: PLEASE DO NOT ADD NOT INNODB SPECIFIC TESTCASES HERE !
|
||||
# TESTCASES WHICH MUST BE APPLIED TO ALL STORAGE ENGINES MUST BE ADDED IN
|
||||
# THE SOURCED FILES ONLY.
|
||||
#
|
||||
# Please read the README at the end of inc/partition.pre before changing
|
||||
# any of the variables.
|
||||
#
|
||||
|
||||
#------------------------------------------------------------------------------#
|
||||
# General not engine specific settings and requirements
|
||||
--source include/have_lowercase2.inc
|
||||
|
||||
#------------------------------------------------------------------------------#
|
||||
# Engine specific settings and requirements
|
||||
|
||||
##### Storage engine to be tested
|
||||
--source include/have_innodb.inc
|
||||
let $engine= 'InnoDB';
|
||||
|
||||
#------------------------------------------------------------------------------#
|
||||
# Execute the tests to be applied to all storage engines
|
||||
--source suite/parts/inc/partition_mgm.inc
|
@ -0,0 +1 @@
|
||||
--lower_case_table_names=2
|
38
mysql-test/suite/parts/t/partition_mgm_lc2_memory.test
Normal file
38
mysql-test/suite/parts/t/partition_mgm_lc2_memory.test
Normal file
@ -0,0 +1,38 @@
|
||||
################################################################################
|
||||
# t/partition_mgm_lc2_memory.test #
|
||||
# #
|
||||
# Purpose: #
|
||||
# Test of partitioning management functions (incl upper/lower case names): #
|
||||
# Memory branch + lower_case_table_names = 2 (usually Mac OS X) #
|
||||
# #
|
||||
#------------------------------------------------------------------------------#
|
||||
# Original Author: mattiasj #
|
||||
# Original Date: 2008-06-27 #
|
||||
################################################################################
|
||||
|
||||
# The server must support partitioning.
|
||||
--source include/have_partition.inc
|
||||
|
||||
#
|
||||
# NOTE: PLEASE DO NOT ADD NOT INNODB SPECIFIC TESTCASES HERE !
|
||||
# TESTCASES WHICH MUST BE APPLIED TO ALL STORAGE ENGINES MUST BE ADDED IN
|
||||
# THE SOURCED FILES ONLY.
|
||||
#
|
||||
# Please read the README at the end of inc/partition.pre before changing
|
||||
# any of the variables.
|
||||
#
|
||||
|
||||
#------------------------------------------------------------------------------#
|
||||
# General not engine specific settings and requirements
|
||||
--source include/have_lowercase2.inc
|
||||
|
||||
#------------------------------------------------------------------------------#
|
||||
# Engine specific settings and requirements
|
||||
|
||||
##### Storage engine to be tested
|
||||
#--source include/have_memory.inc
|
||||
let $engine= 'Memory';
|
||||
|
||||
#------------------------------------------------------------------------------#
|
||||
# Execute the tests to be applied to all storage engines
|
||||
--source suite/parts/inc/partition_mgm.inc
|
@ -0,0 +1 @@
|
||||
--lower_case_table_names=2
|
38
mysql-test/suite/parts/t/partition_mgm_lc2_myisam.test
Normal file
38
mysql-test/suite/parts/t/partition_mgm_lc2_myisam.test
Normal file
@ -0,0 +1,38 @@
|
||||
################################################################################
|
||||
# t/partition_mgm_lc2_myisam.test #
|
||||
# #
|
||||
# Purpose: #
|
||||
# Test of partitioning management functions (incl upper/lower case names): #
|
||||
# MyISAM branch + lower_case_table_names = 2 (usually Mac OS X) #
|
||||
# #
|
||||
#------------------------------------------------------------------------------#
|
||||
# Original Author: mattiasj #
|
||||
# Original Date: 2008-06-27 #
|
||||
################################################################################
|
||||
|
||||
# The server must support partitioning.
|
||||
--source include/have_partition.inc
|
||||
|
||||
#
|
||||
# NOTE: PLEASE DO NOT ADD NOT INNODB SPECIFIC TESTCASES HERE !
|
||||
# TESTCASES WHICH MUST BE APPLIED TO ALL STORAGE ENGINES MUST BE ADDED IN
|
||||
# THE SOURCED FILES ONLY.
|
||||
#
|
||||
# Please read the README at the end of inc/partition.pre before changing
|
||||
# any of the variables.
|
||||
#
|
||||
|
||||
#------------------------------------------------------------------------------#
|
||||
# General not engine specific settings and requirements
|
||||
--source include/have_lowercase2.inc
|
||||
|
||||
#------------------------------------------------------------------------------#
|
||||
# Engine specific settings and requirements
|
||||
|
||||
##### Storage engine to be tested
|
||||
#--source include/have_myisam.inc
|
||||
let $engine= 'MyISAM';
|
||||
|
||||
#------------------------------------------------------------------------------#
|
||||
# Execute the tests to be applied to all storage engines
|
||||
--source suite/parts/inc/partition_mgm.inc
|
@ -0,0 +1 @@
|
||||
--lower_case_table_names=2
|
43
mysql-test/suite/parts/t/partition_mgm_lc2_ndb.test
Normal file
43
mysql-test/suite/parts/t/partition_mgm_lc2_ndb.test
Normal file
@ -0,0 +1,43 @@
|
||||
################################################################################
|
||||
# t/partition_mgm_lc2_ndb.test #
|
||||
# #
|
||||
# Purpose: #
|
||||
# Test of partitioning management functions (incl upper/lower case names): #
|
||||
# NDB branch + lower_case_table_names = 2 (usually Mac OS X) #
|
||||
# #
|
||||
#------------------------------------------------------------------------------#
|
||||
# Original Author: mattiasj #
|
||||
# Original Date: 2008-06-27 #
|
||||
################################################################################
|
||||
|
||||
# The server must support partitioning.
|
||||
--source include/have_partition.inc
|
||||
|
||||
#
|
||||
# NOTE: PLEASE DO NOT ADD NOT INNODB SPECIFIC TESTCASES HERE !
|
||||
# TESTCASES WHICH MUST BE APPLIED TO ALL STORAGE ENGINES MUST BE ADDED IN
|
||||
# THE SOURCED FILES ONLY.
|
||||
#
|
||||
# Please read the README at the end of inc/partition.pre before changing
|
||||
# any of the variables.
|
||||
#
|
||||
|
||||
#------------------------------------------------------------------------------#
|
||||
# General not engine specific settings and requirements
|
||||
--source include/have_lowercase2.inc
|
||||
|
||||
#------------------------------------------------------------------------------#
|
||||
# Engine specific settings and requirements
|
||||
|
||||
##### Storage engine to be tested
|
||||
--source include/have_ndb.inc
|
||||
connection default;
|
||||
# Use either $can_only_key or new=on option to run test.
|
||||
let $can_only_key= 1;
|
||||
# Allow hash/list/range partitioning with ndb
|
||||
#SET new=on;
|
||||
let $engine= 'NDBCluster';
|
||||
|
||||
#------------------------------------------------------------------------------#
|
||||
# Execute the tests to be applied to all storage engines
|
||||
--source suite/parts/inc/partition_mgm.inc
|
@ -6,6 +6,7 @@
|
||||
|
||||
--source include/have_innodb.inc
|
||||
--source include/have_lowercase0.inc
|
||||
--source include/have_case_insensitive_file_system.inc
|
||||
--source include/not_windows.inc
|
||||
|
||||
--disable_warnings
|
||||
|
@ -593,6 +593,12 @@ int ha_partition::drop_partitions(const char *path)
|
||||
int error= 0;
|
||||
DBUG_ENTER("ha_partition::drop_partitions");
|
||||
|
||||
/*
|
||||
Assert that it works without HA_FILE_BASED and lower_case_table_name = 2.
|
||||
We use m_file[0] as long as all partitions have the same storage engine.
|
||||
*/
|
||||
DBUG_ASSERT(!strcmp(path, get_canonical_filename(m_file[0], path,
|
||||
part_name_buff)));
|
||||
do
|
||||
{
|
||||
partition_element *part_elem= part_it++;
|
||||
@ -682,6 +688,13 @@ int ha_partition::rename_partitions(const char *path)
|
||||
partition_element *part_elem, *sub_elem;
|
||||
DBUG_ENTER("ha_partition::rename_partitions");
|
||||
|
||||
/*
|
||||
Assert that it works without HA_FILE_BASED and lower_case_table_name = 2.
|
||||
We use m_file[0] as long as all partitions have the same storage engine.
|
||||
*/
|
||||
DBUG_ASSERT(!strcmp(path, get_canonical_filename(m_file[0], path,
|
||||
norm_name_buff)));
|
||||
|
||||
if (temp_partitions)
|
||||
{
|
||||
/*
|
||||
@ -1344,6 +1357,12 @@ int ha_partition::change_partitions(HA_CREATE_INFO *create_info,
|
||||
THD *thd= current_thd;
|
||||
DBUG_ENTER("ha_partition::change_partitions");
|
||||
|
||||
/*
|
||||
Assert that it works without HA_FILE_BASED and lower_case_table_name = 2.
|
||||
We use m_file[0] as long as all partitions have the same storage engine.
|
||||
*/
|
||||
DBUG_ASSERT(!strcmp(path, get_canonical_filename(m_file[0], path,
|
||||
part_name_buff)));
|
||||
m_reorged_parts= 0;
|
||||
if (!m_part_info->is_sub_partitioned())
|
||||
no_subparts= 1;
|
||||
@ -1776,8 +1795,10 @@ uint ha_partition::del_ren_cre_table(const char *from,
|
||||
{
|
||||
int save_error= 0;
|
||||
int error;
|
||||
char from_buff[FN_REFLEN], to_buff[FN_REFLEN];
|
||||
char from_buff[FN_REFLEN], to_buff[FN_REFLEN], from_lc_buff[FN_REFLEN],
|
||||
to_lc_buff[FN_REFLEN];
|
||||
char *name_buffer_ptr;
|
||||
const char *from_path, *to_path;
|
||||
uint i;
|
||||
handler **file, **abort_file;
|
||||
DBUG_ENTER("del_ren_cre_table()");
|
||||
@ -1785,17 +1806,29 @@ uint ha_partition::del_ren_cre_table(const char *from,
|
||||
if (get_from_handler_file(from, current_thd->mem_root))
|
||||
DBUG_RETURN(TRUE);
|
||||
DBUG_ASSERT(m_file_buffer);
|
||||
DBUG_PRINT("enter", ("from: (%s) to: (%s)", from, to));
|
||||
name_buffer_ptr= m_name_buffer_ptr;
|
||||
file= m_file;
|
||||
/*
|
||||
Since ha_partition has HA_FILE_BASED, it must alter underlying table names
|
||||
if they do not have HA_FILE_BASED and lower_case_table_names == 2.
|
||||
See Bug#37402, for Mac OS X.
|
||||
The appended #P#<partname>[#SP#<subpartname>] will remain in current case.
|
||||
Using the first partitions handler, since mixing handlers is not allowed.
|
||||
*/
|
||||
from_path= get_canonical_filename(*file, from, from_lc_buff);
|
||||
if (to != NULL)
|
||||
to_path= get_canonical_filename(*file, to, to_lc_buff);
|
||||
i= 0;
|
||||
do
|
||||
{
|
||||
create_partition_name(from_buff, from, name_buffer_ptr, NORMAL_PART_NAME,
|
||||
FALSE);
|
||||
create_partition_name(from_buff, from_path, name_buffer_ptr,
|
||||
NORMAL_PART_NAME, FALSE);
|
||||
|
||||
if (to != NULL)
|
||||
{ // Rename branch
|
||||
create_partition_name(to_buff, to, name_buffer_ptr, NORMAL_PART_NAME,
|
||||
FALSE);
|
||||
create_partition_name(to_buff, to_path, name_buffer_ptr,
|
||||
NORMAL_PART_NAME, FALSE);
|
||||
error= (*file)->ha_rename_table(from_buff, to_buff);
|
||||
}
|
||||
else if (table_arg == NULL) // delete branch
|
||||
@ -1817,7 +1850,7 @@ create_error:
|
||||
name_buffer_ptr= m_name_buffer_ptr;
|
||||
for (abort_file= file, file= m_file; file < abort_file; file++)
|
||||
{
|
||||
create_partition_name(from_buff, from, name_buffer_ptr, NORMAL_PART_NAME,
|
||||
create_partition_name(from_buff, from_path, name_buffer_ptr, NORMAL_PART_NAME,
|
||||
FALSE);
|
||||
VOID((*file)->ha_delete_table((const char*) from_buff));
|
||||
name_buffer_ptr= strend(name_buffer_ptr) + 1;
|
||||
|
@ -1814,8 +1814,8 @@ bool ha_flush_logs(handlerton *db_type)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static const char *check_lowercase_names(handler *file, const char *path,
|
||||
char *tmp_path)
|
||||
const char *get_canonical_filename(handler *file, const char *path,
|
||||
char *tmp_path)
|
||||
{
|
||||
if (lower_case_table_names != 2 || (file->ha_table_flags() & HA_FILE_BASED))
|
||||
return path;
|
||||
@ -1886,7 +1886,7 @@ int ha_delete_table(THD *thd, handlerton *table_type, const char *path,
|
||||
! (file=get_new_handler((TABLE_SHARE*)0, thd->mem_root, table_type)))
|
||||
DBUG_RETURN(ENOENT);
|
||||
|
||||
path= check_lowercase_names(file, path, tmp_path);
|
||||
path= get_canonical_filename(file, path, tmp_path);
|
||||
if ((error= file->ha_delete_table(path)) && generate_warning)
|
||||
{
|
||||
/*
|
||||
@ -3422,7 +3422,7 @@ int ha_create_table(THD *thd, const char *path,
|
||||
if (update_create_info)
|
||||
update_create_info_from_table(create_info, &table);
|
||||
|
||||
name= check_lowercase_names(table.file, share.path.str, name_buff);
|
||||
name= get_canonical_filename(table.file, share.path.str, name_buff);
|
||||
|
||||
error= table.file->ha_create(name, &table, create_info);
|
||||
VOID(closefrm(&table, 0));
|
||||
@ -3494,7 +3494,7 @@ int ha_create_table_from_engine(THD* thd, const char *db, const char *name)
|
||||
update_create_info_from_table(&create_info, &table);
|
||||
create_info.table_options|= HA_OPTION_CREATE_FROM_ENGINE;
|
||||
|
||||
check_lowercase_names(table.file, path, path);
|
||||
get_canonical_filename(table.file, path, path);
|
||||
error=table.file->ha_create(path, &table, &create_info);
|
||||
VOID(closefrm(&table, 1));
|
||||
|
||||
|
@ -2227,6 +2227,8 @@ uint tablename_to_filename(const char *from, char *to, uint to_length);
|
||||
#ifdef MYSQL_SERVER
|
||||
uint build_table_filename(char *buff, size_t bufflen, const char *db,
|
||||
const char *table, const char *ext, uint flags);
|
||||
const char *get_canonical_filename(handler *file, const char *path,
|
||||
char *tmp_path);
|
||||
|
||||
#define MYSQL50_TABLE_NAME_PREFIX "#mysql50#"
|
||||
#define MYSQL50_TABLE_NAME_PREFIX_LENGTH 9
|
||||
|
Loading…
x
Reference in New Issue
Block a user