1 ################################################################################ 
    2 # inc/partition_methods1.inc                                                   # 
    5 #   Create and check partitioned tables                                        # 
    6 #   The partitioning function use the column f_int1                            # 
    8 #   For all partitioning methods                                               # 
    9 #        PARTITION BY HASH/KEY/LIST/RANGE                                      # 
   10 #        PARTITION BY RANGE/LIST ... SUBPARTITION BY HASH/KEY ...              # 
   12 #     1. Create the partitioned table                                          # 
   13 #     2  Insert the content of the table t0_template into t1                   # 
   14 #     3. Execute inc/partition_check.inc                                       # 
   15 #     4. Drop the table t1                                                     # 
   19 #        $unique -- PRIMARY KEY or UNIQUE INDEXes to be created within the     # 
   20 #                   CREATE TABLE STATEMENT                                     # 
   21 #   has to be set before sourcing this routine.                                # 
   23 #          let $unique= , UNIQUE INDEX uidx1 (f_int1);                         # 
   24 #          inc/partition_method1s.inc                                          # 
   26 # Attention: The routine inc/partition_methods2.inc is very similar            # 
   27 #            to this one. So if something has to be changed here it            # 
   28 #            might be necessary to do it also there                            # 
   30 #------------------------------------------------------------------------------# 
   31 # Original Author: mleich                                                      # 
   32 # Original Date: 2006-03-05                                                    # 
   34 # Change Date:   2006-05-12                                                    # 
   35 # Change:        Introduced DATA/INDEX DIRECTORY                               # 
   36 ################################################################################ 
   39 DROP 
TABLE IF EXISTS t1;
 
   43 #----------- PARTITION BY HASH 
   44 if ($with_partitioning)
 
   46 let $partitioning= PARTITION BY 
HASH(f_int1) PARTITIONS 2;
 
   47 if ($with_directories)
 
   50 PARTITION BY 
HASH(f_int1) PARTITIONS 2
 
   59 --replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
 
   60 eval CREATE 
TABLE t1 (
 
   66 --source suite/parts/inc/partition_check.inc
 
   68 --source suite/parts/inc/partition_check_drop.inc
 
   70 #----------- PARTITION BY KEY 
   71 if ($with_partitioning)
 
   74 PARTITION BY 
KEY(f_int1) PARTITIONS 5;
 
   75 if ($with_directories)
 
   78 PARTITION BY 
KEY(f_int1) PARTITIONS 5
 
   96 --replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
 
   97 eval CREATE 
TABLE t1 (
 
  103 --source suite/parts/inc/partition_check.inc
 
  105 --source suite/parts/inc/partition_check_drop.inc
 
  107 #----------- PARTITION BY LIST 
  108 if ($with_partitioning)
 
  111 PARTITION BY 
LIST(MOD(f_int1,4))
 
  112 (PARTITION part_3 VALUES IN (-3),
 
  113  PARTITION part_2 VALUES IN (-2),
 
  114  PARTITION part_1 VALUES IN (-1),
 
  115  PARTITION part_N VALUES IN (NULL),
 
  116  PARTITION part0 VALUES IN (0),
 
  117  PARTITION part1 VALUES IN (1),
 
  118  PARTITION part2 VALUES IN (2),
 
  119  PARTITION part3 VALUES IN (3));
 
  120 if ($with_directories)
 
  123 PARTITION BY 
LIST(MOD(f_int1,4))
 
  124 (PARTITION part_3 VALUES IN (-3)
 
  125 $data_directory $index_directory,
 
  126  PARTITION part_2 VALUES IN (-2)
 
  127 $data_directory $index_directory,
 
  128  PARTITION part_1 VALUES IN (-1)
 
  129 $data_directory $index_directory,
 
  130  PARTITION part_N VALUES IN (NULL)
 
  131 $data_directory $index_directory,
 
  132  PARTITION part0 VALUES IN (0)
 
  133 $data_directory $index_directory,
 
  134  PARTITION part1 VALUES IN (1)
 
  135 $data_directory $index_directory,
 
  136  PARTITION part2 VALUES IN (2)
 
  137 $data_directory $index_directory,
 
  138  PARTITION part3 VALUES IN (3)
 
  139 $data_directory $index_directory);
 
  142 --replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
 
  143 eval CREATE 
TABLE t1 (
 
  149 --source suite/parts/inc/partition_check.inc
 
  151 --source suite/parts/inc/partition_check_drop.inc
 
  153 #----------- PARTITION BY RANGE 
  154 if ($with_partitioning)
 
  156 let $partitioning= PARTITION BY RANGE(f_int1)
 
  157 (PARTITION parta VALUES LESS THAN (0),
 
  158 PARTITION partb VALUES LESS THAN ($max_row_div4),
 
  159 PARTITION partc VALUES LESS THAN ($max_row_div2),
 
  160 PARTITION partd VALUES LESS THAN ($max_row_div2 + $max_row_div4),
 
  161 PARTITION parte VALUES LESS THAN ($max_row),
 
  162 PARTITION partf VALUES LESS THAN $MAX_VALUE);
 
  163 if ($with_directories)
 
  165 let $partitioning= PARTITION BY RANGE(f_int1)
 
  166 (PARTITION parta VALUES LESS THAN (0)
 
  169 PARTITION partb VALUES LESS THAN ($max_row_div4)
 
  172 PARTITION partc VALUES LESS THAN ($max_row_div2)
 
  175 PARTITION partd VALUES LESS THAN ($max_row_div2 + $max_row_div4)
 
  178 PARTITION parte VALUES LESS THAN ($max_row)
 
  181 PARTITION partf VALUES LESS THAN $MAX_VALUE
 
  186 --replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
 
  187 eval CREATE 
TABLE t1 (
 
  193 --source suite/parts/inc/partition_check.inc
 
  195 --source suite/parts/inc/partition_check_drop.inc
 
  197 #----------- PARTITION BY RANGE -- SUBPARTITION BY HASH 
  198 if ($with_partitioning)
 
  201 PARTITION BY RANGE(f_int1 DIV 2) SUBPARTITION BY 
HASH(f_int1) SUBPARTITIONS 2
 
  202 (PARTITION parta VALUES LESS THAN (0),
 
  203 PARTITION partb VALUES LESS THAN ($max_row_div4),
 
  204 PARTITION partc VALUES LESS THAN ($max_row_div2),
 
  205 PARTITION partd VALUES LESS THAN $MAX_VALUE);
 
  206 if ($with_directories)
 
  209 PARTITION BY RANGE(f_int1 DIV 2) SUBPARTITION BY 
HASH(f_int1) SUBPARTITIONS 2
 
  210 (PARTITION parta VALUES LESS THAN (0)
 
  213 PARTITION partb VALUES LESS THAN ($max_row_div4)
 
  216 PARTITION partc VALUES LESS THAN ($max_row_div2)
 
  219 PARTITION partd VALUES LESS THAN $MAX_VALUE
 
  224 --replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
 
  225 eval CREATE 
TABLE t1 (
 
  231 --source suite/parts/inc/partition_check.inc
 
  233 --source suite/parts/inc/partition_check_drop.inc
 
  235 #----------- PARTITION BY RANGE -- SUBPARTITION BY KEY 
  236 if ($with_partitioning)
 
  238 let $partitioning= PARTITION BY RANGE(f_int1) SUBPARTITION BY 
KEY(f_int1)
 
  239 (PARTITION part1 VALUES LESS THAN (0)
 
  240 (SUBPARTITION subpart11, SUBPARTITION subpart12),
 
  241 PARTITION part2 VALUES LESS THAN ($max_row_div4)
 
  242 (SUBPARTITION subpart21, SUBPARTITION subpart22),
 
  243 PARTITION part3 VALUES LESS THAN ($max_row_div2)
 
  244 (SUBPARTITION subpart31, SUBPARTITION subpart32),
 
  245 PARTITION part4 VALUES LESS THAN $MAX_VALUE
 
  246 (SUBPARTITION subpart41, SUBPARTITION subpart42));
 
  247 if ($with_directories)
 
  249 let $partitioning= PARTITION BY RANGE(f_int1) SUBPARTITION BY 
KEY(f_int1)
 
  250 (PARTITION part1 VALUES LESS THAN (0)
 
  251 (SUBPARTITION subpart11 $data_directory $index_directory,
 
  252  SUBPARTITION subpart12 $data_directory $index_directory),
 
  253 PARTITION part2 VALUES LESS THAN ($max_row_div4)
 
  254 (SUBPARTITION subpart21 $data_directory $index_directory,
 
  255  SUBPARTITION subpart22 $data_directory $index_directory),
 
  256 PARTITION part3 VALUES LESS THAN ($max_row_div2)
 
  257 (SUBPARTITION subpart31 $data_directory $index_directory,
 
  258  SUBPARTITION subpart32 $data_directory $index_directory),
 
  259 PARTITION part4 VALUES LESS THAN $MAX_VALUE
 
  260 (SUBPARTITION subpart41 $data_directory $index_directory,
 
  261  SUBPARTITION subpart42 $data_directory $index_directory));
 
  264 --replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
 
  265 eval CREATE 
TABLE t1 (
 
  271 --source suite/parts/inc/partition_check.inc
 
  273 --source suite/parts/inc/partition_check_drop.inc
 
  275 #----------- PARTITION BY LIST -- SUBPARTITION BY HASH 
  276 if ($with_partitioning)
 
  279 PARTITION BY 
LIST(ABS(MOD(f_int1,3))) SUBPARTITION BY 
HASH(f_int1 + 1)
 
  280 (PARTITION part1 VALUES IN (0)
 
  283  PARTITION part2 VALUES IN (1)
 
  286  PARTITION part3 VALUES IN (2)
 
  289  PARTITION part4 VALUES IN (NULL)
 
  292 if ($with_directories)
 
  295 PARTITION BY 
LIST(ABS(MOD(f_int1,3))) SUBPARTITION BY 
HASH(f_int1 + 1)
 
  296 (PARTITION part1 VALUES IN (0)
 
  305  PARTITION part2 VALUES IN (1)
 
  314  PARTITION part3 VALUES IN (2)
 
  319  PARTITION part4 VALUES IN (NULL)
 
  330 --replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
 
  331 eval CREATE 
TABLE t1 (
 
  337 --source suite/parts/inc/partition_check.inc
 
  339 --source suite/parts/inc/partition_check_drop.inc
 
  341 #----------- PARTITION BY LIST -- SUBPARTITION BY KEY 
  342 if ($with_partitioning)
 
  345 PARTITION BY 
LIST(ABS(MOD(f_int1,2)))
 
  346 SUBPARTITION BY 
KEY(f_int1) SUBPARTITIONS $sub_part_no
 
  347 (PARTITION part1 VALUES IN (0),
 
  348  PARTITION part2 VALUES IN (1),
 
  349  PARTITION part3 VALUES IN (NULL));
 
  350 if ($with_directories)
 
  353 PARTITION BY 
LIST(ABS(MOD(f_int1,2)))
 
  354 SUBPARTITION BY 
KEY(f_int1) SUBPARTITIONS $sub_part_no
 
  355 (PARTITION part1 VALUES IN (0)
 
  358  PARTITION part2 VALUES IN (1)
 
  361  PARTITION part3 VALUES IN (NULL)
 
  366 --replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
 
  367 eval CREATE 
TABLE t1 (
 
  373 --source suite/parts/inc/partition_check.inc
 
  375 --source suite/parts/inc/partition_check_drop.inc