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 thegzipDisabled
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 thetemp
directory to thehome
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
andmaxHttpRetries
connection parameters and changed the default value ofloginTimeout
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
toDATE
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
fromJsonNode
ingetStageInfo
.
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 toSfBaseSession
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
andexecuteQuery
calls. Now, the JDBC driver limits HTTP retries to seven, by default. Customers can set themaxHttpRetries
session parameter to customize the maximum number of retries. Customers can setmaxHttpRetries=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 returnsFALSE
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
inDefaultResultStreamProvider.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 aClosedByInterruptException
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 whenuseSessionTimezone
is enabled.Fixed an issue where ASCII Null characters and control characters were randomly dropped from a
resultset
withjdbc_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 aresultset
toopenResultSets
.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 theoverwrite=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 aSQL NULL
value.Fixed an issue where the JDBC driver failed to validate an SSO URL before executing it. Now, the driver uses the
URLValidator
andURLEncoder
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 themetaData.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
forgetProcedureColumns()
andgetFunctionColumns()
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.