EVOLUTION-MANAGER
Edit File: partition_exch_qa_2.test
# Author: Horst Hunger # Created: 2010-07-05 source include/have_partition.inc; let $engine_table= MYISAM; let $engine_part= MYISAM; let $engine_subpart= MYISAM; use test; source suite/parts/inc/part_exch_tabs.inc; sorted_result; SELECT * FROM t_10; sorted_result; SELECT * FROM t_100; sorted_result; SELECT * FROM t_1000; sorted_result; SELECT * FROM tp; sorted_result; SELECT * FROM tsp; sorted_result; SELECT * FROM tsp_00; sorted_result; SELECT * FROM tsp_01; sorted_result; SELECT * FROM tsp_02; sorted_result; SELECT * FROM tsp_03; sorted_result; SELECT * FROM tsp_04; # 3) Invalid exchanges. # Exchange of partition with table differing in structure. CREATE TABLE t_11(a INT,b VARCHAR(55)) SELECT * FROM t_10; error ER_TABLES_DIFFERENT_METADATA; ALTER TABLE tp EXCHANGE PARTITION p0 WITH TABLE t_11; DROP TABLE t_11; eval CREATE TABLE t_11(a INT,b CHAR(55),PRIMARY KEY(a)) ENGINE= $engine_table SELECT * FROM t_10; error ER_TABLES_DIFFERENT_METADATA; ALTER TABLE tp EXCHANGE PARTITION p0 WITH TABLE t_11; DROP TABLE t_11; CREATE TABLE t_11(a INT,b VARCHAR(55),PRIMARY KEY(a)) ENGINE= MEMORY SELECT * FROM t_10; error ER_MIX_HANDLER_ERROR; ALTER TABLE tp EXCHANGE PARTITION p0 WITH TABLE t_11; DROP TABLE t_11; # Exchange of partition with partitioned table. eval CREATE TABLE t_11(a INT,b CHAR(55),PRIMARY KEY(a)) ENGINE= $engine_table PARTITION BY KEY() AS SELECT * FROM t_10; error ER_PARTITION_EXCHANGE_PART_TABLE; ALTER TABLE tp EXCHANGE PARTITION p0 WITH TABLE t_11; DROP TABLE t_11; # Exchange of subpartition with partitioned table. error ER_PARTITION_EXCHANGE_PART_TABLE; ALTER TABLE tp EXCHANGE PARTITION p0 WITH TABLE tsp; # Exchange of subpartitioned partition with table. error ER_PARTITION_INSTEAD_OF_SUBPARTITION; ALTER TABLE tsp EXCHANGE PARTITION p0 WITH TABLE t_10; # Exchange of values in partition not fitting the hash. error ER_ROW_DOES_NOT_MATCH_PARTITION; ALTER TABLE tp EXCHANGE PARTITION p0 WITH TABLE t_100; # Exchange of values in subpartition not fitting the hash. error ER_ROW_DOES_NOT_MATCH_PARTITION; ALTER TABLE tp EXCHANGE PARTITION p2 WITH TABLE t_10; source suite/parts/inc/part_exch_drop_tabs.inc;