JDBC Driver release notes for 2024

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.

See JDBC Driver for documentation.

Version 3.21.0 (December 11, 2024)

New features and updates

  • Added support for regional Google Cloud Storage endpoints.

  • Added the SKIP_TOKEN_FILE_PERMISSIONS_VERIFICATION option to skip token file permission verification.

  • Added the JAVA_LOGGING_CONSOLE_STD_OUT option to override default java.util.logging.ConsoleHandler to write to stderr or stdout with a specific threshold.

  • Added array bind supported log for prepared statements.

  • Removed the experimental label from snowflake-jdbc-thin artifact.

  • Changed the levels for some log messages.

  • Updated the Google and Netty dependencies.

  • Updated the javadoc documentation.

Bug fixes

  • Replaced raw asserts with exceptions.

  • Changed the IV length to 12 bytes for GCM.

  • Changed initialization of SecureRandom to use a default JVM random number generator.

  • Fixed an issue with merging io.netty.versions.properties during shade.

  • Fixed uncontrolled logging from Arrow library.

  • Fixed native libraries relocation for Netty and Conscrypt during shade.

  • Fixed get object and get bytes support for the native arrow structured type.

Version 3.20.0 (October 30, 2024)

New features and updates

  • Added support for ZSTD decompression.

  • Bumped the commons IO dependency to version 2.17.0.

Bug fixes

  • Fixed an issue affecting JDBC drivers where files pushed to Azure and GCP stages were uploaded without client-side encryption when the CLIENT_ENCRYPTION_KEY_SIZE parameter was set to 256-bit rather than the default 128-bit. For more information, see the Snowflake JDBC Security Advisory.

Version 3.19.1 (October 25, 2024)

New features and updates

  • Updated the protobuf-java dependency to version 3.25.5.

  • Added log message for canceled query reasons.

  • Updated bouncy castle dependencies.

  • Added troubleshooting guide link to the messages for SSL exceptions.

Bug fixes

  • Unified the structured types string representation.

  • Fixed downloading the stream from the git repository.

  • Fixed an issue with the connection timeout parameter.

  • Fixed issues with Arrow logging.

  • Changed the custom cloud storage header metadata handling to be case-insensitive.

Version 3.19.0 (August 29, 2024)

New features and updates

  • Added support for disabling connection caching.

  • Added the PRIVATE_KEY_BASE64 connection parameter to support base64-encoded private keys.

  • Added the following connection properties to support setting timeouts:

    • HTTP_CLIENT_CONNECTION_TIMEOUT and HTTP_CLIENT_SOCKET_TIMEOUT connection properties.

    • BROWSER_RESPONSE_TIMEOUT connection property to specify a browser timeout.

  • Upgraded the following dependencies:

    • Arrow to version 17.0.0

    • threeten-bp to version 1.6.9

Bug fixes

  • Fixed an issue where the getDate method was missing an expected parameter.

  • Fixed an issue with a class not found problem related to LoggerFactory.

Version 3.18.0 (July 24, 2024)

New features and updates

  • Updated the netty library to version 4.1.111.Final.

  • Added missing property setters in SnowflakeBasicDataSource.

  • Added the following connection parameters to support backward compatibility for handling timezones:

    • JDBC_DEFAULT_FORMAT_DATE_WITH_TIMEZONE determines whether to use the previously hardcoded value for the formatter (default: true).

    • JDBC_GET_DATE_USE_NULL_TIMEZONE determines wheter to use the previously null timezone value for the getDate method (default: true).

  • Picked a top-level domain for Snowflake hosts.

  • Set the last query ID for all failed statements.

Bug fixes

  • Fixed an issue where the retry backoff time could fall outside the minimum and maximum range.

  • Fixed an issue relating to converting nested fields metadata in OBJECT columns.

  • Fixed an issue where the date files returned the wrong day when using the getString or getDate method.

  • Added a user permission check for a token file.

Version 3.17.0 (July 08, 2024)

New features and updates

  • Improved logging.

  • Exposed the vector dimension in column metadata.

  • Added support for getObject on vector columns.

  • Added support for reading the connection information from a file.

  • Added support for Java version 21.

  • Added support for dynamic Max LOB size in metadata.

  • Improved logging configuration.

  • Added JDBC connectivity diagnostics mode.

Bug fixes

  • Fixed an issue with inserting and reading timestamps assymetrically if a batch inserts a large number of columns.

  • Fixed an issue with returning inconsistent timestamps_ltz between JSON and ARROW result sets.

  • Fixed an issue where the driver failed file pattern expansion on file not found in a different pattern.

Version 3.16.1 (May 27, 2024)

New features and updates

  • Added the disableSamlURLCheck parameter to disable SAML URL checks.

Bug fixes

  • Fixed an issue with choosing S3 regional URL domain base on the region name.

  • Fixed an issue related to nested paths in Windows when parsing client configurations.

  • Fixed an issue where the getObject method for arrays in JSON worked incorrectly in versions 3.15.1 and 3.16.0.

  • Fixed a casting issue with a MapVector.

Version 3.16.0 (April 29, 2024)

New features and updates

  • Added support for structured types.

  • Added support for vector types.

  • Improved support for encrypted private keys.

  • Updated the security policy notice.

Bug fixes

  • Fixed an issue with native OKTA retry logic.

  • Fixed an issue with unsupported reserved keywords.

  • Fixed an issue with retry attempts for GET query metadata requests.

Version 3.15.1 (April 05, 2024)

New features and updates

  • Added support for missing proxy and user password JVM parameters: http.proxyUser, http.proxyPassword, https.proxyUser, https.proxyPassword.

  • Bumped the nimbus-jose-jwt dependency to version 9.37.3.

Bug fixes

  • Moved the public suffix list to an internal package when shading.

  • Fixed an issue with ignoring default GCS credentials.

  • Fixed an issue with returning decimal or integer values in ARROW format.

  • Fixed an issue where the driver returned java.util.ConcurrentModificationException while calling SFAsyncResultSet.next.

  • Fixed an InvalidPathException issue on Windows due to nested file paths.

Version 3.15.0 (February 20, 2024)

New features and updates

  • Added a marker annotation for the internal API.

  • Added two new java properties, net.snowflake.jdbc.http_client_connection_timeout_in_ms and net.snowflake.jdbc.http_client_socket_timeout_in_ms, to let you configure connection and socket timeouts.

  • Added a new enablePatternSearch connection parameter to enable or disable pattern search for getCrossReference, getExportedKeys, getImportedKeys, and getPrimaryKeys metadata operations that should not use their parameters as patterns. Default: true.

Bug fixes

  • Fixed an issue with multi-release jar entries.

  • Made dependency optional on com.amazonaws.Protocol in HttpClientSettingsKey.

  • Deprecated com.snowflake.client.jdbc.SnowflakeDriver.

  • Fixed an issue with parsing large responses (greater than 16MB).

  • Updated the JDBC specification to version 4.2.

Version 3.14.5 (January 24, 2024)

New features and updates

  • Added support for AIX 7.2.

  • Added support for multiple SAML integrations.

  • Updated the grpc-netty-shaded dependency to 1.60.0.

  • Created a thin jar as a separate maven artifact snowflake-jdbc-thin (JDBC thin jar is an experimental feature).

  • Implemented toString() in SnowflakePreparedStatementV1.

  • Added getQueryStatusV2 as replacement for deprecated getQueryStatus.

Bug fixes

  • Set the last query ID for failed statements.

  • Fixed OOB telemetry initialization when using connectionless mode.

  • Fixed an issue with handling GCP token expiration correctly when using connectionless mode.

  • Fixed arrow format on AIX.