.NET Driver release notes for 2024

This article contains the release notes for the .NET Driver, including the following when applicable:

  • Behavior changes

  • New features

  • Customer-facing bug fixes

Snowflake uses semantic versioning for .NET Driver updates.

Version 3.1.0 (March 27, 2024)

New features and improvements

  • Added support for running asynchronous queries.

Bug fixes

  • Improved exceptions thrown from the Okta authenticator.

  • Fixed an issue with validating very short (1-2 character) account names.

  • Fixed an issue related to retrieving the WAREHOUSE property from a connection string with quoted content, such as "WAREHOUSE=\"two words\"".

Version 3.0.0 (February 29, 2024)

BCR (Behavior Change Release) changes

  • To enhance security, the driver no longer searches a temporary directory for easy logging configurations. Additionally, the driver now requires the logging configuration file on Unix-style systems to limit file permissions to allow only the file owner to modify the files (such as chmod 0600, chmod 0644).

  • The driver now throws a SnowflakeDbException with a QueryID for PUT/GET failures. Previously, the driver returned different types of exceptions, such as FileNotFound and DirectoryNotFound. If your application checked for any of these exceptions, you must update your code to handle only SnowflakeDbException for PUT/GET failures.

  • The driver no longer supports older versions, such as V1 and V2, of the chunk parser/downloader. As part of the upgrade to version V3, the driver no longer supports the SFConfiguration.UseV2JsonParser or SFConfiguration.UseV2ChunkDownloader configuration options. If you used commands similar to the following, you should remove them:

    • SFConfiguration.Instance().ChunkParserVersion = 1; or SFConfiguration.Instance().ChunkParserVersion = 2;

    • SFConfiguration.Instance().ChunkDownloaderVersion = 1; or SFConfiguration.Instance().ChunkDownloaderVersion = 2;

    • SFConfiguration.Instance().UseV2JsonParser

    • SFConfiguration.Instance().UseV2ChunkDownloader

New features and improvements

  • Added support for multiple SAML integrations.

Bug fixes

  • Improved security in the easy logging feature, including:

    • Using a more reliable way of determining which driver directory to use when searching for client configuration files.

    • No longer using a temporary directory for configuration search.

    • Enforcing additional file permissions checks under Unix for increased security.

    • Adding more verbose logging.

  • Fixed an Okta retry issue for SSO/SAML endpoints.

  • Added fast failing for commands without text execution.

  • Fixed exceptions thrown from PUT/GET failed executions to contain QueryId if possible.

  • Replaced the Portable.BouncyCastle library with BouncyCastle.Cryptography.

Version 2.2.0 (January 17, 2024)

BCR (Behavior Change Release) changes

  • Beginning with version 2.2.0, the .NET driver automatically replaces underscores (_) in account names with hyphens (-) when constructing a host name based on an account name. This change impacts PrivateLink customers whose account names contain underscores. In this situation, you must override the default value by setting allowUnderscoresInHost to true. You can override this behavior by setting allowUnderscoresInHost=true in the ConnectionString.

    This change was made to fix the DNS resolution errors that occurred when connecting over the public link with Snowflake accounts that had underscores in their account names.

New features and updates

  • Improved Arrow performance.

  • Automatically replaces underscores (_) in account names with hyphens (-) when constructing a host name based on an account name.

  • Added an allowUnderscoresInHost configuration parameter to allow underscores (_) in account names to be maintained in the constructed host name. This parameter lets you override the behavior change associated with this release.

Bug fixes

  • To fix an issue with connection timeouts, the driver now closes expired sessions asynchronously when connecting.