Skip to content

Update dependency Microsoft.Data.SqlClient to v7#17

Open
renovate[bot] wants to merge 1 commit intomasterfrom
renovate/microsoft.data.sqlclient-7.x
Open

Update dependency Microsoft.Data.SqlClient to v7#17
renovate[bot] wants to merge 1 commit intomasterfrom
renovate/microsoft.data.sqlclient-7.x

Conversation

@renovate
Copy link
Copy Markdown

@renovate renovate bot commented Mar 31, 2026

ℹ️ Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
Microsoft.Data.SqlClient (source) 2.1.37.0.0 age adoption passing confidence

Release Notes

dotnet/sqlclient (Microsoft.Data.SqlClient)

v7.0.0

This section summarizes all changes across the 7.0 preview cycle for users upgrading from the latest 6.1 stable release.
See the full release notes for detailed descriptions.

Also released as part of this milestone:

  • Released Microsoft.Data.SqlClient.Extensions.Abstractions 1.0.0. See release notes.
  • Released Microsoft.Data.SqlClient.Extensions.Azure 1.0.0. See release notes.
  • Released Microsoft.Data.SqlClient.Internal.Logging 1.0.0. See release notes.
  • Released Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider 7.0.0. See release notes.
Changed
  • Breaking: Removed Azure dependencies from the core package. Entra ID authentication (ActiveDirectoryAuthenticationProvider and related types) has been extracted into a new Microsoft.Data.SqlClient.Extensions.Azure package. The core Microsoft.Data.SqlClient package no longer depends on Azure.Core, Azure.Identity, or their transitive dependencies. Applications using Entra ID authentication must now install Microsoft.Data.SqlClient.Extensions.Azure separately.
    (#​1108,
    #​3680,
    #​3902,
    #​3904,
    #​3908,
    #​3917,
    #​3982,
    #​3978,
    #​3986)

  • Two additional packages were introduced to support this separation: Microsoft.Data.SqlClient.Extensions.Abstractions (shared types between the core driver and extensions) and Microsoft.Data.SqlClient.Internal.Logging (shared ETW tracing infrastructure).
    (#​3626,
    #​3628,
    #​3967,
    #​4038)

  • Deprecated SqlAuthenticationMethod.ActiveDirectoryPassword (ROPC flow). The method is now marked [Obsolete] and will generate compiler warnings. Migrate to ActiveDirectoryInteractive, ActiveDirectoryServicePrincipal, ActiveDirectoryManagedIdentity, or ActiveDirectoryDefault.
    (#​3671)

  • Reverted public visibility of internal interop enums (IoControlCodeAccess and IoControlTransferType) that were accidentally made public during the project merge.
    (#​3900)

  • Removed Constrained Execution Region error handling blocks and associated SqlConnection cleanup.
    (#​3535)

  • Performance improvements across SqlStatistics timing, Always Encrypted scenarios, and connection opening:
    (#​3609,
    #​3612,
    #​3732,
    #​3660,
    #​3791,
    #​3772,
    #​3554)

  • Allow SqlBulkCopy to operate on hidden columns.
    (#​3590)

  • Updated UserAgent feature to use a pipe-delimited format, replacing the previous JSON format.
    (#​3826)

  • Minor improvements to Managed SNI tracing to capture continuation events and errors.
    (#​3859)

Added
  • Added SspiContextProvider abstract class and SqlConnection.SspiContextProvider property, enabling custom SSPI authentication for scenarios like cross-domain Kerberos negotiation and NTLM username/password authentication.
    (#​2253,
    #​2494)

  • Continued refinement of packet multiplexing with bug fixes and stability improvements, plus new app context switches for opt-in control.
    (#​3534,
    #​3537,
    #​3605)

  • Added support for enhanced routing, a TDS feature that allows the server to redirect connections to a specific server and database during login, enabling Azure SQL Hyperscale read replica load balancing.
    (#​3641,
    #​3969,
    #​3970,
    #​3973)

  • Updated pipelines and test suites to compile the driver using the .NET 10 SDK.
    (#​3686)

  • Added SqlConfigurableRetryFactory.BaselineTransientErrors static property exposing the default transient error codes list as a ReadOnlyCollection<int>.
    (#​3903)

  • Added app context switch Switch.Microsoft.Data.SqlClient.EnableMultiSubnetFailoverByDefault to set MultiSubnetFailover=true globally without modifying connection strings.
    (#​3841)

  • Added app context switch Switch.Microsoft.Data.SqlClient.IgnoreServerProvidedFailoverPartner to let the client ignore server-provided failover partner info in Basic Availability Groups.
    (#​3625)

  • Enabled SqlClientDiagnosticListener for SqlCommand on .NET Framework, closing a long-standing observability gap where diagnostic events were previously only available on .NET Core.
    (#​3658)

  • Brought the 15 strongly-typed diagnostic event classes in the Microsoft.Data.SqlClient.Diagnostics namespace (e.g., SqlClientCommandBefore, SqlClientConnectionOpenAfter, SqlClientTransactionCommitError) to .NET Framework as part of the codebase merge. These types were originally introduced for .NET Core in 6.0.
    (#​3493)

  • Enabled User Agent Feature Extension (opt-in via Switch.Microsoft.Data.SqlClient.EnableUserAgent).
    (#​3606)

  • Added actionable error message when Entra ID authentication methods are used without the Microsoft.Data.SqlClient.Extensions.Azure package installed.
    (#​3962,
    #​4046)

Fixed
  • Fixed a connection performance regression where SPN generation was triggered for non-integrated authentication modes (e.g., SQL authentication) on the native SNI path.
    (#​3929)

  • Fixed ExecuteScalar to propagate errors when the server sends data followed by an error token.
    (#​3912)

  • Fixed NullReferenceException in SqlDataAdapter when processing batch scenarios.
    (#​3857)

  • Fixed reading of multiple app context switches from a single AppContextSwitchOverrides configuration field.
    (#​3960)

  • Fixed an edge case in TdsParserStateObject.TryReadPlpBytes where zero-length reads returned null instead of an empty array.
    (#​3872)

  • Fixed issue where extra connection deactivation was occurring.
    (#​3758)

  • Fixed debug assertion in connection pool (no impact to production code).
    (#​3587)

  • Prevented uninitialized performance counters escaping CreatePerformanceCounters.
    (#​3623)

  • Fixed SetProvider to return immediately if user-defined authentication provider found.
    (#​3620)

  • Fixed connection pool concurrency issue.
    (#​3632)

v6.1.4

This update brings the following changes since the 6.1.3 release:

Fixed
  • Fixed NullReferenceException issue with SqlDataAdapter when processing batch scenarios where certain SQL RPC calls may not include system parameters.
    (#​3877)
  • Fixed connection pooling issue where extra connection deactivation was causing active connection counts to go negative.
    (#​3776)
Added
AppContext Switch for enabling MultiSubnetFailover

What Changed:

  • Added new AppContext switch Switch.Microsoft.Data.SqlClient.EnableMultiSubnetFailoverByDefault to set MultiSubnetFailover=true by default in connection string.
    (#​3851)

Who Benefits:

  • Applications that need MultiSubnetFailover enabled globally without modifying connection strings.

Impact:

  • Applications can now enable MultiSubnetFailover globally using one of the following methods:
// In application code
AppContext.SetSwitch("Switch.Microsoft.Data.SqlClient.EnableMultiSubnetFailoverByDefault", true);
// In runtimeconfig.json
{
  "configProperties": {
    "Switch.Microsoft.Data.SqlClient.EnableMultiSubnetFailoverByDefault": true
  }
}
<!-- In App.Config -->
<runtime>
  <AppContextSwitchOverrides value="Switch.Microsoft.Data.SqlClient.EnableMultiSubnetFailoverByDefault=true" />
</runtime>
Changed
  • Optimized SqlStatistics execution timing by using Environment.TickCount instead of more expensive timing mechanisms.
    (#​3830)
  • Updated dependencies (#​3843):
    • .NET Framework 4.6.2:
      • Azure.Core 1.47.1 -> 1.50.0
      • Azure.Identity 1.14.2 -> 1.17.1
      • Microsoft.Identity.Client 4.80.0 - Added
      • System.Buffers 4.5.1 -> 4.6.1
      • System.Diagnostics.DiagnosticSource 8.0.1 - Added
      • System.IdentityModel.Tokens.Jwt 7.7.1 - Added
      • System.Memory 4.6.3 - Added
      • System.Text.Json 8.0.5 -> 8.0.6
      • System.Text.RegularExpressions 4.3.1 - Added
      • Microsoft.Bcl.Cryptography - Removed
      • System.Text.Encodings.Web - Removed
    • .NET 8.0:
      • Azure.Core 1.47.1 -> 1.50.0
      • Azure.Identity 1.14.2 -> 1.17.1
      • Microsoft.Identity.Client 4.80.0 - Added
      • System.Diagnostics.DiagnosticSource 8.0.1 - Added
      • System.IdentityModel.Tokens.Jwt 7.7.1 - Added
      • Microsoft.Bcl.Cryptography - Removed
      • System.Text.Json - Removed
    • .NET 9.0:
      • Azure.Core 1.47.1 -> 1.50.0
      • Azure.Identity 1.14.2 -> 1.17.1
      • Microsoft.Extensions.Caching.Memory 9.0.4 -> 9.0.11
      • Microsoft.Identity.Client 4.80.0 - Added
      • System.Configuration.ConfigurationManager 9.0.4 -> 9.0.11
      • System.Diagnostics.DiagnosticSource 9.0.11 - Added
      • System.IdentityModel.Tokens.Jwt 7.7.1 - Added
      • System.Security.Cryptography.Pkcs 9.0.4 -> 9.0.11
      • Microsoft.Bcl.Cryptography - Removed
      • System.Text.Json - Removed
    • .NET Standard 2.0:
      • Azure.Core 1.47.1 -> 1.50.0
      • Azure.Identity 1.14.2 -> 1.17.1
      • Microsoft.Extensions.Caching.Memory 9.0.4 -> 8.0.1
      • Microsoft.Identity.Client 4.80.0 - Added
      • System.Configuration.ConfigurationManager 9.0.4 -> 8.0.1
      • System.Diagnostics.DiagnosticSource 8.0.1 - Added
      • System.IdentityModel.Tokens.Jwt 7.7.1 - Added
      • System.Security.Cryptography.Pkcs 9.0.4 -> 8.0.1
      • System.Text.Json 9.0.5 -> 8.0.6
      • Microsoft.Bcl.Cryptography - Removed

v6.1.3

This update includes the following changes since the 6.1.2 release:

Added
App Context Switch for Ignoring Server-Provided Failover Partner

What Changed:

  • A new app context switch Switch.Microsoft.Data.SqlClient.IgnoreServerProvidedFailoverPartner was introduced to let the client ignore server-provided failover partner info in Basic Availability Groups (BAGs). When the switch is enabled, only the failover partner specified in the connection string is used; server-supplied partner values are skipped. This context switch was introduced in PR #​3702.

Who Benefits:

  • Applications connecting to SQL Server BAGs using TCP and custom ports, especially where the server's provided partner name lacks the protocol, host, or port. This avoids connection failures when the server-provided partner is incompatible or incomplete.
  • Teams who manage availability groups and rely on client-side control of failover behavior in heterogeneous networking environments.

Impact:

  • If your environment might be affected (i.e., you operate a BAG with custom ports, or have experienced failures after failover), you can enable the new switch in your application:
AppContext.SetSwitch("Switch.Microsoft.Data.SqlClient.IgnoreServerProvidedFailoverPartner", true);
  • Then, ensure your connection string includes your preferred failover partner (with correct tcp:host,port) so that the client uses that instead of the server's suggestion.
  • Without enabling this, by default, the client continues to prefer the server-provided partner, maintaining backwards compatibility.
Fixed
  • Fixed an issue to ensure reliable metrics initialization during startup,
    preventing missed telemetry when EventSource is enabled early.
    (#​3718)

v6.1.2

This update includes the following changes since the 6.1.1 release:

Fixed
  • Fixed an issue where initializing PerformanceCounters would throw System.InvalidOperationException #​3629
  • Fixed an issue where a Custom SqlClientAuthenticationProvider was being overwritten by default implementation. #​3651
  • Fixed a concurrency issue in connection pooling where the number of active connections could be lower than the configured maximum pool size. #​3653

v6.1.1

This update includes the following changes since the 6.1.0 release:

Fixed
  • Reverted changes related to improving partial packet detection, fixup, and replay functionality. This revert addresses regressions introduced in 6.1.0. (#​3556)
  • Applied reference assembly corrections supporting vector, fixed JSON tests, and ensured related tests are enabled. #​3562
  • Fixed SqlVector<T>.Null API signature in Reference assembly. #​3521
Changed
  • Upgraded Azure.Identity and other dependencies to newer versions. (#​3538) (#​3552)

v6.1.0

This update brings the following changes since the
6.1.0-preview2 release:

Added

No new features were added.

Fixed
  • Fixed missing socket error codes on non-Windows platforms.
    (#​3475)
  • Fixed primary/secondary server SPN handling during SSPI negotiation.
    (#​3478)
  • Fixed AzureKeyVaultProvider package key caching to serialize Azure key fetch
    operations.
    (#​3477)
  • Fixed a rare error related to multi-packet async text reads.
    (#​3474)
  • Fixed some spelling errors in the API docs.
    (#​3500)
  • Fixed a rare multi-packet string corruption bug.
    (#​3513)
Changed
SqlDecimal type workarounds conversions

What Changed:

  • Changed how SqlDecimal type workarounds perform conversions to meet
    compliance policies.
    (#​3467)

Who Benefits:

  • Microsoft products must not use undocumented APIs on other Microsoft products.
    This change removes calls to undocumented APIs and replaces them with
    compliant API use.

Impact:

  • These changes impose an observed 5% decrease in performance on .NET Framework.
SqlVector API improvements

What Changed:

  • Several changes were made to the SqlVector API published in the
    6.1.0-preview2 release
    (#​3472):
    • The SqlVector class was changed to a readonly struct.
    • The null value constructor was changed to a static CreateNull() method.
    • The Size property was removed.

Who Benefits:

  • SqlVector instances gain the efficiencies of struct handling.

Impact:

  • Early-adopter applications may require updates if they rely on the old APIs
    and any class-specific behaviour.

v6.0.5

This update brings the below changes over the previous stable release:

Fixed
  • Fixed NullReferenceException issue with SqlDataAdapter when processing batch scenarios where certain SQL RPC calls may not include system parameters.
    (#​3878)
Added

What Changed:

  • Added new AppContext switch Switch.Microsoft.Data.SqlClient.EnableMultiSubnetFailoverByDefault to set MultiSubnetFailover=true by default in connection string.
    (#​3852)

Who Benefits:

  • Applications that need MultiSubnetFailover enabled globally without modifying connection strings.

Impact:

  • Applications can now enable MultiSubnetFailover globally using one of the following methods:
// In application code
AppContext.SetSwitch("Switch.Microsoft.Data.SqlClient.EnableMultiSubnetFailoverByDefault", true);
// In runtimeconfig.json
{
  "configProperties": {
    "Switch.Microsoft.Data.SqlClient.EnableMultiSubnetFailoverByDefault": true
  }
}
<!-- In App.Config -->
<runtime>
  <AppContextSwitchOverrides value="Switch.Microsoft.Data.SqlClient.EnableMultiSubnetFailoverByDefault=true" />
</runtime>
Changed
  • Updated dependencies (#​3840):
    • .NET Framework 4.6.2:

      • Azure.Core 1.50.0 - Added
      • Azure.Identity 1.14.2 -> 1.17.1
      • Microsoft.Identity.Client 4.80.0 - Added
      • Microsoft.IdentityModel.JsonWebTokens 7.5.0 -> 7.7.1
      • Microsoft.IdentityModel.Protocols.OpenIdConnect 7.5.0 -> 7.7.1
      • System.Buffers 4.5.1 -> 4.6.1
      • System.Text.Json 8.0.5 -> 8.0.6
      • Microsoft.Bcl.Cryptography - Removed
      • System.Text.Encodings.Web - Removed
    • .NET 8.0:

      • Azure.Core 1.50.0 - Added
      • Azure.Identity 1.14.2 -> 1.17.1
      • Microsoft.Identity.Client 4.80.0 - Added
      • Microsoft.IdentityModel.JsonWebTokens 7.5.0 -> 7.7.1
      • Microsoft.IdentityModel.Protocols.OpenIdConnect 7.5.0 -> 7.7.1
      • Microsoft.Bcl.Cryptography - Removed
      • System.Text.Json - Removed
    • .NET 9.0:

      • Azure.Core 1.50.0 - Added
      • Azure.Identity 1.14.2 -> 1.17.1
      • Microsoft.Extensions.Caching.Memory 9.0.4 -> 9.0.11
      • Microsoft.Identity.Client 4.80.0 - Added
      • Microsoft.IdentityModel.JsonWebTokens 7.5.0 -> 7.7.1
      • Microsoft.IdentityModel.Protocols.OpenIdConnect 7.5.0 -> 7.7.1
      • Microsoft.Bcl.Cryptography - Removed
      • System.Text.Json - Removed

v6.0.4

This update brings the below changes over the previous stable release:

Added
App Context Switch for Ignoring Server-Provided Failover Partner

What Changed:

  • A new app context switch Switch.Microsoft.Data.SqlClient.IgnoreServerProvidedFailoverPartner was introduced to let the client ignore server-provided failover partner info in Basic Availability Groups (BAGs). When the switch is enabled, only the failover partner specified in the connection string is used; server-supplied partner values are skipped. This context switch was introduced in PR #​3703.

Who Benefits:

  • Applications connecting to SQL Server BAGs using TCP and custom ports, especially where the server's provided partner name lacks the protocol, host, or port. This avoids connection failures when the server-provided partner is incompatible or incomplete.
  • Teams who manage availability groups and rely on client-side control of failover behavior in heterogeneous networking environments.

Impact:

  • If your environment might be affected (i.e., you operate a BAG with custom ports, or have experienced failures after failover), you can enable the new switch in your application:
AppContext.SetSwitch("Switch.Microsoft.Data.SqlClient.IgnoreServerProvidedFailoverPartner", true);
  • Then, ensure your connection string includes your preferred failover partner (with correct tcp:host,port) so that the client uses that instead of the server's suggestion.
  • Without enabling this, by default, the client continues to prefer the server-provided partner, maintaining backwards compatibility.

v6.0.3

This update brings the below changes over the previous stable release:

Fixed
  • Fixed an issue where a Custom SqlClientAuthenticationProvider was being overwritten by default implementation. #​3652
  • Fixed a concurrency issue in connection pooling where the number of active connections could be lower than the configured maximum pool size. #​3654
Changed
  • Updated MSAL usage as per code compliance requirements #​3360
  • Updated SqlDecimal implementation to improve code compliance #​3466
  • Updated Azure.Identity and related dependencies #​3553

v6.0.2

This update brings the following changes since the
6.1.0-preview1 release:

Added
Added dedicated SQL Server vector datatype support

What Changed:

  • Optimized vector communications between MDS and SQL Server 2025, employing a
    custom binary format over the TDS protocol.
    (#​3433,
    #​3443)
  • Reduced processing load compared to existing JSON-based vector support.
  • Initial support for 32-bit single-precision floating point vectors.

Who Benefits:

  • Applications moving large vector data sets will see beneficial improvements
    to processing times and memory requirements.
  • Vector-specific APIs are ready to support future numeric representations with
    a consistent look-and-feel.

Impact:

  • Reduced transmission and processing times for vector operations versus JSON
    using SQL Server 2025 preview:
    • Reads: 50x improvement
    • Writes: 3.3x improvement
    • Bulk Copy: 19x improvement
    • (Observed with vector column of max 1998 size, and 10,000 records for each
      operation.)
  • Improved memory footprint due to the elimination of JSON
    serialization/deserialization and string representation bloat.
  • For backwards compatibility with earlier SQL Server Vector implementations,
    applications may continue to use JSON strings to send/receive vector data,
    although they will not see any of the performance improvements noted above.
Revived .NET Standard 2.0 target support

What Changed:

Who Benefits:

  • Libraries that depend on MDS may seamlessly target any of the following
    frameworks:
    • .NET Standard 2.0
    • .NET Framework 4.6.2 and above
    • .NET 8.0
    • .NET 9.0
  • Applications should continue to target runtimes.
    • The MDS .NET Standard 2.0 target framework support does not include an
      actual implementation, and cannot be used with a runtime.
    • An application's build/publish process should always pick the appropriate
      MDS .NET/.NET Framework runtime implementation.
    • Custom build/publish actions that incorrectly try to deploy the MDS .NET
      Standard 2.0 reference DLL at runtime are not supported.

Impact:

  • Libraries targeting .NET Standard 2.0 will no longer receive warnings like
    this:
    • warning NU1701: Package 'Microsoft.Data.SqlClient 6.0.2' was restored using '.NETFramework,Version=v4.6.1, .NETFramework,Version=v4.6.2, .NETFramework,Version=v4.7, .NETFramework,Version=v4.7.1, .NETFramework,Version=v4.7.2, .NETFramework,Version=v4.8, .NETFramework,Version=v4.8.1' instead of the project target framework '.NETStandard,Version=v2.0'. This package may not be fully compatible with your project.
Fixed
  • Fixed missing <NeutralLanguage> property.
    (#​3325)
  • Fixed injection of UTF-8 BOM during bulk copy.
    (#​3399)
  • Fixed SqlCachedBuffer async read edge case.
    (#​3329)
  • Fixed SqlSequentialTextReader edge case with single-byte reads.
    (#​3383)
  • Fixed an incorrect error message when parsing connection string PoolBlockingPeriod.
    (#​3411)
  • Added missing ToString() override to SqlJson.
    (#​3427)
Changed

v6.0.1

This update brings the below changes over the previous release:

Fixed
  • Fixed reference assembly definitions for SqlClientDiagnostic APIs #​3097
  • Fixed issue with down-level SSL/TLS version warnings #​3126
Changed
  • Dependency changes
    • Updated SNI dependency Microsoft.Data.SqlClient.SNI and Microsoft.Data.SqlClient.SNI.runtime to 6.0.2 #​3116 #​3117

v6.0.0

No changes since the last preview release

v5.2.3

This update brings the following changes since the 5.2.2 release:

Fixed
  • Fixed possible NullPointerException during socket receive (PR #​3284)
  • Fixed inconsistencies between source and reference projects (PR #​3124)
  • Adjusted retry logic to allow errors with negative numbers to be considered transient (PR #​3185)
Changed

v5.2.2

Fixed
  • Fixed AcquireTokenAsync timeout handling for edge cases in ActiveDirectoryAuthenticationProvider. #​2650
  • Fixed issue with Socket.Connect in managed SNI. #​2779
  • Fixed path for AssemblyAttributes in obj folder causing NET 8.0 assembly to appear in NET 6.0 dll. #​2789
  • Fixed SSPI retry negotiation with default port in .NET. #​2815
  • Fixed ArgumentNullException on SqlDataRecord.GetValue when using user-defined data type on .NET. #​2816
  • Fixed pending data with SqlDataReader against an encrypted column. #​2817
Changed
  • Upgraded Azure.Identity version from 1.11.3 to 1.11.4 #​2648 to address CVE-2024-35255.
  • Upgraded Microsoft.Identity.Client version from 4.60.0 to 4.61.3 #​2648 to address CVE-2024-35255.
  • Added caching to TokenCredential objects to take advantage of token caching. #​2775

v5.2.1

This update brings the below changes over the previous release:

Fixed
  • Fixed connection errors on Linux when Data Source property contains both named instance and port #​2436
  • Fixed SqlConnection.FireInfoMessageEventOnUserErrors when set to true throws an exception #​2505
  • Fixed exception when using DATETIMEOFFSET(n) in a TVP if n is 1, 2, 3, or 4 #​2506
  • Reverted PR #​1983 which caused connection failure delays when using OpenAsync #​2507
  • Fixed SqlConnection.Clone() to include AccessTokenCallback #​2527
Changed
  • Upgraded Azure.Identity version from 1.10.3 to 1.11.3 #​2492, #​2528
  • Upgraded Microsoft.Identity.Client version from 4.56.0 to 4.60.3 #​2492
  • Code Health improvements: #​2467

v5.2.0

Added
  • Added a new AccessTokenCallBack API to SqlConnection. #​1260
  • Added SqlBatch support on .NET 6+ #​1825, #​2223,#​2371, #​2373
  • Added support of SqlDiagnosticListener on .NET Standard. #​1931
  • Added new property RowsCopied64 to SqlBulkCopy. #​2004
  • Added support for the SuperSocketNetLib registry option for Encrypt on .NET on Windows. #​2047
  • Added the ability to generate debugging symbols in a separate package file #​2137
  • Added Workload Identity authentication support #​2159, #​2264
  • Added support for Big Endian systems #​2170
  • Added support for Georgian collation #​2194
  • Added Localization support on .NET #​2210
  • Added .NET 8 support #​2230
  • Added explicit version for major .NET version dependencies on System.Runtime.Caching 8.0.0, System.Configuration.ConfigurationManager 8.0.0, and System.Diagnostics.
  • DiagnosticSource 8.0.0 #​2303
Fixed
  • Fixed Always Encrypted secure enclave retry logic for async queries. #​1988
  • Fixed activity correlator to continue use of same GUID for connection activity. #​1997
  • Fixed behavior when error class is greater than 20 on connection retry. #​1953
  • Fixed error message when symmetric key decryption failed using Always Encrypted. #​1948
  • Fixed TransactionScope connection issue when Enlist is enable, Pooling is disabled and network connection type is Redirect. #​1960
  • Fixed TDS RPC error on large queries in SqlCommand.ExecuteReaderAsync. #​1936
  • Fixed throttling of token requests by calling AcquireTokenSilent. #​1925
  • Fixed Linux code coverage result in Build proj. #​1950
  • Fixed NullReferenceException in GetBytesAsync. #​1906
  • Fixed Transient fault handling issue with OpenAsync. #​1983
  • Fixed invariant mode checks. #​1917
  • Fixed GC behavior in TdsParser by adding array rental capability in TryReadPlpUnicodeChars. #​1866
  • Fixed socket synchronization issue during connect in managed SNI. #​1029
  • Fixed issue with SqlConnectionStringBuilder property indexer not supporting non-string values. #​2018
  • Fixed SqlDataAdapter.Fill and configurable retry logic issue on .NET Framework. #​2084
  • Fixed SqlConnectionEncryptOption type conversion by introducing the SqlConnectionEncryptOptionConverter attribute when using appsettings.json files. #​2057
  • Fixed th-TH culture info issue on Managed SNI. #​2066
  • Fixed an issue when using the Authentication option, but not encrypting on .NET Framework where the server certificate was being incorrectly validated #​2224
  • Fixed a deadlock problem for distributed transactions when on .NET #​2161
  • Fixed an issue with connecting to named instances on named pipes in managed SNI (Linux/macOS) #​2142
  • Fixed LocalDb connection issue with an invalid source when using managed SNI #​2129
  • Fixed an AccessViolationException when using a SQL Express user instance #​2101
  • Fixed a metadata query issue when connecting to Azure SQL Edge #​2099
  • Fixed file version information for .NET and .NET Standard binaries #​2093
  • Fixed the SPN sent for a named instance when using Kerberos authentication on Linux/macOS #​2240
  • Fixed connection to unsubscribe from transaction completion events before returning it to the connection pool #​2301
  • Fixed InvalidCastException when reading an Always Encrypted date or time column #​2275
  • Fixed token caching to prevent expired access tokens from being reused in a connection pool #​2273
Changed

v5.1.9

This update brings the following changes since the 5.1.8 release:

Changed
  • Use Environment.TickCount for SqlStatistics execution timing.
    (#​3831)
  • Updated dependencies (#​3838):
    • .NET Standard 2.0:
      • Microsoft.Win32.Registry - Removed
      • System.Buffers 4.5.1 -> 4.6.1
      • System.IdentityModel.Tokens.Jwt 6.35.0 - Added
      • System.Text.Encodings.Web - Removed
    • .NET Standard 2.1:
      • Microsoft.Win32.Registry - Removed
      • System.IdentityModel.Tokens.Jwt 6.35.0 - Added
      • System.Text.Encodings.Web - Removed
    • .NET Framework 4.6.2:
      • System.Buffers 4.5.1 -> 4.6.1
      • System.IdentityModel.Tokens.Jwt 6.35.0 - Added
      • System.Text.Encodings.Web - Removed
      • System.Text.Json - Removed
    • .NET 6.0:
      • System.Diagnostics.DiagnosticSource - Removed
      • System.IdentityModel.Tokens.Jwt 6.35.0 - Added
      • System.Text.Encodings.Web - Removed

v5.1.8

This update brings the following changes since the 5.1.7 release:

Added
App Context Switch for Ignoring Server-Provided Failover Partner

What Changed:

  • A new app context switch Switch.Microsoft.Data.SqlClient.IgnoreServerProvidedFailoverPartner was introduced to let the client ignore server-provided failover partner info in Basic Availability Groups (BAGs). When the switch is enabled, only the failover partner specified in the connection string is used; server-supplied partner values are skipped. This context switch was introduced in PR #​3704.

Who Benefits:

  • Applications connecting to SQL Server BAGs using TCP and custom ports, especially where the server's provided partner name lacks the protocol, host, or port. This avoids connection failures when the server-provided partner is incompatible or incomplete.
  • Teams who manage availability groups and rely on client-side control of failover behavior in heterogeneous networking environments.

Impact:

  • If your environment might be affected (i.e., you operate a BAG with custom ports, or have experienced failures after failover), you can enable the new switch in your application:
AppContext.SetSwitch("Switch.Microsoft.Data.SqlClient.IgnoreServerProvidedFailoverPartner", true);
  • Then, ensure your connection string includes your preferred failover partner (with correct tcp:host,port) so that the client uses that instead of the server's suggestion.
  • Without enabling this, by default, the client continues to prefer the server-provided partner, maintaining backwards compatibility.
Fixed
  • Fixed a bulk copy bug that incorrectly prepended a UTF-8 Byte-Order-Marker
    when processing row data.
    (#​3617)
Changed
  • Modernized creation of Microsoft.Identity.Client.PublicClientApplication
    instances to use its builder pattern.
    (#​3367)
  • Replaced use of undocumented .NET Framework internals when reading
    SqlDecimal values.
    (#​3465)
  • Updated the following dependencies
    (#​3754):
    • Azure.Core 1.41.0
      (Avoids transitive vulnerability)
    • Azure.Identity 1.12.1
    • Microsoft.Identity.Client 4.76.0

v5.1.7

This update brings the following changes since the 5.1.6 release:

Fixed
  • Fixed possible NullPointerException during socket receive (PR #​3285)
  • Fixed inconsistencies between source and reference projects (PR #​3180)
Changed

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants