PostgreSQL 全球开发组已发布所有受支持 PostgreSQL 版本的更新,包括 18.3、17.9、16.13、15.17 和 14.22。这是一次计划外发布,修复了上次更新发布后报告的多个回归问题。
完整的变更列表请查阅发布说明。
本次更新修复了自上一版本发布以来报告的多个 Bug。以下列出的问题影响 PostgreSQL 18,其中部分问题也可能影响其他受支持的 PostgreSQL 版本。
"could not access status of transaction" 的问题。substring() 函数在非 ASCII 文本值(且该值来源于数据库列)上报错 "invalid byte sequence for encoding" 的问题。该问题由修复 CVE-2026-2006 时引入的变更所导致。pg_trgm 中 strict_word_similarity 函数可能导致错误输出或崩溃的问题。该问题源于修复 CVE-2026-2007 时的疏忽。json_strip_nulls() 和 jsonb_strip_nulls() 的函数波动性,使其恢复为与之前版本一致的 immutable 属性,从而允许在索引中使用。如果您之前已升级到 PostgreSQL 18.0 至 18.2,请参阅"更新"部分中的额外步骤。LATERAL UNION ALL 子查询中 NOT NULL 测试可能导致错误查询输出的问题。NOT NULL 约束与用户定义约束产生名称冲突。pg_stat_get_backend_wait_event() 和 pg_stat_get_backend_wait_event_type(),使其能够像 pg_stat_activity 一样报告辅助进程的信息。hstore 二进制输入函数在处理包含重复键的输入时可能崩溃的问题。所有 PostgreSQL 更新版本都是累积性的。与其他小版本更新一样,用户无需转储和重新加载数据库,也无需使用 pg_upgrade 来应用此更新;只需关闭 PostgreSQL 并更新其二进制文件即可。
如果您之前已升级到 PostgreSQL 18.0、18.1 或 18.2,需要以 PostgreSQL 超级用户身份在所有数据库中执行以下 SQL,以将 json_strip_nulls() 和 jsonb_strip_nulls() 函数设置为 immutable:
UPDATE pg_catalog.pg_proc SET provolatile = 'i' WHERE oid IN ('3261','3262');
您还应在 template0 和 template1 数据库中执行此命令,以确保在 PostgreSQL 集群中创建的新数据库具有正确的函数波动性设置。更多信息请参阅关于模板数据库的文档。
跳过了一个或多个更新版本的用户可能需要执行额外的更新后步骤;详情请参阅早期版本的发布说明。
更多详情请查阅发布说明。
如果您对本发布公告有更正或建议,请发送至 pgsql-www@lists.postgresql.org 公共邮件列表。