Featured image of post DuckDB 1.5.4 发布:稳定性增强与 v2.0.0 前瞻

DuckDB 1.5.4 发布:稳定性增强与 v2.0.0 前瞻

DuckDB 1.5.4 Variegata 修复了多项关键 Bug 和崩溃问题,同时团队预告了 v2.0.0 将于今年秋季发布。本文深入分析本次更新的技术细节和未来路线图。

引言

2026 年 6 月 17 日,DuckDB 团队同时发布了两个重要版本:DuckDB 1.5.4(Variegata) 和 DuckDB 1.4.5 LTS(Andium)。作为 1.5.x 系列的第五个补丁版本,1.5.4 聚焦于稳定性修复、崩溃预防和性能优化。更重要的是,团队在公告中透露了令人期待的消息——DuckDB v2.0.0 将于今年秋季发布。

本文将深入分析 1.5.4 版本的关键改进,并探讨即将到来的 v2.0.0 可能带来的变化。

版本概览

特性DuckDB 1.5.4 (Variegata)DuckDB 1.4.5 LTS (Andium)
发布类型常规补丁发布LTS 补丁发布
发布日期2026-06-172026-06-17
支持周期至 v2.0.0长期支持
主要焦点崩溃修复、性能优化稳定性、向后兼容
适用场景生产环境推荐升级需要长期稳定的用户

关键修复与改进

1. 正确性修复:VARIANT 类型的深度优化

DuckDB 的 VARIANT 类型是其处理半结构化数据的核心功能之一。1.5.4 版本修复了多个与 VARIANT 相关的严重 Bug:

-- 修复前:过滤条件下 VARIANT 读取错误行
-- 修复后:确保过滤条件下 VARIANT 正确读取

CREATE TABLE variant_data AS
SELECT * FROM read_json_auto('data.json');

-- 现在这个查询将返回正确的结果
SELECT 
    variant_col:field1::VARCHAR AS field1,
    variant_col:field2::INTEGER AS field2
FROM variant_data
WHERE variant_col:field1 IS NOT NULL;

另一个重要的修复涉及 MERGE INTO 语句中的目标表和源表绑定逻辑:

-- 修复:WHEN NOT MATCHED 现在只考虑目标表
-- WHEN NOT MATCHED BY TARGET 现在只考虑源表

MERGE INTO target_table t
USING source_table s
ON t.id = s.id
WHEN MATCHED THEN UPDATE SET t.value = s.value
WHEN NOT MATCHED THEN INSERT VALUES (s.id, s.value);

2. JSON 处理能力的增强

JSON 函数是 DuckDB 最受欢迎的功能之一。1.5.4 版本修复了多个 JSON 相关的问题:

-- 修复:json_keys 现在正确处理通配符路径
SELECT json_keys('{"a": {"b": 1, "c": 2}}', '$.a.*');

-- 修复:ignore_errors 参数不再静默接受无效 JSON
SELECT * FROM read_json_auto('data.json', ignore_errors => true);

-- 修复:NULL JSON key 现在被正确拒绝
SELECT json_extract('{"key": "value"}', 'null_key');

3. 崩溃预防:生产环境的定心丸

1.5.4 版本修复了多个可能导致崩溃的问题:

问题编号描述影响
#21854Arrow GeoArrow CRS 序列化中的双重释放和内存泄漏GIS 扩展崩溃
#22836SQL 管道输出时的进度条崩溃CLI 使用崩溃
#23174未设置存储路径时的崩溃配置错误导致崩溃
#23232gzip 压缩写入溢出Parquet 写入崩溃
# Python 中使用 DuckDB 的稳健性测试示例
import duckdb

# 修复后,以下操作不再崩溃
con = duckdb.ATTACH (':memory:')
con.execute("INSTALL parquet; LOAD parquet;")

# 处理大型 Parquet 文件
result = con.execute("""
---

## 本文信息

| 项目 | 内容 |
|------|------|
| DuckDB 版本 | v1.5.x(部分功能基于 v2.0 Preview) |
| 最后验证 | 2026-09-12 |
| 测试环境 | Linux / x86_64 / 16GB RAM |
| 官方文档 | [DuckDB Documentation](https://duckdb.org/docs/) |
| GitHub | [pengzz9527/duckdb-blog](https://github.com/pengzz9527/duckdb-blog) |

如发现错误,欢迎通过 [GitHub Issue](https://github.com/pengzz9527/duckdb-blog/issues) 或邮件 [email protected] 反馈。

📺 Watch video tutorials → Olap Studio YouTube

Subscribe for more DuckDB & AI automation tutorials