From 09805b4c25f2632908896592905f88671d39ec02 Mon Sep 17 00:00:00 2001 From: rene-ye Date: Thu, 18 Oct 2018 16:45:45 -0700 Subject: [PATCH 1/3] updating jdk version for travis --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 1a4299131..af4616342 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,7 +2,7 @@ language: java jdk: - - oraclejdk10 + - oraclejdk11 services: - docker From c5c8266b9393f55884af8e6a32ac52589c0e32d0 Mon Sep 17 00:00:00 2001 From: rene-ye Date: Fri, 26 Oct 2018 13:51:37 -0700 Subject: [PATCH 2/3] Adding unique ID to bulkcopycursor test and sorting tables by ASC before comparing to avoid intermittent insert/retrieve errors --- .../bulkCopy/BulkCopyResultSetCursorTest.java | 37 +++++++++---------- 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/src/test/java/com/microsoft/sqlserver/jdbc/bulkCopy/BulkCopyResultSetCursorTest.java b/src/test/java/com/microsoft/sqlserver/jdbc/bulkCopy/BulkCopyResultSetCursorTest.java index 3ce050a65..3b9b128c2 100644 --- a/src/test/java/com/microsoft/sqlserver/jdbc/bulkCopy/BulkCopyResultSetCursorTest.java +++ b/src/test/java/com/microsoft/sqlserver/jdbc/bulkCopy/BulkCopyResultSetCursorTest.java @@ -70,7 +70,7 @@ private void serverCursorsTest(int resultSetType, int resultSetConcurrency) thro try (Statement stmt2 = conn.createStatement(resultSetType, resultSetConcurrency); ResultSet rs = stmt2 - .executeQuery("select * from " + AbstractSQLGenerator.escapeIdentifier(srcTable)); + .executeQuery("select * from " + AbstractSQLGenerator.escapeIdentifier(srcTable) + " ORDER BY id ASC"); SQLServerBulkCopy bulkCopy = new SQLServerBulkCopy(conn)) { bulkCopy.setDestinationTableName(AbstractSQLGenerator.escapeIdentifier(desTable)); bulkCopy.writeToServer(rs); @@ -96,7 +96,7 @@ public void testSelectMethodSetToCursor() throws SQLException { createTables(stmt); populateSourceTable(); - try (ResultSet rs = stmt.executeQuery("select * from " + AbstractSQLGenerator.escapeIdentifier(srcTable)); + try (ResultSet rs = stmt.executeQuery("select * from " + AbstractSQLGenerator.escapeIdentifier(srcTable) + " ORDER BY id ASC"); SQLServerBulkCopy bulkCopy = new SQLServerBulkCopy(conn)) { bulkCopy.setDestinationTableName(AbstractSQLGenerator.escapeIdentifier(desTable)); @@ -122,7 +122,7 @@ public void testMultiplePreparedStatementAndResultSet() throws SQLException { try (Statement stmt1 = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); ResultSet rs = stmt1 - .executeQuery("select * from " + AbstractSQLGenerator.escapeIdentifier(srcTable))) { + .executeQuery("select * from " + AbstractSQLGenerator.escapeIdentifier(srcTable) + " ORDER BY id ASC")) { try (SQLServerBulkCopy bulkCopy = new SQLServerBulkCopy(conn)) { bulkCopy.setDestinationTableName(AbstractSQLGenerator.escapeIdentifier(desTable)); bulkCopy.writeToServer(rs); @@ -143,7 +143,7 @@ public void testMultiplePreparedStatementAndResultSet() throws SQLException { verifyDestinationTableData(expectedBigDecimals.length * 3); } - String sql = "insert into " + AbstractSQLGenerator.escapeIdentifier(desTable) + " values (?,?,?,?)"; + String sql = "insert into " + AbstractSQLGenerator.escapeIdentifier(desTable) + "(c1,c2,c3,c4) values (?,?,?,?)"; Calendar calGMT = Calendar.getInstance(TimeZone.getTimeZone("GMT")); try (SQLServerPreparedStatement pstmt1 = (SQLServerPreparedStatement) conn.prepareStatement(sql)) { for (int i = 0; i < expectedBigDecimals.length; i++) { @@ -158,7 +158,7 @@ public void testMultiplePreparedStatementAndResultSet() throws SQLException { try (Statement stmt2 = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); ResultSet rs2 = stmt2 - .executeQuery("select * from " + AbstractSQLGenerator.escapeIdentifier(srcTable)); + .executeQuery("select * from " + AbstractSQLGenerator.escapeIdentifier(srcTable) + " ORDER BY id ASC"); SQLServerBulkCopy bulkCopy3 = new SQLServerBulkCopy(conn)) { bulkCopy3.setDestinationTableName(AbstractSQLGenerator.escapeIdentifier(desTable)); bulkCopy3.writeToServer(rs2); @@ -170,20 +170,20 @@ public void testMultiplePreparedStatementAndResultSet() throws SQLException { private static void verifyDestinationTableData(int expectedNumberOfRows) throws SQLException { try (Connection conn = DriverManager.getConnection(connectionString); ResultSet rs = conn.createStatement() - .executeQuery("select * from " + AbstractSQLGenerator.escapeIdentifier(desTable))) { + .executeQuery("select * from " + AbstractSQLGenerator.escapeIdentifier(desTable) + " ORDER BY id ASC")) { int expectedArrayLength = expectedBigDecimals.length; int i = 0; while (rs.next()) { - assertTrue(rs.getString(1).equals(expectedBigDecimalStrings[i % expectedArrayLength]), "Expected Value:" - + expectedBigDecimalStrings[i % expectedArrayLength] + ", Actual Value: " + rs.getString(1)); - assertTrue(rs.getString(2).trim().equals(expectedStrings[i % expectedArrayLength]), "Expected Value:" - + expectedStrings[i % expectedArrayLength] + ", Actual Value: " + rs.getString(2)); - assertTrue(rs.getString(3).equals(expectedTimestampStrings[i % expectedArrayLength]), "Expected Value:" - + expectedTimestampStrings[i % expectedArrayLength] + ", Actual Value: " + rs.getString(3)); - assertTrue(rs.getString(4).trim().equals(expectedStrings[i % expectedArrayLength]), "Expected Value:" - + expectedStrings[i % expectedArrayLength] + ", Actual Value: " + rs.getString(4)); + assertTrue(rs.getString(2).equals(expectedBigDecimalStrings[i % expectedArrayLength]), "Expected Value:" + + expectedBigDecimalStrings[i % expectedArrayLength] + ", Actual Value: " + rs.getString(2)); + assertTrue(rs.getString(3).trim().equals(expectedStrings[i % expectedArrayLength]), "Expected Value:" + + expectedStrings[i % expectedArrayLength] + ", Actual Value: " + rs.getString(3)); + assertTrue(rs.getString(4).equals(expectedTimestampStrings[i % expectedArrayLength]), "Expected Value:" + + expectedTimestampStrings[i % expectedArrayLength] + ", Actual Value: " + rs.getString(4)); + assertTrue(rs.getString(5).trim().equals(expectedStrings[i % expectedArrayLength]), "Expected Value:" + + expectedStrings[i % expectedArrayLength] + ", Actual Value: " + rs.getString(5)); i++; } @@ -192,12 +192,11 @@ private static void verifyDestinationTableData(int expectedNumberOfRows) throws } private static void populateSourceTable() throws SQLException { - String sql = "insert into " + AbstractSQLGenerator.escapeIdentifier(srcTable) + " values (?,?,?,?)"; + String sql = "insert into " + AbstractSQLGenerator.escapeIdentifier(srcTable) + "(c1,c2,c3,c4) values (?,?,?,?)"; Calendar calGMT = Calendar.getInstance(TimeZone.getTimeZone("GMT")); try (Connection conn = DriverManager.getConnection(connectionString); - SQLServerPreparedStatement pstmt = (SQLServerPreparedStatement) conn.prepareStatement(sql)) { - + SQLServerPreparedStatement pstmt = (SQLServerPreparedStatement) conn.prepareStatement(sql)) { for (int i = 0; i < expectedBigDecimals.length; i++) { pstmt.setBigDecimal(1, expectedBigDecimals[i]); pstmt.setString(2, expectedStrings[i]); @@ -219,10 +218,10 @@ private static void dropTables(Statement stmt) throws SQLException { private static void createTables(Statement stmt) throws SQLException { String sql = "create table " + AbstractSQLGenerator.escapeIdentifier(srcTable) - + " (c1 decimal(10,5) null, c2 nchar(50) null, c3 datetime2(7) null, c4 char(7000));"; + + " (id INT NOT NULL IDENTITY PRIMARY KEY, c1 decimal(10,5) null, c2 nchar(50) null, c3 datetime2(7) null, c4 char(7000));"; stmt.execute(sql); sql = "create table " + AbstractSQLGenerator.escapeIdentifier(desTable) - + " (c1 decimal(10,5) null, c2 nchar(50) null, c3 datetime2(7) null, c4 char(7000));"; + + " (id INT NOT NULL IDENTITY PRIMARY KEY, c1 decimal(10,5) null, c2 nchar(50) null, c3 datetime2(7) null, c4 char(7000));"; stmt.execute(sql); } From 3f30a88da61e34024bf3b510bc44be913a23cb13 Mon Sep 17 00:00:00 2001 From: rene-ye Date: Mon, 29 Oct 2018 13:15:11 -0700 Subject: [PATCH 3/3] removing unnecessary parameters --- .../sqlserver/jdbc/bulkCopy/BulkCopyResultSetCursorTest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/test/java/com/microsoft/sqlserver/jdbc/bulkCopy/BulkCopyResultSetCursorTest.java b/src/test/java/com/microsoft/sqlserver/jdbc/bulkCopy/BulkCopyResultSetCursorTest.java index 3b9b128c2..3ed177217 100644 --- a/src/test/java/com/microsoft/sqlserver/jdbc/bulkCopy/BulkCopyResultSetCursorTest.java +++ b/src/test/java/com/microsoft/sqlserver/jdbc/bulkCopy/BulkCopyResultSetCursorTest.java @@ -143,7 +143,7 @@ public void testMultiplePreparedStatementAndResultSet() throws SQLException { verifyDestinationTableData(expectedBigDecimals.length * 3); } - String sql = "insert into " + AbstractSQLGenerator.escapeIdentifier(desTable) + "(c1,c2,c3,c4) values (?,?,?,?)"; + String sql = "insert into " + AbstractSQLGenerator.escapeIdentifier(desTable) + " values (?,?,?,?)"; Calendar calGMT = Calendar.getInstance(TimeZone.getTimeZone("GMT")); try (SQLServerPreparedStatement pstmt1 = (SQLServerPreparedStatement) conn.prepareStatement(sql)) { for (int i = 0; i < expectedBigDecimals.length; i++) { @@ -192,7 +192,7 @@ private static void verifyDestinationTableData(int expectedNumberOfRows) throws } private static void populateSourceTable() throws SQLException { - String sql = "insert into " + AbstractSQLGenerator.escapeIdentifier(srcTable) + "(c1,c2,c3,c4) values (?,?,?,?)"; + String sql = "insert into " + AbstractSQLGenerator.escapeIdentifier(srcTable) + " values (?,?,?,?)"; Calendar calGMT = Calendar.getInstance(TimeZone.getTimeZone("GMT")); try (Connection conn = DriverManager.getConnection(connectionString);