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 参数。

    • 更新了驱动程序使用 loginTimeoutmaxHttpRetries 连接参数的方式,以及将 loginTimeout 的默认值更改为 300 秒。

错误修复

  • 修复了使用 snowflake-ingest-sdk 2.0.3 时与 NoSuchMethodError 相关的问题。

  • 修复了处理 NULLDATE 数据类型转换时出现的问题。

  • 修复了 GCP Downscope 令牌的问题。

版本 3.13.34(2023 年 10 月 25 日)

新功能和更新

  • 无。

错误修复

  • 修复了与以下失败相关的问题:使用 snowflake-jdbc-fips 中的 GCP Downscope 令牌执行 PUT 命令,结果失败。

版本 3.14.2(2023 年 10 月 2 日)

新功能和更新

  • 无。

错误修复

  • 修复了以下问题:驱动程序未遵循来自 getStageInfo 中的 JsonNodeuseS3RegionUrl

版本 3.14.1(2023 年 8 月 24 日)

新功能和更新

  • 添加了从 util 方法发送可选标头的功能。

  • getQueryStatus 函数移到 SfBaseSession,以支持存储过程中的异步调用。

错误修复

  • 修复了驱动程序未发送专用链接的完整 OSCP URL 的问题。

版本 3.14.0(2023 年 7 月 27 日)

BCR (行为变更版本)变更

  • 修复了以下问题:在特定条件下, JDBC 驱动程序可能无限期地重试 HTTP 请求。

    以前,在中断期间, JDBC 驱动程序将连续重试失败的 HTTP 调用,直到请求成功或有人强制终止操作。

    通过此变更,禁用源自 executeexecuteQuery 调用的无限期 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=JSONresultset 中随机删除了 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 之前无法对其进行验证的问题。现在,驱动程序使用 URLValidatorURLEncoder 实用程序对 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 身份验证失败的问题。

语言: 中文