6
6
import static org .junit .jupiter .api .Assertions .assertThrows ;
7
7
import static org .junit .jupiter .api .Assertions .assertTrue ;
8
8
import static org .tarantool .TestAssumptions .assumeMinimalServerVersion ;
9
+ import static org .tarantool .TestAssumptions .assumeServerVersionLessThan ;
9
10
10
11
import org .tarantool .ServerVersion ;
11
12
import org .tarantool .TarantoolTestHelper ;
12
- import org .tarantool .jdbc .type .JdbcType ;
13
- import org .tarantool .jdbc .type .TarantoolSqlType ;
14
13
15
14
import org .junit .jupiter .api .AfterAll ;
16
15
import org .junit .jupiter .api .AfterEach ;
@@ -201,9 +200,11 @@ public void testCaseSensitiveColumns() throws SQLException {
201
200
@ Test
202
201
@ DisplayName ("returned case insensitive columns" )
203
202
public void testCaseInsensitiveColumns () throws SQLException {
204
- testHelper .executeSql (
205
- "CREATE TABLE test(id INT PRIMARY KEY, num_val DOUBLE)"
206
- );
203
+ if (ServerVersion .V_2_2 .isGreaterThan (testHelper .getInstanceVersion ())) {
204
+ testHelper .executeSql ("CREATE TABLE test(id INT PRIMARY KEY, num_val DOUBLE)" );
205
+ } else {
206
+ testHelper .executeSql ("CREATE TABLE test(id INT PRIMARY KEY, num_val NUMBER)" );
207
+ }
207
208
try (
208
209
Statement statement = connection .createStatement ();
209
210
ResultSet resultSet = statement .executeQuery ("SELECT * FROM test" )
@@ -218,9 +219,15 @@ public void testCaseInsensitiveColumns() throws SQLException {
218
219
@ Test
219
220
@ DisplayName ("returned searchable columns" )
220
221
public void testSearchableColumns () throws SQLException {
221
- testHelper .executeSql (
222
- "CREATE TABLE test(id INT PRIMARY KEY, num_val DOUBLE, text_val TEXT, bin_val SCALAR)"
223
- );
222
+ if (ServerVersion .V_2_2 .isGreaterThan (testHelper .getInstanceVersion ())) {
223
+ testHelper .executeSql (
224
+ "CREATE TABLE test(id INT PRIMARY KEY, num_val DOUBLE, text_val TEXT, bin_val SCALAR)"
225
+ );
226
+ } else {
227
+ testHelper .executeSql (
228
+ "CREATE TABLE test(id INT PRIMARY KEY, num_val NUMBER, text_val TEXT, bin_val SCALAR)"
229
+ );
230
+ }
224
231
try (
225
232
Statement statement = connection .createStatement ();
226
233
ResultSet resultSet = statement .executeQuery ("SELECT * FROM test" )
@@ -237,9 +244,15 @@ public void testSearchableColumns() throws SQLException {
237
244
@ Test
238
245
@ DisplayName ("returned no monetary columns" )
239
246
public void testCurrencyColumns () throws SQLException {
240
- testHelper .executeSql (
241
- "CREATE TABLE test(id INT PRIMARY KEY, num_val DOUBLE, text_val TEXT, bin_val SCALAR)"
242
- );
247
+ if (ServerVersion .V_2_2 .isGreaterThan (testHelper .getInstanceVersion ())) {
248
+ testHelper .executeSql (
249
+ "CREATE TABLE test(id INT PRIMARY KEY, num_val DOUBLE, text_val TEXT, bin_val SCALAR)"
250
+ );
251
+ } else {
252
+ testHelper .executeSql (
253
+ "CREATE TABLE test(id INT PRIMARY KEY, num_val NUMBER, text_val TEXT, bin_val SCALAR)"
254
+ );
255
+ }
243
256
try (
244
257
Statement statement = connection .createStatement ();
245
258
ResultSet resultSet = statement .executeQuery ("SELECT * FROM test" )
@@ -256,9 +269,15 @@ public void testCurrencyColumns() throws SQLException {
256
269
@ Test
257
270
@ DisplayName ("returned signed columns" )
258
271
public void testSignedColumns () throws SQLException {
259
- testHelper .executeSql (
260
- "CREATE TABLE test(id INT PRIMARY KEY, double_val DOUBLE, real_val REAL, float_val FLOAT)"
261
- );
272
+ if (ServerVersion .V_2_2 .isGreaterThan (testHelper .getInstanceVersion ())) {
273
+ testHelper .executeSql (
274
+ "CREATE TABLE test(id INT PRIMARY KEY, double_val DOUBLE, real_val REAL, float_val FLOAT)"
275
+ );
276
+ } else {
277
+ testHelper .executeSql (
278
+ "CREATE TABLE test(id INT PRIMARY KEY, double_val NUMBER, real_val REAL, float_val FLOAT)"
279
+ );
280
+ }
262
281
try (
263
282
Statement statement = connection .createStatement ();
264
283
ResultSet resultSet = statement .executeQuery ("SELECT * FROM test" )
@@ -292,8 +311,9 @@ public void testNotSignedColumns() throws SQLException {
292
311
}
293
312
294
313
@ Test
295
- @ DisplayName ("returned numeric column types" )
296
- public void testColumnsNumericTypes () throws SQLException {
314
+ @ DisplayName ("returned number type aliases" )
315
+ public void testColumnsNumberTypeAliases () throws SQLException {
316
+ assumeServerVersionLessThan (testHelper .getInstanceVersion (), ServerVersion .V_2_2 );
297
317
testHelper .executeSql (
298
318
"CREATE TABLE test(id INT PRIMARY KEY, f_val FLOAT, d_val DOUBLE, r_val REAL)"
299
319
);
@@ -303,26 +323,45 @@ public void testColumnsNumericTypes() throws SQLException {
303
323
) {
304
324
ResultSetMetaData rsMeta = resultSet .getMetaData ();
305
325
306
- assertEquals (Types .INTEGER , rsMeta .getColumnType (1 ));
326
+ assertEquals (Types .BIGINT , rsMeta .getColumnType (1 ));
307
327
assertEquals ("integer" , rsMeta .getColumnTypeName (1 ));
308
- assertEquals ("java.lang.Integer " , rsMeta .getColumnClassName (1 ));
328
+ assertEquals ("java.lang.Long " , rsMeta .getColumnClassName (1 ));
309
329
310
330
// we cannot distinguish numeric types because Tarantool
311
331
// receives double noSQL type for all the numeric SQL types
312
332
assertEquals (Types .DOUBLE , rsMeta .getColumnType (2 ));
313
- assertEquals ("double " , rsMeta .getColumnTypeName (2 ));
333
+ assertEquals ("number " , rsMeta .getColumnTypeName (2 ));
314
334
assertEquals ("java.lang.Double" , rsMeta .getColumnClassName (2 ));
315
335
316
336
assertEquals (Types .DOUBLE , rsMeta .getColumnType (3 ));
317
- assertEquals ("double " , rsMeta .getColumnTypeName (3 ));
337
+ assertEquals ("number " , rsMeta .getColumnTypeName (3 ));
318
338
assertEquals ("java.lang.Double" , rsMeta .getColumnClassName (3 ));
319
339
320
340
assertEquals (Types .DOUBLE , rsMeta .getColumnType (4 ));
321
- assertEquals ("double " , rsMeta .getColumnTypeName (4 ));
341
+ assertEquals ("number " , rsMeta .getColumnTypeName (4 ));
322
342
assertEquals ("java.lang.Double" , rsMeta .getColumnClassName (4 ));
323
343
}
324
344
}
325
345
346
+ @ Test
347
+ @ DisplayName ("returned number column type" )
348
+ public void testColumnsNumericTypes () throws SQLException {
349
+ assumeMinimalServerVersion (testHelper .getInstanceVersion (), ServerVersion .V_2_2 );
350
+ testHelper .executeSql (
351
+ "CREATE TABLE test(id INT PRIMARY KEY, num_val NUMBER)"
352
+ );
353
+ try (
354
+ Statement statement = connection .createStatement ();
355
+ ResultSet resultSet = statement .executeQuery ("SELECT * FROM test" )
356
+ ) {
357
+ ResultSetMetaData rsMeta = resultSet .getMetaData ();
358
+
359
+ assertEquals (Types .DOUBLE , rsMeta .getColumnType (2 ));
360
+ assertEquals ("number" , rsMeta .getColumnTypeName (2 ));
361
+ assertEquals ("java.lang.Double" , rsMeta .getColumnClassName (2 ));
362
+ }
363
+ }
364
+
326
365
@ Test
327
366
@ DisplayName ("returned textual column types" )
328
367
public void testColumnsTextualTypes () throws SQLException {
@@ -335,17 +374,17 @@ public void testColumnsTextualTypes() throws SQLException {
335
374
) {
336
375
ResultSetMetaData rsMeta = resultSet .getMetaData ();
337
376
338
- assertEquals (Types .INTEGER , rsMeta .getColumnType (1 ));
377
+ assertEquals (Types .BIGINT , rsMeta .getColumnType (1 ));
339
378
assertEquals ("integer" , rsMeta .getColumnTypeName (1 ));
340
- assertEquals ("java.lang.Integer " , rsMeta .getColumnClassName (1 ));
379
+ assertEquals ("java.lang.Long " , rsMeta .getColumnClassName (1 ));
341
380
342
381
assertEquals (Types .VARCHAR , rsMeta .getColumnType (2 ));
343
- assertEquals ("varchar " , rsMeta .getColumnTypeName (2 ));
382
+ assertEquals ("string " , rsMeta .getColumnTypeName (2 ));
344
383
assertEquals ("java.lang.String" , rsMeta .getColumnClassName (2 ));
345
384
346
385
// TEXT and VARCHAR are not distinguishable
347
386
assertEquals (Types .VARCHAR , rsMeta .getColumnType (3 ));
348
- assertEquals ("varchar " , rsMeta .getColumnTypeName (3 ));
387
+ assertEquals ("string " , rsMeta .getColumnTypeName (3 ));
349
388
assertEquals ("java.lang.String" , rsMeta .getColumnClassName (3 ));
350
389
351
390
assertEquals (Types .BINARY , rsMeta .getColumnType (4 ));
0 commit comments