2
Copyright 2010 Sun Microsystems, Inc.
3
All rights reserved. Use is subject to license terms.
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.
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.
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
19
package testsuite.clusterj;
21
import testsuite.clusterj.model.YearTypes;
22
import testsuite.clusterj.model.IdBase;
24
public class QueryYearTypesTest extends AbstractQueryTest {
27
public Class getInstanceType() {
28
return YearTypes.class;
32
void createInstances(int number) {
33
createAllYearTypesInstances(number);
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,
46
year_not_null_hash year,
47
year_not_null_btree year,
48
year_not_null_both year,
49
year_not_null_none year
51
) ENGINE=ndbcluster DEFAULT CHARSET=latin1;
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
170
private void createAllYearTypesInstances(int number) {
171
for (int i = 0; i < number; ++i) {
172
YearTypes instance = session.newInstance(YearTypes.class);
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);
186
protected Short getYear(int number) {
187
return Short.valueOf((short)(2000 + number));
190
/** Print the results of a query for debugging.
192
* @param instance the instance to print
195
protected void printResultInstance(IdBase instance) {
196
if (instance instanceof YearTypes) {
197
YearTypes yearType = (YearTypes)instance;
198
// System.out.println(toString(yearType));
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();