All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog
- Added removed constructor back to AKV Provider which supports authentication with a customized method to fetch accessToken #675
- Added support for JDK 10 for both Maven and Gradle #691
- Added a resource bundle to handle junit error strings #698
- Fixed the driver disposing user created credentials when using Kerberos Constrained Delegation #636
- Fixed an issue with HostnameInCertificate when redirected while connected to Azure #644
- Fixed an intermittent issue with Prepared Statement handle not found #648
- Fixed a conflict with JDBC Compliance where the driver was returning marked columns as SS_IS_COMPUTED instead of IS_GENERATED #695
- Fixed maven build warnings and deprecated Java API warnings #701
- Fixed some Javadoc related warnings #702
- Added new connection property "cancelQueryTimeout" to cancel QueryTimeout on Connection and Statement #674
- Improved performance degradation while maintaining JDBC compliance with results from sp_fkeys #677
- Fixed an issue where ResultSetMetaData instances created by a ResultSet that has been closed were not persisting #685
- Fixed an issue with PreparedStatement.setBigDecimal when no scale is passed #684
- Fixed an issue with Clobs/NClobs not persisting after ResultSet/Connection closes #682
- Updated the samples to be usable with Eclipse directly, and updated the driver version used by the samples to 6.4.0.jre9 #679
- Updated Gradle script for building JDBC Driver #689
- Updated Maven dependencies for test suite #676
- Updated multiple Maven dependency and plugin versions #688
- Test cases for Date, Time, and Datetime2 data types. #558
- Fixed an issue where ResultSetMetadata returned incorrect columnType for Geometry and Geography data types #657
- Fixed server side CPU Affinity problems caused by uneven connection distribution across NUMA Nodes when multiSubnetFailover is true #662
- Fixed an issue where Driver wasn't parsing TDS Packets completely to capture exceptions raised inside executed stored procedures #664
- Fixed an issue where driver throws exception when using setMaxRows() followed by query execution when SHOWPLAN_TEXT is ON #666
- Removed unused imports which forced users to import the ADAL4J library #652
- Support for spatial datatypes #642
- Fixed blobs becoming unavailable when the Result Set cursor moves or the Result Set closes #595
- Fixed an issue when attempting to insert an empty or null value into an encrypted column #632
- Fixed a misleading error message thrown by the driver when a user doesn't have execute permissions #635
- Fixed statements throwing SQLServerException instead of java.sql.SQLTimeoutException when the query times out #641
- Unit tests now use SQLException in most cases instead of SQLServerException.
- Support added for AAD Integrated Authentication with ADAL4J on Windows/Linux/Mac OS #603
- Enable Recover after MSDTC is restarted #581
- Added Version Update configuration rules to project #541
- JDK 9 Compatibility + JDBC 4.3 API support added to the driver [#601 (microsoft#601)
- Re-introduced Retry Logic for Prepared Statement Caching implementation and remove detect change context function #618 and #620
- Fixes for SonarQube Reported issues #599
- Fixes for Random Assertion Errors #597
- Updated Appveyor to use JDK9 building driver and running tests #619
- JDK 7 compilation support removed from the driver #601
- Added support for using database name as part of the key for handle cache #561
- Updated ADAL4J version to 1.3.0 and also added it into README file #564
- Fixed issues with static loggers being set by every constructor invocation #563
- Added handle for Account Locked Exception 18486 during login in SQLServerConnection #522
- Fixed the issues with Prepared Statement Metadata Caching implementation #543
- Fixed issues with static logger member in abstract class 'SQLServerClobBase' #537
- Added new ThreadGroup creation to prevent IllegalThreadStateException if the underlying ThreadGroup has been destroyed. #474
- Added try-with-resources to JUnit tests #520
- Fixed the issue with passing parameters names that start with '@' to a CallableStatement #495
- Fixed SQLServerDataTable creation being O(n^2) issue #514
- Changed some manual array copying to System.arraycopy() #500
- Removed redundant toString() on String objects #501
- Replaced literals with constants #502
- Added connection properties for specifying custom TrustManager #74
- Fixed exception thrown by getters on null columns #488
- Fixed issue with DatabaseMetaData#getImportedKeys() returns wrong value for DELETE_RULE #490
- Fixed issue with ActivityCorrelator causing a classloader leak #465
- Removed explicit extends Object #469
- Removed unnecessary return statements #471
- Simplified overly complex boolean expressions #472
- Replaced explicit types with <> (the diamond operator) #420
- Fixed some error messages #452 & #459
- Fixed statement leaks #455
- Fixed an issue regarding to loginTimeout with TLS #456
- Fixed sql_variant issue with String type #442
- Fixed issue with throwing error message for unsupported datatype #450
- Fixed issue that initial batchException was not thrown #458
- Changed sendStringParameterAsUnicode to impact set/update null #445
- Removed connection property: fipsProvider #460
- Replaced for and while loops with foeach loops #421
- Replaced explicit types with the diamond operator #468 & #420
- Added support for datetime/smallDatetime in TVP #435
- Added more Junit tests for Always Encrypted #432
- Fixed getString issue for uniqueIdentifier #423
- Fixed Turkey locale issue when lowercasing an "i" #384
- Fixed issue with incorrect parameter count for INSERT with subquery #373
- Fixed issue with running DDL in PreparedStatement #372
- Fixed issue with parameter metadata with whitespace characters #371
- Fixed handling of explicit boxing and unboxing #84
- Fixed metadata caching batch query issue #393
- Fixed javadoc issue for the newest maven version #385
- Updated ADAL4J dependency to version 1.2.0 #392
- Updated azure-keyvault dependency to version 1.0.0 #397
- Updated ADAL4J to version 1.2.0 and AKV to version 1.0.0 #516
- Fixed queries without parameters using preparedStatement #372
- Removed metadata caching #377
- Added TVP and BulkCopy random data test for all data types with server cursor #319
- Added AE setup and test #337,328
- Added validation for javadocs for every commit #338
- Added metdata caching #345
- Added caching mvn dependencies for Appveyor #320
- Added caching mvn dependencies for Travis-CI #322
- Added handle for bulkcopy exceptions #286
- Added handle for TVP exceptions #285
- Fixed metadata caching issue with AE on connection #361
- Fixed issue with String index out of range parameter metadata #353
- Fixed javaDocs #354
- Fixed javaDocs #299
- Performance fix from @brettwooldridge #347
- Get local host name before opening TDSChannel #324
- Fixed TVP Time issue #317
- Fixed SonarQube issues #300
- Fixed SonarQube issues #301
- Fixed random TDS invalid error #310
- Fixed password logging #298
- Fixed bulkcopy cursor issue #270
- Refresh Kerberos configuration #279
- Added support for data type LONGVARCHAR, LONGNVARCHAR, LONGVARBINARY and SQLXML in TVP #259
- Added new connection property to accept custom JAAS configuration for Kerberos #254
- Added support for server cursor with TVP #234
- Experimental Feature: Added new connection property to support network timeout #253
- Added support to authenticate Kerberos with principal and password #163
- Added temporal types to BulkCopyCSVTestInput.csv #262
- Added automatic detection of REALM in SPN needed for Cross Domain authentication #40
- Updated minor semantics #232
- Cleaned up Azure Active Directory (AAD) Authentication methods #256
- Updated permission check before setting network timeout #255
- Turn TNIR (TransparentNetworkIPResolution) off for Azure Active Directory (AAD) Authentication and changed TNIR multipliers #240
- Wrapped ClassCastException in BulkCopy with SQLServerException #260
- Initialized the XA transaction manager for each XAResource #257
- Fixed BigDecimal scale rounding issue in BulkCopy #230
- Fixed the invalid exception thrown when stored procedure does not exist is used with TVP #265
- Added constrained delegation to connection sample #188
- Added snapshot to identify nightly/dev builds #221
- Clarifying public deprecated constructors in LOBs #226
- Added OSGI Headers in MANIFEST.MF #218
- Added cause to SQLServerException #202
- Removed java.io.Serializable interface from SQLServerConnectionPoolProxy #201
- Refactored DROP TABLE and DROP PROCEDURE calls in test code #222
- Removed obsolete methods from DriverJDBCVersion #187
- Typos in SQLServerConnectionPoolProxy #189
- Fixed issue where exceptions are thrown if comments are in a SQL string #157
- Fixed test failures on pre-2016 servers #215
- Fixed SQLServerExceptions that are wrapped by another SQLServerException #213
- Fixed a stream isClosed error on LOBs test #233
- LOBs are fully materialised #16
- Fix precision issue in TVP #217
- Re-interrupt the current thread in order to restore the threads interrupt status #196
- Re-use parameter metadata when using Always Encrypted #195
- Improved performance for PreparedStatements through minimized server round-trips #166
- Added socket timeout exception as cause#180
- Added Constrained delegation support#178
- Added junit test for Statement test#174
- Added test for statement.cancel() when MultiSubnetFailover is set to true#173
- Added tests for lobs #168
- Added badges for License, Maven Central, JavaDocs & gitter chat room #184
- Enabled update counts for SELECT INTO statements#175
- Use Executor service instead of thread#162
- Convert socket adaptor to socket#160
- Added isWrapperFor methods for MetaData classes#94
- Added Code Coverage #136
- Added TVP schema test #137
- Introduced FIPS boolean property #135
- Added unit statement test cases #147
- Enabled AAD Authentication with Access Token on Linux #142
- Enabled AAD Authentication with ActiveDirectoryPassword on Linux #146
- Made Azure Key Vault and Azure Active Directory Authentication Dependencies optional #148
- Getting TVP name from ParameterMetaData when using TVP with a stored procedure #138
- Fixed getBinaryStream issue #133
- Fixed an issue of Bulk Copy when AlwaysEncrypted is enabled on connection and destination table is not encrypted #151
- Added Binary and Varbinary types to the jUnit test framework #119
- Added BulkCopy test cases for csv #123
- Added BulkCopy ColumnMapping test cases #127
- Switched to clean rounding for bigDecimal #118
- Updated BVT tests to use jUnit test framework #120
- In case of socket timeout occurance, avoid connection retry #122
- Changed ant build file to skip tests #126
- Fixed the inconsistent coding style #4
- Fixed NullPointerException in case when SocketTimeout occurs #65
- Socket timeout implementation for both connection string and data source #85
- Query timeout API for datasource #88
- Added connection tests #95
- Added Support for FIPS enabled JVM #97
- Added additional tests for bulk copy [#110] (microsoft#110)
- Remove redundant type casts #63
- Read SQL Server error message if status flag has DONE_ERROR set #73
- Fix a bug when the value of queryTimeout is bigger than the max value of integer #78
- Add new dependencies to gradle build script #81
- Updates to test framework #90
- Set the jre8 version as default #59
- Fixed exception SQL Server instance in use does not support column encryption #65
- TVP Handling is causing exception when calling SP with return value #80
- BigDecimal in TVP can incorrectly cause SQLServerException related to invalid precision or scale #86
- Fixed the connection close issue on using variant type [#91] (microsoft#91)
- Java Docs #46
- Driver version number in LOGIN7 packet #43
- Travis- CI Integration #23
- Appveyor Integration #23
- Make Ms Jdbc driver more Spring friendly #9
- Implement Driver#getParentLogger #8
- Implement missing MetaData #unwrap methods #12
- Added Gradle build script #54
- Added a queryTimeout connection parameter #45
- Added Stored Procedure support for TVP #47
- Use StandardCharsets #15
- Use Charset throughout #26
- Upgrade azure-keyvault to 0.9.7 #50
- Avoid unnecessary calls to String copy constructor #14
- make setObject() throw a clear exception for TVP when using with result set #48
- Few clean-ups like remove wild card imports, unused imports etc. #52
- Update Maven Plugin #55
- Open Sourced.