]> review.fuel-infra Code Review - packages/trusty/mysql-wsrep-5.6.git/blob
58386f30a21ef5e72a07fafdd4024a40fe629059
[packages/trusty/mysql-wsrep-5.6.git] /
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 }