↑↓ 选择 ↵ 打开 ⌫ 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

文档版本对比

POSTGRESQL · VERSION COMPARE

PostgreSQL 14.8 的版本变更

本次发布的完整功能、修复与兼容性说明,以及它们在其他版本中的关联记录。

查看该版本全部变更
查看该版本全部变更

从起始版本之后,看到目标版本为止。大版本名称代表该系列首个正式版本。

收录 PostgreSQL 9.0 起的 17 个大版本、352 份发布说明;数据更新于 2026-09-26。

本次发布的全部变更

14.8

2023-05-11

导出 JSON
67项变更功能、修复与改进
1次版本发布按发行版本归档
2个 CVE本版说明中提及的漏洞编号

14.8 受支持版本维护截止 2026-11-12

本版提及的安全记录 2 个 CVE
本版发布说明提及的 CVE,可能包含已有漏洞的后续修复
CVE / 问题严重程度修复版本
CVE-2023-2454

防止 CREATE SCHEMA 绕过 search_path 的更改

7.214.8
CVE-2023-2455

在内联集合返回函数后正确执行行级安全策略

4.214.8

PostgreSQL 14.8

升级与兼容性说明

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

但是,如果是从早于 14.4 的版本升级,请参见第 E.21 节。

安全相关防止 CREATE SCHEMA 绕过 search_path 的更改

变更

防止 CREATE SCHEMA 绕过 search_path 的更改(Alexander Lakhin)§ §

在 CREATE SCHEMA 命令中,当前 search_path 中的对象以及新创建模式中的对象,即使在调用了试图设置安全 search_path 的函数或脚本中也是可见的。这可能允许任何有权创建模式的用户劫持安全定义函数或扩展脚本的权限。

PostgreSQL 项目感谢 Alexander Lakhin 报告此问题。(CVE-2023-2454)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

安全相关在内联集合返回函数后正确执行行级安全策略

变更

在内联集合返回函数后正确执行行级安全策略(Stephen Frost,Tom Lane)§

如果一个集合返回的 SQL 语言函数引用了具有行级安全策略的表,且该函数可以被内联到调用查询中,在某些涉及在不同角色下重用缓存计划的情况下,这些 RLS 策略将不会被正确执行。这可能允许用户查看或修改本应不可见的行。

PostgreSQL 项目感谢 Wolfgang Walther 报告此问题。(CVE-2023-2455)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复避免在 CREATE SCHEMA 中省略新模式名称时发生崩溃

变更

避免在 CREATE SCHEMA 中省略新模式名称时发生崩溃(Michael Paquier)§

SQL 标准允许编写 CREATE SCHEMA AUTHORIZATION owner_name,其中模式名称默认为 owner_name。然而某些代码路径期望模式名称存在,因此会失败。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复分区表中克隆触发器的启用/禁用问题

变更

修复分区表中克隆触发器的启用/禁用问题(Tom Lane)§

ALTER TABLE ... ENABLE/DISABLE TRIGGER USER 会跳过克隆触发器,错误地将其视为系统触发器。ENABLE/DISABLE TRIGGER 的其他变体会处理它们,但只在不恰当地强制执行超级用户检查之后才处理。

关联记录(1)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进禁止修改存储在索引中的复合类型

变更

禁止修改存储在索引中的复合类型(Tom Lane)§

ALTER TYPE 不允许对存储在任何表列中的复合类型进行非二进制兼容的修改。(也许将来会允许,但目前还没有实现;重写大量表的锁定影响令人生畏。)我们忽略了索引可能包含不在其所属表中出现的复合类型的情况。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进禁止将系统列作为外键的元素

变更

禁止将系统列作为外键的元素(Tom Lane)§

自从 OID 被移除作为系统列以来,这样做没有合理的使用场景,并且各种代码不再支持它。与其试图修复所有情况,不如直接禁止。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进确保对启用了 RLS 的父表执行 COPY TO 时不会从子表中复制任何行

变更

确保对启用了 RLS 的父表执行 COPY TO 时不会从子表中复制任何行(Antonin Houska)§

文档明确说明 COPY TO 仅从指定的表中复制行,不包括它可能拥有的任何继承子表。然而,如果该表启用了行级安全,则此行为将不再成立。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复避免在向 array_position() 或 array_positions() 传递空数组时可能发生的崩溃

变更

避免在向 array_position() 或 array_positions() 传递空数组时可能发生的崩溃(Tom Lane)§

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 to_char() 中可能的越界读取问题

变更

修复 to_char() 中可能的越界读取问题(Tom Lane)§

运气不好的情况下,这可能导致服务器崩溃。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进避免 translate() 函数中的缓冲区越界读取

变更

避免 translate() 函数中的缓冲区越界读取(Daniil Anisimov)§

使用删除功能时,该函数可能会读取输入字符串之后的一个字节,从而产生少量崩溃风险。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 JSON 字符串字面量中解析错误时的错误光标设置

变更

修复 JSON 字符串字面量中解析错误时的错误光标设置(Tom Lane)§

在 JSON 值中的字符串字面量中检测到语法错误的大多数情况下,未能正确设置错误光标。这至少会导致无用的错误消息(指向字符串之前的标记,而不是实际的问题位置),在 v14 及更高版本中甚至可能导致崩溃。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复由于 vacuum_defer_cleanup_age 大于当前 64 位 xid 而导致的数据损坏

变更

修复由于 vacuum_defer_cleanup_age 大于当前 64 位 xid 而导致的数据损坏(Andres Freund)§

在 v14 及更高版本中,使用非默认的 vacuum_defer_cleanup_age 设置时,可能会计算出一个非常大的 vacuum 清理范围 xid,导致 vacuum 删除仍然存活的行。v12 和 v13 存在同一问题的较轻形式,仅影响 GiST 索引,可能导致索引页被过早回收。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复解析器在某些不正确嵌套聚合的情况下未能检测到的问题

变更

修复解析器在某些不正确嵌套聚合的情况下未能检测到的问题(Tom Lane)§

这一疏忽可能导致执行器对本应作为无效查询被拒绝的查询执行失败。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复解析序列 SEQUENCE NAME 选项时的数据结构损坏

变更

修复解析序列 SEQUENCE NAME 选项时的数据结构损坏(David Rowley)§

如果事件触发器捕获了损坏的解析树,可能会导致问题。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进在将初始计划从一个节点移动到另一个节点时,正确更新计划节点的并行安全标记

变更

在将初始计划从一个节点移动到另一个节点时,正确更新计划节点的并行安全标记(Tom Lane)§

这一规划器疏忽可能导致运行时出现 “subplan was not initialized” 错误。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进避免扩展统计代码中 PlaceHolderVar 的处理失败

变更

避免扩展统计代码中 PlaceHolderVar 的处理失败(Tom Lane)§

使用依赖类型的扩展统计可能会失败,并出现 “PlaceHolderVar found where not expected” 错误。

关联记录(1)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进当调用包含子查询时,禁用窗口聚合的逆转换优化

变更

当调用包含子查询时,禁用窗口聚合的逆转换优化(David Rowley)§

此优化要求聚合的参数表达式具有可重复的结果,而子查询可能不满足此条件。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复嵌套 ARRAY[] 构造在执行中的疏忽

变更

修复嵌套 ARRAY[] 构造在执行中的疏忽(Alexander Lakhin,Tom Lane)§

正确检测结果数组所需总空间的溢出,避免因输出分配不足而可能导致的崩溃。同时确保结果数组中任何尾部填充空间被清零;虽然在大多数情况下留下垃圾数据是无害的,但可能会导致后续出现奇怪的行为。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复防止在更新复合类型域数组列中的字段时发生崩溃

变更

防止在更新复合类型域数组列中的字段时发生崩溃(Dmitry Dolgov)§

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复布尔列分区剪枝逻辑

变更

修复布尔列分区剪枝逻辑(David Rowley)§

使用 boolcol IS NOT TRUE 条件进行裁剪时处理不正确,可能导致不返回 boolcol 为 NULL 的行。此外,按 NOT boolcol 进行分区这种不太可能的情况也处理不正确。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复并行哈希连接中每批次清理时的竞态条件

变更

修复并行哈希连接中每批次清理时的竞态条件(Thomas Munro,Melanie Plageman)§

在时机不巧且 parallel_leader_participation = off(非默认值)的情况下,可能发生崩溃。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进在 EvalPlanQual 检查后重新计算 GENERATED 列

变更

在 EvalPlanQual 检查后重新计算 GENERATED 列(Tom Lane)§

在 READ COMMITTED 隔离模式下,行更新的效果可能需要重新应用到比查询最初找到的更新版本的行上。如果是这样,我们需要重新计算任何 GENERATED 列,以防它们依赖于被并发更新所更改的列。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 Memoize 计划执行中的内存泄漏

变更

修复 Memoize 计划执行中的内存泄漏(David Rowley)§

关联记录(1)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复在分区树中包含的外部表使用批量插入时的缓冲区钉住计数泄漏

变更

修复在分区树中包含的外部表使用批量插入时的缓冲区钉住计数泄漏(Alexander Pyhalov)§

关联记录(1)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进恢复对亚毫秒级 vacuum_cost_delay 设置的支持

变更

恢复对亚毫秒级 vacuum_cost_delay 设置的支持(Thomas Munro)§

关联记录(1)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进当表具有值为零的每表 vacuum_cost_delay 设置时,不进行 vacuum 代价延迟均衡

变更

当表具有值为零的每表 vacuum_cost_delay 设置时,不进行 vacuum 代价延迟均衡(Masahiko Sawada)§

延迟均衡应该在 autovacuum 处理具有每表 vacuum_cost_delay 设置的表时被禁用,但这仅对正值生效,而不对零值生效。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复在视图末尾添加列时的极端情况崩溃

变更

修复在视图末尾添加列时的极端情况崩溃(Tom Lane)§

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复分区更新中 MULTIEXPR_SUBLINK 子计划的罕见失败

变更

修复分区更新中 MULTIEXPR_SUBLINK 子计划的罕见失败(Andres Freund,Tom Lane)§

使用语法 INSERT ... ON CONFLICT DO UPDATE SET (c1, ...) = (SELECT ...) 并以分区表作为目标表时,如果任何子表与父表不一致(例如,物理列顺序不同),可能导致失败。这通常表现为执行器中一致性检查的失败;但也可能导致崩溃或不正确的数据更新。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复在具有 DO ALSO INSERT ... SELECT 规则的视图上执行多行 INSERT ... VALUES 查询时 DEFAULT 标记的处理

变更

修复在具有 DO ALSO INSERT ... SELECT 规则的视图上执行多行 INSERT ... VALUES 查询时 DEFAULT 标记的处理(Dean Rasheed)§

此类情况通常会出现 “unrecognized node type” 错误或断言失败。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进支持在规则动作的子查询中引用 OLD 和 NEW

变更

支持在规则动作的子查询中引用 OLD 和 NEW(Dean Rasheed,Tom Lane)§

此类引用实际上是横向引用,但如果子查询没有显式标记 LATERAL,服务器可能会崩溃。安排在必要时隐式添加该标记。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复在反编译包含 WITH 中 INSERT/UPDATE/DELETE 的规则或 SQL 函数体时,注意打印目标表的正确别名

变更

在反编译包含 WITH 中 INSERT/UPDATE/DELETE 的规则或 SQL 函数体时,注意打印目标表的正确别名(Tom Lane)§

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 SERIALIZABLE READ ONLY 优化中的问题

变更

修复 SERIALIZABLE READ ONLY 优化中的问题(Thomas Munro)§ §

已标记为 “doomed” 的事务干扰了 SERIALIZABLE READ ONLY 事务的安全快照优化。在某些情况下该优化被不必要地跳过。在其他情况下会发生断言失败(但在非断言构建中没有问题)。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复避免 pgoutput 逻辑解码插件中的缓存回调槽泄漏

变更

避免 pgoutput 逻辑解码插件中的缓存回调槽泄漏(Shi Yu)§

在单个会话中多次启动和关闭该插件最终会导致 “out of relcache_callback_list slots” 错误。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进避免对索引操作符类选项的自定义验证器进行不必要的调用

变更

避免对索引操作符类选项的自定义验证器进行不必要的调用(Alexander Korotkov)§

此更改修复了某些情况下抛出意外错误的问题。

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进避免在使用多个扫描键扫描多列 BRIN 索引时进行无用的工作

变更

避免在使用多个扫描键扫描多列 BRIN 索引时进行无用的工作(Tomas Vondra)§

现有代码在决定范围是否匹配时实际上只考虑了最后一个扫描键,因此通常扫描的索引范围比实际需要的多。

关联记录(1)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 BRIN inet_minmax_multi_ops 操作符类中的网络掩码处理

变更

修复 BRIN inet_minmax_multi_ops 操作符类中的网络掩码处理(Tomas Vondra)§

此错误在启用断言的构建中会触发断言失败,但在生产构建中基本无害。

关联记录(1)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复在缓冲构建 GiST 索引期间对悬空指针的解引用

变更

修复在缓冲构建 GiST 索引期间对悬空指针的解引用(Alexander Lakhin)§

此错误在生产构建中通常是无害的,因为获取的值并不关键;但原则上可能导致服务器崩溃。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进在逻辑复制更新或删除操作期间忽略已删除列和生成列

变更

在逻辑复制更新或删除操作期间忽略已删除列和生成列(Onder Kalaci,Shi Yu)§ §

使用 REPLICA IDENTITY FULL 选项进行复制时,如果表包含此类列则会失败。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修正提交时间戳的 SLRU 缓冲区 I/O 等待事件的名称

变更

修正提交时间戳的 SLRU 缓冲区 I/O 等待事件的名称(Alexander Lakhin)§

根据文档,此等待事件名为 CommitTsBuffer,但代码中为 CommitTSBuffer。将代码改为与文档一致,因为这样与相关等待事件的命名更加一致。

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进重新激活等待事件 SLRUFlushSync 的报告

变更

重新激活等待事件 SLRUFlushSync 的报告(Thomas Munro)§

此类等待的报告在代码重构中被意外移除。

关联记录(1)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进避免在计算要保留多少 WAL 段时可能发生的下溢

变更

避免在计算要保留多少 WAL 段时可能发生的下溢(Kyotaro Horiguchi)§

这可能导致无法准确遵守 wal_keep_size 设置。

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进支持使用 SCRAM-SHA-256 通道绑定的 RSA-PSS 证书

变更

支持使用 SCRAM-SHA-256 通道绑定的 RSA-PSS 证书(Jacob Champion,Heikki Linnakangas)§

此功能需要使用 OpenSSL 1.1.1 或更新版本构建。服务器和 libpq 都受到影响。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进避免在 Windows 上进程 ID 跟踪的竞态条件

变更

避免在 Windows 上进程 ID 跟踪的竞态条件(Thomas Munro)§ § §

操作系统可能在 postmaster 观察到子进程已退出之前回收其 PID。这可能导致使用相同的 PID 跟踪多个子进程,从而造成混乱。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进为 SPI_result_code_string() 添加缺失的分支

变更

为 SPI_result_code_string() 添加缺失的分支(Dean Rasheed)§

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 AllocSetRealloc() 中错误的 Valgrind 标记

变更

修复 AllocSetRealloc() 中错误的 Valgrind 标记(Karina Litskevich)§

在大型(>8kB)palloc 块的大小被减小这种不常见的情况下,启用 Valgrind 的构建会错误标记从块中释放的内存的已定义状态,可能在 Valgrind 测试期间导致不正确的结果。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进避免在解码事务性逻辑复制消息时发生断言失败

变更

避免在解码事务性逻辑复制消息时发生断言失败(Tomas Vondra)§

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进避免在处理正则表达式转义时的区域设置敏感性

变更

避免在处理正则表达式转义时的区域设置敏感性(Jeff Davis)§

反斜杠后跟非 ASCII 字符有时会导致断言失败,具体取决于当前的区域设置。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进避免在 log_newpage_range() 中当指定范围内最后几个页面为空时尝试写入空 WAL 记录

变更

避免在 log_newpage_range() 中当指定范围内最后几个页面为空时尝试写入空 WAL 记录(Matthias van de Meent)§

目前尚不完全清楚此情况在已发布的分支中是否可达,但如果可达则可能发生断言失败。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复使用类型转换表达式的 plpgsql DO 块中的会话生命周期内存泄漏

变更

修复使用类型转换表达式的 plpgsql DO 块中的会话生命周期内存泄漏(Ajit Awekar,Tom Lane)§

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进加强将 Perl 列表结构转换为多维 SQL 数组时的数组维度检查

变更

加强将 Perl 列表结构转换为多维 SQL 数组时的数组维度检查(Tom Lane)§

当子列表的嵌套不一致,使得数据不能表示值的矩形数组时, plperl 可能会出现异常行为。此类情况现在会产生错误,但之前可能导致崩溃或产生垃圾输出。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进加强将 Python 列表结构转换为多维 SQL 数组时的数组维度检查

变更

加强将 Python 列表结构转换为多维 SQL 数组时的数组维度检查(Tom Lane)§ §

在处理空子列表,或子列表嵌套不一致使得数据不能表示值的矩形数组时, plpython 可能会出现异常行为。前者应该产生空输出数组,后者应产生错误。但某些情况下会导致崩溃,另一些情况下会产生意外输出。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 plpython 中异常栈的展开

变更

修复 plpython 中异常栈的展开(Xing Guo)§

某些罕见的失败情况可能在未清理 PG_TRY 异常栈的情况下返回,如果在下一个栈层级被展开之前引发另一个错误,则有崩溃风险。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 libpq 的 PQconnectPoll() 中不一致的 GSS 加密错误处理

变更

修复 libpq 的 PQconnectPoll() 中不一致的 GSS 加密错误处理(Michael Paquier)§

当 gssencmode 设置为 require 时,GSS 初始化失败后连接未被标记为已断开。使其立即失败,与 TLS 加密的等效情况长期以来的行为一致。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复使用 -C ORACLE 选项构建的 ecpg 程序中可能的数据损坏

变更

修复使用 -C ORACLE 选项构建的 ecpg 程序中可能的数据损坏(Kyotaro Horiguchi)§

当 ecpg_get_data() 被调用时 varcharsize 设置为零,它可能会将终止零字符写入前一个字段的最后一个字节,从而截断该字段中的数据。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 pg_dump,使得在枚举类型列上进行 hash 分区的分区表可以成功恢复

变更

修复 pg_dump,使得在枚举类型列上进行 hash 分区的分区表可以成功恢复(Tom Lane)§

由于枚举值的 hash 码依赖于分配给枚举的 OID,在导出和恢复后它们通常是不同的,这意味着行往往需要进入与原来不同的分区。用户可以通过指定 --load-via-partition-root 选项来解决此问题;但由于不使用该选项几乎不可能成功,因此让 pg_dump 对此类表自动应用该选项。

同时,修复 pg_restore,使其在使用 --load-via-partition-root 模式时不再尝试在恢复前 TRUNCATE 目标表。这避免了死锁和数据丢失的风险。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进在 Windows 上正确检测不可定位的文件

变更

在 Windows 上正确检测不可定位的文件(Juan José Santamaría Flecha,Michael Paquier,Daniel Watzinger)§ §

此错误导致 pg_dump 写入管道或 pg_restore 从管道读取时出现异常行为。

关联记录(1)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进在 pgbench 的 “prepared” 模式下,在启动管线之前准备好管线中的所有命令

变更

在 pgbench 的 “prepared” 模式下,在启动管线之前准备好管线中的所有命令(Álvaro Herrera)§

这避免了当 pgbench 脚本尝试在管线内部启动可串行化事务时出现的失败。

关联记录(1)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进在 contrib/amcheck 的堆检查代码中,正确处理 xmin 或 xmax 为零的元组

变更

在 contrib/amcheck 的堆检查代码中,正确处理 xmin 或 xmax 为零的元组(Robert Haas)§ §

关联记录(1)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进在 contrib/amcheck 中,合理处理看起来在纪元零之前的 xid

变更

在 contrib/amcheck 中,合理处理看起来在纪元零之前的 xid(Andres Freund)§

在损坏的情况下,我们可能会看到一个回卷的 32 位 xid,看起来在第一个 xid 纪元之前。将这样的值提升为 64 位形式会产生一个远在未来的值,导致错误的报告。在此类情况下返回 FirstNormalFullTransactionId,以便行为合理正常。

关联记录(1)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复在 contrib/hstore_plpython 中,如果要转换的 Python 值不是映射类型则避免崩溃

变更

在 contrib/hstore_plpython 中,如果要转换的 Python 值不是映射类型则避免崩溃(Dmitry Dolgov,Tom Lane)§

这应该产生一个错误,但 Python 3 更改了一些 API,导致检查出现异常行为,从而引发崩溃。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进要求 ltree 列上 GiST 索引的 siglen 选项(如果指定)必须是 4 的倍数

变更

要求 ltree 列上 GiST 索引的 siglen 选项(如果指定)必须是 4 的倍数(Alexander Korotkov)§

其他值会导致对索引内容的未对齐访问,这在 Intel 兼容硬件上是无害的,但在某些其他架构上可能导致崩溃。

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进在 contrib/pageinspect 中,为 gist_page_items() 函数增加对错误输入的防御

变更

在 contrib/pageinspect 中,为 gist_page_items() 函数增加对错误输入的防御(Dmitry Koval)§

关联记录(1)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 contrib/pg_trgm 在处理不可满足的正则表达式时的异常行为

变更

修复 contrib/pg_trgm 在处理不可满足的正则表达式时的异常行为(Tom Lane)§

如 $foo 这样的正则表达式是合法的但不可满足;正则表达式编译器会识别到这一点并生成一个空的 NFA 图。尝试将这样的图优化为 pg_trgm GIN 或 GiST 索引限定条件时,会导致访问工作数组末尾之外的内容,可能导致崩溃。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进在使用 GNU 兼容的 strip 剥离静态库时使用 --strip-unneeded 选项

变更

在使用 GNU 兼容的 strip 剥离静态库时使用 --strip-unneeded 选项(Tom Lane)§

之前,make install-strip 在这种情况下使用 -x 选项。此更改避免了 llvm-strip 的异常行为,同时也能产生稍小的输出。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进停止推荐自动下载 DTD 文件用于构建文档,并实际禁用该功能

变更

停止推荐自动下载 DTD 文件用于构建文档,并实际禁用该功能(Aleksander Alekseev,Peter Eisentraut,Tom Lane)§

现在似乎不再可能在没有本地安装 DocBook DTD 文件的情况下构建 SGML 文档。之前 xsltproc 可以从 sourceforge.net 即时下载这些文件;但 sourceforge.net 现在只允许 HTTPS 访问,而没有常见版本的 xsltproc 支持该协议。因此,移除了我们文档中建议这种做法是可能或有用的部分,改为在构建配方中添加 xsltproc 的 --nonet 选项。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进在 PGXS 构建中运行 TAP 测试时,为临时 portlock 目录使用更合理的位置

变更

在 PGXS 构建中运行 TAP 测试时,为临时 portlock 目录使用更合理的位置(Peter Eisentraut)§

将其放置在构建目录下的 tmp_check 中。使用之前的代码,PGXS 构建会尝试将其放置在安装目录中,而该目录不一定是可写的。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进将时区数据文件更新到 tzdata 版本 2023c,包含埃及、格陵兰、摩洛哥和巴勒斯坦的夏令时法规变更。

变更

将时区数据文件更新到 tzdata 版本 2023c,包含埃及、格陵兰、摩洛哥和巴勒斯坦的夏令时法规变更。(Tom Lane)§

在使用莫斯科时间时,Europe/Kirov 和 Europe/Volgograd 现在使用缩写 MSK/MSD 而不是数字缩写,以与其他使用莫斯科时间的时区保持一致。此外,America/Yellowknife 不再与 America/Edmonton 不同;这影响该地区 1948 年之前的一些时间戳。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

这份对比如何生成?

对比以 PostgreSQL 发行说明为依据,汇总起始版本之后、目标版本及之前的变更,支持同一大版本内的小版本更新,以及跨大版本升级。跨大版本时,旧分支的维护记录只纳入到下一大版本首次发布之日,所有记录均不晚于目标版本的发布日期。大版本名称(如 18)指首个正式版本(18.0);测试版与开发快照会单独标注。

条目正文来自本站中文手册,版本清单、条目覆盖与提交依据逐一核对上游英文原文。每条变更保留完整说明与原文链接;分类用于辅助浏览,具体影响、适用条件与升级操作请阅读条目正文和各版本的升级说明。

同一修复可能回补到多个版本分支。对比会保守合并可确认相同的条目,并保留各分支完整说明;已知由起始版本包含的修复会排除。一条说明包含多个独立修复时,只有全部已包含才排除。大版本新功能不因与旧版补丁存在提交关联而合并,不能确认相同的条目继续保留。这是发行说明的累计差异,不能覆盖二进制程序之间的每一处代码变化。

CVE 独立依据 PostgreSQL 官方安全公告与漏洞记录计算:起始版本受影响、目标版本已修复或不受影响的漏洞才计入,按编号去重。目标版本仍受影响的漏洞另行提示;安全变更条数与 CVE 数量分别统计。

交互参考 pgversions.com 与 pgversionreport,内容来自 PostgreSQL 发行说明。更多历史资料见发行说明归档。