~ubuntu-branches/ubuntu/trusty/mysql-5.6/trusty

« back to all changes in this revision

Viewing changes to storage/ndb/clusterj/clusterj-test/src/main/java/testsuite/clusterj/QueryYearTypesTest.java

  • Committer: Package Import Robot
  • Author(s): James Page
  • Date: 2014-02-12 11:54:27 UTC
  • Revision ID: package-import@ubuntu.com-20140212115427-oq6tfsqxl1wuwehi
Tags: upstream-5.6.15
ImportĀ upstreamĀ versionĀ 5.6.15

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
   Copyright 2010 Sun Microsystems, Inc.
 
3
   All rights reserved. Use is subject to license terms.
 
4
 
 
5
   This program is free software; you can redistribute it and/or modify
 
6
   it under the terms of the GNU General Public License as published by
 
7
   the Free Software Foundation; version 2 of the License.
 
8
 
 
9
   This program is distributed in the hope that it will be useful,
 
10
   but WITHOUT ANY WARRANTY; without even the implied warranty of
 
11
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
12
   GNU General Public License for more details.
 
13
 
 
14
   You should have received a copy of the GNU General Public License
 
15
   along with this program; if not, write to the Free Software
 
16
   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
 
17
*/
 
18
 
 
19
package testsuite.clusterj;
 
20
 
 
21
import testsuite.clusterj.model.YearTypes;
 
22
import testsuite.clusterj.model.IdBase;
 
23
 
 
24
public class QueryYearTypesTest extends AbstractQueryTest {
 
25
 
 
26
    @Override
 
27
    public Class getInstanceType() {
 
28
        return YearTypes.class;
 
29
    }
 
30
 
 
31
    @Override
 
32
    void createInstances(int number) {
 
33
        createAllYearTypesInstances(number);
 
34
    }
 
35
 
 
36
    /** Test all single- and double-predicate queries using YearTypes.
 
37
drop table if exists yeartypes;
 
38
create table yeartypes (
 
39
 id int not null primary key,
 
40
 
 
41
 year_null_hash year,
 
42
 year_null_btree year,
 
43
 year_null_both year,
 
44
 year_null_none year,
 
45
 
 
46
 year_not_null_hash year,
 
47
 year_not_null_btree year,
 
48
 year_not_null_both year,
 
49
 year_not_null_none year
 
50
 
 
51
) ENGINE=ndbcluster DEFAULT CHARSET=latin1;
 
52
 
 
53
create unique index idx_year_null_hash using hash on yeartypes(year_null_hash);
 
54
create index idx_year_null_btree on yeartypes(year_null_btree);
 
55
create unique index idx_year_null_both on yeartypes(year_null_both);
 
56
 
 
57
create unique index idx_year_not_null_hash using hash on yeartypes(year_not_null_hash);
 
58
create index idx_year_not_null_btree on yeartypes(year_not_null_btree);
 
59
create unique index idx_year_not_null_both on yeartypes(year_not_null_both);
 
60
 
 
61
     */
 
62
 
 
63
    public void test() {
 
64
        btreeIndexScanYear();
 
65
        hashIndexScanYear();
 
66
        bothIndexScanYear();
 
67
        noneIndexScanYear();
 
68
        failOnError();
 
69
    }
 
70
 
 
71
    public void btreeIndexScanYear() {
 
72
        equalQuery("year_not_null_btree", "idx_year_not_null_btree", getYear(8), 8);
 
73
        greaterEqualQuery("year_not_null_btree", "idx_year_not_null_btree", getYear(7), 7, 8, 9);
 
74
        greaterThanQuery("year_not_null_btree", "idx_year_not_null_btree", getYear(6), 7, 8, 9);
 
75
        lessEqualQuery("year_not_null_btree", "idx_year_not_null_btree", getYear(4), 4, 3, 2, 1, 0);
 
76
        lessThanQuery("year_not_null_btree", "idx_year_not_null_btree", getYear(4), 3, 2, 1, 0);
 
77
        betweenQuery("year_not_null_btree", "idx_year_not_null_btree", getYear(4), getYear(6), 4, 5, 6);
 
78
        greaterEqualAndLessEqualQuery("year_not_null_btree", "idx_year_not_null_btree", getYear(4), getYear(6), 4, 5, 6);
 
79
        greaterThanAndLessEqualQuery("year_not_null_btree", "idx_year_not_null_btree", getYear(4), getYear(6), 5, 6);
 
80
        greaterEqualAndLessThanQuery("year_not_null_btree", "idx_year_not_null_btree", getYear(4), getYear(6), 4, 5);
 
81
        greaterThanAndLessThanQuery("year_not_null_btree", "idx_year_not_null_btree", getYear(4), getYear(6), 5);
 
82
 
 
83
        equalQuery("year_null_btree", "idx_year_null_btree", getYear(8), 8);
 
84
        greaterEqualQuery("year_null_btree", "idx_year_null_btree", getYear(7), 7, 8, 9);
 
85
        greaterThanQuery("year_null_btree", "idx_year_null_btree", getYear(6), 7, 8, 9);
 
86
        lessEqualQuery("year_null_btree", "idx_year_null_btree", getYear(4), 4, 3, 2, 1, 0);
 
87
        lessThanQuery("year_null_btree", "idx_year_null_btree", getYear(4), 3, 2, 1, 0);
 
88
        betweenQuery("year_null_btree", "idx_year_null_btree", getYear(4), getYear(6), 4, 5, 6);
 
89
        greaterEqualAndLessEqualQuery("year_null_btree", "idx_year_null_btree", getYear(4), getYear(6), 4, 5, 6);
 
90
        greaterThanAndLessEqualQuery("year_null_btree", "idx_year_null_btree", getYear(4), getYear(6), 5, 6);
 
91
        greaterEqualAndLessThanQuery("year_null_btree", "idx_year_null_btree", getYear(4), getYear(6), 4, 5);
 
92
        greaterThanAndLessThanQuery("year_null_btree", "idx_year_null_btree", getYear(4), getYear(6), 5);
 
93
}
 
94
 
 
95
    public void hashIndexScanYear() {
 
96
        equalQuery("year_not_null_hash", "idx_year_not_null_hash", getYear(8), 8);
 
97
        greaterEqualQuery("year_not_null_hash", "none", getYear(7), 7, 8, 9);
 
98
        greaterThanQuery("year_not_null_hash", "none", getYear(6), 7, 8, 9);
 
99
        lessEqualQuery("year_not_null_hash", "none", getYear(4), 4, 3, 2, 1, 0);
 
100
        lessThanQuery("year_not_null_hash", "none", getYear(4), 3, 2, 1, 0);
 
101
        betweenQuery("year_not_null_hash", "none", getYear(4), getYear(6), 4, 5, 6);
 
102
        greaterEqualAndLessEqualQuery("year_not_null_hash", "none", getYear(4), getYear(6), 4, 5, 6);
 
103
        greaterThanAndLessEqualQuery("year_not_null_hash", "none", getYear(4), getYear(6), 5, 6);
 
104
        greaterEqualAndLessThanQuery("year_not_null_hash", "none", getYear(4), getYear(6), 4, 5);
 
105
        greaterThanAndLessThanQuery("year_not_null_hash", "none", getYear(4), getYear(6), 5);
 
106
 
 
107
        equalQuery("year_null_hash", "idx_year_null_hash", getYear(8), 8);
 
108
        greaterEqualQuery("year_null_hash", "none", getYear(7), 7, 8, 9);
 
109
        greaterThanQuery("year_null_hash", "none", getYear(6), 7, 8, 9);
 
110
        lessEqualQuery("year_null_hash", "none", getYear(4), 4, 3, 2, 1, 0);
 
111
        lessThanQuery("year_null_hash", "none", getYear(4), 3, 2, 1, 0);
 
112
        betweenQuery("year_null_hash", "none", getYear(4), getYear(6), 4, 5, 6);
 
113
        greaterEqualAndLessEqualQuery("year_null_hash", "none", getYear(4), getYear(6), 4, 5, 6);
 
114
        greaterThanAndLessEqualQuery("year_null_hash", "none", getYear(4), getYear(6), 5, 6);
 
115
        greaterEqualAndLessThanQuery("year_null_hash", "none", getYear(4), getYear(6), 4, 5);
 
116
        greaterThanAndLessThanQuery("year_null_hash", "none", getYear(4), getYear(6), 5);
 
117
 
 
118
    }
 
119
 
 
120
    public void bothIndexScanYear() {
 
121
        equalQuery("year_not_null_both", "idx_year_not_null_both", getYear(8), 8);
 
122
        greaterEqualQuery("year_not_null_both", "idx_year_not_null_both", getYear(7), 7, 8, 9);
 
123
        greaterThanQuery("year_not_null_both", "idx_year_not_null_both", getYear(6), 7, 8, 9);
 
124
        lessEqualQuery("year_not_null_both", "idx_year_not_null_both", getYear(4), 4, 3, 2, 1, 0);
 
125
        lessThanQuery("year_not_null_both", "idx_year_not_null_both", getYear(4), 3, 2, 1, 0);
 
126
        betweenQuery("year_not_null_both", "idx_year_not_null_both", getYear(4), getYear(6), 4, 5, 6);
 
127
        greaterEqualAndLessEqualQuery("year_not_null_both", "idx_year_not_null_both", getYear(4), getYear(6), 4, 5, 6);
 
128
        greaterThanAndLessEqualQuery("year_not_null_both", "idx_year_not_null_both", getYear(4), getYear(6), 5, 6);
 
129
        greaterEqualAndLessThanQuery("year_not_null_both", "idx_year_not_null_both", getYear(4), getYear(6), 4, 5);
 
130
        greaterThanAndLessThanQuery("year_not_null_both", "idx_year_not_null_both", getYear(4), getYear(6), 5);
 
131
 
 
132
        equalQuery("year_null_both", "idx_year_null_both", getYear(8), 8);
 
133
        greaterEqualQuery("year_null_both", "idx_year_null_both", getYear(7), 7, 8, 9);
 
134
        greaterThanQuery("year_null_both", "idx_year_null_both", getYear(6), 7, 8, 9);
 
135
        lessEqualQuery("year_null_both", "idx_year_null_both", getYear(4), 4, 3, 2, 1, 0);
 
136
        lessThanQuery("year_null_both", "idx_year_null_both", getYear(4), 3, 2, 1, 0);
 
137
        betweenQuery("year_null_both", "idx_year_null_both", getYear(4), getYear(6), 4, 5, 6);
 
138
        greaterEqualAndLessEqualQuery("year_null_both", "idx_year_null_both", getYear(4), getYear(6), 4, 5, 6);
 
139
        greaterThanAndLessEqualQuery("year_null_both", "idx_year_null_both", getYear(4), getYear(6), 5, 6);
 
140
        greaterEqualAndLessThanQuery("year_null_both", "idx_year_null_both", getYear(4), getYear(6), 4, 5);
 
141
        greaterThanAndLessThanQuery("year_null_both", "idx_year_null_both", getYear(4), getYear(6), 5);
 
142
 
 
143
    }
 
144
 
 
145
    public void noneIndexScanYear() {
 
146
        equalQuery("year_not_null_none", "none", getYear(8), 8);
 
147
        greaterEqualQuery("year_not_null_none", "none", getYear(7), 7, 8, 9);
 
148
        greaterThanQuery("year_not_null_none", "none", getYear(6), 7, 8, 9);
 
149
        lessEqualQuery("year_not_null_none", "none", getYear(4), 4, 3, 2, 1, 0);
 
150
        lessThanQuery("year_not_null_none", "none", getYear(4), 3, 2, 1, 0);
 
151
        betweenQuery("year_not_null_none", "none", getYear(4), getYear(6), 4, 5, 6);
 
152
        greaterEqualAndLessEqualQuery("year_not_null_none", "none", getYear(4), getYear(6), 4, 5, 6);
 
153
        greaterThanAndLessEqualQuery("year_not_null_none", "none", getYear(4), getYear(6), 5, 6);
 
154
        greaterEqualAndLessThanQuery("year_not_null_none", "none", getYear(4), getYear(6), 4, 5);
 
155
        greaterThanAndLessThanQuery("year_not_null_none", "none", getYear(4), getYear(6), 5);
 
156
 
 
157
        equalQuery("year_null_none", "none", getYear(8), 8);
 
158
        greaterEqualQuery("year_null_none", "none", getYear(7), 7, 8, 9);
 
159
        greaterThanQuery("year_null_none", "none", getYear(6), 7, 8, 9);
 
160
        lessEqualQuery("year_null_none", "none", getYear(4), 4, 3, 2, 1, 0);
 
161
        lessThanQuery("year_null_none", "none", getYear(4), 3, 2, 1, 0);
 
162
        betweenQuery("year_null_none", "none", getYear(4), getYear(6), 4, 5, 6);
 
163
        greaterEqualAndLessEqualQuery("year_null_none", "none", getYear(4), getYear(6), 4, 5, 6);
 
164
        greaterThanAndLessEqualQuery("year_null_none", "none", getYear(4), getYear(6), 5, 6);
 
165
        greaterEqualAndLessThanQuery("year_null_none", "none", getYear(4), getYear(6), 4, 5);
 
166
        greaterThanAndLessThanQuery("year_null_none", "none", getYear(4), getYear(6), 5);
 
167
 
 
168
    }
 
169
 
 
170
    private void createAllYearTypesInstances(int number) {
 
171
        for (int i = 0; i < number; ++i) {
 
172
            YearTypes instance = session.newInstance(YearTypes.class);
 
173
            instance.setId(i);
 
174
            instance.setYear_not_null_hash(getYear(i));
 
175
            instance.setYear_not_null_btree(getYear(i));
 
176
            instance.setYear_not_null_both(getYear(i));
 
177
            instance.setYear_not_null_none(getYear(i));
 
178
            instance.setYear_null_hash(getYear(i));
 
179
            instance.setYear_null_btree(getYear(i));
 
180
            instance.setYear_null_both(getYear(i));
 
181
            instance.setYear_null_none(getYear(i));
 
182
            instances.add(instance);
 
183
        }
 
184
    }
 
185
 
 
186
    protected Short getYear(int number) {
 
187
        return Short.valueOf((short)(2000 + number));
 
188
    }
 
189
 
 
190
    /** Print the results of a query for debugging.
 
191
     *
 
192
     * @param instance the instance to print
 
193
     */
 
194
    @Override
 
195
    protected void printResultInstance(IdBase instance) {
 
196
        if (instance instanceof YearTypes) {
 
197
            YearTypes yearType = (YearTypes)instance;
 
198
//            System.out.println(toString(yearType));
 
199
        }
 
200
    }
 
201
 
 
202
    public static String toString(IdBase idBase) {
 
203
        YearTypes instance = (YearTypes)idBase;
 
204
        StringBuffer buffer = new StringBuffer("YearTypes id: ");
 
205
        buffer.append(instance.getId());
 
206
        buffer.append("; year_not_null_both: ");
 
207
        buffer.append(instance.getYear_not_null_both());
 
208
        buffer.append("; year_not_null_btree: ");
 
209
        buffer.append(instance.getYear_not_null_btree());
 
210
        buffer.append("; year_not_null_hash: ");
 
211
        buffer.append(instance.getYear_not_null_hash());
 
212
        buffer.append("; year_not_null_none: ");
 
213
        buffer.append(instance.getYear_not_null_none());
 
214
        buffer.append("; year_null_both: ");
 
215
        buffer.append(instance.getYear_null_both().toString());
 
216
        buffer.append("; year_null_btree: ");
 
217
        buffer.append(instance.getYear_null_btree().toString());
 
218
        buffer.append("; year_null_hash: ");
 
219
        buffer.append(instance.getYear_null_hash().toString());
 
220
        buffer.append("; year_null_none: ");
 
221
        buffer.append(instance.getYear_null_none().toString());
 
222
        return buffer.toString();
 
223
    }
 
224
}