Skip to content

Commit ed20be5

Browse files
Trying fix for failing tests
1 parent 0648ab9 commit ed20be5

File tree

2 files changed

+95
-92
lines changed

2 files changed

+95
-92
lines changed

src/test/java/net/snowflake/client/jdbc/ResultSetArrowLatestIT.java

+5-70
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,17 @@
33
*/
44
package net.snowflake.client.jdbc;
55

6-
import static org.junit.Assert.assertEquals;
6+
import net.snowflake.client.category.TestCategoryArrow;
7+
import org.junit.Test;
8+
import org.junit.experimental.categories.Category;
79

810
import java.sql.Connection;
911
import java.sql.ResultSet;
1012
import java.sql.SQLException;
1113
import java.sql.Statement;
1214
import java.util.Properties;
13-
import net.snowflake.client.category.TestCategoryArrow;
14-
import org.junit.Test;
15-
import org.junit.experimental.categories.Category;
15+
16+
import static org.junit.Assert.assertEquals;
1617

1718
/**
1819
* ResultSet integration tests for the latest JDBC driver. This doesn't work for the oldest
@@ -23,70 +24,4 @@ public class ResultSetArrowLatestIT extends ResultSetLatestIT {
2324
public ResultSetArrowLatestIT() {
2425
super("arrow");
2526
}
26-
27-
// Test setting new connection property jdbc_arrow_treat_decimal_as_int=false. Connection property
28-
// introduced after version 3.15.0.
29-
@Test
30-
public void testGetObjectForArrowResultFormatJDBCArrowDecimalAsIntFalse() throws SQLException {
31-
Properties properties = new Properties();
32-
properties.put("jdbc_arrow_treat_decimal_as_int", false);
33-
try (Connection con = init(properties);
34-
Statement stmt = con.createStatement()) {
35-
stmt.execute(createTableSql);
36-
stmt.execute(insertStmt);
37-
38-
// Test with jdbc_arrow_treat_decimal_as_int=false and JDBC_TREAT_DECIMAL_AS_INT=true
39-
try (ResultSet rs = stmt.executeQuery(selectQuery)) {
40-
while (rs.next()) {
41-
assertEquals(rs.getObject(1).getClass().toString(), "class java.lang.Long");
42-
assertEquals(rs.getObject(2).getClass().toString(), "class java.math.BigDecimal");
43-
assertEquals(rs.getObject(3).getClass().toString(), "class java.lang.Long");
44-
assertEquals(rs.getObject(4).getClass().toString(), "class java.lang.Long");
45-
}
46-
}
47-
48-
// Test with jdbc_arrow_treat_decimal_as_int=false and JDBC_TREAT_DECIMAL_AS_INT=false
49-
stmt.execute(setJdbcTreatDecimalAsIntFalse);
50-
try (ResultSet rs = stmt.executeQuery(selectQuery)) {
51-
while (rs.next()) {
52-
assertEquals(rs.getObject(1).getClass().toString(), "class java.math.BigDecimal");
53-
assertEquals(rs.getObject(2).getClass().toString(), "class java.math.BigDecimal");
54-
assertEquals(rs.getObject(3).getClass().toString(), "class java.math.BigDecimal");
55-
assertEquals(rs.getObject(4).getClass().toString(), "class java.math.BigDecimal");
56-
}
57-
}
58-
}
59-
}
60-
61-
// Test default setting of new connection property jdbc_arrow_treat_decimal_as_int=true.
62-
// Connection property introduced after version 3.15.0.
63-
@Test
64-
public void testGetObjectForArrowResultFormatJDBCArrowDecimalAsIntTrue() throws SQLException {
65-
try (Connection con = init();
66-
Statement stmt = con.createStatement()) {
67-
stmt.execute(createTableSql);
68-
stmt.execute(insertStmt);
69-
70-
// Test with jdbc_arrow_treat_decimal_as_int=true and JDBC_TREAT_DECIMAL_AS_INT=true
71-
try (ResultSet rs = stmt.executeQuery(selectQuery)) {
72-
while (rs.next()) {
73-
assertEquals(rs.getObject(1).getClass().toString(), "class java.lang.Long");
74-
assertEquals(rs.getObject(2).getClass().toString(), "class java.math.BigDecimal");
75-
assertEquals(rs.getObject(3).getClass().toString(), "class java.lang.Long");
76-
assertEquals(rs.getObject(4).getClass().toString(), "class java.lang.Long");
77-
}
78-
}
79-
80-
// Test with jdbc_arrow_treat_decimal_as_int=true and JDBC_TREAT_DECIMAL_AS_INT=false
81-
stmt.execute(setJdbcTreatDecimalAsIntFalse);
82-
try (ResultSet rs = stmt.executeQuery(selectQuery)) {
83-
while (rs.next()) {
84-
assertEquals(rs.getObject(1).getClass().toString(), "class java.lang.Long");
85-
assertEquals(rs.getObject(2).getClass().toString(), "class java.math.BigDecimal");
86-
assertEquals(rs.getObject(3).getClass().toString(), "class java.lang.Long");
87-
assertEquals(rs.getObject(4).getClass().toString(), "class java.lang.Long");
88-
}
89-
}
90-
}
91-
}
9227
}

src/test/java/net/snowflake/client/jdbc/ResultSetLatestIT.java

+90-22
Original file line numberDiff line numberDiff line change
@@ -73,12 +73,12 @@ public ResultSetLatestIT() {
7373
super(queryResultFormat);
7474
}
7575

76-
public String createTableSql =
76+
private String createTableSql =
7777
"Create or replace table get_object_for_numeric_types (c1 INT, c2 BIGINT, c3 SMALLINT, c4 TINYINT) ";
78-
public String insertStmt =
78+
private String insertStmt =
7979
"Insert into get_object_for_numeric_types (c1, c2, c3, c4) values (1000000000, 2000000000000000000000000, 3, 4)";
80-
public String selectQuery = "Select * from get_object_for_numeric_types";
81-
public String setJdbcTreatDecimalAsIntFalse =
80+
private String selectQuery = "Select * from get_object_for_numeric_types";
81+
private String setJdbcTreatDecimalAsIntFalse =
8282
"alter session set JDBC_TREAT_DECIMAL_AS_INT = false";
8383

8484
/**
@@ -980,35 +980,102 @@ public void testLargeStringRetrieval() throws SQLException {
980980
}
981981
}
982982

983+
// Test setting new connection property jdbc_arrow_treat_decimal_as_int=false. Connection property introduced after version 3.15.0.
984+
@Test
985+
public void testGetObjectForArrowResultFormatJDBCArrowDecimalAsIntFalse() throws SQLException {
986+
Properties properties = new Properties();
987+
properties.put("jdbc_arrow_treat_decimal_as_int", false);
988+
try (Connection con = getConnection(properties);
989+
Statement stmt = con.createStatement()) {
990+
stmt.execute("alter session set jdbc_query_result_format = 'ARROW'");
991+
stmt.execute(createTableSql);
992+
stmt.execute(insertStmt);
993+
994+
// Test with jdbc_arrow_treat_decimal_as_int=false and JDBC_TREAT_DECIMAL_AS_INT=true
995+
try (ResultSet rs = stmt.executeQuery(selectQuery)) {
996+
while(rs.next()) {
997+
assertEquals("class java.lang.Long", rs.getObject(1).getClass().toString());
998+
assertEquals("class java.math.BigDecimal", rs.getObject(2).getClass().toString());
999+
assertEquals("class java.lang.Long", rs.getObject(3).getClass().toString());
1000+
assertEquals("class java.lang.Long", rs.getObject(4).getClass().toString());
1001+
}
1002+
}
1003+
1004+
// Test with jdbc_arrow_treat_decimal_as_int=false and JDBC_TREAT_DECIMAL_AS_INT=false
1005+
stmt.execute(setJdbcTreatDecimalAsIntFalse);
1006+
try (ResultSet rs = stmt.executeQuery(selectQuery)) {
1007+
while (rs.next()) {
1008+
assertEquals("class java.math.BigDecimal", rs.getObject(1).getClass().toString());
1009+
assertEquals("class java.math.BigDecimal", rs.getObject(2).getClass().toString());
1010+
assertEquals("class java.math.BigDecimal", rs.getObject(3).getClass().toString());
1011+
assertEquals("class java.math.BigDecimal", rs.getObject(4).getClass().toString());
1012+
}
1013+
}
1014+
}
1015+
}
1016+
1017+
// Test default setting of new connection property jdbc_arrow_treat_decimal_as_int=true. Connection property introduced after version 3.15.0.
1018+
@Test
1019+
public void testGetObjectForArrowResultFormatJDBCArrowDecimalAsIntTrue() throws SQLException {
1020+
try (Connection con = BaseJDBCTest.getConnection();
1021+
Statement stmt = con.createStatement()) {
1022+
stmt.execute("alter session set jdbc_query_result_format = 'ARROW'");
1023+
stmt.execute(createTableSql);
1024+
stmt.execute(insertStmt);
1025+
1026+
// Test with jdbc_arrow_treat_decimal_as_int=true and JDBC_TREAT_DECIMAL_AS_INT=true
1027+
try (ResultSet rs = stmt.executeQuery(selectQuery)) {
1028+
while(rs.next()) {
1029+
assertEquals("class java.lang.Long", rs.getObject(1).getClass().toString());
1030+
assertEquals("class java.math.BigDecimal", rs.getObject(2).getClass().toString());
1031+
assertEquals("class java.lang.Long", rs.getObject(3).getClass().toString());
1032+
assertEquals("class java.lang.Long", rs.getObject(4).getClass().toString());
1033+
}
1034+
}
1035+
1036+
// Test with jdbc_arrow_treat_decimal_as_int=true and JDBC_TREAT_DECIMAL_AS_INT=false
1037+
stmt.execute(setJdbcTreatDecimalAsIntFalse);
1038+
try (ResultSet rs = stmt.executeQuery(selectQuery)) {
1039+
while (rs.next()) {
1040+
assertEquals("class java.lang.Long", rs.getObject(1).getClass().toString());
1041+
assertEquals("class java.math.BigDecimal", rs.getObject(2).getClass().toString());
1042+
assertEquals("class java.lang.Long", rs.getObject(3).getClass().toString());
1043+
assertEquals("class java.lang.Long", rs.getObject(4).getClass().toString());
1044+
}
1045+
}
1046+
}
1047+
}
1048+
9831049
// Test setting new connection property jdbc_arrow_treat_decimal_as_int=false. Connection property
9841050
// introduced after version 3.15.0.
9851051
@Test
9861052
public void testGetObjectForJSONResultFormatJDBCArrowDecimalAsIntFalse() throws SQLException {
9871053
Properties properties = new Properties();
9881054
properties.put("jdbc_arrow_treat_decimal_as_int", false);
989-
try (Connection con = init(properties);
1055+
try (Connection con = getConnection(properties);
9901056
Statement stmt = con.createStatement()) {
1057+
stmt.execute("alter session set jdbc_query_result_format = 'JSON'");
9911058
stmt.execute(createTableSql);
9921059
stmt.execute(insertStmt);
9931060

9941061
// Test with jdbc_arrow_treat_decimal_as_int=false and JDBC_TREAT_DECIMAL_AS_INT=true
9951062
try (ResultSet rs = stmt.executeQuery(selectQuery)) {
9961063
while (rs.next()) {
997-
assertEquals(rs.getObject(1).getClass().toString(), "class java.lang.Long");
998-
assertEquals(rs.getObject(2).getClass().toString(), "class java.math.BigDecimal");
999-
assertEquals(rs.getObject(3).getClass().toString(), "class java.lang.Long");
1000-
assertEquals(rs.getObject(4).getClass().toString(), "class java.lang.Long");
1064+
assertEquals("class java.lang.Long", rs.getObject(1).getClass().toString());
1065+
assertEquals("class java.math.BigDecimal", rs.getObject(2).getClass().toString());
1066+
assertEquals("class java.lang.Long", rs.getObject(3).getClass().toString());
1067+
assertEquals("class java.lang.Long", rs.getObject(4).getClass().toString());
10011068
}
10021069
}
10031070

10041071
// Test with jdbc_arrow_treat_decimal_as_int=false and JDBC_TREAT_DECIMAL_AS_INT=false
10051072
stmt.execute(setJdbcTreatDecimalAsIntFalse);
10061073
try (ResultSet rs = stmt.executeQuery(selectQuery)) {
10071074
while (rs.next()) {
1008-
assertEquals(rs.getObject(1).getClass().toString(), "class java.math.BigDecimal");
1009-
assertEquals(rs.getObject(2).getClass().toString(), "class java.math.BigDecimal");
1010-
assertEquals(rs.getObject(3).getClass().toString(), "class java.math.BigDecimal");
1011-
assertEquals(rs.getObject(4).getClass().toString(), "class java.math.BigDecimal");
1075+
assertEquals("class java.math.BigDecimal", rs.getObject(1).getClass().toString());
1076+
assertEquals("class java.math.BigDecimal", rs.getObject(2).getClass().toString());
1077+
assertEquals("class java.math.BigDecimal", rs.getObject(3).getClass().toString());
1078+
assertEquals("class java.math.BigDecimal", rs.getObject(4).getClass().toString());
10121079
}
10131080
}
10141081
}
@@ -1018,29 +1085,30 @@ public void testGetObjectForJSONResultFormatJDBCArrowDecimalAsIntFalse() throws
10181085
// Connection property introduced after version 3.15.0.
10191086
@Test
10201087
public void testGetObjectForJSONResultFormatJDBCArrowDecimalAsIntTrue() throws SQLException {
1021-
try (Connection con = init();
1088+
try (Connection con = BaseJDBCTest.getConnection();
10221089
Statement stmt = con.createStatement()) {
1090+
stmt.execute("alter session set jdbc_query_result_format = 'JSON'");
10231091
stmt.execute(createTableSql);
10241092
stmt.execute(insertStmt);
10251093

10261094
// Test with jdbc_arrow_treat_decimal_as_int=true and JDBC_TREAT_DECIMAL_AS_INT=true
10271095
try (ResultSet rs = stmt.executeQuery(selectQuery)) {
10281096
while (rs.next()) {
1029-
assertEquals(rs.getObject(1).getClass().toString(), "class java.lang.Long");
1030-
assertEquals(rs.getObject(2).getClass().toString(), "class java.math.BigDecimal");
1031-
assertEquals(rs.getObject(3).getClass().toString(), "class java.lang.Long");
1032-
assertEquals(rs.getObject(4).getClass().toString(), "class java.lang.Long");
1097+
assertEquals("class java.lang.Long", rs.getObject(1).getClass().toString());
1098+
assertEquals("class java.math.BigDecimal", rs.getObject(2).getClass().toString());
1099+
assertEquals("class java.lang.Long", rs.getObject(3).getClass().toString());
1100+
assertEquals("class java.lang.Long", rs.getObject(4).getClass().toString());
10331101
}
10341102
}
10351103

10361104
// Test with jdbc_arrow_treat_decimal_as_int=true and JDBC_TREAT_DECIMAL_AS_INT=false
10371105
stmt.execute(setJdbcTreatDecimalAsIntFalse);
10381106
try (ResultSet rs = stmt.executeQuery(selectQuery)) {
10391107
while (rs.next()) {
1040-
assertEquals(rs.getObject(1).getClass().toString(), "class java.math.BigDecimal");
1041-
assertEquals(rs.getObject(2).getClass().toString(), "class java.math.BigDecimal");
1042-
assertEquals(rs.getObject(3).getClass().toString(), "class java.math.BigDecimal");
1043-
assertEquals(rs.getObject(4).getClass().toString(), "class java.math.BigDecimal");
1108+
assertEquals("class java.math.BigDecimal", rs.getObject(1).getClass().toString());
1109+
assertEquals("class java.math.BigDecimal", rs.getObject(2).getClass().toString());
1110+
assertEquals("class java.math.BigDecimal", rs.getObject(3).getClass().toString());
1111+
assertEquals("class java.math.BigDecimal", rs.getObject(4).getClass().toString());
10441112
}
10451113
}
10461114
}

0 commit comments

Comments
 (0)