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

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

文档版本对比

POSTGRESQL · VERSION COMPARE

PostgreSQL 9.5.24 的版本变更

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

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

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

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

本次发布的全部变更

9.5.24

2020-11-12

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

9.5.24 历史版本维护截止 2021-02-11

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

禁止在索引表达式和物化视图查询中执行 DECLARE CURSOR ... WITH HOLD 以及触发延迟触发器

8.89.5.24
CVE-2020-25694

修复 pg_dump、pg_restore、 clusterdb、reindexdb 和 vacuumdb 中复杂连接字符串参数的用法

8.19.5.24
CVE-2020-25696

防止 psql 的 \gset 命令修改特殊处理的变量

7.59.5.24

PostgreSQL 9.5.24

升级与兼容性说明

对于运行 9.5.X 的用户,不需要转储/恢复。

不过,如果你是从 9.5.20 之前的版本升级,参见第 E.6 节。

安全相关禁止在索引表达式和物化视图查询中执行 DECLARE CURSOR ... WITH HOLD 以及触发延迟触发器

变更

禁止在索引表达式和物化视图查询中执行 DECLARE CURSOR ... WITH HOLD 以及触发延迟触发器(Noah Misch)

这本质上是“安全受限操作”沙箱机制中的一种泄漏。有权创建非临时 SQL 对象的攻击者可以利用此泄漏以超级用户身份执行任意 SQL 代码。

PostgreSQL 项目感谢 Etienne Stalmans 报告此问题。(CVE-2020-25695)

关联记录(5)

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

安全相关修复 pg_dump、pg_restore、 clusterdb、reindexdb 和 vacuumdb 中复杂连接字符串参数的用法

变更

修复 pg_dump、pg_restore、 clusterdb、reindexdb 和 vacuumdb 中复杂连接字符串参数的用法(Tom Lane)

pg_dump 和 pg_restore 的 -d 参数,或所述其他程序的 --maintenance-db 参数,可以是包含多个连接参数的“连接字符串”而不只是数据库名。在这些程序需要发起额外连接的场合(如并行处理或多数据库处理),连接字符串被遗忘,额外连接只使用了基本连接参数(数据库名、主机、端口和用户名)。如果连接字符串包含任何其他必要信息(如非默认的 SSL 或 GSS 参数),这可能导致连接失败。更糟的是,连接可能成功但没有按预期加密,或者容易受到原本预期的连接参数可以阻止的中间人攻击。(CVE-2020-25694)

关联记录(5)

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

安全相关当 psql 的 \connect 命令复用连接参数时,确保先前连接字符串中所有未被覆盖的参数都被复用

变更

当 psql 的 \connect 命令复用连接参数时,确保先前连接字符串中所有未被覆盖的参数都被复用(Tom Lane)

这避免了因遗漏相关参数(如非默认的 SSL 或 GSS 选项)而导致重连失败的情况。更糟的是,重连可能成功但没有按预期加密,或者容易受到原本预期的连接参数可以阻止的中间人攻击。这与刚才提到的 pg_dump 等程序的问题基本相同,不过 psql 的行为更复杂,因为用户可能有意覆盖某些连接参数。(CVE-2020-25694)

关联记录(5)

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

安全相关防止 psql 的 \gset 命令修改特殊处理的变量

变更

防止 psql 的 \gset 命令修改特殊处理的变量(Noah Misch)

不带前缀的 \gset 会覆盖服务器让它设置的任何变量。因此,一个被攻破的服务器可以设置 PROMPT1 等特殊处理的变量,从而能够在用户的会话中执行任意 shell 代码。

PostgreSQL 项目感谢 Nick Cleaton 报告此问题。(CVE-2020-25696)

关联记录(5)

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

其他改进防止并发截断 SLRU 日志可能导致的数据丢失

变更

防止并发截断 SLRU 日志可能导致的数据丢失(Noah Misch)

这一罕见问题之后会表现为 “apparent wraparound” 或 “could not access status of transaction” 错误。

关联记录(4)

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

其他改进确保检查点期间正确 fsync SLRU 目录

变更

确保检查点期间正确 fsync SLRU 目录(Thomas Munro)

这防止了后续操作系统崩溃时可能的数据丢失。

关联记录(5)

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

BUG 修复修复对具有 BYPASSRLS 属性的用户的 ALTER ROLE

变更

修复对具有 BYPASSRLS 属性的用户的 ALTER ROLE(Tom Lane、Stephen Frost)

BYPASSRLS 属性只允许超级用户更改,但其他 ALTER ROLE 操作(如更改密码)应只需普通权限检查即可。原来的编码错误地把对此类角色的所有更改都限制为超级用户。

关联记录(5)

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

BUG 修复修复带继承的 CREATE TABLE LIKE 中表达式的处理

变更

修复带继承的 CREATE TABLE LIKE 中表达式的处理(Tom Lane)

如果一条 CREATE TABLE 命令同时使用了 LIKE 和传统继承,来自 LIKE 父表的 CHECK 约束和表达式索引中的列引用容易被编错号,导致错误答案和/或离奇的错误消息。在拥有该特性的分支中,GENERATED 表达式也可能发生同样的问题。

关联记录(4)

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

BUG 修复修复 to_date() 和 to_timestamp() 中负年份转换为公元前日期的差一错误

变更

修复 to_date() 和 to_timestamp() 中负年份转换为公元前日期的差一错误(Dar Alathar-Yemen、Tom Lane)

同时,让负年份与显式“BC”标记的组合相互抵消并产生公元日期。

关联记录(5)

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

其他改进确保 archive_mode 设为 always 时备库服务器会归档 WAL 时间线历史文件

变更

确保 archive_mode 设为 always 时备库服务器会归档 WAL 时间线历史文件(Grigory Smolkin、Fujii Masao)

这一疏漏可能导致后续 PITR 恢复尝试失败。

关联记录(5)

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

其他改进避免因 SIGQUIT 退出时运行 atexit 处理器

变更

避免因 SIGQUIT 退出时运行 atexit 处理器(Kyotaro Horiguchi、Tom Lane)

大多数服务器进程已经遵循这一做法,但归档器进程被遗漏了。仍在等待客户端启动包的后端也做错了。

关联记录(4)

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

其他改进避免错误优化引用表面常量分组列的子查询限定条件

变更

避免错误优化引用表面常量分组列的子查询限定条件(Tom Lane)

如果“常量”子查询输出列是只出现在部分分组集中的分组列,它就不是真正的常量。

关联记录(4)

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

其他改进避免 SQL 函数内联改变潜在可哈希子计划比较表达式形状时的失败

变更

避免 SQL 函数内联改变潜在可哈希子计划比较表达式形状时的失败(Tom Lane)

关联记录(4)

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

其他改进在构建或重建索引期间,容忍并发更新导致的新 HOT 链的出现

变更

在构建或重建索引期间,容忍并发更新导致的新 HOT 链的出现(Anastasia Lubennikova、Álvaro Herrera)

这一疏漏可能导致 “failed to find parent tuple for heap-only tuple” 错误。

关联记录(4)

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

其他改进确保数据在插入 BRIN 索引之前被解 TOAST

变更

确保数据在插入 BRIN 索引之前被解 TOAST(Tomas Vondra)

索引条目不应包含外联 TOAST 指针,但 BRIN 没有遵守这一点。这可能导致 “missing chunk number 0 for toast value NNN” 之类的错误。(如果现有索引报出这种错误,REINDEX 就足以修复。)

关联记录(5)

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

其他改进在 BRIN 索引扫描期间正确处理并发取消摘要

变更

在 BRIN 索引扫描期间正确处理并发取消摘要(Alexander Lakhin、Álvaro Herrera)

此前,如果某个页范围恰好在错误的时间被取消摘要,索引扫描可能错误地报出指示索引损坏的错误。

关联记录(4)

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

BUG 修复修复多列 GIN 索引扫描中罕见的 “lost saved point in index” 错误

变更

修复多列 GIN 索引扫描中罕见的 “lost saved point in index” 错误(Tom Lane)

关联记录(4)

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

BUG 修复修复事件触发器监视 ALTER TABLE 操作时的释放后使用风险

变更

修复事件触发器监视 ALTER TABLE 操作时的释放后使用风险(Jehan-Guillaume de Rorthais)

关联记录(4)

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

BUG 修复修复关于移动聚合数据类型不一致的错误错误消息

变更

修复关于移动聚合数据类型不一致的错误错误消息(Jeff Janes)

关联记录(4)

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

其他改进避免并行工作者报告很长的错误消息时的锁死

变更

避免并行工作者报告很长的错误消息时的锁死(Vignesh C)

关联记录(4)

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

其他改进避免通过共享内存队列传输超大载荷时不必要的失败

变更

避免通过共享内存队列传输超大载荷时不必要的失败(Markus Wanner)

关联记录(5)

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

BUG 修复修复 RLS 策略导致的关系缓存内存泄漏

变更

修复 RLS 策略导致的关系缓存内存泄漏(Tom Lane)

关联记录(5)

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

BUG 修复修复 SIGHUP 处理判定新的 GUC 变量值必须重启才能应用时的小内存泄漏

变更

修复 SIGHUP 处理判定新的 GUC 变量值必须重启才能应用时的小内存泄漏(Tom Lane)

关联记录(5)

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

其他改进让 libpq 支持 .pgpass 文件中任意长度的行

变更

让 libpq 支持 .pgpass 文件中任意长度的行(Tom Lane)

这主要用于允许使用很长的安全令牌作为密码。

关联记录(4)

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

其他改进在 Windows 的 libpq 中,每进程调用一次 WSAStartup(),完全不调用 WSACleanup()

变更

在 Windows 的 libpq 中,每进程调用一次 WSAStartup(),完全不调用 WSACleanup()(Tom Lane、Alexander Lakhin)

此前,libpq 在连接开始时调用 WSAStartup(),在连接清理时调用 WSACleanup()。然而,调用 WSACleanup() 似乎会干扰其他程序操作;特别是,我们观察到向 stdout 输出预期内容偶尔失败。省略该调用似乎没有不良影响,因此就这么做。(这还消除了程序执行一系列数据库连接时因反复加载和卸载 DLL 导致的性能问题。)

关联记录(5)

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

BUG 修复修复 ecpg 库在 Windows 上的每线程初始化逻辑

变更

修复 ecpg 库在 Windows 上的每线程初始化逻辑(Tom Lane、Alexander Lakhin)

多线程的 ecpg 应用可能因错误的锁定而出现罕见的错误行为。

关联记录(5)

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

其他改进在 Windows 上,让 psql 以文本模式而非二进制模式读取反引号命令的输出

变更

在 Windows 上,让 psql 以文本模式而非二进制模式读取反引号命令的输出(Tom Lane)

这确保正确处理换行符。

关联记录(5)

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

其他改进确保 pg_dump 收集扩展配置表的逐列信息

变更

确保 pg_dump 收集扩展配置表的逐列信息(Fabrízio de Royes Mello、Tom Lane)

没有做到这一点会导致指定 --inserts 时崩溃,或在使用 COPY 重新装载表数据时生成欠指定(虽然通常正确)的 COPY 命令。

关联记录(5)

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

其他改进让 pg_upgrade 检查目标集簇中表空间目录的预先存在

变更

让 pg_upgrade 检查目标集簇中表空间目录的预先存在(Bruce Momjian)

关联记录(5)

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

BUG 修复修复 contrib/pgcrypto 中潜在的内存泄漏

变更

修复 contrib/pgcrypto 中潜在的内存泄漏(Michael Paquier)

关联记录(5)

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

其他改进在 contrib/pgcrypto 中为一个不太可能发生的失败情况添加检查

变更

在 contrib/pgcrypto 中为一个不太可能发生的失败情况添加检查(Daniel Gustafsson)

关联记录(5)

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

其他改进在 configure 的测试程序中使用 return 而非 exit()

变更

在 configure 的测试程序中使用 return 而非 exit()(Peter Eisentraut)

这避免了更挑剔的编译器下的失败。

关联记录(1)

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

其他改进更新时区数据文件到 tzdata 版本 2020d,涉及斐济、摩洛哥、巴勒斯坦、加拿大育空、麦夸里岛和凯西站(南极洲)的夏令时法规变更,以及法国、匈牙利、摩纳哥和巴勒斯坦的历史修正。

变更

更新时区数据文件到 tzdata 版本 2020d,涉及斐济、摩洛哥、巴勒斯坦、加拿大育空、麦夸里岛和凯西站(南极洲)的夏令时法规变更,以及法国、匈牙利、摩纳哥和巴勒斯坦的历史修正。

关联记录(5)

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

其他改进把我们的时区库副本与 IANA tzcode 版本 2020d 同步

变更

把我们的时区库副本与 IANA tzcode 版本 2020d 同步(Tom Lane)

这吸收了上游把 zic 默认输出选项从 “fat” 改为 “slim” 的变更。对我们的用途而言这只是表面变化,因为我们在 v13 之前的分支中继续选择 “fat” 模式。这一更改还确保 strftime() 不会在未失败时更改 errno。

关联记录(5)

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

这份对比如何生成?

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

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

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

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

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