DeepSeek总结的PostgreSQL 19 发生了什么

来源:https://www.snowflake.com/en/blog/engineering/postgresql-19-release-delay-feature-reverts/

PostgreSQL 19 发生了什么?

Elizabeth Garrett Christensen

Postgres 19 将无法按期发布。过去几年,PostgreSQL 每年秋天都会发布其主要版本。但今年,代码正处于密集的审查周期中,主要功能在 beta 阶段被撤回,还有许多其他功能正在大幅修订中。Beta 4 计划于 2026 年 9 月 24 日发布。Postgres 19 的发布肯定延迟了数周,甚至可能是数月。

Postgres 19 本来就是一个雄心勃勃的版本,包含许多大型功能。对于任何项目,你都必须选择优先事项。对于 Postgres,优先事项是质量,其次是在时间窗口内发布。团队正在缩减发布范围,以更接近在其所需质量下满足时间表。

我将分解 Postgres 19 中一些主要的撤回。虽然这是一个很长的列表,但我想非常明确地说明,PostgreSQL 代码开发过程运转得非常出色。代码正在大范围地接受测试,尚未准备好的东西正在被撤回。

PostgreSQL 是如何诞生的

典型的 PostgreSQL 代码开发过程是这样的:

  1. 新补丁由社区在一系列开放的 commitfest 中添加,并在 Hackers 邮件列表上讨论
  2. 被选中批准的补丁由约 30 名项目提交者之一添加到未来版本中
  3. 切出一个 beta 版本,社区开始测试约 6 个月,更新和 bug 被修补,一些功能被撤回
  4. 发布最终生产版本,随后是用于 bug 修补和安全更新的季度维护版本

PG19 值得注意的功能撤回

Postgres 19 版本有不少撤回:自 2025 年 6 月 beta 开始以来已有 53 个。以下是你可能熟悉的一些更主要的面向用户的功能:

  • SQL 属性图查询(SQL/PGQ)

    属性图会在表之上添加图查询视图,并为 Postgres 中的图查询提供一种轻量级方法。Hackers 讨论表明存在更广泛的设计和就绪性方面的顾虑。

  • ALTER TABLE MERGE/SPLIT PARTITION(S)

    这是一个长期被请求的分区管理功能。撤回讨论提到设计问题,且在本发布周期内来不及解决。

  • UPDATE/DELETE FOR PORTION OF

    这是针对 Postgres 时间范围列的一个令人兴奋的更新,用于处理一些边界时间数学运算。

  • GROUP BY ALL

    提交后的审查发现它遗漏了对具有非默认相等语义的 ORDER BY 条目的特殊处理,产生了错误结果。

  • 默认 TOAST 压缩更改为 lz4

    此功能将更改 TOAST 压缩。团队讨论认为它在 buildfarm 中缺少一些支持,因此将在项目编译问题解决后重新处理。

  • pg_dumpall 的非文本输出格式

    在提交后审查中发现了活动 bug,但这项工作将在未来版本中继续。

  • JSON_TABLE ON ERROR 级联

    此功能使表级 ON ERROR 级联到列(依据 SQL 标准),由于报告的 bug 而被撤回。

  • 具有非易变约束的域(domain)的快速默认值

    正确的修复需要向表访问方法 API 添加内容,因此它尚未为 v19 准备就绪。

  • 逻辑复制的数据库特定快照

    这与支持 REPACK 功能的逻辑复制相关。现在限制为单个进程,可以跨不同表和数据库并发运行。幸运的是,REPACK 看起来仍在 V19 中。

  • 嵌套查询跟踪(pg_stat_statements)

    这在查询 ID 和查询字符串之间提供了更清晰的映射,但在测试期间发现了一些语法问题。

  • 在线数据校验和

    你可以使用校验和来检查数据损坏。这将让你在 pg 仍在运行时更改校验和设置。

撤回的共同模式

大多数大型功能因在提交后审查中发现的设计缺陷、错误结果或发布周期后期发现的兼容性顾虑而被撤回。其中大多数将在 v20 中再次尝试。

处于风险中的 Postgres 19 功能

此 pg19 beta 中的功能有很长的 bug 和问题报告列表尚未完全解决,因此可能还会有更多功能撤回。该项目的主要贡献者之一 Robert Haas 在 AI 辅助代码的帮助下进行了一场"吓人 bug 竞赛",展示了还有哪些可能处于风险中。这些包括:

  • RI 快速路径外键检查
  • REPACK / REPACK CONCURRENTLY
  • Postgres_fdw 统计信息导入

PostgreSQL 还维护着一个开放事项 wiki bug,即每个版本等待修复的事项。我预计随着版本 19 走向终点线,会有更多讨论。

仍在发布的

我认为 PG19 中仍有一些值得期待的好功能:

  • pg_plan_advice 和查询计划提示功能
  • 并行 autovacuum
  • ON CONFLICT DO SELECT,使 upsert 返回现有行
  • 窗口函数中的 IGNORE NULLS
  • 许多逻辑复制改进

这里也值得注意的是,每个 PostgreSQL 版本都有很多其他功能、bug 修复、性能改进和查询计划进步。所以即使头条功能被撤回,最新的生产版本几乎总是向前迈出的一步。

AI 因素

AI 必须成为我们为何处于这种情况的故事的一部分。有几个人正在使用 AI 工具来发现 bug 并创建有效的可复现测试用例。修复相当大,因此对于其中许多功能来说,推送到未来版本是最合理的。

如果你想了解 AI 如何改变 PostgreSQL 的部署流水线,想想 CVE 修补。PostgreSQL 过去每个版本平均几个 CVE;2026 年 8 月针对 Postgres 18 的补丁有 28 个 CVE。

PostgreSQL 目前没有官方 AI 贡献政策,但预计很快会有一个。

PG 19 有什么不同?

Postgres 18 及之前的版本也有重大的撤回周期。Postgres 18 大约有 44 个,而我们目前 pg 19 是 53 个。Postgres 18 的撤回稍早一些,大多数在 beta 之后不久。许多 Postgres 19 的问题都涉及像图查询和 GROUP BY ALL 这样的主要头条功能,所以它们引起了我们的注意。这里唯一真正的区别是它们是迟发的撤回,其中许多来自深入的 AI 生成审查。

这意味着什么

推迟主要版本是很长时间以来 Postgres 未发生过的事情。在一个"发布、发布、发布"和 AI 热潮的时代,Postgres 核心团队的人类严谨是令人钦佩的。

别担心------发布过程正在发挥作用!这是一件好事!尚未准备好的功能被撤回。理由是公开的。AI 正在帮助我们捕获更多东西。

  • PG18 是当今安全的升级目标。
  • 属性图、GROUP BY ALL 和分区合并/拆分现在是 PG20 的素材。
  • 其他功能也可能被撤回,请关注 hackers 邮件列表。

文件内容结束

相关推荐
Pocker_Spades_A1 小时前
时序数据库选型指南:从大数据视角看Apache IoTDB的工业级优势
数据库
梦想平凡1 小时前
情怀棋牌源代码焕新记录(一):全新国风UI与原版工程梳理
java·服务器·数据库·websocket·网络协议·cocos2d
cspttty1 小时前
FP&A应届岗技能路线:Excel建模、SQL取数、BI看板与预算分析
大数据·数据库
微学AI1 小时前
飞牛 NAS 部署 prompts.chat:自建提示词库、导入社区内容,再配置固定公网访问
数据库·内网穿透
羑悻的小杀马特1 小时前
从写 YAML 到集群自愈:KES-Operator 把 KES 集群接进 Kubernetes 原生体系
运维·数据库·容器·kubernetes
bksczm1 小时前
MySQL基础篇之事务
linux·数据库·sql·mysql
李白客1 小时前
数据库管理工具怎么选?Navicat、DataGrip、DBeaver 六维横向对比与选型建议
运维·数据库
马立杰1 小时前
mysql中Illegal mix of collations for operation “UNION”错误的解决方法
数据库·sql·网络安全
蓝速科技1 小时前
蓝速 K10 三防平板在工业恶劣工况下的选型与应用指南
大数据·运维·数据库·人工智能·科技