2026 年 Go Snowflake Driver 版本说明¶
本文包含 Go Snowflake Driver 的版本说明,包括以下内容(如果适用):
行为变更
新功能
面向客户的错误修复
Snowflake 对 Go Snowflake Driver 更新使用语义版本控制。
有关文档,请参阅 Go Snowflake 驱动程序。
版本 2.0.1(2026 年 4 月 8 日)¶
错误修复¶
已将默认的
CrlDownloadMaxSize设置从 200 MB 减少到 20 MB,以防止潜在的内存不足错误。修复了同一连接池中参数值可能因连接不同而变化的问题。
修复了 Azure 多部分文件上传时未能正确填充 blob 的 content-MD5 属性的问题。
修复了对版本化存储暂存区执行 Google Cloud Storage PUT 查询时返回 403 错误的问题。
修复了查询上下文缓存未针对失败的查询进行更新的问题,这可能会导致会话数据过时。
通过优化参数同步,提高了连接处理性能。
内部变更¶
将配置移至专用内部包。
对代码库中的 Go 语法习惯用法进行了现代化改进。
在客户端环境遥测中添加了 libc 系列、版本以及动态链接标记。
更新了依赖项以解决安全漏洞:
golang.org/x/crypto从 v0.41.0 到 v0.46.0golang.org/x/net从 v0.43.0 到 v0.48.0golang.org/x/oauth2从 v0.30.0 到 v0.34.0golang.org/x/sys从 v0.35.0 到 v0.40.0golang.org/x/mod从 v0.27.0 到 v0.30.0golang.org/x/sync从 v0.16.0 到 v0.19.0golang.org/x/term从 v0.34.0 到 v0.38.0golang.org/x/text从 v0.28.0 到 v0.32.0golang.org/x/tools从 v0.36.0 到 v0.39.0google.golang.org/grpc从 v1.73.0 到 v1.79.3google.golang.org/protobuf从 v1.36.6 到 v1.36.10OpenTelemetry 包从 v1.37.0 升级到 v1.40.0
移除了
snowflakeConn中查询上下文缓存的指针间接引用。
版本 1.9.1(2026 年 4 月 8 日)¶
新功能和更新¶
添加了对 Go 1.26 的支持,并删除了对 Go 1.23 的支持。
错误修复¶
通过 ELF PT_INTERP 检查检测静态链接并顺利跳过
dlopen,修复了完全静态链接的 Linux 二进制文件上的微内核崩溃 (SIGFPE)。
内部变更¶
在客户端环境遥测中添加了 libc 系列、版本以及动态链接标记。
版本 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 中)泄露的文件描述符。