发布说明

PostgreSQL 16.13

E.1. 发布版本 16.13 #

发布日期:. 2026-02-26

本次发布包含来自 16.12 的少量修复。 有关 16 主版本新特性的说明,请参见 Section E.14

E.1.1. 迁移到版本 16.13 #

对于运行 16.X 的用户,不需要执行导出/恢复。

但是,如果你从早于 16.10 的版本升级,请参见 Section E.4

E.1.2. 变更 #

  • 修复在重放由较旧小版本生成的 WAL 多事务 ID 截断记录后发生失败的问题 (Heikki Linnakangas) §

    为兼容旧版本处理多事务 ID 回卷方式而编写的错误逻辑,会导致重放失败,并出现诸如 could not access status of transaction 之类的消息。 一种典型场景是:最新小版本的备库正在消费来自较旧版本主库的 WAL。

  • 避免在对 toasted 数据应用 substring() 时 误报无效编码(Noah Misch) § § §

    针对 CVE-2026-2006 的修复过于激进,在实际上有效的场景中也可能错误地报出字符不完整错误。

  • 修复对 LATERAL UNION ALL 子查询输出可能将其置空的外连接集合的计算 (Richard Guo) §

    这一错误可能导致系统误以为某些 NOT NULL 测试没有必要,从而跳过这些测试, 最终产生错误的查询结果。

  • 修复 pg_stat_get_backend_wait_event()pg_stat_get_backend_wait_event_type(), 使其能够报告辅助进程的值(Heikki Linnakangas) §

    之前这些函数对辅助进程会返回 NULL,但这与 pg_stat_activity 视图的行为不一致。

  • 修复在从 PL/pgSQL 函数返回其值时,将复合类型变量转换为域类型的问题 (Tom Lane) §

    如果该变量的值为 NULL,则会出现 cache lookup failed for type 0 错误。

  • 修复 contrib/hstore 二进制输入函数中潜在的空指针解引用问题 (Michael Paquier) §

    hstore 的接收函数在输入包含重复键时会崩溃。 由 PostgreSQL 生成的 hstore 值永远不会包含重复键,因此这一错误一直未被发现。 恶意或损坏的数据都可能触发该崩溃。