DuckDB 于2026年9月28日发布 1.5.6,这是 1.5(Variegata)系列的第六个补丁版本。

公告的正确性部分列出了13项修复,其中包括经过易变投影的 LIMIT 下推,以及 UNION ALL 分支共享连接子树时的错误结果。

还修复了检查点标记恢复失败,以及 WAL 恢复期间未关闭主 WAL 句柄就覆盖重命名的问题。WAL 是先行记录变更内容的日志文件。

因此仅凭查询能够运行,难以判定迁移通过。这些是已公布的修复,并非本文复现的缺陷。

改变返回与存储数据含义的两项修复

发布说明中值得保留为回归输入的有两例:超长整数字面量写入 HUGEINT 时的静默截断,以及 Parquet 中 TIME_NS 值的读写。

HUGEINT 是128位整数类型,TIME_NS 是以纳秒为单位的时间值。

两者都关乎返回或写入文件的数据含义,而非执行速度。没有报错就结束的查询,仍可能返回不同的值。

注意事项:2.0.0 的日期是暂定的

发布日历把 2.0.0 定在2026年10月21日,2.0.1 定在11月18日。同一页面写明这些日期是暂定的,可能为稳定性和质量而推迟。

下一个主版本是另一条路径。它既不是发布保证,也不是可以替代此次 1.5 维护决定的日程。

从值、null 和行数开始的升级对比

部署前的第一步,是让一个小型代表性数据集分别通过当前版本和 1.5.6,比较值、null 处理和行数。

意外的差异要保留为回归输入。如果性能重要,再在此之后测量运行时间。

这是建议的检查,而不是本文的性能基准测试。2.0 开发构建的评估另行进行。

在包含正确性修复的补丁中,首先要确认的不是查询更快,而是相同输入是否返回相同的值。