pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
文档版本对比
POSTGRESQL · VERSION COMPARE
本次发布的完整功能、修复与兼容性说明,以及它们在其他版本中的关联记录。
从起始版本之后,看到目标版本为止。大版本名称代表该系列首个正式版本。
收录 PostgreSQL 9.0 起的 17 个大版本、352 份发布说明;数据更新于 2026-09-26。
本次发布的全部变更
2018-05-10
9.6.9 历史版本维护截止 2021-11-11
| CVE / 问题 | 严重程度 | 修复版本 |
|---|---|---|
| CVE-2018-1115 移除 contrib/adminpack 的 pg_logfile_rotate() 函数上的公共执行权限 | 3.1 | 9.6.9 |
对于运行 9.6.X 的用户,不需要转储/恢复。
不过,如果你使用 adminpack 扩展,应当按照下面第一条变更日志条目更新它。
另外,如果下面第二和第三条变更日志条目提到的函数标记错误影响到你,你需要采取措施修正数据库目录。
另外,如果你是从 9.6.8 之前的版本升级,参见第 E.17 节。
变更
移除 contrib/adminpack 的 pg_logfile_rotate() 函数上的公共执行权限(Stephen Frost)
pg_logfile_rotate() 是核心函数 pg_rotate_logfile() 的已弃用包装。当核心函数被改为依靠 SQL 权限而非硬编码的超级用户检查进行访问控制时,pg_logfile_rotate() 本应同步更新,但这一需要被遗漏了。因此,如果安装了 adminpack,任何用户都可以请求日志文件轮转,构成一个轻微的安全问题。
安装此更新后,管理员应当通过在每个安装了 adminpack 的数据库中执行 ALTER EXTENSION adminpack UPDATE 来更新 adminpack。(CVE-2018-1115)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复少数内建函数上不正确的易变性标记(Thomas Munro、Tom Lane)
函数 query_to_xml、cursor_to_xml、cursor_to_xmlschema、query_to_xmlschema 和 query_to_xml_and_xmlschema 应标记为 volatile,因为它们执行可能包含易变操作的用户提供的查询。它们没有被这样标记,导致错误查询优化的风险。新安装已通过更正初始目录数据修复,但现有安装将继续包含错误标记。实际使用这些函数似乎危害不大,但如遇到麻烦,可以手动更新这些函数的 pg_proc 条目来修复,例如 ALTER FUNCTION pg_catalog.query_to_xml(text, boolean, boolean, text) VOLATILE。(注意安装中的每个数据库都需要这样做。)另一个选择是把数据库 pg_upgrade 到包含更正后初始数据的版本。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复少数内建函数上不正确的并行安全性标记(Thomas Munro、Tom Lane)
函数 brin_summarize_new_values、gin_clean_pending_list、cursor_to_xml、cursor_to_xmlschema、ts_rewrite、ts_stat 和 binary_upgrade_create_empty_extension 应标记为并行不安全;一些是因为它们直接进行数据库修改,另一些是因为它们执行可能这样做的用户提供查询。它们被标记成了并行受限,导致意外查询错误的风险。新安装已通过更正初始目录数据修复,但现有安装将继续包含错误标记。除非打开 force_parallel_mode,实际使用这些函数似乎危害不大。如遇到麻烦,可以手动更新这些函数的 pg_proc 条目来修复,例如 ALTER FUNCTION pg_catalog.brin_summarize_new_values(regclass) PARALLEL UNSAFE。(注意安装中的每个数据库都需要这样做。)另一个选择是把数据库 pg_upgrade 到包含更正后初始数据的版本。
变更
避免重用与已死但尚未清理的 TOAST 条目匹配的 TOAST 值 OID(Pavan Deolasee)
一旦 OID 计数器回卷,就可能分配一个 OID 与同一 TOAST 表中先前删除的条目匹配的 TOAST 值。如果该条目尚未被清理,就会导致 “unexpected chunk number 0 (expected 1) for toast value nnnnn” 错误,并持续到 VACUUM 移除死条目为止。修复方法是创建新 TOAST 条目时不选择这种 OID。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
更改 ANALYZE 更新 pg_class.reltuples 的算法(David Gould)
此前,ANALYZE 未实际扫描的页被假定保留其旧的元组密度。在 ANALYZE 只采样很少一部分页的大表中,这意味着总体元组密度估计不会有太大变化,因此无论表中实际发生什么,reltuples 都几乎与表物理大小(relpages)的变化成比例地变化。据观察,这会导致 reltuples 远大于实际值,以致实际上关闭了自动清理。为修复,假定 ANALYZE 的样本是表的无偏统计样本(本应如此),直接把这些页中观察到的密度外推到整表。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
避免在 SERIALIZABLE 或 REPEATABLE READ 事务隔离下运行的并发 CREATE INDEX CONCURRENTLY 命令中的死锁(Tom Lane)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 REFRESH MATERIALIZED VIEW CONCURRENTLY 可能缓慢的执行(Thomas Munro)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 UPDATE/DELETE ... WHERE CURRENT OF 在所引用游标使用仅索引扫描计划时不失败(Yugo Nagata、Tom Lane)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复下推到参数化路径的连接子句的错误规划(Andrew Gierth、Tom Lane)
这个错误可能把本应是普通“过滤”条件的条件错误分类为外连接的“连接过滤”,导致错误的连接输出。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复同一表列出现在多个索引列中,且只有部分索引列使用能返回该列值的操作符类时,仅索引扫描计划可能不正确的生成(Kyotaro Horiguchi)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复对顶层 AND/OR 条件带有可证明为 NULL 子子句的 CHECK 约束的错误优化(Tom Lane、Dean Rasheed)
这可能导致例如约束排除错误地排除不应从查询中排除的子表。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复某些 GROUPING SET 用法中因双重释放导致的执行器崩溃(Peter Geoghegan)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
避免可能与能调用此类触发器的命令并发添加表重写事件触发器时崩溃(Álvaro Herrera、Andrew Gierth、Tom Lane)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
避免提交预备事务时发生查询取消或会话终止中断时失败(Stas Kelvich)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复重复执行的哈希连接中的查询生命周期内存泄漏(Tom Lane)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复可见性映射缓冲区 pin 可能的泄漏或双重释放(Amit Kapila)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
避免虚假地把页标记为全可见(Dan Wood、Pavan Deolasee、Álvaro Herrera)
如果某些元组被锁定(但未被删除)就可能发生这种情况。虽然查询仍能正确运行,但 vacuum 通常会忽略这种页,长期效果是这些元组永远不会被冻结。在最近的版本中,这最终会导致诸如 “found multixact nnnnn from before relminmxid nnnnn” 的错误。
变更
修复 heap_prepare_freeze_tuple 中过于严格的健全性检查(Álvaro Herrera)
在从 9.2 或更早版本 pg_upgrade 过来的数据库中,这可能导致错误的 “cannot freeze committed xmax” 失败。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
防止 C 编写的 before-update 行触发器返回“旧”元组时的悬空指针解引用(Rushabh Lathia)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
减少自动清理工作者调度期间的锁定(Jeff Janes)
原来的行为导致有许多表的数据库中潜在工作者并发性的急剧丧失。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
确保把 pg_stat_activity 数据复制到本地内存时复制客户端主机名(Edmund Horner)
此前,这个本应本地的快照包含指向共享内存的指针,使客户端主机名列可能因任何现有会话断开而意外改变。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 ispell 词典中多个复合词缀的错误处理(Arthur Zakirov)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 text 列上 SP-GiST 索引中的排序规则感知搜索(即使用不等操作符的索引扫描)(Tom Lane)
在大多数非 C 区域中,这种搜索会返回错误的行集合。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
防止使用遍历值的 SP-GiST 操作符类的查询生命周期内存泄漏(Anton Dignös)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
在 SP-GiST 索引初始构建期间正确计数索引元组数(Tomas Vondra)
此前,元组数被报告为与底层表相同,如果索引是部分索引就错了。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
在 GiST 索引清理期间正确计数索引元组数(Andrey Borodin)
此前它报告的是估计的堆元组数,可能不准确,而且如果索引是部分索引则肯定错误。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复流式备库在 WAL 延续记录处卡住的一个边界情况(Kyotaro Horiguchi)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
在逻辑解码中,避免 walsender 重启时 WAL 数据可能被双重处理(Craig Ringer)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
允许 scalarltsel 和 scalargtsel 用于非核心数据类型(Tomas Vondra)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
减少收集了大量查询输出之后服务器报告错误时 libpq 的内存消耗(Tom Lane)
在处理错误消息之前而不是之后丢弃先前的输出。在某些平台(特别是 Linux)上,这可以改变应用之后的内存占用。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 ecpg 中的双重释放崩溃(Patrick Krecker、Jeevan Ladhe)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 ecpg 在 MSVC 构建中正确处理 long long int 变量(Michael Meskes、Andrew Gierth)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复转储中列表值 GUC 变量值的错误引号(Michael Paquier、Tom Lane)
local_preload_libraries、session_preload_libraries、shared_preload_libraries 和 temp_tablespaces 变量在 pg_dump 输出中没有正确加引号。如果这些变量的设置出现在 CREATE FUNCTION ... SET 或 ALTER DATABASE/ROLE ... SET 子句中,这会导致问题。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 pg_recvlogical 对 v10 之前的 PostgreSQL 服务器不失败的问题(Michael Paquier)
此前的一次修复使 pg_recvlogical 不论服务器版本都发出一条命令,但它只应对 v10 及之后的服务器发出。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
确保 pg_rewind 删除目标服务器上在运行期间从源服务器上删除的文件(Takayuki Tsunakawa)
不这样做可能导致目标上的数据不一致,特别是当相关文件是 WAL 段时。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 pg_rewind 正确处理非默认表空间中的表(Takayuki Tsunakawa)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 PL/pgSQL 整数 FOR 循环中的溢出处理(Tom Lane)
原来的编码在一些非 gcc 编译器上未能检测到循环变量的溢出,导致无限循环。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
调整 PL/Python 回归测试在 Python 3.7 下通过(Peter Eisentraut)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
支持用 Python 3 和 MSVC 构建时测试 PL/Python 及相关模块(Andrew Dunstan)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 contrib/bloom 索引初始构建中的错误(Tomas Vondra、Tom Lane)
修复索引可能遗漏表最后一个元组的问题。正确计数索引元组数,以防它是部分索引。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
重命名内部 b64_encode 和 b64_decode 函数,避免与 Solaris 11.4 内置函数冲突(Rainer Orth)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
把我们的时区库副本与 IANA tzcode 版本 2018e 同步(Tom Lane)
这修复了 zic 时区数据编译器应对负夏令时偏移的能力。虽然 PostgreSQL 项目不会立即发布这种时区数据,但 zic 可能被用于直接从 IANA 获得的时区数据,因此现在更新 zic 是审慎的。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
更新时区数据文件到 tzdata 版本 2018d,涉及巴勒斯坦和南极洲(凯西站)的夏令时法规变更,以及葡萄牙及其殖民地、恩德伯里、牙买加、特克斯和凯科斯群岛及乌拉圭的历史修正。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
试试其他关键词,或。
对比以 PostgreSQL 发行说明为依据,汇总起始版本之后、目标版本及之前的变更,支持同一大版本内的小版本更新,以及跨大版本升级。跨大版本时,旧分支的维护记录只纳入到下一大版本首次发布之日,所有记录均不晚于目标版本的发布日期。大版本名称(如 18)指首个正式版本(18.0);测试版与开发快照会单独标注。
条目正文来自本站中文手册,版本清单、条目覆盖与提交依据逐一核对上游英文原文。每条变更保留完整说明与原文链接;分类用于辅助浏览,具体影响、适用条件与升级操作请阅读条目正文和各版本的升级说明。
同一修复可能回补到多个版本分支。对比会保守合并可确认相同的条目,并保留各分支完整说明;已知由起始版本包含的修复会排除。一条说明包含多个独立修复时,只有全部已包含才排除。大版本新功能不因与旧版补丁存在提交关联而合并,不能确认相同的条目继续保留。这是发行说明的累计差异,不能覆盖二进制程序之间的每一处代码变化。
CVE 独立依据 PostgreSQL 官方安全公告与漏洞记录计算:起始版本受影响、目标版本已修复或不受影响的漏洞才计入,按编号去重。目标版本仍受影响的漏洞另行提示;安全变更条数与 CVE 数量分别统计。
交互参考 pgversions.com 与 pgversionreport,内容来自 PostgreSQL 发行说明。更多历史资料见发行说明归档。