内容提要
PostgreSQL 19 分支在九天内合入 71 个提交,其中 6 次回滚涉及 74 个提交,回滚原因多为兼容性或稳定性风险,包括外键检查批处理、UPDATE/DELETE FOR PORTION OF、在线校验和切换、DDL 重建函数及标识符大小写折叠等。校验和回滚仅限 19 分支,主分支继续开发。71 个提交中有 15 个涉及 REPACK。
延伸解读
回滚潮:兼容性与稳定性优先
九天内71个提交合入19分支,但6次回滚涉及74个提交,回滚原因多为兼容性或稳定性风险。例如,外键检查批处理被移除,UPDATE/DELETE FOR PORTION OF和在线校验和切换被整体回滚,DDL重建函数和标识符大小写折叠也因兼容性问题被撤销。这显示在发布前,社区对可能影响现有行为的改动持谨慎态度,宁可回滚也不冒险发布。
校验和回滚仅限19分支,主分支继续开发
在线数据校验和切换的回滚仅发生在REL_19_STABLE分支,主分支上该功能保持不变并继续开发,9月14日还有5个相关提交。回滚说明提到,测试期间已发现多个后期修复,担心正式发布后出现更多问题,因此选择在19分支完全回滚。这意味着该功能仍计划在版本20中推出,但19版本的用户将无法使用。
REPACK成为本窗口最大开发焦点
71个提交中有15个涉及REPACK和REPACK CONCURRENTLY,是19分支上最大的跟踪领域。其中5个提交收紧了命令的接受条件:限制为堆访问方法、拒绝用户目录表、无效索引失败、!indisready索引失败,以及当副本标识索引被删除时不允许操作。这些限制旨在提高命令的安全性和可靠性,避免误用导致数据问题。
Q&A
PostgreSQL 19 分支在 2026 年 9 月 8 日至 16 日期间有多少个提交?
71 个提交。
PostgreSQL 19 分支在九天内发生了多少次回滚?涉及多少个提交?
6 次回滚,涉及 74 个提交。
为什么 PostgreSQL 19 回滚了在线数据校验和切换功能?
因为该功能在测试期间出现了多个提交后修复,担心正式发布后可能暴露更多问题,为避免发布有缺陷的代码而回滚。
PostgreSQL 19 中 REPACK 相关的提交有多少?主要限制是什么?
有 15 个提交涉及 REPACK 和 REPACK CONCURRENTLY。主要限制包括:仅限堆访问方法、拒绝用户目录表、无效索引失败、!indisready 索引失败、副本标识索引被删除时不允许。
在线数据校验和切换功能在 PostgreSQL 20 中还会继续开发吗?
是的,该功能在主分支上保持不变并仍在积极开发中,9 月 14 日有 5 个提交,仍针对版本 20。
PostgreSQL 19 回滚了哪些与 CREATE SCHEMA 相关的更改?原因是什么?
Tom Lane 在 9 月 11 日回滚了两个 CREATE SCHEMA 更改,原因是兼容性破坏超过了功能收益。