JDBC Driver release notes for 2023

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

  • Behavior changes

  • New features

  • Customer-facing bug fixes

Snowflake uses semantic versioning for JDBC Driver updates.

Version 3.14.4 (December 07, 2023)

New features and updates

  • None.

Bug fixes

  • Fixed a NullPointerException that occurred when the gzipDisabled property key had no value.

  • Fixed a security issue with logging related to the temp directory:

    • Logging no longer accesses the temp directory.

    • The default logpath value changed from the temp directory to the home directory.

  • Fixed an issue where the driver failed on JDK v21 with Arrow.

Version 3.14.3 (November 07, 2023)

New features and updates

  • Updated the following libraries:

    • org.codehaus.plexus:plexus-archiver from 2.4.4 to 4.8.0

    • org.codehaus.plexus:plexus-archiver from 2.6 to 4.8.0

    • org.bouncycastle:bc-fips from 1.0.2.1 to 1.0.2.4

    • aws-java-sdk to 1.12.501

    • jackson to 2.15.3

    • netty to 4.1.100.Final

    • grpc to 1.59.0

  • Added the enablePutGet connection property to determine whether to allow PUT and GET commands access to local file systems.

  • Added support for managing the frequency of retries for unsuccessful connection requests:

    • Added the retryTimeout parameter with a default value of 300 seconds.

    • Updated how the driver uses the loginTimeout and maxHttpRetries connection parameters and changed the default value of loginTimeout to 300 seconds.

Bug fixes

  • Fixed an issue relating to NoSuchMethodError when using snowflake-ingest-sdk 2.0.3.

  • Fix an issue with handling NULL to DATE data type conversions.

  • Fixed a GCP downscope token issue.

Version 3.13.34 (October 25, 2023)

New features and updates

  • None.

Bug fixes

  • Fixed an issue relating to failing PUT commands with a GCP Downscope token in snowflake-jdbc-fips.

Version 3.14.2 (October 02, 2023)

New features and updates

  • None.

Bug fixes

  • Fixed an issue where the driver did not honor the useS3RegionUrl from JsonNode in getStageInfo.

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 threw 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.

  • Fixed an issue where “~” was not allowed in PUT/GET file paths.

  • Fixed an issue where the driver would throw 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.

  • Fixed a retry issue in GCP uploadStream that caused partial file uploads when JDBC incorrectly attempted to retry uploading an input stream.

  • Fixed an issue with stored functions and procedures that returned a resultset for getProcedureColumns() and getFunctionColumns() function calls.

  • Fixed an issue that caused StreamLoader to generate excessive log messages.

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.