pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
文档版本对比
POSTGRESQL · VERSION COMPARE
本次发布的完整功能、修复与兼容性说明,以及它们在其他版本中的关联记录。
从起始版本之后,看到目标版本为止。大版本名称代表该系列首个正式版本。
收录 PostgreSQL 9.0 起的 17 个大版本、352 份发布说明;数据更新于 2026-09-26。
本次发布的全部变更
2018-08-09
9.6.10 历史版本维护截止 2021-11-11
| CVE / 问题 | 严重程度 | 修复版本 |
|---|---|---|
| CVE-2018-10915 修复连接尝试之间未能完全重置 libpq 状态的问题 | 8.5 | 9.6.10 |
| CVE-2018-10925 修复通过不只是 SELECT * FROM ... 的视图执行 INSERT ... ON CONFLICT UPDATE 的问题 | 7.1 | 9.6.10 |
对于运行 9.6.X 的用户,不需要转储/恢复。
不过,如果你是从 9.6.9 之前的版本升级,参见第 E.16 节。
变更
修复连接尝试之间未能完全重置 libpq 状态的问题(Tom Lane)
dblink 或 postgres_fdw 的无权限用户可以绕过旨在防止使用服务器端凭据(如运行服务器的操作系统用户拥有的 ~/.pgpass 文件)的检查。允许本地连接上对等认证的服务器尤其容易受影响。其他攻击(如向 postgres_fdw 会话注入 SQL)也是可能的。以这种方式攻击 postgres_fdw 需要能够创建带选定连接参数的外部服务器对象,但任何能访问 dblink 的用户都可以利用该问题。一般而言,能够为使用 libpq 的应用选择连接参数的攻击者都可能作恶,尽管其他合理的攻击场景更难想到。感谢 Andrew Krasichkov 报告此问题。(CVE-2018-10915)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复通过不只是 SELECT * FROM ... 的视图执行 INSERT ... ON CONFLICT UPDATE 的问题(Dean Rasheed、Amit Langote)
如果视图的 SELECT 列表与底层表的列不是一一对应,可更新视图的错误展开可能导致崩溃或 “attribute ... has the wrong type” 错误。此外,如果攻击用户对表的其他某些列有 INSERT 和 UPDATE 权限,此 bug 可被利用来更新该用户没有 UPDATE 权限的列。任何用户还可以利用它泄露服务器内存。(CVE-2018-10925)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
确保对“钉住”的系统目录的 relfrozenxid 和 relminmxid 值的更新被及时处理(Andres Freund)
过于乐观的缓存规则可能阻止其他会话看到这些更新,导致虚假错误和/或数据损坏。对于 pg_authid 等共享目录,问题明显更严重,因为过期的缓存数据不仅存在于现有会话,还会持续到新会话中。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复刚提升的备库在完成第一个恢复后检查点之前崩溃的情况(Michael Paquier、Kyotaro Horiguchi、Pavan Deolasee、Álvaro Herrera)
这导致服务器在后续 WAL 重放期间认为自己没有达到一致的数据库状态,无法重启。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
避免回收全零 btree 页时发出虚假 WAL 记录(Amit Kapila)
这个错误曾被观察到导致断言失败,并且可能让热备服务器上发生不必要的查询取消。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
在 WAL 重放期间,防范损坏的记录长度超过 1GB(Michael Paquier)
把这种情况当作损坏数据。此前代码会试图分配空间并得到硬错误,使恢复无法进行。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
结束恢复时,尽可能推迟写入时间线历史文件(Heikki Linnakangas)
这避免了恢复清理期间的失败(如两阶段状态文件的问题)导致磁盘上时间线状态不一致的一些情况。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
改进删除许多关系的事务的 WAL 重放性能(Fujii Masao)
这一更改减少了共享缓冲区被扫描的次数,因此在该设置较大时收益最大。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
改进备库服务器 WAL 重放中锁释放的性能(Thomas Munro)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
让逻辑 WAL 发送者正确报告流状态(Simon Riggs、Sawada Masahiko)
代码此前错误判断是否已追上上游服务器。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复逻辑解码期间快照处理中的 bug,罕见情况下可能导致错误的解码结果(Arseny Sher、Álvaro Herrera)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
确保索引创建中途失败后正确重建表的缓存索引列表(Peter Geoghegan)
此前失败索引的 OID 可能留在列表中,在同一会话中之后引起问题。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 GIN 索引中空未压缩 posting 列表页的处理不当(Sivasubramanian Ramasubramanian、Alexander Korotkov)
这可能导致 9.4 之前的 GIN 索引经 pg_upgrade 之后的断言失败(9.4 及之后不会创建这种页)。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
确保 VACUUM 在 btree 页删除循环中响应信号(Andres Freund)
损坏的 btree 索引可能在这里导致无限循环,而此前不强制崩溃就无法中断。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复涉及复合类型列的等价类的错误优化(Tom Lane)
这导致未能识别复合列上的索引可以为该列上的归并连接提供所需的排序顺序。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复规划器避免某些带集合返回函数的查询中的 “ORDER/GROUP BY expression not found in targetlist” 错误(Tom Lane)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 SQL 标准 FETCH FIRST 语法允许参数($),正如标准所期望的(Andrew Gierth)n
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 EXPLAIN 对并行工作者中资源使用(特别是缓冲区访问)的计算(Amit Kapila、Robert Haas)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 getObjectDescription 输出中某些对象名未做模式限定的问题(Kyotaro Horiguchi、Tom Lane)
排序规则、转换和文本搜索对象的名称在应当模式限定时没有限定。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 CREATE AGGREGATE 的类型检查,使并行支持函数可以附加到可变参数聚合上(Alexey Bashtanov)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
把 COPY FROM 的当前行号计数器从 32 位加宽到 64 位(David Rowley)
这避免了超过 4G 行输入的两个问题:COPY FROM WITH HEADER 会每 4G 行丢弃一行而不只是第一行;错误报告可能显示错误的行号。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
向 ecpg 的 pgtypes 库添加字符串释放函数,以避免 Windows 上的跨模块内存管理问题(Takayuki Tsunakawa)
在 Windows 上,如果给定内存块的 free 调用不是来自 malloc 该内存的同一 DLL,就会发生崩溃。pgtypes 库有时返回期望调用者释放的字符串,使得无法遵循这一规则。添加了仅包装 free 的 PGTYPESchar_free() 函数,允许应用遵循规则。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 ecpg 在 Windows 以及其他非标准声明 strtoll/strtoull 或根本不声明的平台上对 long long 变量的支持(Dang Minh Huong、Tom Lane)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复规则更改导致会话内语句语义改变时 PL/pgSQL 对 SQL 语句类型的错误识别(Tom Lane)
这个错误导致断言失败,或者罕见情况下未能按预期执行 INTO STRICT 选项。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复客户端程序中的密码提示,使 Windows 上 stdin 不是终端时正确关闭回显(Matthew Stickney)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
进一步修复转储中列表值 GUC 变量值的错误引号(Tom Lane)
此前对 pg_dump 输出中 search_path 及其他列表值变量加引号的修复,对空字符串列表元素行为不当,并且有截断长文件路径的风险。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 pg_dump 未能转储约束索引的 REPLICA IDENTITY 属性(Tom Lane)
手动创建的唯一索引被正确标记,但声明 UNIQUE 或 PRIMARY KEY 约束创建的没有。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
让 pg_upgrade 检查旧服务器是否被干净地关闭(Bruce Momjian)
原来的检查可能被立即模式关闭欺骗。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 contrib/hstore_plperl 透过 Perl 标量引用查看,以及在预期位置找不到哈希引用时不崩溃(Tom Lane)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 contrib/ltree 的 lca() 函数在输入数组为空时崩溃的问题(Pierre Ducroquet)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复若干可能报告错误错误码的错误处理代码路径(Michael Paquier、Tom Lane、Magnus Hagander)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
重排 makefile,确保程序链接到新构建的库(如 libpq.so)而不是系统库目录中可能存在的(Tom Lane)
这避免了在提供旧版 PostgreSQL 库副本的平台上构建时的问题。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
更新时区数据文件到 tzdata 版本 2018e,涉及朝鲜的夏令时法规变更,以及捷克斯洛伐克的历史修正。
此更新包括对爱尔兰以及纳米比亚和捷克斯洛伐克某些过去年份“夏令时”的重新定义。在这些司法管辖区,法律上夏季实行标准时间、冬季实行夏令时,因此夏令时偏移比标准时间晚一小时而不是早一小时。这不影响实际 UTC 偏移或所用的时区缩写;唯一已知的效果是这些情况下 pg_timezone_names 视图的 is_dst 列现在冬季为真、夏季为假。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
试试其他关键词,或。
对比以 PostgreSQL 发行说明为依据,汇总起始版本之后、目标版本及之前的变更,支持同一大版本内的小版本更新,以及跨大版本升级。跨大版本时,旧分支的维护记录只纳入到下一大版本首次发布之日,所有记录均不晚于目标版本的发布日期。大版本名称(如 18)指首个正式版本(18.0);测试版与开发快照会单独标注。
条目正文来自本站中文手册,版本清单、条目覆盖与提交依据逐一核对上游英文原文。每条变更保留完整说明与原文链接;分类用于辅助浏览,具体影响、适用条件与升级操作请阅读条目正文和各版本的升级说明。
同一修复可能回补到多个版本分支。对比会保守合并可确认相同的条目,并保留各分支完整说明;已知由起始版本包含的修复会排除。一条说明包含多个独立修复时,只有全部已包含才排除。大版本新功能不因与旧版补丁存在提交关联而合并,不能确认相同的条目继续保留。这是发行说明的累计差异,不能覆盖二进制程序之间的每一处代码变化。
CVE 独立依据 PostgreSQL 官方安全公告与漏洞记录计算:起始版本受影响、目标版本已修复或不受影响的漏洞才计入,按编号去重。目标版本仍受影响的漏洞另行提示;安全变更条数与 CVE 数量分别统计。
交互参考 pgversions.com 与 pgversionreport,内容来自 PostgreSQL 发行说明。更多历史资料见发行说明归档。