1 ################################################################################ 
    2 # inc/partition_alter2_1.inc                                                   # 
    5 #   Tests where the columns used within the partitioning function are altered. # 
    6 #   This routine is only useful for the partition_<feature>_<engine> tests.   .# 
    7 #   Part 1: increasing size of column 
    9 #------------------------------------------------------------------------------# 
   10 # Original Author: mleich                                                      # 
   11 # Original Date: 2006-03-05                                                    # 
   12 # Change Author: MattiasJ                                                      # 
   13 # Change Date: 2008-09-08                                                      # 
   14 # Change: Splitted the test in two different parts (increasing/decreasing col) # 
   15 ################################################################################ 
   20 --echo #========================================================================
 
   21 --echo #  1     Increase the 
size of the column used in the partitioning
 
   22 --echo #        
function and/or PRIMARY 
KEY and/or UNIQUE INDEX
 
   23 --echo #========================================================================
 
   24 --echo #------------------------------------------------------------------------
 
   25 --echo #  1.1   ALTER column f_int2 not used in partitioning 
function 
   26 --echo #------------------------------------------------------------------------
 
   27 #         Rule: Only f_int1 is used within the partitioning function 
   28 #         ---> inc/partition_alter_11.inc 
   29 let $alter= ALTER 
TABLE t1 MODIFY f_int2 BIGINT;
 
   30 --echo #  1.1.1 no PRIMARY 
KEY or UNIQUE INDEX exists
 
   32 --source suite/parts/inc/partition_alter_11.inc
 
   36    --echo #  1.1.2 PRIMARY 
KEY exists
 
   37    # The value of the direct following test is maybe covered by the test with 
   38    # the PRIMARY KEY containing two columns. 
   39    if ($more_pk_ui_tests)
 
   41       let $unique= , PRIMARY 
KEY (f_int1);
 
   42       --source suite/parts/inc/partition_alter_11.inc
 
   44    let $unique= , PRIMARY 
KEY (f_int1,f_int2);
 
   45    --source suite/parts/inc/partition_alter_11.inc
 
   46    let $unique= , PRIMARY 
KEY (f_int2,f_int1);
 
   47    --source suite/parts/inc/partition_alter_11.inc
 
   50 --echo #  1.1.3 UNIQUE INDEX exists
 
   51 # The value of the direct following test is maybe covered by the test with 
   52 # the UNIQUE INDEX containing two columns 
   53 if ($more_pk_ui_tests)
 
   55    let $unique= , UNIQUE INDEX uidx1 (f_int1);
 
   56    --source suite/parts/inc/partition_alter_11.inc
 
   58 let $unique= , UNIQUE INDEX uidx1 (f_int1,f_int2);
 
   59 --source suite/parts/inc/partition_alter_11.inc
 
   60 let $unique= , UNIQUE INDEX uidx1 (f_int2,f_int1);
 
   61 --source suite/parts/inc/partition_alter_11.inc
 
   63 if ($more_pk_ui_tests)
 
   65    # The value of the tests 1.2 is maybe covered by the tests 1.3 
   66    --echo #------------------------------------------------------------------------
 
   67    --echo #  1.2   ALTER column f_int1 used in partitioning 
function 
   68    --echo #------------------------------------------------------------------------
 
   69    #         Rule: Only f_int1 is used within the partitioning function 
   70    #         ---> inc/partition_alter_11.inc 
   71    let $alter= ALTER 
TABLE t1 MODIFY f_int1 BIGINT;
 
   72    --echo #  1.2.1 no PRIMARY 
KEY or UNIQUE INDEX exists
 
   74    --source suite/parts/inc/partition_alter_11.inc
 
   75    --source suite/parts/inc/partition_alter_13.inc
 
   79       --echo #  1.2.2 PRIMARY 
KEY exists
 
   80       let $unique= , PRIMARY 
KEY (f_int1);
 
   81       --source suite/parts/inc/partition_alter_11.inc
 
   82       let $unique= , PRIMARY 
KEY (f_int1,f_int2);
 
   83       --source suite/parts/inc/partition_alter_11.inc
 
   84       --source suite/parts/inc/partition_alter_13.inc
 
   85       let $unique= , PRIMARY 
KEY (f_int2,f_int1);
 
   86       --source suite/parts/inc/partition_alter_11.inc
 
   87       --source suite/parts/inc/partition_alter_13.inc
 
   90    --echo #  1.2.3 UNIQUE INDEX exists
 
   91    let $unique= , UNIQUE INDEX uidx (f_int1);
 
   92    --source suite/parts/inc/partition_alter_11.inc
 
   93    let $unique= , UNIQUE INDEX uidx (f_int1,f_int2);
 
   94    #--source suite/parts/inc/partition_alter_11.inc 
   95    --source suite/parts/inc/partition_alter_13.inc
 
   96    let $unique= , UNIQUE INDEX uidx (f_int2,f_int1);
 
   97    #--source suite/parts/inc/partition_alter_11.inc 
   98    --source suite/parts/inc/partition_alter_13.inc
 
  104 --echo #------------------------------------------------------------------------
 
  105 --echo #  1.3   ALTER column f_int1 and f_int2
 
  106 --echo #        f_int1 or (f_int1 and f_int2) used in partitioning 
function 
  107 --echo #------------------------------------------------------------------------
 
  108 #         Rule: f_int1 and f_int2 is used within the partitioning function 
  109 #         ---> inc/partition_alter_13.inc 
  110 let $alter= ALTER 
TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT;
 
  111 --echo #  1.3.1 no PRIMARY 
KEY or UNIQUE INDEX exists
 
  113 #--source suite/parts/inc/partition_alter_11.inc 
  114 --source suite/parts/inc/partition_alter_13.inc
 
  118    --echo #  1.3.2 PRIMARY 
KEY exists
 
  119    # The value of the direct following test is maybe covered by the test with 
  120    # the PRIMARY KEY containing two columns. 
  121    if ($more_pk_ui_tests)
 
  123       let $unique= , PRIMARY 
KEY (f_int1);
 
  124       --source suite/parts/inc/partition_alter_11.inc
 
  126    let $unique= , PRIMARY 
KEY (f_int1,f_int2);
 
  127    #--source suite/parts/inc/partition_alter_11.inc 
  128    --source suite/parts/inc/partition_alter_13.inc
 
  129    let $unique= , PRIMARY 
KEY (f_int2,f_int1);
 
  130    #--source suite/parts/inc/partition_alter_11.inc 
  131    --source suite/parts/inc/partition_alter_13.inc
 
  134 --echo #  1.3.3 UNIQUE INDEX exists
 
  135 # The value of the direct following test is maybe covered by the test with 
  136 # the UNIQUE INDEX containing two columns. 
  137 if ($more_pk_ui_tests)
 
  139    let $unique= , UNIQUE INDEX uidx (f_int1);
 
  140    --source suite/parts/inc/partition_alter_11.inc
 
  142 let $unique= , UNIQUE INDEX uidx (f_int1,f_int2);
 
  143 #--source suite/parts/inc/partition_alter_11.inc 
  144 --source suite/parts/inc/partition_alter_13.inc
 
  145 let $unique= , UNIQUE INDEX uidx (f_int2,f_int1);
 
  146 #--source suite/parts/inc/partition_alter_11.inc 
  147 --source suite/parts/inc/partition_alter_13.inc
 
  153 --echo #========================================================================
 
  154 --echo #  3     ALTER the 
type of the column used in the partitioning
 
  155 --echo #        
function and/or PRIMARY 
KEY and/or UNIQUE INDEX
 
  156 --echo #                   INTEGER --> FLOAT
 
  157 --echo #                   INTEGER --> DECIMAL
 
  158 --echo #                   INTEGER --> VARCHAR
 
  159 --echo #        mleich: I assume that at least the first two variants are of
 
  160 --echo #            some interest. But I am unsure 
if the server allows such
 
  161 --echo #            conversions. I also think that such operations have a
 
  162 --echo #            conversions very small likelihood.
 
  163 --echo #            To be implemented.
 
  164 --echo #========================================================================