Salesforce

JDBC Driver Release Notes

« Go Back

Information

 
Summary
Last Modified DateAugust 25, 2023
Article Body

This article contains the release notes for the Snowflake JDBC Driver, including the following when applicable:

  • Behavior changes
  • New features
  • Customer-facing bug fixes
Note: The Server Release Notes contains release note information for versions prior to January 2022.

Note: Beginning this month, the JDBC Driver release notes are published on the Snowflake documentation site. Starting in September 2023, these release notes will no longer appear on this page. Please update any links you might have saved.

Version 3.14.1 (August 24, 2023)

    New Features and Updates

    • Added the ability to send optional headers from the util methods.
    • Moved getQueryStatus function to SfBaseSession to support asynchronous calls in stored procedures.

    Bug Fixes

    • Fixed an issue where the driver did not send the entire OSCP URL for private links.
     

    Version 3.14.0 (July 27, 2023)

    BCR (Behavior Change Release) Change

    • Fixed an issue where, under certain conditions, the JDBC driver could retry HTTP requests indefinitely. 
    Previously, during an outage the JDBC driver would retry the failed HTTP call continuously until the request succeeds or until someone force kills the operation.

    With this change, disables infinite HTTP retries originating from execute and executeQuery calls. Now, the JDBC driver limits HTTP retries to seven, by default. Customers can set the maxHttpRetries session parameter to customize the maximum number of retries. Customers can set maxHttpRetries=0 to remove the retry limit, but doing so runs the risk of the JDBC driver infinitely retrying failed HTTP calls.
     

    New Features and Updates

    • Added the CLIENT_OUT_OF_BAND_TELEMETRY_ENABLED session property to allow you to disable OOB telemetry.
    • Improved handling for locatorsUpdateCopy() function calls. Now, the driver returns FALSE instead of throwing an exception.
    • Updated handling for 400 Bad Request errors for S3 clients and added the putGetMaxRetries connection property to configure the maximum number of retries for PUT/GET exceptions for storage clients (default: 7).
    • Added support for httpMaxRetries in DefaultResultStreamProvider.getResultChunk()to improve chunk downloading performance.

    Bug Fixes

    • Fixed an issue where the driver incorrectly through null pointer exceptions (NPEs) when calling driver.getPropertyInfo().
    • Fixed an issue where reader.LoadNextBatch() would occasionally throw a ClosedByInterruptException when reading from the arrow stream.
    • Fixed an issue where the JDBC driver used the wrong proxy settings for S3 clients.
    • Fixed an issue where the downloadStream() function disallowed filenames containing Japanese characters.
    • Fix an issue where '~' was not allowed in PUT/GET file paths.
    • Fixed an issue where the driver would through an InvalidPathException when a Windows file path included the file:// prefix for logging configuration files.
     

    Version 3.13.33 (June 14, 2023)

    New Features and Updates

    • None.

    Bug Fixes

    • Gracefully handle MessageFormat.format exceptions.
     

    Version 3.13.32 (May 26, 2023)

    New Features and Updates

    • None.

    Bug Fixes

    • Fixed a bug introduced in 3.13.31 that affects Java Runtime 8.


    Version 3.13.31 (May 25, 2023)

    Note: Please update to newer versions, especially if you see a bug affecting Java Runtime 8.

    New Features and Updates

    • Enhanced hybrid transactional/analytical processing (HTAP). 
    • Upgraded the org.apache.httpcomponents:httpclient library to version 4.5.13 to pick up a security update.

    Bug Fixes

    • Fixed an issue where authentication attempts would time out for chunk download requests.
    • Fixed an issue regarding parsing the configuration file on Windows.
    • Fixed an int64 overflow issue with large or small datetime values.
    • Improved the error message shown when a connection aborted due to SSL/TLS errors.
    • Fixed an issue where the getTime() function returned a time based on the wrong time zone when useSessionTimezone is enabled.
    • Fixed an issue where ASCII Null characters and control characters were randomly dropped from a resultset with jdbc_query_result_format=JSON.
     

    Version 3.13.30 (April 18, 2023)

    New Features and Updates

    • Upgraded the following software libraries:
      • slf4j-api from version 1.7.25 to version 2.0.6.
      • logback-classic from version 1.2.3 to version 1.3.6.
    • Changed the non-critical "SEVERE: HTTP request took longer than 5 min" from an error message to a warning message.
    • Added the http.proxyProtocol property for JVM proxy settings.

    Bug Fixes

    • Fixed an issue where authentication attempts would time out for chunk download requests.
    • Fixed an issue where login credentials were visible in exceptions when a connection URL failed to part.
    • Fixed a memory leak cause by checking isClosed() before adding a resultset to openResultSets.
    • Fixed an issue where a misleading SAML2 assertion error message was sent when hostnames mismatched.
    • Fixed an issue with URL-encoded OSCP requests.
    • Fixed an issue the SnowflakeFileTransferAgent.uploadStream() function incorrectly handled the overwrite=false option.
    • Fixed an issue where the metadata.etTableTypes() method returned the wrong table types.
    • Updated the driver to expose the SQL error message in an exception message triggered when asynchronous query calls resulted in a failed query and exception.
    • Added a check for rare cases when get procedure column calls return an empty result set.
    • Changed the warning level to debug/info for log messages related to SnowflakeConnectionString parse errors.
    • Fixed an issue where the JDBC driver would retry requests that failed with SSLHandshakeException.
    • Added support for the snowflake.jdbc.enable.illegalAccessWarning system property to allow users to disable illegal access warnings.
    • Fixed an issue whether gsc upload file error messages would display the wrong information.
    • Changed the default TTL value to close an idle connection after 60 seconds.
    • Fixed a prepared statement ID issue by removing extra describe calls.
     

    Version 3.13.29 (March 17, 2023)

    New Features and Updates

    • None.

    Bug Fixes

    • Fixed an issue where incorrect column type names were returned for stored procedure column metadata when USE_STATEMENT_TYPE_CALL_FOR_STORED_PROC_CALLS=true.
    • Fixed an issue where the JDBC would retry a GET request when a file could not be downloaded due to a lack of space on the target filesystem. Now, the driver throws an exception in this situation.
    • Fixed an issue where the JDBC would retry requests on Azure clients when a 404 resource error occurred. Now, the driver throws an exception in this situation.
    • To protect against SQL injection attacks, the JDBC driver now escapes quotes in the pattern search arguments of the the DatabaseMetadata API.
    • Fixed an issue where getClob() calls raised a NullPointerException when a column contained a NULL value. Now, the driver returns NULL when column holds a SQL NULL value.
    • Fixed an issue where the JDBC driver failed to validate an SSO URL before executing it. Now, the driver uses the URLValidator and URLEncoder utilities to validate and encode the URL.
     

    Version 3.13.28 (February 22, 2023)

    New Features and Updates

    • None.

    Bug Fixes

    • Added support for the GEOMETRY data type in the SnowflakeType enum to fix an issue that occurred when calling the metaData.getColumns() function to return metadata that included GEOMETRY data (#1237).
    • Fixed a retry issue in GCP uploadStream that caused partial file uploads when JDBC incorrectly attempted to retry uploading an input stream (#1226).
    • Fixed an issue with stored functions and procedures that returned a resultset for getProcedureColumns() and getFunctionColumns() function calls. (#1242).
    • Fixed an issue that caused StreamLoader to generate excessive log messages (#1223).

    Version 3.13.27 (January 30, 2023)

    New Features and Updates

    • None

    Bug Fixes

    • Fixed a race condition that occasionally occurred during GET and PUT operations.
    • Fixed an issue where using Okta authentication failed when receiving an HTTP 429 error.

    Version 3.13.26 (December 14, 2022)

    New Features

    • Upgraded the arrow library from version 9.0.0 to 10.0.1.
    • Relocated files in META-INF/versions to META-INF/versions/<version_number>/net/snowflake/client/jdbc/internal.
    • Added the getNano() and getOffset() methods to the SnowflakeTimeWithTimezone object to return the number of nanoseconds and the time zone offset, respectively.

    Version 3.13.25 (November 16, 2022)

    BCR (Behavior Change Release) Change

    Caution: Version 3.13.25 of the Snowflake JDBC driver changes the default value of the allowUnderscoresInHost parameter to false. This change impacts PrivateLink customers whose account names contain underscores. In this situation, you must override the default value by setting allowUnderscoresInHost to true

    New Features

    • Set the default value of the allowUnderscoresInHost parameter to false, which converts underscores in account names to hyphens to avoid Apache httpclient connection errors with underscores. This behavior can be turned off by setting allowUnderscoresInHost to true.
    • Updated the aws-java-sdk-bom library version from 1.11.394 to 1.12.327.
    • Added the enableReturnTimestampWithTimeZone parameter to set whether to include the timezone in a timestamp.
    • Added log warnings for each of the error return paths while parsing a SnowflakeConnectString.
    • Added commas to the SnowflakeDatabaseMetaData.getColumn() arguments to improve readability.
    • Added support for stored procedures.

    Bug Fixes

    • Fixed an issue related to using the GET command when GCS_USE_DOWNSCOPED_CREDENTIAL is true.
    • Fixed an issue related to returning result types when the session handle is NULL.

    Version 3.13.24 (October 28, 2022)

    BCR (Behavior Change Release) Change

    Caution: Version 3.13.24 of the Snowflake JDBC driver changes the return values for the Statement.getMoreResults()  and Statement.getupdateCount(), as described below.If your projects are affected by breaking changes related to these functions, Snowflake recommends that you do not install this version into a production environment before testing.

    New Features

    • Upgraded the following libraries:
      • arrow from version 8.0.0 to 9.0.0
      • jacksondatabind from version 2.13.2.2 to 2.13.4.2
      • google-cloud-storage from version 2.5.0 to 2.6.2
    • The Statement.getMoreResults() function now returns TRUE when more statements are available to iterate through in a multi-statement query.
    • The Statement.getupdateCount() function now returns 0  instead of -1 for non-DML queries.
     

    Version 3.13.23 (September 30, 2022)

    New Features

    • Enabled the parallelism parameter for PUT/GET commands when using Azure.

    Bug Fixes

    • Fixed an issue with NoClassDefFoundError in Google libraries in the FIPs driver.
    • Fixed error that occurred when getting procedures with a reader account.

    Version 3.13.22 (August 23, 2022)

    New Features

    • Updated the tika-core library to version 2.4.1.
    • Added support for the new Okta OIE (Okta Identity Engine).

    Bug Fixes

    • Fixed an issue where getColumnClassName() threw an exception when the column type is timestamp_tz.
    • Fixed an issue where calling getSQLStateType() throws an exception while retrieving database metadata.
    • Fixed an issue where calling executeLargeBatch() for prepared statements might result in no rows being inserted.
    • Fixed an issue where QueryStatus could return invalid error codes and messages.
    • Fixed a null pointer exception that sometimes occurred for session-less clients.

    Version 3.13.21 (July 13, 2022)

    New Features

    • Added the getStreams function to the SnowflakeDatabaseMetaData object to list active streams.
    • Updated the prefetch memory maximum retry value to improve chunk download performance.

    Bug Fixes

    • Fixed a memory leak issue with the statement object in the snowflakeConnectionV1::createResultSet function.
    • Fixed a memory leak issue with arrow result sets.
    • Fixed an issue with missing data in the JDBC chunk downloader.

    Version 3.13.20 (June 23, 2022)

    New Feature

    • Implemented fast fail functionality for 404 errors returned from Amazon S3.
    • Updated the following dependency in the JDBC driver:
      • arrow version  7.0.0 to 8.0.0
    • Upgraded the following Google library versions:
      • google-auth-library from 0.9.0 to 1.5.3
      • google-cloud-storage from 1.82.0 to 2.5.0
      • google api client versions 1.30.10 to 1.33.2
      • google http client versions 1.36.0 to 1.41.4

    Version 3.13.19 (May 25, 2022)

    New Feature

    • Updated the isValid() function to send a heartbeat call instead of a SELECT 1 to validate the session connection.
    • Added support for setting VARBINARY byte[] arrays in the SnowflakePreparedStatement.setObject() function.
    • Updated the following dependencies in the JDBC driver:
      • arrow version  0.15.1 to 7.0.0
      • jackson version 2.11.0 to 2.13.2 
      • bouncy version 1.64 to 1.70

    Bug Fixes

    • Fixed an issue with TIMESTAMP_INPUT_FORMAT for stage binding.

    Version 3.13.18 (May 18, 2022)

    New Feature

    • Upgraded the arrow and jackson libraries.

    Bug Fixes

    • Stopped appending retryCount to a scoped URL for chunk downloading.

    Version 3.13.17 (April 14, 2022)

    New Feature

    • Added getters for the timezone and ZonedDateTime for the SnowflakeTimestampWithTimezone object.

    Bug Fixes

    • Created a patch for driver release v3.13.16 that fixes incorrect behavior for getSchemas() function.
    • Fixed the setting of invalid JVM parameters proxyHost and proxyPort.


    Version 3.13.16 (March 17, 2022)

    Bug Fixes

    • Fixed an issue where the nonProxyHosts parameter setting was not honored.

    Version 3.13.15 (February 21, 2022)

    Bug Fixes

    • Refactored the isFileTransfer function into the base class.
    • Refactored the FileTransferAgent facade classes into base class
    • Fixed a segmentation fault issue within Graal VM Native Image applications.
    • Fixed and issue that cause the ChunkDownloader to hang.

    Version 3.13.14 (January 21, 2022)

    Bug Fixes

    • Added streaming ingest related metadata for streaming ingest billing.
    • Updated BC FIPS version in the  public POM.

    Version 3.13.13 (January 18, 2022)

    Bug Fixes

    • Fixed an issue where the JDBC driver was not updating stageInfo for  information related to s3RegionalURL.
    • Fixed an issue with account names containing underscores.
    • Fixed an issue where an  empty result set was returned for schemas containing double quotes when calling getTables() or getColumns().
    • Fixed an issue where getProcedureColumns() was not working with wildcards.
    TitleJDBC Driver Release Notes
    URL NameJDBC-Driver-Release-Notes
    CategoryProduct Release
    Sub Category 
    Article Record TypeRelease Notes

    Powered by