2026 年 Go Snowflake Driver 版本说明¶
本文包含 Go Snowflake Driver 的版本说明,包括以下内容(如果适用):
行为变更
新功能
面向客户的错误修复
Snowflake 对 Go Snowflake Driver 更新使用语义版本控制。
有关文档,请参阅 Go Snowflake 驱动程序。
版本 2.0.0(2026 年 3 月 3 日)¶
BCR (行为变更版本)变更¶
从
SnowflakeFileTransferOptions中移除了RaisePutGetError,以确保为 PUT/GET 操作引发错误。从
SnowflakeFileTransferOptions中移除了GetFileToStream。使用WithFileGetStream为 GET 操作自动启用文件流。移除了
WithOriginalTimestamp。请改用WithArrowBatchesTimestampOption(UseOriginalTimestamp)。从
Config结构体中移除了ClientIP字段。此字段从未被使用,且任何功能都不需要它。从
Config结构体中移除了InsecureMode字段。请改用DisableOCSPChecks。从
Config结构体中移除了DisableTelemetry字段。请改用CLIENT_TELEMETRY_ENABLED会话参数。移除了流分块下载器。请改用默认下载器。
移除了
SnowflakeTransport。使用Config.Transporter,或者如果您只需要自定义根证书集,只需通过RegisterTLSConfig注册您自己的 TLS 配置即可。为了保持一致性,将
WithFileStream重命名为WithFilePutStream。将
Config结构体中的KeepSessionAlive字段重命名为ServerSessionKeepAlive,以与其他驱动程序保持一致。Array函数现在会针对不支持的类型返回错误。WithMultiStatement不再返回错误。将
WithMapValuesNullable和WithArrayValuesNullable合并为单个WithEmbeddedValuesNullable选项。隐藏了流分块下载器。它将在未来的版本中被完全移除。
现在使用
CLIENT_PREFETCH_THREADS会话参数配置分块下载 Goroutine 的最大数量。修复了
GOSNOWFLAKE_SKIP_REGISTRATION环境变量中的拼写错误。取消导出了
MfaToken和IdToken。Arrow 批次变更:
Arrow 批次已提取到单独的包中,这对于不需要 Arrow 批次的用户,将显著减小编译体积 (~34MB -> ~18MB)。
从
SnowflakeRows和SnowflakeResult中移除了GetArrowBatches。请改用arrowbatches.GetArrowBatches(rows.(SnowflakeRows))。迁移了以下函数:
将
sf.WithArrowBatchesTimestampOption迁移至arrowbatches.WithTimestampOption将
sf.WithArrowBatchesUtf8Validation迁移至arrowbatches.WithUtf8Validation将
sf.ArrowSnowflakeTimestampToTime迁移至arrowbatches.ArrowSnowflakeTimestampToTime
日志记录变更:
移除了 Logrus 日志记录器并迁移到 slog。
简化了
SFLogger接口。添加了用于设置自定义 slog 处理程序的
SFSlogLogger接口。
新功能和更新¶
添加了对 Go 1.26 的支持,并删除了对 Go 1.23 的支持。
增加了对仅限 FIPS 模式的支持。
错误修复¶
为暂存区文件上传和下载操作增加了紧急恢复块。
修复了来自 Azure 容器的 WIF 元数据请求表现为 HTTP 400 错误的问题。
修复了
isPrefixEqual中 SAML 身份验证端口验证绕过的问题,其中第二个 URL 的端口从未被检查。修复了 OCSP 缓存清理器中的竞态条件。
context.Context查询现在会传播到 PUT 和 GET 查询的云存储操作中,以便更好地处理取消操作。通过 ELF PT_INTERP 检查检测静态链接并顺利跳过
dlopen,修复了完全静态链接的 Linux 二进制文件上的微内核崩溃 (SIGFPE)。
版本 1.19.0(2026 年 2 月 3 日)¶
新功能和更新¶
除现有的 DSN 选项外,在
Config结构体中公开了tokenFilePath。现在,每次有新连接时都会读取
tokenFilePath,而不仅仅在驱动程序启动时读取一次。添加了在使用工作负载身份联合时对身份模拟的支持。
添加了在编译时使用
-tags minicore_disabled参数禁止加载 minicore 的功能。
错误修复¶
修复了从未加密暂存区获取文件的问题。
修复了客户端环境中的 minicore 文件名收集问题。
修复了当文件或目录包含空格时来自 GCS 的 403 响应中 GCS URLs 的路径转义问题。
修复了将文件上传到暂存区时(尤其是在 GCS 中)泄露的文件描述符。