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

« back to all changes in this revision

Viewing changes to storage/ndb/clusterj/clusterj-jdbc/src/test/java/jdbctest/DecimalTypesTest.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 (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
 
3
 *
 
4
 *  This program is free software; you can redistribute it and/or modify
 
5
 *  it under the terms of the GNU General Public License as published by
 
6
 *  the Free Software Foundation; version 2 of the License.
 
7
 *
 
8
 *  This program is distributed in the hope that it will be useful,
 
9
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 
10
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
11
 *  GNU General Public License for more details.
 
12
 *
 
13
 *  You should have received a copy of the GNU General Public License
 
14
 *  along with this program; if not, write to the Free Software
 
15
 *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
 
16
 */
 
17
 
 
18
package jdbctest;
 
19
 
 
20
import java.math.BigDecimal;
 
21
 
 
22
public class DecimalTypesTest extends testsuite.clusterj.DecimalTypesTest {
 
23
 
 
24
    /** Test all DecimalTypes columns.
 
25
drop table if exists decimaltypes;
 
26
create table decimaltypes (
 
27
 id int not null primary key,
 
28
 
 
29
 decimal_null_hash decimal(10,5),
 
30
 decimal_null_btree decimal(10,5),
 
31
 decimal_null_both decimal(10,5),
 
32
 decimal_null_none decimal(10,5)
 
33
 
 
34
) ENGINE=ndbcluster DEFAULT CHARSET=latin1;
 
35
 
 
36
create unique index idx_decimal_null_hash using hash on decimaltypes(decimal_null_hash);
 
37
create index idx_decimal_null_btree on decimaltypes(decimal_null_btree);
 
38
create unique index idx_decimal_null_both on decimaltypes(decimal_null_both);
 
39
 
 
40
     */
 
41
 
 
42
    /** One of two tests in the superclass that we don't want to run */
 
43
    @Override
 
44
    public void testWriteJDBCReadNDB() {
 
45
    }
 
46
 
 
47
    /** One of two tests in the superclass that we don't want to run */
 
48
    @Override
 
49
    public void testWriteNDBReadJDBC() {
 
50
   }
 
51
 
 
52
    /** The test we want */
 
53
    public void testWriteJDBCReadJDBC() {
 
54
        writeJDBCreadJDBC();
 
55
        failOnError();
 
56
    }
 
57
 
 
58
    /** Query tests */
 
59
    public void testQuery() {
 
60
        generateInstances(getColumnDescriptors());
 
61
        writeToJDBC(columnDescriptors, instances);
 
62
        queryAndVerifyResults("id greaterThan", columnDescriptors,
 
63
                "id > ?", new Object[] {5}, 6, 7, 8, 9);
 
64
        queryAndVerifyResults("id greaterEqual", columnDescriptors,
 
65
                "id >= ?", new Object[] {5}, 5, 6, 7, 8, 9);
 
66
        queryAndVerifyResults("id lessThan", columnDescriptors,
 
67
                "id < ?", new Object[] {3}, 0, 1, 2);
 
68
        queryAndVerifyResults("id lessEqual", columnDescriptors,
 
69
                "id <= ?", new Object[] {3}, 0, 1, 2, 3);
 
70
 
 
71
        queryAndVerifyResults("decimal_null_btree equal", columnDescriptors,
 
72
                "decimal_null_btree = ?", new BigDecimal[] {BigDecimal.valueOf(3.00001)}, 3);
 
73
        queryAndVerifyResults("decimal_null_btree lessEqual", columnDescriptors,
 
74
                "decimal_null_btree <= ?", new BigDecimal[] {BigDecimal.valueOf(3.00001)}, 0, 1, 2, 3);
 
75
        queryAndVerifyResults("decimal_null_btree lessThan", columnDescriptors,
 
76
                "decimal_null_btree < ?", new BigDecimal[] {BigDecimal.valueOf(3.00001)}, 0, 1, 2);
 
77
        queryAndVerifyResults("decimal_null_btree greaterEqual", columnDescriptors,
 
78
                "decimal_null_btree >= ?", new BigDecimal[] {BigDecimal.valueOf(6.00001)}, 6, 7, 8, 9);
 
79
        queryAndVerifyResults("decimal_null_btree greaterThan", columnDescriptors,
 
80
                "decimal_null_btree > ?", new BigDecimal[] {BigDecimal.valueOf(6.00001)}, 7, 8, 9);
 
81
        
 
82
        queryAndVerifyResults("decimal_null_hash equal", columnDescriptors,
 
83
                "decimal_null_hash = ?", new BigDecimal[] {BigDecimal.valueOf(3.0)}, 3);
 
84
        queryAndVerifyResults("decimal_null_hash lessEqual", columnDescriptors,
 
85
                "decimal_null_hash <= ?", new BigDecimal[] {BigDecimal.valueOf(3.0)}, 0, 1, 2, 3);
 
86
        queryAndVerifyResults("decimal_null_hash lessThan", columnDescriptors,
 
87
                "decimal_null_hash < ?", new BigDecimal[] {BigDecimal.valueOf(3.0)}, 0, 1, 2);
 
88
        queryAndVerifyResults("decimal_null_hash greaterEqual", columnDescriptors,
 
89
                "decimal_null_hash >= ?", new BigDecimal[] {BigDecimal.valueOf(6.0)}, 6, 7, 8, 9);
 
90
        queryAndVerifyResults("decimal_null_hash greaterThan", columnDescriptors,
 
91
                "decimal_null_hash > ?", new BigDecimal[] {BigDecimal.valueOf(6.0)}, 7, 8, 9);
 
92
        
 
93
        queryAndVerifyResults("decimal_null_both equal", columnDescriptors,
 
94
                "decimal_null_both = ?", new BigDecimal[] {BigDecimal.valueOf(3.00002)}, 3);
 
95
        queryAndVerifyResults("decimal_null_both lessEqual", columnDescriptors,
 
96
                "decimal_null_both <= ?", new BigDecimal[] {BigDecimal.valueOf(3.00002)}, 0, 1, 2, 3);
 
97
        queryAndVerifyResults("decimal_null_both lessThan", columnDescriptors,
 
98
                "decimal_null_both < ?", new BigDecimal[] {BigDecimal.valueOf(3.00002)}, 0, 1, 2);
 
99
        queryAndVerifyResults("decimal_null_both greaterEqual", columnDescriptors,
 
100
                "decimal_null_both >= ?", new BigDecimal[] {BigDecimal.valueOf(6.00002)}, 6, 7, 8, 9);
 
101
        queryAndVerifyResults("decimal_null_both greaterThan", columnDescriptors,
 
102
                "decimal_null_both > ?", new BigDecimal[] {BigDecimal.valueOf(6.00002)}, 7, 8, 9);
 
103
        
 
104
        queryAndVerifyResults("decimal_null_none equal", columnDescriptors,
 
105
                "decimal_null_none = ?", new BigDecimal[] {BigDecimal.valueOf(3.00003)}, 3);
 
106
        queryAndVerifyResults("decimal_null_none lessEqual", columnDescriptors,
 
107
                "decimal_null_none <= ?", new BigDecimal[] {BigDecimal.valueOf(3.00003)}, 0, 1, 2, 3);
 
108
        queryAndVerifyResults("decimal_null_none lessThan", columnDescriptors,
 
109
                "decimal_null_none < ?", new BigDecimal[] {BigDecimal.valueOf(3.00003)}, 0, 1, 2);
 
110
        queryAndVerifyResults("decimal_null_none greaterEqual", columnDescriptors,
 
111
                "decimal_null_none >= ?", new BigDecimal[] {BigDecimal.valueOf(6.00003)}, 6, 7, 8, 9);
 
112
        queryAndVerifyResults("decimal_null_none greaterThan", columnDescriptors,
 
113
                "decimal_null_none > ?", new BigDecimal[] {BigDecimal.valueOf(6.00003)}, 7, 8, 9);
 
114
       
 
115
        // query multiple terms
 
116
        queryAndVerifyResults("decimal_null_btree greaterThan and lessEqual", columnDescriptors,
 
117
                "decimal_null_btree > ? and decimal_null_btree <= ?",
 
118
                new BigDecimal[] {BigDecimal.valueOf(3.00001), BigDecimal.valueOf(6.00001)},
 
119
                4, 5, 6);
 
120
        queryAndVerifyResults("decimal_null_btree lessThan", columnDescriptors,
 
121
                "decimal_null_btree < ?",
 
122
                new BigDecimal[] {BigDecimal.valueOf(3.00001)},
 
123
                0, 1, 2);
 
124
        queryAndVerifyResults("decimal_null_btree greaterEqual", columnDescriptors,
 
125
                "decimal_null_btree >= ?",
 
126
                new BigDecimal[] {BigDecimal.valueOf(6.00001)},
 
127
                6, 7, 8, 9);
 
128
        queryAndVerifyResults("decimal_null_btree greaterThan", columnDescriptors,
 
129
                "decimal_null_btree > ?",
 
130
                new BigDecimal[] {BigDecimal.valueOf(6.00001)},
 
131
                7, 8, 9);
 
132
 
 
133
        queryAndVerifyResults("decimal_null_btree greaterThan and lessEqual and decimal_null_none lessThan " +
 
134
                "or decimal_null_none greaterThan", columnDescriptors,
 
135
                "decimal_null_btree > ? and decimal_null_btree <= ?" +
 
136
                " and (decimal_null_none < ? or decimal_null_none > ?)",
 
137
                new BigDecimal[] {BigDecimal.valueOf(0.00001), BigDecimal.valueOf(8.00001),
 
138
                        BigDecimal.valueOf(3.00003), BigDecimal.valueOf(6.00003)},
 
139
                        1, 2, 7, 8);
 
140
        
 
141
        queryAndVerifyResults("decimal_null_btree greaterThan and lessEqual" +
 
142
                " and not (decimal_null_none lessThan or decimal_null_none greaterThan)", columnDescriptors,
 
143
                "decimal_null_btree > ? and decimal_null_btree <= ?" +
 
144
                " and not (decimal_null_none < ? or decimal_null_none > ?)",
 
145
                new BigDecimal[] {BigDecimal.valueOf(0.00001), BigDecimal.valueOf(8.00001),
 
146
                        BigDecimal.valueOf(3.00003), BigDecimal.valueOf(6.00003)},
 
147
                        3, 4, 5, 6);
 
148
        
 
149
        queryAndVerifyResults("decimal_null_btree greaterThan and lessEqual" +
 
150
                " and (decimal_null_none between)", columnDescriptors,
 
151
                "decimal_null_btree > ? and decimal_null_btree <= ?" +
 
152
                " and decimal_null_none between ? and ?",
 
153
                new BigDecimal[] {BigDecimal.valueOf(0.00001), BigDecimal.valueOf(8.00001),
 
154
                        BigDecimal.valueOf(3.00003), BigDecimal.valueOf(6.00003)},
 
155
                        3, 4, 5, 6);
 
156
        
 
157
        queryAndVerifyResults("decimal_null_btree greaterThan and lessEqual" +
 
158
                " and not (decimal_null_none between)", columnDescriptors,
 
159
                "decimal_null_btree > ? and decimal_null_btree <= ?" +
 
160
                " and not decimal_null_none between ? and ?",
 
161
                new BigDecimal[] {BigDecimal.valueOf(0.00001), BigDecimal.valueOf(8.00001),
 
162
                        BigDecimal.valueOf(3.00003), BigDecimal.valueOf(6.00003)},
 
163
                        1, 2, 7, 8);
 
164
        
 
165
        queryAndVerifyResults("decimal_null_btree greaterThan and lessEqual" +
 
166
                " and not (decimal_null_none between)", columnDescriptors,
 
167
                "decimal_null_btree > ? and decimal_null_btree <= ?" +
 
168
                " and decimal_null_none not between ? and ?",
 
169
                new BigDecimal[] {BigDecimal.valueOf(0.00001), BigDecimal.valueOf(8.00001),
 
170
                        BigDecimal.valueOf(3.00003), BigDecimal.valueOf(6.00003)},
 
171
                        1, 2, 7, 8);
 
172
        
 
173
        queryAndVerifyResults("decimal_null_none between " +
 
174
                "and decimal_null_btree greaterThan and lessEqual", columnDescriptors,
 
175
                "decimal_null_none between ? and ?" +
 
176
                " and decimal_null_btree > ? and decimal_null_btree <= ?",
 
177
                new BigDecimal[] {
 
178
                        BigDecimal.valueOf(3.00003), BigDecimal.valueOf(6.00003),
 
179
                        BigDecimal.valueOf(0.00001), BigDecimal.valueOf(8.00001)},
 
180
                        3, 4, 5, 6);
 
181
        
 
182
        queryAndVerifyResults("not decimal_null_none between " +
 
183
                " and decimal_null_btree greaterThan and lessEqual", columnDescriptors,
 
184
                "not decimal_null_none between ? and ?" +
 
185
                " and decimal_null_btree > ? and decimal_null_btree <= ?",
 
186
                new BigDecimal[] {
 
187
                        BigDecimal.valueOf(3.00003), BigDecimal.valueOf(6.00003),
 
188
                        BigDecimal.valueOf(0.00001), BigDecimal.valueOf(8.00001)},
 
189
                        1, 2, 7, 8);
 
190
        
 
191
        queryAndVerifyResults("decimal_null_none not between " +
 
192
                "and decimal_null_btree greaterThan and lessEqual", columnDescriptors,
 
193
                "decimal_null_none not between ? and ?" +
 
194
                " and decimal_null_btree > ? and decimal_null_btree <= ?",
 
195
                new BigDecimal[] {
 
196
                        BigDecimal.valueOf(3.00003), BigDecimal.valueOf(6.00003),
 
197
                        BigDecimal.valueOf(0.00001), BigDecimal.valueOf(8.00001)},
 
198
                        1, 2, 7, 8);
 
199
        
 
200
        queryAndVerifyResults("decimal_null_none between", columnDescriptors,
 
201
                "decimal_null_none between ? and ?",
 
202
                new BigDecimal[] {BigDecimal.valueOf(4.00003), BigDecimal.valueOf(7.00003)},
 
203
                        4, 5, 6, 7);
 
204
        
 
205
        queryAndVerifyResults("decimal_null_none not between", columnDescriptors,
 
206
                "decimal_null_none not between ? and ?",
 
207
                new BigDecimal[] {BigDecimal.valueOf(4.00003), BigDecimal.valueOf(7.00003)},
 
208
                        0, 1, 2, 3, 8, 9);
 
209
        
 
210
        queryAndVerifyResults("not decimal_null_none between", columnDescriptors,
 
211
                "not decimal_null_none between ? and ?",
 
212
                new BigDecimal[] {BigDecimal.valueOf(4.00003), BigDecimal.valueOf(7.00003)},
 
213
                        0, 1, 2, 3, 8, 9);
 
214
        
 
215
        failOnError();
 
216
    }
 
217
 
 
218
}