partition_alter2_1.inc 7.03 KB
Newer Older
1
################################################################################
2
# inc/partition_alter2_1.inc                                                   #
3 4 5 6
#                                                                              #
# Purpose:                                                                     #
#   Tests where the columns used within the partitioning function are altered. #
#   This routine is only useful for the partition_<feature>_<engine> tests.   .#
7
#   Part 1: increasing size of column
8 9
#                                                                              #
#------------------------------------------------------------------------------#
mleich@five.local.lan's avatar
mleich@five.local.lan committed
10
# Original Author: mleich                                                      #
11
# Original Date: 2006-03-05                                                    #
12 13 14
# Change Author: MattiasJ                                                      #
# Change Date: 2008-09-08                                                      #
# Change: Splitted the test in two different parts (increasing/decreasing col) #
15 16 17 18 19 20 21 22 23 24 25
################################################################################

--echo
--echo #========================================================================
--echo #  1     Increase the size of the column used in the partitioning
--echo #        function and/or PRIMARY KEY and/or UNIQUE INDEX
--echo #========================================================================
--echo #------------------------------------------------------------------------
--echo #  1.1   ALTER column f_int2 not used in partitioning function
--echo #------------------------------------------------------------------------
#         Rule: Only f_int1 is used within the partitioning function
mleich@five.local.lan's avatar
mleich@five.local.lan committed
26
#         ---> inc/partition_alter_11.inc
27 28 29
let $alter= ALTER TABLE t1 MODIFY f_int2 BIGINT;
--echo #  1.1.1 no PRIMARY KEY or UNIQUE INDEX exists
let $unique= ;
30
--source suite/parts/inc/partition_alter_11.inc
31 32 33 34 35 36 37 38 39
#
if ($do_pk_tests)
{
   --echo #  1.1.2 PRIMARY KEY exists
   # The value of the direct following test is maybe covered by the test with
   # the PRIMARY KEY containing two columns.
   if ($more_pk_ui_tests)
   {
      let $unique= , PRIMARY KEY (f_int1);
40
      --source suite/parts/inc/partition_alter_11.inc
41 42
   }
   let $unique= , PRIMARY KEY (f_int1,f_int2);
43
   --source suite/parts/inc/partition_alter_11.inc
44
   let $unique= , PRIMARY KEY (f_int2,f_int1);
45
   --source suite/parts/inc/partition_alter_11.inc
46 47 48 49 50 51 52 53
}
#
--echo #  1.1.3 UNIQUE INDEX exists
# The value of the direct following test is maybe covered by the test with
# the UNIQUE INDEX containing two columns
if ($more_pk_ui_tests)
{
   let $unique= , UNIQUE INDEX uidx1 (f_int1);
54
   --source suite/parts/inc/partition_alter_11.inc
55 56
}
let $unique= , UNIQUE INDEX uidx1 (f_int1,f_int2);
57
--source suite/parts/inc/partition_alter_11.inc
58
let $unique= , UNIQUE INDEX uidx1 (f_int2,f_int1);
59
--source suite/parts/inc/partition_alter_11.inc
60 61 62 63 64 65 66 67
#
if ($more_pk_ui_tests)
{
   # The value of the tests 1.2 is maybe covered by the tests 1.3
   --echo #------------------------------------------------------------------------
   --echo #  1.2   ALTER column f_int1 used in partitioning function
   --echo #------------------------------------------------------------------------
   #         Rule: Only f_int1 is used within the partitioning function
mleich@five.local.lan's avatar
mleich@five.local.lan committed
68
   #         ---> inc/partition_alter_11.inc
69 70 71
   let $alter= ALTER TABLE t1 MODIFY f_int1 BIGINT;
   --echo #  1.2.1 no PRIMARY KEY or UNIQUE INDEX exists
   let $unique= ;
72 73
   --source suite/parts/inc/partition_alter_11.inc
   --source suite/parts/inc/partition_alter_13.inc
74 75 76 77 78
   #
   if ($do_pk_tests)
   {
      --echo #  1.2.2 PRIMARY KEY exists
      let $unique= , PRIMARY KEY (f_int1);
79
      --source suite/parts/inc/partition_alter_11.inc
80
      let $unique= , PRIMARY KEY (f_int1,f_int2);
81 82
      --source suite/parts/inc/partition_alter_11.inc
      --source suite/parts/inc/partition_alter_13.inc
83
      let $unique= , PRIMARY KEY (f_int2,f_int1);
84 85
      --source suite/parts/inc/partition_alter_11.inc
      --source suite/parts/inc/partition_alter_13.inc
86 87 88 89
   }
   #
   --echo #  1.2.3 UNIQUE INDEX exists
   let $unique= , UNIQUE INDEX uidx (f_int1);
90
   --source suite/parts/inc/partition_alter_11.inc
91
   let $unique= , UNIQUE INDEX uidx (f_int1,f_int2);
92 93
   --source suite/parts/inc/partition_alter_11.inc
   --source suite/parts/inc/partition_alter_13.inc
94
   let $unique= , UNIQUE INDEX uidx (f_int2,f_int1);
95 96
   --source suite/parts/inc/partition_alter_11.inc
   --source suite/parts/inc/partition_alter_13.inc
97 98 99 100 101 102 103
}
#
--echo #------------------------------------------------------------------------
--echo #  1.3   ALTER column f_int1 and f_int2
--echo #        f_int1 or (f_int1 and f_int2) used in partitioning function
--echo #------------------------------------------------------------------------
#         Rule: f_int1 and f_int2 is used within the partitioning function
mleich@five.local.lan's avatar
mleich@five.local.lan committed
104
#         ---> inc/partition_alter_13.inc
105 106 107
let $alter= ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT;
--echo #  1.3.1 no PRIMARY KEY or UNIQUE INDEX exists
let $unique= ;
108 109
--source suite/parts/inc/partition_alter_11.inc
--source suite/parts/inc/partition_alter_13.inc
110 111 112 113 114 115 116 117 118
#
if ($do_pk_tests)
{
   --echo #  1.3.2 PRIMARY KEY exists
   # The value of the direct following test is maybe covered by the test with
   # the PRIMARY KEY containing two columns.
   if ($more_pk_ui_tests)
   {
      let $unique= , PRIMARY KEY (f_int1);
119
      --source suite/parts/inc/partition_alter_11.inc
120 121
   }
   let $unique= , PRIMARY KEY (f_int1,f_int2);
122 123
   --source suite/parts/inc/partition_alter_11.inc
   --source suite/parts/inc/partition_alter_13.inc
124
   let $unique= , PRIMARY KEY (f_int2,f_int1);
125 126
   --source suite/parts/inc/partition_alter_11.inc
   --source suite/parts/inc/partition_alter_13.inc
127 128 129 130 131 132 133 134
}
#
--echo #  1.3.3 UNIQUE INDEX exists
# The value of the direct following test is maybe covered by the test with
# the UNIQUE INDEX containing two columns.
if ($more_pk_ui_tests)
{
   let $unique= , UNIQUE INDEX uidx (f_int1);
135
   --source suite/parts/inc/partition_alter_11.inc
136 137
}
let $unique= , UNIQUE INDEX uidx (f_int1,f_int2);
138 139
--source suite/parts/inc/partition_alter_11.inc
--source suite/parts/inc/partition_alter_13.inc
140
let $unique= , UNIQUE INDEX uidx (f_int2,f_int1);
141 142
--source suite/parts/inc/partition_alter_11.inc
--source suite/parts/inc/partition_alter_13.inc
143 144 145 146 147 148 149 150 151 152

if (0)
{
--echo
--echo #========================================================================
--echo #  3     ALTER the type of the column used in the partitioning
--echo #        function and/or PRIMARY KEY and/or UNIQUE INDEX
--echo #                   INTEGER --> FLOAT
--echo #                   INTEGER --> DECIMAL
--echo #                   INTEGER --> VARCHAR
mleich@five.local.lan's avatar
mleich@five.local.lan committed
153 154
--echo #        mleich: I assume that at least the first two variants are of
--echo #            some interest. But I am unsure if the server allows such
155 156 157 158 159
--echo #            conversions. I also think that such operations have a
--echo #            conversions very small likelihood.
--echo #            To be implemented.
--echo #========================================================================
}