Releases: dotnet/SqlClient
Releases · dotnet/SqlClient
Preview Release 6.0.0-preview3.24332.3
Breaking Changes
- Dropped support for .NET 6 #2927
- Removed SQL 2000 client-side debugging support for .NET Framework #2981, #2940
Added
- Enabled NuGet package auditing via NuGet.org audit source #3024
- Added support for .NET 9 #2946
- Added dependency on System.Security.Cryptography.Pkcs:9.0.0 to address SYSLIB0057#2946
- Added dependency on Microsoft.Bcl.Cryptography:9.0.0 #2946
- Added missing SqlCommand_BeginExecuteReader code sample #3009
- Added support for SqlConnectionOverrides in OpenAsync() API #2433
- Added localization in Czech, Polish, and Turkish #2987
Fixed
- Reverted default value of UseMinimumLoginTimeout context switch to 'true' #2419
- Added missing DynamicallyAccessedMembers attributes in .NET Runtime reference assemblies. #2946
- Synchronized dependencies of Reference Assemblies with Runtime assemblies #2878
- Fixed lazy initialization of the _SqlMetaData hidden column map for .NET Framework #2964
Changed
- Updated Microsoft.Extensions.Caching.Memory to 9.0.0 for all frameworks #2946
- Updated System.Configuration.ConfigurationManager to 9.0.0 #2946
- Updated docs to use absolute links #2949
- Removed System.Text.Json dependency from .NET 8 #2930
Contributors
Thanks to the following public contributors. Their efforts toward this project are very much appreciated.
For detailed release notes, refer to 6.0.0-preview3.md
Preview Release v6.0.0-preview2.24304.8
Added
- Added a dependency on System.Text.Json 8.0.5 for .NET 8+ and 6.0.10 for other versions #2921
- Added support for JSON native datatype currently in Public preview in SQL Server. #2916, #2892, #2891, #2880, #2882, #2829, #2830
- Added readme to nuget package #2826
Fixed
- Fixed scale serialization when explicitly set to 0 #2411
- Fixed issue blocking GetSchema commands from being enrolled into the current transaction #2876
- Adjusted retry logic to allow errors with negative numbers to be considered transient #2896
- Fixed string formatting in OutOfMemory exceptions #2797
- Increased routing attempts to 10 in netcore for LoginNoFailover and added routing support to LoginWithFailover to standardize routing behavior between netcore and netfx #2873
- Restructured documentation into XML format so that it displays correctly in visual studio #2836, #2822, #2834, #2851, #2863, #2864, #2865, #2869, #2871, #2837, #2821
- Fixed cleanup behavior when column decryption fails. Prevents leaving stale data on the wire for pooled connections #2843, #2825
Changed
- Updated System.Configuration.ConfigurationManager from 8.0.0 to 8.0.1 for .Net 8 #2921
- Updated Microsoft.Extensions.Caching.Memory from 8.0.0 to 8.0.1 for .Net 8 #2921
- Code Health Improvements #2915, #2844, #2812, #2805, #2897, #2376, #2814, #2889, #2885, #2854, #2835, #2442, #2820, #2831, #2907, #2910, #2898, #2928, #2929, #2936, #2939
New Contributors
- @Markeli made their first contribution in #2797
- @EamonHetherton made their first contribution in #2411
For detailed release notes, refer to 6.0.0-preview2.md
Preview Release v6.0.0-preview1.24240.8
[Preview Release 6.0.0-preview1.24240.8] - 2024-08-27
This update brings the below changes over the 5.2 release:
Breaking Changes
Added
- Added
TokenCredential
object to take advantage of token caching inActiveDirectoryAuthenticationProvider
. #2380 - Added
DateOnly
andTimeOnly
support toDataTable
as a structured parameter. #2258 - Added
Microsoft.Data.SqlClient.Diagnostics.SqlClientDiagnostic
type in .NET. #2226 - Added scope trace for
GenerateSspiClientContext
. #2497, #2725
Fixed
- Fixed
Socket.Connect
timeout issue caused by thread starvation. #2777 - Fixed pending data with
SqlDataReader
against an encrypted column. #2618 - Fixed Entra authentication when using infinite connection timeout in
ActiveDirectoryAuthenticationProvider
. #2651 - Fixed
GetSchema
by excluding unsupported engines due to lack of support forASSEMBLYPROPERTY
function. #2593 - Fixed SSPI retry negotiation with default port in .NET. #2559
- Fixed assembly path in .NET 8.0 and
.AssemblyAttributes
. #2550 - Fixed certificate chain validation. #2487
- Fixed clone of
SqlConnection
to includeAccessTokenCallback
. #2525 - Fixed issue with
DateTimeOffset
in table-valued parameters, which was introduced in 5.2. #2453 - Fixed
ArgumentNullException
onSqlDataRecord.GetValue
when using user-defined data type on .NET. #2448 - Fixed
SqlBuffer
andSqlGuild
when it's null. #2310 - Fixed
SqlBulkCopy.WriteToServer
state in a consecutive calls. #2375 - Fixed null reference exception with
SqlConnection.FireInfoMessageEventOnUserErrors
after introducing the batch command. #2399
Changed
- Updated Microsoft.Data.SqlClient.SNI version to
6.0.0-preview1.24226.4
. #2772 - Improved access to
SqlAuthenticationProviderManager.Instance
and avoid early object initiation. #2636 - Removed undocumented properties of
Azure.Identity
inActiveDirectoryAuthenticationProvider
. #2562 - Replaced
System.Runtime.Caching
withMicrosoft.Extensions.Caching.Memory
. #2493 - Updated
EnableOptimizedParameterBinding
to only accept text mode commands. #2417 - Updated
Azure.Identity
version from1.10.3
to1.11.4
. #2577 - Updated
Azure.Core
version from1.35.0
to1.38.0
. #2462 - Updated
Azure.Security.KeyVault.Keys
version from4.4.0
to4.5.0
. #2462 - Updated
Microsoft.IdentityModel.JsonWebTokens
andMicrosoft.IdentityModel.Protocols.OpenIdConnect
from6.35.0
to7.5.0
. #2429 - Removed direct dependency to
Microsoft.Identity.Client
to take the transient dependecy throughAzure.Identity
. #2577 - Removed unnecessary references
Microsoft.Extensions.Caching.Memory
andSystem.Security.Cryptography.Cng
after removing .NET Standard. #2577 - Improved memory allocation when reader opened by
CommandBehavior.SequentialAccess
over the big string columns. #2356 - Improved SSPI by consolidating the context generation to single abstraction and using memory/span for SSPI generation. #2255, #2447
- Reverted the #2281 code changes on ManagedSNI. #2395
- Updated assembly version to 6.0.0.0. #2382
- Code health improvements: #2366, #2369, #2381, #2390, #2392, #2403, #2410, #2413, #2425, #2428, #2440, #2443, #2450, #2466, #2486, #2521, #2522, #2533, #2552, #2560, #2726, #2751, #2811
For detailed release notes, refer to 6.0.0-preview1.md
Stable release v5.1.6
[Stable release 5.1.6] - 2024-08-27
Fixed
- Fixed Transient fault handling issue with
OpenAsync
. #1983 #2508 - Fixed
AcquireTokenAsync
timeout handling for edge cases inActiveDirectoryAuthenticationProvider
. #2706 - Fixed pending data with
SqlDataReader
against an encrypted column. #2618 #2818
Changed
- Upgraded
Azure.Identity
version from 1.11.3 to 1.11.4 [#2649] (#2649) [#2529] (#2529) to address CVE-2024-35255. - Upgraded
Microsoft.Identity.Client
version from 4.60.0 to 4.61.3 [#2649] (#2649) [#2529] (#2529) to address CVE-2024-35255. - Added caching to
TokenCredential
objects to take advantage of token caching. #2776 - Code health improvements: [#2490] (#2490)
Stable release v5.2.2
[Stable release 5.2.2] - 2024-08-27
Fixed
- Fixed
AcquireTokenAsync
timeout handling for edge cases inActiveDirectoryAuthenticationProvider
. #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
onSqlDataRecord.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
Stable release v4.0.6
Stable release v3.1.7
[Stable release 3.1.7] - 2024-08-20
Fixed
- Fixed connection to unsubscribe from transaction completion events before returning it to the connection pool. #2301 #2434
- Fixed
AcquireTokenAsync
timeout handling for edge cases inActiveDirectoryAuthenticationProvider
. #2709 - Fixed the signing issue with
Microsoft.Data.SqlClient
assembly. #2789
Changed
Stable release v5.2.1
[Stable release 5.2.1] - 2024-05-31
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 ifn
is 1, 2, 3, or 4 #2506 - Reverted PR #1983 which caused connection failure delays when using
OpenAsync
#2507 - Fixed
SqlConnection.Clone()
to includeAccessTokenCallback
#2527
Changed
Stable release v5.2.0
[Stable release 5.2.0] - 2024-02-28
Added
- Added a new
AccessTokenCallBack
API toSqlConnection
. #1260 - Added
SqlBatch
support on .NET 6+ #1825, #2223,#2371, #2373 - Added support of
SqlDiagnosticListener
on .NET Standard. #1931 - Added new property
RowsCopied64
toSqlBulkCopy
. #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
Changed
- Improved parsing buffered characters in
TdsParser
. #1544 - Added Microsoft.SqlServer.Types to verify support for SqlHierarchyId and Spatial for .NET Core. #1848
- Moved to new System.Data.SqlTypes APIs on .NET 7 and up. #1934 and #1981
- Removed reference to Microsoft.Win32.Registry since it's shipped starting with .NET 6.0. #1974
- Changed UseOneSecFloorInTimeoutCalculationDuringLogin App Context switch default to true and extended its effect to .NET and .NET Standard. #2012
- Updated
Microsoft.Identity.Client
version from 4.47.2 to 4.53.0. #2031, #2055 - Switched to the new .NET NegotiateAuthentication API on .NET 7.0 and above for SSPI token negotiation using Managed SNI. #2063
- Removed
ignoreSniOpenTimeout
in open connection process on Windows. #2067 - Enforce explicit ordinal for internal
StringComparison
operations. #2068 - Improved error messages when validating server certificates in managed SNI (Linux/macOS) #2060
- Improved CPU usage when
AppContext
switches are in use #2227 - Upgraded
Azure.Identity
dependency version to 1.10.3 to address CVE-2023-36414, #2189 - Changed Microsoft.IdentityModel.JsonWebTokens and Microsoft.IdentityModel.Protocols.OpenIdConnect version 6.24.0 to 6.35.0 #2290 to address CVE-2024-21319
- Updated
Microsoft.Data.SqlClient.SNI
(.NET Framework dependency) andMicrosoft.Data.SqlClient.SNI.runtime
(.NET/.NET Standard dependency) version tov5.2.0
. #2363, which includes removing dead code and addressing static analysis warnings - Code health improvements: #1198, #1829, #1943, #1949, #1959, #1985, #2071, #2073, #2088, #2091, #2098, #2121, #2122, #2132, #2136, #2144, #2147, #2157, #2164, #2166, #2168, #2186, #2254, #2288, #2305, #2317
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 theSqlConnectionEncryptOptionConverter
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