Skip to content

Releases: microsoft/mssql-jdbc

[13.1.0] Preview Release

01 Jul 18:55
558f420
Compare
Choose a tag to compare
Pre-release

Added

  • Vector datatype support #2634
    What was added: Native support for SQL Server’s new VECTOR 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 and concatNullYieldsNull #2618
    What was added: New connection options, quotedIdentifier and concatNullYieldsNull, 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 of DATETIME, DATE, MONEY, etc., when using the useBulkCopyForBatchInsert 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 to SQLFeatureNotSupported #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: Replaced sp_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: The OffsetDateTime toString() method was omitting seconds when seconds are zero, which resulted in the server rejecting those records. Used DateTimeFormatter to avoid this invalid format.
    Who benefits: Users inserting OffsetDateTime 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 across PreparedStatement 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.

[12.10.1] Stable Release

18 Jun 08:58
768f9f5
Compare
Choose a tag to compare

Fixed issues

  • Make ibm security module optional #2679
  • Invalidate existing enclave session during connection (re)connect #2680
  • Update readFromFile() in ConfigurableRetryLogic to handle filePath #2681
  • Increased the max noOfRedirections and updated the message. #2682
  • Fixed New Type Param Definitions logic in doExecutePreparedStatement #2683
  • Fixed session recovery for Azure SQL DB in redirect mode connected #2684

[12.10.0] Stable Release

17 Mar 17:10
a0ea23a
Compare
Choose a tag to compare

Added

  • Added provision to set SQLServerBulkCopy options in PreparedStatement #2555

Changed

  • Changed the scope of BULK_COPY_OPERATION_CACHE to connection #2594
  • Added "requireSecret" exclude tag for tests which require adding a secret to app registration #2596
  • Added com.ibm.security.auth.module and com.sun.security.auth.module as option import #2609
  • Updated driver dependency versions #2614

Fixed issues

  • Introduced timeouts for MSAL calls #2562
  • Fixed getGeneratedKeys functionality for execute API #2554
  • Fixed ISQLServerConnection java doc reference #2560
  • Fixed OffsetDateTime conversion for pre-Gregorian dates #2568
  • Fix for driver cutting out the question mark from columns labels (aliases) #2569
  • Fixed issue with SQLServerBulkCopy from CSV with setEscapeColumnDelimerts set to true #2575
  • Fixed issue for finding mssql-jdbc.properties location in test environments #2579
  • Fixed issue for IBM Semeru Runtime Certified Edition for z/OS and Kerberos #2581
  • Set appropriate value to requestedEncryptionLevel for encrypt=STRICT #2597
  • Add test for ManagedIdentityWithEncryptStrict #2599
  • Check for null when getting DTV values (JDBC spec compliance - getBinaryStream /getAsciiStream will return null when the value is null) #2600
  • Removed scheme from URI before fetching path for CRL path check #2622

[12.9.0] Preview Release

02 Dec 18:35
1967348
Compare
Choose a tag to compare
Pre-release

Added

  • Added configurable retry logic feature, supporting both statement, and connection, retry #2396#2519
  • Added JDK 23 support #2515

Changed

  • Reverted "Execute Stored Procedures Directly" feature, as well as subsequent changes related to the feature #2488
  • Changed MSAL logging from FINEST to FINER #2489
  • Updated project pom file to pull dependencies from public Azure Artifacts Feed #2504
  • Changed how Kerberos authentication acquires subject to provide compatibility for Kerberos with Java 23 and above #2539
  • Removed user and password check for AccessTokenCallback #2549

Fixed issues

  • Changed driver behavior to allow prepared statement objects to be reused, preventing a "multiple queries are not allowed" error #2482
  • Adjusted DESTINATION_COL_METADATA_LOCK, in SQLServerBulkCopy, so that is properly released in all cases #2484
  • Fixed connection retry behavior when connectRetryCount is set to a value greater than 1 #2513
  • Resolved JavaDoc warnings that would appear during project build #2521
  • Fixed infinite loop when removing open statement #2547

[12.6.4] Hotfix & Stable Release

29 Aug 18:58
852d49c
Compare
Choose a tag to compare

Fixed issues

  • Reverted "Execute Stored Procedures Directly" feature, as well as subsequent changes related to the feature. #2500

[12.8.1] Hotfix & Stable Release

23 Aug 00:20
96c824d
Compare
Choose a tag to compare

Changed

  • Changed MSAL logging from FINER to FINEST #2491

Fixed issues

  • Adjusted DESTINATION_COL_METADATA_LOCK, in SQLServerBulkCopy, so that is properly released in all cases #2492
  • Reverted "Execute Stored Procedures Directly" feature, as well as subsequent changes related to the feature. #2493
  • Changed driver behavior to allow prepared statement objects to be reused, preventing a "multiple queries are not allowed" error #2494

[12.8.0] Stable Release

31 Jul 18:46
0e97689
Compare
Choose a tag to compare

Fixed issues

  • Fixed regression with specifying argument names in callable statement syntax #2480

[12.7.1] Preview Release

08 Jul 18:12
e9b1fec
Compare
Choose a tag to compare
Pre-release

Added

  • Added JDK 22 support #2414
  • Added credential caching for Managed Identity Credential and Default Azure Credential #2415
  • Added Caching SQLServerBulkCopy object for batch insert #2435
  • Added connection level bulk copy metadata caching #2464
  • Added logging to token caching #2468

Changed

  • Bump org.bouncycastle:bcprov-jdk18on from 1.77 to 1.78 #2403
  • Enum SQLServerSortOrder is now public #2405
  • Bump com.azure:azure-identity from 1.12.1 to 1.12.2 #2447
  • Bump com.microsoft.azure:msal4j from 1.15.0 to 1.15.1 #2448

Fixed issues

  • Execute stored procedures directly for RPC calls #2410
  • Fix SqlAuthenticationToken constructor accepting unix epoch #2425
  • TokenCredential class shouldn't be required #2441
  • Fixed timestamp string conversion error for CallableStatements #2449
  • Fixed CallableStatements default value regression #2452
  • Fixed parentheses parsing for stored procedure names and function names #2467

[12.6.3] Hotfix & Stable Release

20 Jun 19:36
ee044a8
Compare
Choose a tag to compare

Fixed issues

  • Fixed issue where TokenCredential class was required to be imported #2453
  • Fixed timestamp string conversion regression #2455
  • Fixed SQLServerCallableStatement default value regression #2456

[12.6.2] Hotfix & Stable Release

24 May 16:29
17caf22
Compare
Choose a tag to compare

Added

  • Added credential caching for Managed Identity Credential and Default Azure Credential #2426

Fixed issues

  • Check that money and small money are within correct range for bulkcopy #2419
  • Check if TDSCommand counter is null before incrementing #2420
  • Clear prepared statement cache when resetting statement pool connection #2421
  • Clear prepared statement handle before reconnect #2422
  • RPC calls for CallableStatements will be executed directly #2427
  • Corrected authentication token object to accept expiration in milliseconds #2428
  • SocketTimeout should be unbounded by loginTimeout after a successful connection open #2431