2023 年 JDBC Driver 版本说明¶
本文包含 JDBC Driver 的版本说明,包括以下内容(如果适用):
行为变更
新功能
面向客户的错误修复
Snowflake 对 JDBC Driver 更新使用语义版本控制。
版本 3.14.4(2023 年 12 月 7 日)¶
新功能和更新¶
无。
错误修复¶
修复了当
gzipDisabled
属性键没有值时出现的NullPointerException
。修复了与
temp
目录相关的日志记录安全问题:日志记录不再访问临时目录。
默认
logpath
值从temp
目录更改为home
目录。
修复了当驱动程序在 JDK v21 上使用 Arrow 会出现故障的问题。
版本 3.14.3(2023 年 11 月 7 日)¶
新功能和更新¶
更新了以下库:
org.codehaus.plexus:plexus-archiver 从 2.4.4 更新到 4.8.0
org.codehaus.plexus:plexus-archiver 从 2.6 更新到 4.8.0
org.bouncycastle:bc-fips 从 1.0.2.1 更新到 1.0.2.4
aws-java-sdk 更新到 1.12.501
jackson 更新到 2.15.3
netty 更新到 4.1.100.Final
grpc 更新到 1.59.0
添加了
enablePutGet
连接属性,以确定是否允许 PUT 和 GET 命令访问本地文件系统。添加了对管理失败的连接请求的重试频率的支持:
添加了默认值为 300 秒的
retryTimeout
参数。更新了驱动程序使用
loginTimeout
和maxHttpRetries
连接参数的方式,以及将loginTimeout
的默认值更改为 300 秒。
错误修复¶
修复了使用 snowflake-ingest-sdk 2.0.3 时与
NoSuchMethodError
相关的问题。修复了处理
NULL
到DATE
数据类型转换时出现的问题。修复了 GCP Downscope 令牌的问题。
版本 3.13.34(2023 年 10 月 25 日)¶
新功能和更新¶
无。
错误修复¶
修复了与以下失败相关的问题:使用
snowflake-jdbc-fips
中的 GCP Downscope 令牌执行 PUT 命令,结果失败。
版本 3.14.2(2023 年 10 月 2 日)¶
新功能和更新¶
无。
错误修复¶
修复了以下问题:驱动程序未遵循来自
getStageInfo
中的JsonNode
的useS3RegionUrl
。
版本 3.14.1(2023 年 8 月 24 日)¶
新功能和更新¶
添加了从
util
方法发送可选标头的功能。将
getQueryStatus
函数移到SfBaseSession
,以支持存储过程中的异步调用。
错误修复¶
修复了驱动程序未发送专用链接的完整 OSCP URL 的问题。
版本 3.14.0(2023 年 7 月 27 日)¶
BCR (行为变更版本)变更¶
修复了以下问题:在特定条件下, JDBC 驱动程序可能无限期地重试 HTTP 请求。
以前,在中断期间, JDBC 驱动程序将连续重试失败的 HTTP 调用,直到请求成功或有人强制终止操作。
通过此变更,禁用源自
execute
和executeQuery
调用的无限期 HTTP 重试。现在, JDBC 驱动程序默认将 HTTP 重试次数限制为 7 次。客户可以设置maxHttpRetries
会话参数,自定义重试次数上限。客户可以设置maxHttpRetries=0
以移除重试限制,但这样做可能会导致 JDBC 驱动程序无限期地重试失败的 HTTP 调用。
新功能和更新¶
添加了
CLIENT_OUT_OF_BAND_TELEMETRY_ENABLED
会话属性,以允许您禁用 OOB 遥测。改进了对
locatorsUpdateCopy()
函数调用的处理。现在,驱动程序返回FALSE
而不是引发异常。更新了对 S3 客户端“400 Bad Request”错误的处理,并添加了
putGetMaxRetries
连接属性,以配置存储客户端的 PUT/GET 异常的重试次数上限(默认为 7 次)。添加了对
DefaultResultStreamProvider.getResultChunk()
中的httpMaxRetries
的支持,以提高块下载性能。
错误修复¶
修复了驱动程序在调用
driver.getPropertyInfo()
时错误地引发空指针异常 (NPEs) 的问题。修复了从 arrow 流中读取时
reader.LoadNextBatch()
偶尔会引发ClosedByInterruptException
的问题。修复了 JDBC 驱动程序对 S3 客户端使用错误的代理设置的问题。
修复了
downloadStream()
函数不允许文件名包含日语字符的问题。修复了 PUT/GET 文件路径中不允许使用“~”的问题。
修复了以下问题:当 Windows 文件路径包含用于指示日志记录配置文件的
file://
前缀时,驱动程序会引发 InvalidPathException。
版本 3.13.33(2023 年 6 月 14 日)¶
新功能和更新¶
无。
错误修复¶
温和地处理
MessageFormat.format
异常。
版本 3.13.32(2023 年 5 月 26 日)¶
新功能和更新¶
无。
错误修复¶
修复了 3.13.31 中引入的错误,该错误会影响 Java Runtime 8。
版本 3.13.31(2023 年 5 月 25 日)¶
备注
请更新到较新的版本,尤其是当看到影响 Java Runtime 8 的错误时。
新功能和更新¶
增强了混合事务和分析处理 (HTAP)。
已将
org.apache.httpcomponents:httpclient
库升级到版本 4.5.13,以获取安全更新。
错误修复¶
修复了身份验证尝试因块下载请求而超时的问题。
修复了有关在 Windows 上解析配置文件的问题。
修复了与较大或较小的
datetime
值有关的 int64 溢出问题。改进了连接因 SSL/TLS 错误而中止时显示的错误消息。
修复了以下问题:启用
useSessionTimezone
后,getTime()
函数根据错误的时区返回时间。修复了以下问题:从
jdbc_query_result_format=JSON
的resultset
中随机删除了 ASCII Null 字符和控制字符。
版本 3.13.30(2023 年 4 月 18 日)¶
新功能和更新¶
升级了以下软件库:
slf4j-api 从版本 1.7.25 升级到版本 2.0.6。
logback-classic 从版本 1.2.3 升级到版本 1.3.6。
将非关键的“SEVERE: HTTP request took longer than 5 min”从错误消息更改为警告消息。
添加了 JVM 代理设置的
http.proxyProtocol
属性。
错误修复¶
修复了身份验证尝试因块下载请求而超时的问题。
修复了以下问题:当连接 URL 无法分割时,登录凭据在异常中可见。
修复了在将
resultset
添加到openResultSets
之前检查isClosed()
所导致的内存泄漏问题。修复了在
hostnames
不匹配时发送误导性 SAML2 断言错误消息的问题。修复了 URL 经过编码的 OSCP 请求的问题。
修复了
SnowflakeFileTransferAgent.uploadStream()
函数未正确处理overwrite=false
选项的问题。修复了
metadata.etTableTypes()
方法返回错误表类型的问题。更新了驱动程序,以在异常消息中显示 SQL 错误消息(该异常消息在异步查询调用导致查询失败并引发异常时触发)。
添加了一项检查,以检查在过程列调用时返回空结果集的罕见情况。
将与
SnowflakeConnectionString
分析错误相关的日志消息的警告级别更改为调试/信息。修复了以下问题: JDBC 驱动程序会重试已失败且引发
SSLHandshakeException
的请求。添加了对
snowflake.jdbc.enable.illegalAccessWarning
系统属性的支持,以允许用户禁用非法访问警告。修复了 gsc 上传文件错误消息是否会显示错误消息的问题。
更改了默认的 TTL 值,以在 60 秒后关闭空闲连接。
通过移除额外的描述调用修复了预编译语句 ID 的问题。
版本 3.13.29(2023 年 3 月 17 日)¶
新功能和更新¶
无。
错误修复¶
修复了以下问题:在
USE_STATEMENT_TYPE_CALL_FOR_STORED_PROC_CALLS=true
时,为存储过程列元数据返回了不正确的列类型名称。修复了以下问题:在由于目标文件系统空间不足而无法下载文件时, JDBC 会重试 GET 请求。现在,驱动程序在这种情况下会引发异常。
修复了以下问题:在发生 404 资源错误时, JDBC 会在 Azure 客户端上重试请求。现在,驱动程序在这种情况下会引发异常。
为了抵御 SQL 注入攻击, JDBC 驱动程序现在会将 DatabaseMetadata API 的模式搜索实参中的引号进行转义。
修复了 getClob() 调用在列包含 NULL 值时引发 NullPointerException 的问题。现在,驱动程序在列具有
SQL NULL
值时返回NULL
。修复了 JDBC 驱动程序在执行 SSO URL 之前无法对其进行验证的问题。现在,驱动程序使用
URLValidator
和URLEncoder
实用程序对 URL 进行验证和编码。
版本 3.13.28(2023 年 2 月 22 日)¶
新功能和更新¶
无。
错误修复¶
添加了对
SnowflakeType
枚举中 GEOMETRY 数据类型的支持,以修复在调用metaData.getColumns()
函数以返回包含了 GEOMETRY 数据的元数据时出现的问题。修复了 GCP uploadStream 中的重试问题,该问题在 JDBC 错误地尝试重新上传输入流时会导致部分文件上传。
修复了某些存储函数和过程的问题,它们会为
getProcedureColumns()
和getFunctionColumns()
函数调用返回resultset
。修复了导致 StreamLoader 生成过多日志消息的问题。
版本 3.13.27(2023 年 1 月 30 日)¶
新功能和更新¶
无
错误修复¶
解决了在 GET 和 PUT 操作过程中偶尔出现的竞态条件。
修复了在收到 HTTP 429 错误时使用 Okta 身份验证失败的问题。