出于对潜在漏洞的担忧,PostgreSQL 开发团队已从即将发布的 PostgreSQL 19 中撤回了原计划的图查询支持功能。尽管 SQL/PGQ(SQL Property Graph Queries)已在 2023 年纳入 SQL 标准,旨在提供探索节点间关系的语法,但因实现层面存在尚未解决的问题,该功能被暂时移除。目前 PostgreSQL 19 的最终发布日期尚未确定,但其第四版测试版已定于 9 月 24 日发布。
资深贡献者 Tom Lane 直言,若在 v19 中强行加入该功能,极有可能在发布后引入无法在 v20 版本之前修复的严重 bug。EDB 高级软件工程副总裁 Tom Kincaid 也证实,社区决定在解决更多问题前,不将 PGQ 包含在 v19 中。
无需停机的空间回收机制
尽管图查询功能延期,PostgreSQL 19 仍带来了一项备受数据库管理员期待的关键改进:在不阻断用户访问的情况下回收磁盘空间。
传统的 VACUUM FULL 命令通过重写表来回收旧行版本占用的空间,但在此过程中会全程持有排他表锁,阻止其他读写操作。Kincaid 指出,这种中断往往导致管理员不愿执行该操作,甚至引发深夜紧急故障电话,因为客户数据访问会被阻塞。
为此,新版本引入了带有 CONCURRENTLY 选项的 REPACK 命令。该选项允许在大多数操作期间,其他事务仍能并发访问表。虽然在最终替换重写的表和索引文件时仍需短暂持有排他锁,但相比传统方式,其对业务的影响已大幅降低。对于希望避免服务中断的管理员而言,这一并发选项将成为关键工具。