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

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

文档版本对比

POSTGRESQL · VERSION COMPARE

PostgreSQL 9.5.2 的版本变更

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

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

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

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

本次发布的全部变更

9.5.2

2016-03-31

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

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

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

在缓存计划中正确维护行安全性状态

4.29.5.2
CVE-2016-3065

为 contrib/pageinspect 的一些新函数添加必须是超级用户的检查

3.19.5.2

PostgreSQL 9.5.2

升级与兼容性说明

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

不过,按照下面第一条变更日志条目的说明,应用此更新后你可能需要对某些索引执行 REINDEX。

其他改进在非 C 区域设置中禁用字符串排序的缩写键

变更

在非 C 区域设置中禁用字符串排序的缩写键(Robert Haas)

PostgreSQL 9.5 引入了用标准 C 库函数 strxfrm() 替代 strcoll() 来加速字符串数据类型比较的逻辑。现在发现,大多数版本的 glibc(Linux 的 C 库实现)所实现的 strxfrm() 都有缺陷,在某些区域设置下会产生与 strcoll() 不一致的字符串比较结果。在更好地刻画此问题之前,在所有非 C 区域设置中禁用该优化。(C 区域设置是安全的,因为它既不使用 strcoll() 也不使用 strxfrm()。)

遗憾的是,此问题不仅影响排序,还影响 B-tree 索引中的条目排序,这意味着如果 text、varchar 或 char 列上的 B-tree 索引按受影响的区域设置排序,并且在 PostgreSQL 9.5.0 或 9.5.1 下构建或修改过,它们现在可能已经损坏。用户应对可能受影响的索引执行 REINDEX。

目前无法给出已知受影响区域设置的完整清单。C 区域设置已知安全,没有证据表明 en_US 等基于英语的区域设置有问题,但 de_DE 等其他一些常用区域设置在大多数 glibc 版本中受影响。

安全相关在缓存计划中正确维护行安全性状态

变更

在缓存计划中正确维护行安全性状态(Stephen Frost)

在以多个角色执行查询的会话中,计划缓存可能错误地复用为另一个角色 ID 生成的计划,从而在使用行级安全性(RLS)时可能应用错误的策略集。(CVE-2016-2193)

安全相关为 contrib/pageinspect 的一些新函数添加必须是超级用户的检查

变更

为 contrib/pageinspect 的一些新函数添加必须是超级用户的检查(Andreas Seltenreich)

pageinspect 扩展中大多数检查 bytea 值的函数都禁止非超级用户调用,但 brin_page_type() 和 brin_metapage_info() 没有这样做。向它们传递精心构造的 bytea 值可能导致服务器崩溃或泄露服务器内存中的几个字节。添加缺失的权限检查以防止滥用。(CVE-2016-3065)

BUG 修复修复索引化 ROW() 比较处理不正确的问题

变更

修复索引化 ROW() 比较处理不正确的问题(Simon Riggs)

9.5 引入的一个小优化中的缺陷会导致错误结果:当 ROW() 比较与索引排序部分匹配但并不完全匹配时(例如列顺序不同,或索引同时包含 ASC 和 DESC 列)。在找到更好的解决方案之前,该优化已被移除。

BUG 修复修复索引化 ROW() 比较中对 NULL 索引条目处理不正确的问题

变更

修复索引化 ROW() 比较中对 NULL 索引条目处理不正确的问题(Tom Lane)

使用诸如 ROW(a, b) > ROW('x', 'y') 的行比较进行索引搜索时,会在到达 b 列的 NULL 条目时停止,忽略了 b 列可能有与更靠后的 a 值关联的非 NULL 值这一事实。

关联记录(4)

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

其他改进避免因重命名文件前后未充分调用 fsync() 而导致的不太可能的数据丢失场景

变更

避免因重命名文件前后未充分调用 fsync() 而导致的不太可能的数据丢失场景(Michael Paquier、Tomas Vondra、Andres Freund)

关联记录(4)

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

BUG 修复修复在执行 SELECT FOR UPDATE/SHARE 且包含一些无需锁定的关系的查询中重新检查刚修改的行时行为不正确的问题

变更

修复在执行 SELECT FOR UPDATE/SHARE 且包含一些无需锁定的关系的查询中重新检查刚修改的行时行为不正确的问题(Tom Lane)

在重新检查期间,来自未锁定关系的行被错误地当作全 NULL 处理,这可能导致错误地判定更新后的行不再满足 WHERE 条件,或错误地输出 NULL。

BUG 修复修复 json_to_record() 在其输入对象的某个字段包含与所请求输出列名同名的子对象字段时的 bug

变更

修复 json_to_record() 在其输入对象的某个字段包含与所请求输出列名同名的子对象字段时的 bug(Tom Lane)

关联记录(1)

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

BUG 修复修复以空数组调用双参数形式的 jsonb_object() 时结果无意义的问题

变更

修复以空数组调用双参数形式的 jsonb_object() 时结果无意义的问题(Michael Paquier、Andrew Dunstan)

BUG 修复修复 jsonb_set() 在把路径数组元素转换为整数用作数组下标时的错误行为

变更

修复 jsonb_set() 在把路径数组元素转换为整数用作数组下标时的错误行为(Michael Paquier)

BUG 修复修复 to_char() 的 OF 格式代码对负时区偏移的格式化错误

变更

修复 to_char() 的 OF 格式代码对负时区偏移的格式化错误(Thomas Munro、Tom Lane)

关联记录(1)

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

BUG 修复修复 INSERT ... ON CONFLICT 的等待可能被错误记录的问题

变更

修复 INSERT ... ON CONFLICT 的等待可能被错误记录的问题(Peter Geoghegan)

日志消息有时会声称等待是由排除约束引起的,尽管实际上并非如此。

其他改进在恢复达到一致状态之前忽略recovery_min_apply_delay参数

变更

在恢复达到一致状态之前忽略recovery_min_apply_delay参数(Michael Paquier)

以前,备库在重放使其数据库状态有效所需的初始 WAL 部分时,也会响应 recovery_min_apply_delay 而延迟应用 WAL 记录。由于备库在达到一致数据库状态之前毫无用处,这被认为没有帮助。

关联记录(1)

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

其他改进正确处理服务器启动期间 pg_subtrans 接近 XID 回卷的情况

变更

正确处理服务器启动期间 pg_subtrans 接近 XID 回卷的情况(Jeff Janes)

关联记录(4)

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

BUG 修复修复逻辑解码中的若干 bug

变更

修复逻辑解码中的若干 bug(Andres Freund)

问题情形包括:副本标识为 FULL 时超过一页的元组、在大到需要假脱机到磁盘的事务中更改主键的 UPDATE、错误地报告“subxact logged without previous toplevel record”,以及事务提交时间的错误报告。

关联记录(1)

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

BUG 修复修复外层视图的 WHERE 子句包含相关子查询时嵌套安全屏障视图的规划器错误

变更

修复外层视图的 WHERE 子句包含相关子查询时嵌套安全屏障视图的规划器错误(Dean Rasheed)

关联记录(1)

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

BUG 修复修复 GIN 索引搜索中的内存泄漏

变更

修复 GIN 索引搜索中的内存泄漏(Tom Lane)

BUG 修复修复因多次尝试释放 localeconv() 输出字符串而导致的边界崩溃

变更

修复因多次尝试释放 localeconv() 输出字符串而导致的边界崩溃(Tom Lane)

关联记录(4)

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

BUG 修复修复 ispell 词典词缀文件的解析

变更

修复 ispell 词典词缀文件的解析(Tom Lane)

如果词缀文件包含任何在大小写转换期间字节长度会变化的字符(例如土耳其语 UTF8 区域设置中的 I),代码就可能出错。

关联记录(4)

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

其他改进避免使用 sscanf() 解析 ispell 词典文件

变更

避免使用 sscanf() 解析 ispell 词典文件(Artur Zakirov)

这规避了 FreeBSD 衍生平台(包括 macOS)上的一个可移植性问题。

关联记录(4)

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

BUG 修复修复 PPC 上配合 IBM xlc 编译器使用的原子操作代码

变更

修复 PPC 上配合 IBM xlc 编译器使用的原子操作代码(Noah Misch)

此错误导致该平台上并发操作偶尔失败。

BUG 修复避免在旧版 Windows(7SP1/2008R2SP1 之前)上配合支持 AVX2 的 CPU 和使用 Visual Studio 2013 构建的 Postgres 时崩溃

变更

避免在旧版 Windows(7SP1/2008R2SP1 之前)上配合支持 AVX2 的 CPU 和使用 Visual Studio 2013 构建的 Postgres 时崩溃(Christian Ullrich)

这是对 Visual Studio 2013 运行时库中一个 bug 的变通方案,微软已表示不会在该版本中修复它。

关联记录(4)

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

BUG 修复修复 psql 的 Tab 补全逻辑,使其正确处理多字节字符

变更

修复 psql 的 Tab 补全逻辑,使其正确处理多字节字符(Kyotaro Horiguchi、Robert Haas)

关联记录(4)

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

BUG 修复修复 psql 对 SECURITY LABEL 的 Tab 补全

变更

修复 psql 对 SECURITY LABEL 的 Tab 补全(Tom Lane)

在 SECURITY LABEL 之后按 TAB 可能导致崩溃或提供不合适的关键字。

关联记录(4)

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

其他改进使 pg_ctl 在命令行未指定时接受来自 PGCTLTIMEOUT 环境变量的等待超时

变更

使 pg_ctl 在命令行未指定时接受来自 PGCTLTIMEOUT 环境变量的等待超时(Noah Misch)

这方便了较慢的 buildfarm 成员的测试,允许它们全局指定比正常更长的 postmaster 启动和关闭超时。

关联记录(4)

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

BUG 修复修复 pg_ctl 中对 Windows 服务状态的不正确测试

变更

修复 pg_ctl 中对 Windows 服务状态的不正确测试(Manuel Mathar)

上一轮小版本发布试图修复 pg_ctl,使其正确判断是否把日志消息发送到 Windows 事件日志,但把测试条件弄反了。

关联记录(4)

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

BUG 修复修复 pgbench 对 -C 与 -M prepared 选项组合的处理

变更

修复 pgbench 对 -C 与 -M prepared 选项组合的处理(Tom Lane)

关联记录(4)

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

其他改进在 pg_upgrade 中,当新数据目录位于旧数据目录之内时跳过创建删除脚本

变更

在 pg_upgrade 中,当新数据目录位于旧数据目录之内时跳过创建删除脚本(Bruce Momjian)

在这种情况下盲目执行该脚本会导致新数据目录丢失。

关联记录(2)

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

其他改进在 PL/Perl 中,把空的 Postgres 数组正确转换为空的 Perl 数组

变更

在 PL/Perl 中,把空的 Postgres 数组正确转换为空的 Perl 数组(Alex Hunsaker)

关联记录(4)

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

其他改进使 PL/Python 能处理不是有效 Python 标识符的函数名

变更

使 PL/Python 能处理不是有效 Python 标识符的函数名(Jim Nasby)

关联记录(4)

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

BUG 修复修复 contrib/pgstattuple 的 pgstatindex() 函数返回统计信息中的多处错误

变更

修复 contrib/pgstattuple 的 pgstatindex() 函数返回统计信息中的多处错误(Tom Lane)

关联记录(4)

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

其他改进在 MSVC 构建中移除对 psed 的依赖,因为核心 Perl 已不再提供它

变更

在 MSVC 构建中移除对 psed 的依赖,因为核心 Perl 已不再提供它(Michael Paquier、Andrew Dunstan)

关联记录(4)

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

其他改进把时区数据文件更新到 tzdata 2016c 版,涉及阿塞拜疆、智利、海地、巴勒斯坦和俄罗斯(阿尔泰、阿斯特拉罕、基洛夫、萨哈林、乌里扬诺夫斯克地区)的夏令时法规变更,以及立陶宛、摩尔多瓦和俄罗斯(加里宁格勒、萨马拉、伏尔加格勒)的历史数据修正。

变更

把时区数据文件更新到 tzdata 2016c 版,涉及阿塞拜疆、智利、海地、巴勒斯坦和俄罗斯(阿尔泰、阿斯特拉罕、基洛夫、萨哈林、乌里扬诺夫斯克地区)的夏令时法规变更,以及立陶宛、摩尔多瓦和俄罗斯(加里宁格勒、萨马拉、伏尔加格勒)的历史数据修正。

关联记录(4)

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

这份对比如何生成?

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

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

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

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

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