Added
-
Vector datatype support #2634
What was added: Native support for SQL Server’s newVECTOR
data type with APIs for inserts, selects, stored procedures, and bulk copy.
Who benefits: Developers building AI/ML workloads or semantic search applications using vector data in SQL Server.
Impact: Enables native vector storage and access via JDBC, eliminating the performance overhead of managing vector data as strings. -
New connection options,
quotedIdentifier
andconcatNullYieldsNull
#2618
What was added: New connection options,quotedIdentifier
andconcatNullYieldsNull
, to control QUOTED_IDENTIFIER and CONCAT_NULL_YIELDS_NULL session settings for both new and pooled connections.
Who benefits: Developers needing Sybase-default behavior for their applications.
Impact: Reduces Sybase migration effort by allowing control of these session values. -
Support for temporal and money datatypes when using bulk copy for batch insert operations #2670
What was added: Support for batch inserts ofDATETIME
,DATE
,MONEY
, etc., when using theuseBulkCopyForBatchInsert
option.
Who benefits: High-volume data insert users.
Impact: Improves performance for previously unsupported types (except in Azure Synapse Analytics (formerly Azure SQL DW). -
Mockito integration into JDBC driver tests #2644
What was added: Mockito added as a test dependency.
Who benefits: Developers and contributors writing unit tests.
Impact: Enables better control and test coverage.
Changed
-
releaseSavepoint
exception type standardized toSQLFeatureNotSupported
#2583
What changed: SQLServerException replaced with SQLFeatureNotSupportedException to comply with JDBC specification.
Who benefits: Developers expecting JDBC standard exceptions.
Impact: Enables better exception handling in client code. -
ActiveDirectoryPassword
authentication deprecated #2624
What changed: Added deprecation warning for Microsoft Entra ID password authentication method.
Who benefits: Microsoft Entra ID authentication users.
Impact: Encourages migration to more secure methods. -
Include Columnstore indexes in
getIndexInfo()
#2598
What changed: Replacedsp_statistics
with a custom query to support all index types.
Who benefits: Developers using metadata APIs.
Impact: More accurate index metadata. -
Corrected schema filtering in
getSchemas()
#2643
What changed: Ensured schemas are properly filtered when a catalog name is provided.
Who benefits: Users of metadata functions.
Impact: Complies with JDBC specification and avoids confusion. -
Increased redirection limit #2659
What changed: Raised maximum redirection hops from 1 to 10.
Who benefits: Azure SQL Fabric users.
Impact: Enables successful multi-hop connection scenarios.
Fixed issues
-
Session recovery with Entra ID authentication and redirect mode #2668
What was fixed: Redirect information is now followed during session recovery when using Entra ID authentication.
Who benefits: Azure SQL DB users using Entra ID and connection resiliency.
Impact: Prevents connection recovery failures. -
Javadoc build warnings #2640
What was fixed: Cleaned up invalid Javadoc syntax.
Who benefits: Developers building the driver.
Impact: Cleaner builds, better docs. -
OffsetDateTime formatting in SQLServerDataTable #2652
What was fixed: TheOffsetDateTime
toString()
method was omitting seconds when seconds are zero, which resulted in the server rejecting those records. UsedDateTimeFormatter
to avoid this invalid format.
Who benefits: Users insertingOffsetDateTime
values.
Impact: Prevents conversion errors. -
String comparison in SQLServerDataTable.equals() #2653
What was fixed: Replaced==
with.equals()
for strings.
Who benefits: Anyone comparing data tables.
Impact: Accurate comparison behavior. -
PreparedStatement metadata caching for encrypted columns #2663
What was fixed: Fixed loss of type metadata acrossPreparedStatement
reuse.
Who benefits: Users of Always Encrypted with secure enclaves.
Impact: Prevents insert failures in batch encryption. -
Make IBM security module optional #2636
What was fixed: IBM security dependency is now optional.
Who benefits: Applications not using IBM modules.
Impact: Avoids classloading issues. -
Invalidate enclave session on reconnect #2638
What was fixed: Enclave session cache no longer reused across reconnects.
Who benefits: Users of Always Encrypted with secure enclaves in failover configurations.
Impact: Prevents internal enclave errors due to invalid enclave session references after failover. -
File path error handling in
ConfigurableRetryLogic
#2650
What was fixed: Robust error handling for missing/unreadable retry config files.
Who benefits: All users.
Impact: Prevents driver errors due to application file path issues. -
Suppressed CodeQL warnings for crypto usages #2677
What was fixed: Suppressed CodeQL security warnings for cryptographic use cases.
Who benefits: Reviewers using CodeQL.
Impact: Maintains compatibility and audit clarity. -
Batch insert fix for case-sensitive column name mismatch #2695
What was fixed:executeBatch()
now respects case sensitivity of collations when matching column names.
Who benefits: Applications using case-sensitive/case-insensitive schemas.
Impact: Avoids metadata retrieval failures during batch inserts.