summaryrefslogtreecommitdiff
path: root/mysql-test/suite/parts/inc/partition_basic.inc
blob: 1039a47626f6c783e51f4497bafec1924d7a1ccd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
################################################################################
# inc/partition_basic.inc                                                      #
#                                                                              #
# Purpose:                                                                     #
#   Basic tests around create partitioned table with/without PRIMARY KEY and   #
#   /or UNIQUE INDEX                                                           #
#                                                                              #
#------------------------------------------------------------------------------#
# Original Author: mleich                                                      #
# Original Date: 2006-03-05                                                    #
# Change Author:                                                               #
# Change Date:                                                                 #
# Change:                                                                      #
################################################################################
--enable_abort_on_error

--echo
--echo #========================================================================
--echo #  Check partitioning methods on just created tables
--echo #  The tables should be defined without/with PRIMARY KEY and
--echo #  UNIQUE INDEXes.
--echo #  Every test round has to check
--echo #        PARTITION BY HASH/KEY/LIST/RANGE
--echo #        PARTITION BY RANGE/LIST ... SUBPARTITION BY HASH/KEY ...
--echo #========================================================================
--echo #------------------------------------------------------------------------
--echo #  1   Tables without PRIMARY KEY or UNIQUE INDEXes
--echo #------------------------------------------------------------------------
--echo #  1.1 The partitioning function contains one column.
let $unique= ;
--source suite/parts/inc/partition_methods1.inc
#
   --echo # 1.1.1 with DATA DIECTORY/INDEX DIRECTORY
   #
   --disable_query_log
   # DATA DIRECTORY
   eval SET @data_dir = 'DATA DIRECTORY =
   ''''$MYSQLTEST_VARDIR/tmp''''';
   let $data_directory = `select @data_dir`;

   #INDEX DIRECTORY
   eval SET @indx_dir = 'INDEX DIRECTORY =
   ''''$MYSQLTEST_VARDIR/tmp''''';
   let $index_directory = `select @indx_dir`;

   let $with_directories= 1;
   --source suite/parts/inc/partition_methods1.inc
   --source suite/parts/inc/partition_directory.inc
   let $with_directories= 0;
   --enable_query_log
   #
--echo #  1.2 The partitioning function contains two columns.
let $unique= ;
--source suite/parts/inc/partition_methods2.inc
#
--echo #------------------------------------------------------------------------
--echo #  2   Tables with PRIMARY KEY and/or UNIQUE INDEXes
--echo #        The partitioning function contains one column.
--echo #------------------------------------------------------------------------
if ($more_pk_ui_tests)
{
   if ($do_pk_tests)
   {
      --echo #  2.1 PRIMARY KEY consisting of one column
      let $unique= , PRIMARY KEY(f_int1);
      --source suite/parts/inc/partition_methods1.inc
   }
   --echo #  2.2 UNIQUE INDEX consisting of one column
   let $unique= , UNIQUE INDEX uidx1 (f_int1);
   --source suite/parts/inc/partition_methods1.inc

   --echo # 2.2.1 with DATA DIECTORY/INDEX DIRECTORY
   #
   --disable_query_log
   # DATA DIRECTORY
   eval SET @data_dir = 'DATA DIRECTORY =
   ''''$MYSQLTEST_VARDIR/tmp''''';
   let $data_directory = `select @data_dir`;

   #INDEX DIRECTORY
   eval SET @indx_dir = 'INDEX DIRECTORY =
   ''''$MYSQLTEST_VARDIR/tmp''''';
   let $index_directory = `select @indx_dir`;

   let $with_directories= TRUE;
   --source suite/parts/inc/partition_methods1.inc
   let $with_directories= FALSE;
   --enable_query_log
   #
   if ($do_pk_tests)
   {
      --echo #  2.3 PRIMARY KEY consisting of two columns
      let $unique= , PRIMARY KEY(f_int1,f_int2);
      --source suite/parts/inc/partition_methods1.inc
      let $unique= , PRIMARY KEY(f_int2,f_int1);
      --source suite/parts/inc/partition_methods1.inc
   }
   #
   --echo #  2.4 UNIQUE INDEX consisting of two columns
   let $unique= , UNIQUE INDEX uidx1 (f_int1,f_int2);
   --source suite/parts/inc/partition_methods1.inc
   let $unique= , UNIQUE INDEX uidx1 (f_int2,f_int1);
   --source suite/parts/inc/partition_methods1.inc
   #
}
--echo #  2.5 PRIMARY KEY + UNIQUE INDEX consisting of two columns
if ($do_pk_tests)
{
   let $unique= , UNIQUE INDEX uidx1 (f_int1,f_int2), PRIMARY KEY(f_int2,f_int1);
   --source suite/parts/inc/partition_methods1.inc
   let $unique= , UNIQUE INDEX uidx1 (f_int2,f_int1), PRIMARY KEY(f_int1,f_int2);
   --source suite/parts/inc/partition_methods1.inc
}
let $unique= , UNIQUE INDEX uidx1 (f_int1,f_int2), UNIQUE INDEX uidx2 (f_int2,f_int1);
--source suite/parts/inc/partition_methods1.inc

--echo #------------------------------------------------------------------------
--echo #  3   Tables with PRIMARY KEY and/or UNIQUE INDEXes
--echo #        The partitioning function contains two columns.
--echo #------------------------------------------------------------------------
#
if ($more_pk_ui_tests)
{
   if ($do_pk_tests)
   {
      --echo #  3.1 PRIMARY KEY consisting of two columns
      let $unique= , PRIMARY KEY(f_int1,f_int2);
      --source suite/parts/inc/partition_methods2.inc

      let $unique= , PRIMARY KEY(f_int2,f_int1);
      --source suite/parts/inc/partition_methods2.inc
   }
   #
   --echo #  3.2 UNIQUE INDEX consisting of two columns
   let $unique= , UNIQUE INDEX uidx1 (f_int1,f_int2);
   --source suite/parts/inc/partition_methods2.inc
   let $unique= , UNIQUE INDEX uidx1 (f_int2,f_int1);
   --source suite/parts/inc/partition_methods2.inc
}
#
--echo #  3.3 PRIMARY KEY and UNIQUE INDEX consisting of two columns
if ($do_pk_tests)
{
   let $unique= , UNIQUE INDEX uidx1 (f_int1,f_int2), PRIMARY KEY(f_int2,f_int1);
   --source suite/parts/inc/partition_methods2.inc
   let $unique= , UNIQUE INDEX uidx1 (f_int2,f_int1), PRIMARY KEY(f_int1,f_int2);
   --source suite/parts/inc/partition_methods2.inc
}
let $unique= , UNIQUE INDEX uidx1 (f_int1,f_int2), UNIQUE INDEX uidx2 (f_int2,f_int1);
--source suite/parts/inc/partition_methods2.inc