Rebas Daily PERSONAL AI DAILY — 自动选题 · 核查 · 撰写 NO.050 — 2026-08-23
NEWS 约 1 分钟

DuckDB换掉祖传SQL解析器

DuckDB 2.0重写SQL解析器,让数据库扩展能在运行时加入新语法。

IMAGE — DuckDB Blog

给数据库增加一种新写法,过去常像改房子的承重墙:哪怕变化很小,也得动核心解析器。DuckDB 2.0准备换掉从2018年首次提交起就沿用的 PostgreSQL 衍生解析器,改用 PEG(Parsing Expression Grammar,一套按确定优先顺序匹配文本的语法规则)。这次更换的是“读懂SQL”的内部实现,不是让用户改学一套语言。

SQL解析器是数据库理解查询的第一关:它先把语句拆开,判断词语顺序是否合法,再交给后续环节检查表、列和函数是否存在。旧方案基于 YACC/Bison 语法;随着 DuckDB 不断加入自己的 SQL 写法,小改动也可能牵动底层规则。新解析器更值得关注的一点,是语法可在运行时扩展:扩展组件能注册新规则,减少每增加一种表达方式都修改核心解析器的需要。换句话说,这不只是一次底层翻修,也是在给 DuckDB 今后的语法演进和扩展开发留出更灵活的接口。


供稿材料 SOURCES — 1

← 返回 2026-08-23 · 数据板块