1 ################################################################################ 
    2 # inc/partition_alter1_2.inc                                                     # 
    5 #   ADD/DROP PRIMARY KEYs and/or UNIQUE INDEXes tests on partitioned tables    # 
    6 #   This routine is only useful for the partition_<feature>_<engine> tests.    # 
    8 #------------------------------------------------------------------------------# 
    9 # Original Author: mleich                                                      # 
   10 # Original Date: 2006-03-05                                                    # 
   14 ################################################################################ 
   17 --echo #========================================================================
 
   18 --echo #  2     DROP PRIMARY 
KEY or UNIQUE INDEX
 
   19 --echo #========================================================================
 
   20 #         Rule: The table must have a PRIMARY KEY or UNIQUE INDEX. 
   21 #               ---> $unique must not be empty 
   22 #               ---> The PRIMARY KEY or UNIQUE INDEX to be dropped must contain 
   23 #                    the columns used for partitioning. 
   24 --echo #------------------------------------------------------------------------
 
   25 --echo #  2.1   Partitioning 
function contains one column(f_int1)
 
   26 --echo #------------------------------------------------------------------------
 
   27 #         Rule: Only f_int1 is used within the partitioning function 
   28 #         ---> inc/partition_alter_11.inc 
   29 # The value of the following test is maybe covered by 2.1.5. 
   30 if ($more_pk_ui_tests)
 
   34       --echo #  2.1.1 DROP PRIMARY 
KEY consisting of one column
 
   35       let $unique= , PRIMARY 
KEY(f_int1);
 
   36       let $alter= ALTER 
TABLE t1 DROP PRIMARY 
KEY;
 
   37       --source suite/parts/inc/partition_alter_11.inc
 
   40    --echo #  2.1.2 DROP UNIQUE INDEX consisting of one column
 
   41    let $unique= , UNIQUE INDEX uidx1 (f_int1);
 
   42    let $alter= ALTER 
TABLE t1 DROP INDEX uidx1;
 
   43    --source suite/parts/inc/partition_alter_11.inc
 
   47       --echo #  2.1.3 DROP PRIMARY 
KEY consisting of two columns
 
   48       let $alter= ALTER 
TABLE t1 DROP PRIMARY 
KEY;
 
   49       let $unique= , PRIMARY KEY(f_int1,f_int2);
 
   50       --source suite/parts/inc/partition_alter_11.inc
 
   51       let $unique= , PRIMARY KEY(f_int2,f_int1);
 
   52       --source suite/parts/inc/partition_alter_11.inc
 
   55    --echo #  2.1.4 DROP UNIQUE INDEX consisting of two columns
 
   56    let $alter= ALTER 
TABLE t1 DROP INDEX uidx1;
 
   57    let $unique= , UNIQUE INDEX uidx1 (f_int1,f_int2);
 
   58    --source suite/parts/inc/partition_alter_11.inc
 
   59    let $unique= , UNIQUE INDEX uidx1 (f_int2,f_int1);
 
   60    --source suite/parts/inc/partition_alter_11.inc
 
   65    --echo #  2.1.5 DROP PRIMARY 
KEY + UNIQUE INDEX consisting of two columns
 
   66    let $unique= , UNIQUE INDEX uidx1 (f_int1,f_int2), PRIMARY 
KEY(f_int2,f_int1);
 
   67    let $alter= ALTER 
TABLE t1 DROP PRIMARY 
KEY, DROP INDEX uidx1;
 
   68    --source suite/parts/inc/partition_alter_11.inc
 
   69    let $unique= , UNIQUE INDEX uidx1 (f_int2,f_int1), PRIMARY KEY(f_int1,f_int2);
 
   70    let $alter= ALTER 
TABLE t1 DROP PRIMARY KEY, DROP INDEX uidx1;
 
   71    --source suite/parts/inc/partition_alter_11.inc
 
   73 let $unique= , UNIQUE INDEX uidx1 (f_int1,f_int2), UNIQUE INDEX uidx2 (f_int2,f_int1);
 
   74 let $alter= ALTER 
TABLE t1 DROP INDEX uidx1, DROP INDEX uidx2;
 
   75 --source suite/parts/inc/partition_alter_11.inc
 
   77 --echo #------------------------------------------------------------------------
 
   78 --echo #  2.2   Partitioning 
function contains two columns (f_int1,f_int2)
 
   79 --echo #------------------------------------------------------------------------
 
   80 #         Rule: f_int1 and f_int2 is used within the partitioning function 
   81 #         ---> inc/partition_alter_13.inc 
   84    --echo #  2.2.1 DROP PRIMARY 
KEY consisting of two columns
 
   85    let $alter= ALTER 
TABLE t1 DROP PRIMARY 
KEY;
 
   86    let $unique= , PRIMARY KEY(f_int1,f_int2);
 
   87    --source suite/parts/inc/partition_alter_13.inc
 
   88    let $unique= , PRIMARY KEY(f_int2,f_int1);
 
   89    --source suite/parts/inc/partition_alter_13.inc
 
   92 --echo #  2.2.2 DROP UNIQUE INDEX consisting of two columns
 
   93 let $alter= ALTER 
TABLE t1 DROP INDEX uidx1;
 
   94 let $unique= , UNIQUE INDEX uidx1 (f_int1,f_int2);
 
   95 --source suite/parts/inc/partition_alter_13.inc
 
   96 let $unique= , UNIQUE INDEX uidx1 (f_int2,f_int1);
 
   97 --source suite/parts/inc/partition_alter_13.inc
 
  101    --echo #  2.2.3 DROP PRIMARY 
KEY + UNIQUE INDEX consisting of two columns
 
  102    let $unique= , UNIQUE INDEX uidx1 (f_int1,f_int2), PRIMARY 
KEY(f_int2,f_int1);
 
  103    let $alter= ALTER 
TABLE t1 DROP PRIMARY 
KEY, DROP INDEX uidx1;
 
  104    --source suite/parts/inc/partition_alter_13.inc
 
  105    let $unique= , UNIQUE INDEX uidx1 (f_int2,f_int1), PRIMARY KEY(f_int1,f_int2);
 
  106    let $alter= ALTER 
TABLE t1 DROP PRIMARY KEY, DROP INDEX uidx1;
 
  107    --source suite/parts/inc/partition_alter_13.inc
 
  109 let $unique= , UNIQUE INDEX uidx1 (f_int1,f_int2), UNIQUE INDEX uidx2 (f_int2,f_int1);
 
  110 let $alter= ALTER 
TABLE t1 DROP INDEX uidx1, DROP INDEX uidx2;
 
  111 --source suite/parts/inc/partition_alter_13.inc
 
  116 --echo #========================================================================
 
  117 --echo #  3.    ALTER 
TABLE "ALTER" PRIMARY 
KEY 
  118 --echo #        mleich: I think that an ALTER 
TABLE statement where a PRIMARY
 
  119 --echo #            
KEY is dropped and recreated (with different layout) might
 
  120 --echo #            be of interest, 
if the tree containing the 
table data has
 
  121 --echo #            
to be reorganized during 
this operation.
 
  122 --echo #        To be implemented
 
  123 --echo #========================================================================