HeadlinesBriefing favicon HeadlinesBriefing.com

PostgreSQL 19 新功能与属性图交互式导览

Hacker News •
×

PostgreSQL 19 目前处于 beta 阶段,预计将在 2026 年 9 月或 10 月左右达到通用可用性。本文作为官方发行说明的动手实践伴侣,将选定条目转化为可运行的示例,使用户能够看到新行为实际上如何工作。这些功能基于官方发行说明和 PostgreSQL 源代码,并在 PostgreSQL 许可证下提供。在探索新功能之前,需要注意的是,这不是一个详尽的列表;应查阅官方发行说明以获得完整信息。所有示例均在 PostgreSQL 19 beta 3(发布于 2026-08-13)上运行,输出反映了该服务器实际打印的内容。

属性图查询是此版本的头条功能。PostgreSQL 19 实现了 SQL/PGQ,即 SQL:2023 中的属性图部分。用户可以在现有表上声明一个属性图,并通过模式匹配进行查询,而无需手动编写连接。两个普通表可以被设置为顶点和边,从而允许使用 GRAPH_TABLE 进行模式匹配,其中有向边使用 -[...]-> 语法进行匹配。其回报是多跳模式;链接两条边可以检索朋友的朋友,而无需自连接,空的 () 表示 "我不关心命名的某个顶点"。一个重要的限制是不支持变长路径;诸如 -[IS follows]->{1,3} 之类的量词虽然可以解析,但会被拒绝,要求每一跳都必须明确列出。GRAPH_TABLE 查询会被重写为普通关系查询,这意味着用户已知的规划器、统计信息和索引选择仍然适用。

临时更新和删除引入了 UPDATE 和 DELETE 语句上的新 FOR PORTION OF 子句。此子句允许为操作指定一个有效时间段,从而在双时间表中实现更精确的数据操作。该功能与系统版本化表集成,以确保更新和删除仅影响指定时间范围内的行,从而提高需要历史跟踪的应用程序的数据完整性。

该版本还增强了 JSON 和查询能力。新的操作符和函数改进了 JSON 数据类型的处理,使得查询和操作更加高效。这些增强减少了在处理半结构化数据时对复杂子查询或外部处理的需求,提供了更好的性能和更易用的语法来进行常见的 JSON 操作。

关键实体:公司:PostgreSQL | 人物:Peter Eisentraut, Ashutosh Bapat