pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
文档版本对比
POSTGRESQL · VERSION COMPARE
本次发布的完整功能、修复与兼容性说明,以及它们在其他版本中的关联记录。
从起始版本之后,看到目标版本为止。大版本名称代表该系列首个正式版本。
收录 PostgreSQL 9.0 起的 17 个大版本、352 份发布说明;数据更新于 2026-09-26。
本次发布的全部变更
2021-02-11
9.5.25 历史版本维护截止 2021-02-11
对于运行 9.5.X 的用户,不需要转储/恢复。
不过,请看下面的第一条变更日志条目,它描述了升级之后可能宜对索引执行 REINDEX 的几种情况。
另外,如果你是从 9.5.20 之前的版本升级,参见第 E.6 节。
变更
修复 CREATE INDEX CONCURRENTLY,使其等待并发的预备事务(Andrey Borodin)
在 CREATE INDEX CONCURRENTLY 等待所有并发事务完成以便能看到它们插入的行的那个时刻,出于同样的原因,它也必须等待所有预备事务完成。此前没有这样做,意味着预备事务插入的行可能被遗漏在新索引之外,导致依赖该索引的查询漏掉这些行。在启用了预备事务的安装(max_prepared_transactions > 0)中,如果并发构建索引时可能发生过此问题,建议对这些索引执行 REINDEX。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
避免对计划包含 MergeAppend 节点的游标应用 WHERE CURRENT
OF 时出现错误结果(Tom Lane)
这种情况不受支持(一般而言,使用 ORDER BY 的游标不保证是简单可更新的);但代码此前没有拒绝它,并且可能静默地给出假匹配。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复对计划包含自定义扫描节点的游标应用 WHERE CURRENT OF
时的崩溃(David Geier)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复规划器对在某个连接层级计算且仅在同一层级使用的占位符的处理(Tom Lane)
这一疏漏可能导致“failed to build any N-way
joins”规划器错误。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
更谨慎地判断索引访问方法是否支持 mark/restore(Andrew Gierth)
这防止了罕见边界情况下缺少支持函数的错误。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 ALTER DEFAULT PRIVILEGES 安全处理重复参数的问题(Michael Paquier)
同一条命令中重复的角色或模式名可能导致“tuple already updated by self”错误或唯一约束冲突。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
当 pg_authid 变化时刷新与 ACL 相关的缓存(Noah Misch)
这一更改确保与权限相关的决策能及时反映
ALTER ROLE ... [NO] INHERIT 的结果。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
防止对有歧义的 CREATE TABLE LIKE 子句的错误处理(Tom Lane)
LIKE 子句在新表初始创建之后会被重新检查,以处理索引等的导入。这一重新检查有可能找到同名的另一张表,导致意外的行为;一个例子是新表是与 LIKE 目标同名的临时表。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
调整 CREATE TABLE LIKE 中操作的顺序,使索引在外键约束构建之前被克隆(Tom Lane)
这修复了外层 CREATE TABLE 中声明的自引用外键约束依赖于来自 LIKE 子句的索引的情况。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
禁止把继承子表转换为视图(Tom Lane)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
确保已删除关系占用的磁盘空间在提交时被及时释放(Thomas Munro)
此前,如果被删除的关系跨越多个 1GB 段,只有第一段被立即截断。其他段只是被解除链接,只要还有其他后端打开着这些文件,这不会让内核释放存储。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 COPY FROM 中反斜线转义的多字节字符的处理(Heikki Linnakangas)
反斜线后跟多字节字符的情况没有被正确处理。在某些客户端字符编码下,这可能导致把多字节字符的一部分误解释为字段分隔符或复制数据结束标记。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
避免不带 ANALYZE 的 EXPLAIN 预先分配执行器哈希表(Alexey Bashtanov)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 LISTEN/NOTIFY 队列处理中新近引入的竞态条件(Tom Lane)
新监听的后端可能试图读取正在被截断的 SLRU 页,可能导致错误。
队列尾指针可能被设置为一个不等于任何后端队列位置的值,导致队列截断逻辑被有效禁用。继续使用 NOTIFY 随后会导致队列填满警告,最终在服务器重启之前无法再发送任何通知。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
允许 jsonb 连接操作符处理 JSON 数据类型的所有组合(Tom Lane)
我们可以连接两个 JSON 对象或两个 JSON 数组。其他情况通过把非数组输入包装成单元素数组再执行数组连接来处理。此前,某些输入组合遵循此规则,另一些则任意地抛出错误。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 BRE 模式正则表达式中解析 * 量词时使用未初始化值的问题(Tom Lane)
这个错误可能导致量词表现为非贪婪,即表现得像完整正则表达式中的
*? 量词那样。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
防止因错误检测 SLRU 日志回卷点而可能发生的的数据丢失(Noah Misch)
回卷点通常落在页中间,必须把它舍入到页边界,而这一步没有正确完成。除非安装已经到达距 SLRU 溢出不到一页的位置(在正常运行的系统中不太可能),否则不会出现问题。如果真的发生,之后会表现为“apparent wraparound”或“could not access status of transaction”错误。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 walsender 进程在为逻辑解码发送新快照期间的内存泄漏(Amit Kapila)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 walsender 在终止复制之后接受其他命令的问题(Jeff Davis)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
避免检查带 TRANSFORM 选项的函数时
pg_get_functiondef() 的断言失败(Tom Lane)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
在 psql 中,重新允许在 \connect
命令的 connection_string 参数中包含密码(Tom Lane)
这过去可以工作,但最近的一次 bug 修复导致密码被忽略(结果是提示输入密码)。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 psql 的 \help 命令的若干 bug(Kyotaro Horiguchi、Tom Lane)
带两个参数词的 \help 未能只用第一个词找到命令说明,例如 \help reset all 本应显示 RESET
的帮助但没有。此外,\help 常常在应该调用分页器时没有调用。它还泄漏内存。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
在 pg_rewind 中,确保回卷备库服务器时所有 WAL 都被考虑到(Ian Barwick、Heikki Linnakangas)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
在部分客户端程序的连接失败错误消息中报告正确的数据库名(Álvaro Herrera)
如果数据库名是默认推断而非在命令行上给出的,pg_dumpall、pgbench、oid2name 和 vacuumlo 在连接失败之后会产生误导性的错误消息。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 contrib/auto_explain 中的内存泄漏(Japin Li)
生成 EXPLAIN 输出期间消耗的内存直到当前事务结束(对顶层语句)或外围语句结束(对嵌套语句)才被释放。在启用
log_nested_statements 时这尤其成问题。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
在 contrib/postgres_fdw 中,避免删除用户映射或外部服务器对象时泄漏到远程服务器的打开连接(Bharath Rupireddy)
依赖于被删除用户映射或外部服务器的打开连接不再能被引用,但此前它们仍会在本地会话期间被保留。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
在 contrib/pgcrypto 中,检查 OpenSSL EVP 函数的错误返回(Michael Paquier)
我们并不真的预期这里会出错,但这一更改能让静态分析工具安静下来。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
在 contrib/pg_trgm 的 GiST 索引支持中,避免
picksplit 恰好在两个索引项上被调用这一罕见情况下的崩溃(Andrew Gierth、Alexander Korotkov)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 contrib/pg_prewarm 和
contrib/postgres_fdw 中超时的计算错误(Alexey Kondratov、Tom Lane)
contrib/pg_prewarm 的 autoprewarm 父进程的主循环把期望的睡眠时间低估了 1000 倍,导致消耗远超预期的 CPU。在等待远程服务器的结果时,contrib/postgres_fdw
把期望的超时高估了 1000 倍(不过这个错误已被 60 秒的钳制所缓解)。
这两个错误都源于把秒和微秒错误地转换为毫秒。引入新的 API
TimestampDifferenceMilliseconds(),使将来更容易做对。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
改进 configure 在 macOS 上选择
PG_SYSROOT 的启发式(Tom Lane)
当 Xcode 比底层操作系统更新时,新方法更可能产生理想的结果。选择与操作系统版本不匹配的 sysroot 可能导致不可用的可执行文件。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
在 macOS 上构建时,在链接步骤和编译步骤中一样指定
-isysroot(James Hilliard)
这同样改进了 Xcode 与操作系统不同步时的结果。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
更新时区数据文件到 tzdata 版本 2021a,涉及俄罗斯(伏尔加格勒时区)和南苏丹的夏令时法规变更,以及澳大利亚、巴哈马、伯利兹、百慕大、加纳、以色列、肯尼亚、尼日利亚、巴勒斯坦、塞舌尔和瓦努阿图的历史修正。
值得注意的是,Australia/Currie 时区已被修正到与 Australia/Hobart 相同的程度。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
试试其他关键词,或。
对比以 PostgreSQL 发行说明为依据,汇总起始版本之后、目标版本及之前的变更,支持同一大版本内的小版本更新,以及跨大版本升级。跨大版本时,旧分支的维护记录只纳入到下一大版本首次发布之日,所有记录均不晚于目标版本的发布日期。大版本名称(如 18)指首个正式版本(18.0);测试版与开发快照会单独标注。
条目正文来自本站中文手册,版本清单、条目覆盖与提交依据逐一核对上游英文原文。每条变更保留完整说明与原文链接;分类用于辅助浏览,具体影响、适用条件与升级操作请阅读条目正文和各版本的升级说明。
同一修复可能回补到多个版本分支。对比会保守合并可确认相同的条目,并保留各分支完整说明;已知由起始版本包含的修复会排除。一条说明包含多个独立修复时,只有全部已包含才排除。大版本新功能不因与旧版补丁存在提交关联而合并,不能确认相同的条目继续保留。这是发行说明的累计差异,不能覆盖二进制程序之间的每一处代码变化。
CVE 独立依据 PostgreSQL 官方安全公告与漏洞记录计算:起始版本受影响、目标版本已修复或不受影响的漏洞才计入,按编号去重。目标版本仍受影响的漏洞另行提示;安全变更条数与 CVE 数量分别统计。
交互参考 pgversions.com 与 pgversionreport,内容来自 PostgreSQL 发行说明。更多历史资料见发行说明归档。