diff options
Diffstat (limited to 'mysql-test/suite/parts/inc/partition_directory.inc')
-rw-r--r-- | mysql-test/suite/parts/inc/partition_directory.inc | 219 |
1 files changed, 219 insertions, 0 deletions
diff --git a/mysql-test/suite/parts/inc/partition_directory.inc b/mysql-test/suite/parts/inc/partition_directory.inc new file mode 100644 index 00000000..2d270374 --- /dev/null +++ b/mysql-test/suite/parts/inc/partition_directory.inc @@ -0,0 +1,219 @@ +################################################################################ +# inc/partition_directory.inc # +# # +# Purpose: # +# Create and check partitioned tables # +# The partitioning function use the column f_int1 # +# # +# For all Data/Index directory combinations # +# do # +# 1. Create the partitioned table # +# 2 Insert the content of the table t0_template into t1 # +# 3. Execute inc/partition_check.inc # +# 4. Drop the table t1 # +# done # +#------------------------------------------------------------------------------# +# Original Author: HH # +# Original Date: 2006-05-11 # +# Change Author: # +# Change Date: # +# Change: # +################################################################################ + +--disable_warnings +DROP TABLE IF EXISTS t1; +--enable_warnings + +let $partitioning= ; +#----------- PARTITION BY HASH +if ($with_partitioning) +{ +let $partitioning= PARTITION BY HASH(f_int1) PARTITIONS 2; +if ($with_directories) +{ +let $partitioning= +PARTITION BY HASH(f_int1) PARTITIONS 2 +(PARTITION p1 +$index_directory, +PARTITION p2 +$index_directory); +} +} +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +eval CREATE TABLE t1 ( +$column_list +$unique +) +$partitioning; +eval $insert_all; +--source suite/parts/inc/partition_check.inc +DROP TABLE t1; +--source suite/parts/inc/partition_check_drop.inc + +#----------- PARTITION BY KEY +if ($with_partitioning) +{ +let $partitioning= PARTITION BY KEY(f_int1) PARTITIONS 5; +if ($with_directories) +{ +let $partitioning= +PARTITION BY HASH(f_int1) PARTITIONS 5 +(PARTITION p1 +$data_directory, +PARTITION p2 +$index_directory, +PARTITION p3 +$data_directory +$index_directory, +PARTITION p4, +PARTITION p5 +$index_directory); +} +} +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +eval CREATE TABLE t1 ( +$column_list +$unique +) +$partitioning; +eval $insert_all; +--source suite/parts/inc/partition_check.inc +DROP TABLE t1; +--source suite/parts/inc/partition_check_drop.inc + +#----------- PARTITION BY LIST +if ($with_partitioning) +{ +let $partitioning= +PARTITION BY LIST(MOD(f_int1,4)) +(PARTITION part_3 VALUES IN (-3) +$index_directory, + PARTITION part_2 VALUES IN (-2) +$data_directory, + PARTITION part_1 VALUES IN (-1) +$data_directory $index_directory, + PARTITION part_N VALUES IN (NULL) +$data_directory, + PARTITION part0 VALUES IN (0) +$index_directory, + PARTITION part1 VALUES IN (1) +, + PARTITION part2 VALUES IN (2) +$data_directory, + PARTITION part3 VALUES IN (3) +$data_directory $index_directory); +} +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +eval CREATE TABLE t1 ( +$column_list +$unique +) +$partitioning; +eval $insert_all; +--source suite/parts/inc/partition_check.inc +DROP TABLE t1; +--source suite/parts/inc/partition_check_drop.inc + +#----------- PARTITION BY RANGE +if ($with_partitioning) +{ +let $partitioning= PARTITION BY RANGE(f_int1) +(PARTITION parta VALUES LESS THAN (0) +$index_directory, +PARTITION partb VALUES LESS THAN ($max_row_div4) +$data_directory, +PARTITION partc VALUES LESS THAN ($max_row_div2) +$data_directory +$index_directory, +PARTITION partd VALUES LESS THAN ($max_row_div2 + $max_row_div4), +PARTITION parte VALUES LESS THAN ($max_row) +$data_directory, +PARTITION partf VALUES LESS THAN $MAX_VALUE +$index_directory); +} +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +eval CREATE TABLE t1 ( +$column_list +$unique +) +$partitioning; +eval $insert_all; +--source suite/parts/inc/partition_check.inc +DROP TABLE t1; +--source suite/parts/inc/partition_check_drop.inc + +#----------- PARTITION BY RANGE -- SUBPARTITION BY HASH +if ($with_partitioning) +{ +let $partitioning= +PARTITION BY RANGE(f_int1 DIV 2) SUBPARTITION BY HASH(f_int1) SUBPARTITIONS 2 +(PARTITION parta VALUES LESS THAN (0) +$index_directory, +PARTITION partb VALUES LESS THAN ($max_row_div4) +$data_directory, +PARTITION partc VALUES LESS THAN ($max_row_div2), +PARTITION partd VALUES LESS THAN $MAX_VALUE +$data_directory +$index_directory); +} +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +eval CREATE TABLE t1 ( +$column_list +$unique +) +$partitioning; +eval $insert_all; +--source suite/parts/inc/partition_check.inc +DROP TABLE t1; +--source suite/parts/inc/partition_check_drop.inc + +#----------- PARTITION BY RANGE -- SUBPARTITION BY KEY +if ($with_partitioning) +{ +# use the new (from bug#14326) partitioning format (i.e. multi-line comments) +let $partitioning= +/*!50100 PARTITION BY RANGE(f_int1) +SUBPARTITION BY KEY(f_int1) +(PARTITION part1 VALUES LESS THAN (0) $data_directory + (SUBPARTITION subpart11, + SUBPARTITION subpart12), + PARTITION part2 VALUES LESS THAN ($max_row_div4) $index_directory + (SUBPARTITION subpart21, + SUBPARTITION subpart22), + PARTITION part3 VALUES LESS THAN ($max_row_div2) $data_directory $index_directory + (SUBPARTITION subpart31, + SUBPARTITION subpart32), + PARTITION part4 VALUES LESS THAN $MAX_VALUE + (SUBPARTITION subpart41, + SUBPARTITION subpart42)) */; +} +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +eval CREATE TABLE t1 ( +$column_list +$unique +) +$partitioning; +eval $insert_all; +--source suite/parts/inc/partition_check.inc +DROP TABLE t1; +--source suite/parts/inc/partition_check_drop.inc + +#----------- PARTITION BY LIST -- SUBPARTITION BY HASH +if ($with_partitioning) +{ +# use the old (pre bug#14326) format (i.e. one line comment) +let $partitioning= /*!50100 PARTITION BY LIST(ABS(MOD(f_int1,3))) SUBPARTITION BY HASH(f_int1 + 1) (PARTITION part1 VALUES IN (0) $index_directory (SUBPARTITION sp11 $data_directory, SUBPARTITION sp12 $index_directory), PARTITION part2 VALUES IN (1) $data_directory (SUBPARTITION sp21 $data_directory, SUBPARTITION sp22 $index_directory), PARTITION part3 VALUES IN (2) $data_directory $index_directory (SUBPARTITION sp31, SUBPARTITION sp32), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 $data_directory $index_directory, SUBPARTITION sp42 $data_directory $index_directory)) */; +} +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +eval CREATE TABLE t1 ( +$column_list +$unique +) +$partitioning; +eval $insert_all; +--source suite/parts/inc/partition_check.inc +DROP TABLE t1; +--source suite/parts/inc/partition_check_drop.inc + +let $with_directories= FALSE; + |