↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

文档版本比较

POSTGRESQL · VERSION COMPARE

PostgreSQL 9.5.15 发布变化

此版本的完整功能、修复与兼容性说明,以及其他版本的关联记录。

此版本的完整变化
此版本的完整变化

包括起始版本之后至目标版本的变化。大版本号表示该分支的首个版本。

完整发布变化

9.5.15

2018-11-08

导出 JSON ↓
52项变化功能、修复、改进
1个版本按版本分组
0CVE独立漏洞编号

9.5.15stable支持截止 2021-02-11

PostgreSQL 9.5.15

迁移与兼容性

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

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

问题修复修复 has_foo_privilege() 函数族的边界失败

变更

修复 has_foo_privilege() 函数族的边界失败(Tom Lane)

提供无效对象 OID 时返回 NULL 而不是抛出错误。其中一些函数本来就做对了,但并非全部。has_column_privilege() 在某些平台上还可能崩溃。

关联记录 (4)
改进避免正则表达式匹配/拆分函数在长字符串上的 O(N^2) 减速

变更

避免正则表达式匹配/拆分函数在长字符串上的 O(N^2) 减速(Andrew Gierth)

关联记录 (4)
问题修复修复紧随注释或 + 或 - 之后的标准多字符操作符的解析

变更

修复紧随注释或 + 或 - 之后的标准多字符操作符的解析(Andrew Gierth)

这一疏漏可能导致解析错误或优先级的不正确分配。

关联记录 (2)
改进避免词法分析器对长串 + 或 - 字符的 O(N^3) 减速

变更

避免词法分析器对长串 + 或 - 字符的 O(N^3) 减速(Andrew Gierth)

关联记录 (4)
问题修复修复外层查询被反向扫描时 SubPlan 的错误执行

变更

修复外层查询被反向扫描时 SubPlan 的错误执行(Andrew Gierth)

关联记录 (4)
问题修复修复回卷所引用游标后 UPDATE/DELETE ... WHERE CURRENT OF ... 的失败

变更

修复回卷所引用游标后 UPDATE/DELETE ... WHERE CURRENT OF ... 的失败(Tom Lane)

扫描多个关系(特别是继承树)的游标如果被回卷到较早的关系,可能产生错误行为。

关联记录 (4)
问题修复修复 EvalPlanQual 正确处理条件执行的 InitPlan

变更

修复 EvalPlanQual 正确处理条件执行的 InitPlan(Andrew Gierth、Tom Lane)

如果并发更新包含诸如 CASE 构造内的不相关子 SELECT 之类的代码,这会导致难以重现的崩溃或错误答案。

关联记录 (4)
问题修复修复字符类检查在 Windows 上对 U+FFFF 以上的 Unicode 字符不再失败

变更

修复字符类检查在 Windows 上对 U+FFFF 以上的 Unicode 字符不再失败(Tom Lane、Kenji Uno)

此 bug 影响全文搜索操作以及 contrib/ltree 和 contrib/pg_trgm。

关联记录 (5)
改进确保外部表拥有的序列由该表上的 ALTER OWNER 处理

变更

确保外部表拥有的序列由该表上的 ALTER OWNER 处理(Peter Eisentraut)

所有权更改应当也传播到这种序列,但外部表的情况被遗漏了。

关联记录 (4)
改进确保服务器在等待客户端输入之前处理已收到的 NOTIFY 和 SIGTERM 中断

变更

确保服务器在等待客户端输入之前处理已收到的 NOTIFY 和 SIGTERM 中断(Jeff Janes、Tom Lane)

关联记录 (3)
问题修复修复 array_out() 结果字符串的空间过度分配

变更

修复 array_out() 结果字符串的空间过度分配(Keiichi Hirobe)

关联记录 (4)
问题修复修复重复 SP-GiST 索引扫描中的内存泄漏

变更

修复重复 SP-GiST 索引扫描中的内存泄漏(Tom Lane)

目前已知只有当使用 SP-GiST 的排他约束在单条命令中接收许多新索引条目时,这才会达到显著程度。

关联记录 (5)
改进确保 ApplyLogicalMappingFile() 用完后关闭映射文件

变更

确保 ApplyLogicalMappingFile() 用完后关闭映射文件(Tomas Vondra)

此前文件描述符被泄漏,最终导致逻辑解码期间的失败。

关联记录 (3)
问题修复修复逻辑解码处理被映射目录表被反复重写(例如被 VACUUM FULL)的情况

变更

修复逻辑解码处理被映射目录表被反复重写(例如被 VACUUM FULL)的情况(Andres Freund)

关联记录 (2)
改进防止以低到无法支持现有复制槽的 wal_level 启动服务器

变更

防止以低到无法支持现有复制槽的 wal_level 启动服务器(Andres Freund)

关联记录 (4)
问题修复避免实用命令导致无限递归时崩溃

变更

避免实用命令导致无限递归时崩溃(Tom Lane)

关联记录 (4)
改进初始化热备时,应对由主库两阶段事务引起的重复 XID

变更

初始化热备时,应对由主库两阶段事务引起的重复 XID(Michael Paquier、Konstantin Knizhnik)

关联记录 (4)
问题修复修复事件触发器处理嵌套 ALTER TABLE 命令

变更

修复事件触发器处理嵌套 ALTER TABLE 命令(Michael Paquier、Álvaro Herrera)

关联记录 (2)
改进把父进程的事务和语句开始时间戳传播给并行工作者

变更

把父进程的事务和语句开始时间戳传播给并行工作者(Konstantin Knizhnik)

这防止工作者中执行 transaction_timestamp() 等函数时的错误行为。

关联记录 (2)
问题修复修复 WAL 文件回收逻辑在备库服务器上正确工作

变更

修复 WAL 文件回收逻辑在备库服务器上正确工作(Michael Paquier)

根据 archive_mode 的设置,备库可能无法移除一些本可以移除的 WAL 文件。

关联记录 (2)
问题修复修复恢复期间提交时间戳追踪的处理

变更

修复恢复期间提交时间戳追踪的处理(Masahiko Sawada、Michael Paquier)

如果提交时间戳追踪曾被打开或关闭,恢复可能因为试图获取未记录提交时间戳的事务的提交时间戳而失败。

关联记录 (2)
改进在 bootstrap 和独立后端以及 initdb 中随机化 random() 的种子

变更

在 bootstrap 和独立后端以及 initdb 中随机化 random() 的种子(Noah Misch)

这一更改的主要实际效果是避免一种场景:initdb 因总是使用相同的随机种子导致的名称冲突,而错误地断定 POSIX 共享内存不可用。

关联记录 (4)
改进允许 DSM 分配被中断

变更

允许 DSM 分配被中断(Chris Travers)

关联记录 (3)
改进正确处理动态打开 full_page_writes

变更

正确处理动态打开 full_page_writes(Kyotaro Horiguchi)

关联记录 (2)
改进避免从 WAL 重放 GIN 页重压缩时可能的缓冲区越界

变更

避免从 WAL 重放 GIN 页重压缩时可能的缓冲区越界(Alexander Korotkov、Sivasubramanian Ramasubramanian)

关联记录 (3)
问题修复修复遗漏的对复制槽目录的 fsync

变更

修复遗漏的对复制槽目录的 fsync(Konstantin Knizhnik、Michael Paquier)

关联记录 (3)
问题修复避免在缓慢的服务器上使用 wal_sender_timeout 时的意外超时

变更

避免在缓慢的服务器上使用 wal_sender_timeout 时的意外超时(Noah Misch)

关联记录 (3)
问题修复确保热备进程使用正确的 WAL 一致点

变更

确保热备进程使用正确的 WAL 一致点(Alexander Kukushkin、Michael Paquier)

这防止备库服务器在 WAL 重放期间刚达到一致数据库状态之后可能的行为异常。

关联记录 (4)
改进确保 postmaster 在完成数据库启动之前收到快速关闭请求时正确停止后台工作者

变更

确保 postmaster 在完成数据库启动之前收到快速关闭请求时正确停止后台工作者(Alexander Kukushkin)

关联记录 (2)
改进服务 SIGQUIT 时不运行 atexit 回调

变更

服务 SIGQUIT 时不运行 atexit 回调(Heikki Linnakangas)

关联记录 (4)
改进不要把外部服务器用户映射记录为扩展的成员

变更

不要把外部服务器用户映射记录为扩展的成员(Tom Lane)

如果在扩展脚本中执行 CREATE USER MAPPING,会为用户映射创建扩展依赖,这是意料之外的。角色不能是扩展成员,因此用户映射也不应该是。

关联记录 (4)
改进让 syslogger 更能抵御打开 CSV 日志文件的失败

变更

让 syslogger 更能抵御打开 CSV 日志文件的失败(Tom Lane)

关联记录 (4)
问题修复修复 psql 以及文档示例,在每次调用 PQnotifies() 之前先调用 PQconsumeInput()

变更

修复 psql 以及文档示例,在每次调用 PQnotifies() 之前先调用 PQconsumeInput()(Tom Lane)

这修复了 psql 直到下一条命令之后才报告收到 NOTIFY 消息的情况。

关联记录 (3)
问题修复修复 pg_dump 对不相似对象名排序可能的不一致

变更

修复 pg_dump 对不相似对象名排序可能的不一致(Jacob Champion)

关联记录 (4)
改进确保 pg_restore 发出 DISABLE/ENABLE TRIGGER 命令时对表名进行模式限定

变更

确保 pg_restore 发出 DISABLE/ENABLE TRIGGER 命令时对表名进行模式限定(Tom Lane)

这避免了以受限搜索路径运行恢复的新策略导致的失败。

关联记录 (4)
问题修复修复 pg_upgrade 正确处理扩展中的事件触发器

变更

修复 pg_upgrade 正确处理扩展中的事件触发器(Haribabu Kommi)

pg_upgrade 未能保留事件触发器的扩展成员身份。

关联记录 (4)
问题修复修复 pg_upgrade 的集簇状态检查在备库服务器上正确工作

变更

修复 pg_upgrade 的集簇状态检查在备库服务器上正确工作(Bruce Momjian)

关联记录 (4)
改进在所有 contrib/cube 函数中强制执行 cube 类型的维度限制

变更

在所有 contrib/cube 函数中强制执行 cube 类型的维度限制(Andrey Borodin)

此前某些与 cube 相关的函数可以构造出会被 cube_in() 拒绝的值,导致转储/恢复失败。

关联记录 (4)
问题修复修复 contrib/unaccent 的 unaccent() 函数使用与该函数同模式中的 unaccent 文本搜索词典

变更

修复 contrib/unaccent 的 unaccent() 函数使用与该函数同模式中的 unaccent 文本搜索词典(Tom Lane)

此前它尝试用搜索路径查找词典,如果搜索路径是受限值就可能失败。

关联记录 (4)
问题修复修复 macOS 10.14(Mojave)上的构建问题

变更

修复 macOS 10.14(Mojave)上的构建问题(Tom Lane)

调整 configure 向 CPPFLAGS 添加 -isysroot 开关;没有它,PL/Perl 和 PL/Tcl 在 macOS 10.14 上无法配置或构建。所用的具体 sysroot 可以在配置或构建时通过在 configure 或 make 的参数中设置 PG_SYSROOT 变量来覆盖。

现在建议与 Perl 相关的扩展在其编译器标志中写 $(perl_includespec) 而不是 -I$(perl_archlibexp)/CORE。后者在大多数平台上继续有效,但在最近的 macOS 上不行。

此外,在最近的 macOS 版本上构建 PL/Tcl 应该不再需要手动指定 --with-tclconfig。

关联记录 (5)
问题修复修复 MSVC 构建和回归测试脚本在最近的 Perl 版本上工作

变更

修复 MSVC 构建和回归测试脚本在最近的 Perl 版本上工作(Andrew Dunstan)

Perl 不再默认在搜索路径中包含当前目录;绕过这一点。

关联记录 (5)
改进在 Windows 上,允许由管理员账户运行回归测试

变更

在 Windows 上,允许由管理员账户运行回归测试(Andrew Dunstan)

为了安全地做到这一点,pg_regress 现在在启动时放弃任何此类权限。

关联记录 (3)
改进支持在 Windows 上使用 Visual Studio 2015 或 Visual Studio 2017 构建

变更

支持在 Windows 上使用 Visual Studio 2015 或 Visual Studio 2017 构建(Michael Paquier、Haribabu Kommi)

关联记录 (2)
改进允许 btree 比较函数返回 INT_MIN

变更

允许 btree 比较函数返回 INT_MIN(Tom Lane)

到目前为止,我们禁止数据类型相关的比较函数返回 INT_MIN,这允许调用者只需对比较结果取反即可颠倒排序顺序。然而,对于直接返回 memcmp()、strcmp() 等结果的比较函数,这从来都不安全,因为 POSIX 没有对这些函数施加任何此类限制。至少某些最近版本的 memcmp() 可以返回 INT_MIN,导致错误的排序。因此我们移除了这一限制。调用者现在如果想颠倒排序顺序,必须使用 INVERT_COMPARE_RESULT() 宏。

关联记录 (4)
问题修复修复共享失效消息处理中的递归风险

变更

修复共享失效消息处理中的递归风险(Tom Lane)

这个错误可能导致例如无法访问刚被 VACUUM FULL 处理过的系统目录或索引。

这一更改给 LockAcquire 添加了新的结果码,可能影响该函数的外部调用者,尽管只有非常不寻常的使用模式才会有问题。LockAcquireExtended 的 API 也有更改。

关联记录 (4)
改进在 SPI_connect() 和 SPI_finish() 期间保存和恢复 SPI 的全局变量

变更

在 SPI_connect() 和 SPI_finish() 期间保存和恢复 SPI 的全局变量(Chapman Flack、Tom Lane)

这防止一个使用 SPI 的函数调用另一个时可能的干扰。

关联记录 (4)
改进在向后分支中提供 ALLOCSET_DEFAULT_SIZES 及同级宏

变更

在向后分支中提供 ALLOCSET_DEFAULT_SIZES 及同级宏(Tom Lane)

这些宏自 9.6 起就已存在,但有请求把它们添加到较旧的分支,以便扩展无需针对分支编写特定代码即可依赖它们。

关联记录 (2)
改进避免使用可能未充分对齐的页缓冲区

变更

避免使用可能未充分对齐的页缓冲区(Tom Lane)

发明了新的联合类型 PGAlignedBlock 和 PGAlignedXLogBlock,并用它们代替普通的 char 数组,确保编译器不能把缓冲区放在未对齐的起始地址。这修复了对齐挑剔平台上可能的核心转储,并且即使在允许未对齐的平台上也可能改进性能。

关联记录 (4)
改进使 src/port/snprintf.c 遵循 C99 标准对 snprintf() 结果值的定义

变更

使 src/port/snprintf.c 遵循 C99 标准对 snprintf() 结果值的定义(Tom Lane)

在使用此代码的平台(主要是 Windows)上,其前 C99 行为可能导致无法检测缓冲区越界(如果调用代码假定 C99 语义)。

关联记录 (4)
改进在 i386 上用 clang 编译器构建时,要求使用 -msse2

变更

在 i386 上用 clang 编译器构建时,要求使用 -msse2(Andres Freund)

这避免了浮点溢出检查遗漏的问题。

关联记录 (4)
问题修复修复 configure 对 strerror_r() 结果类型的检测

变更

修复 configure 对 strerror_r() 结果类型的检测(Tom Lane)

原来的编码在 Linux 上用 icc 构建时(或许其他情况下)得到错误答案,导致 libpq 不能为系统报告的错误返回有用的错误消息。

关联记录 (4)
改进更新时区数据文件到 tzdata 版本 2018g,涉及智利、斐济、摩洛哥和俄罗斯(伏尔加格勒)的夏令时法规变更,以及中国、夏威夷、日本、澳门和朝鲜的历史修正。

变更

更新时区数据文件到 tzdata 版本 2018g,涉及智利、斐济、摩洛哥和俄罗斯(伏尔加格勒)的夏令时法规变更,以及中国、夏威夷、日本、澳门和朝鲜的历史修正。

关联记录 (5)
如何生成比较结果?

比较依据起始版本之后至目标版本的 PostgreSQL 发布说明。经核实的回补重复项会谨慎合并,保留每条原始说明;相关提交可能涉及独立变化,仍作为不同记录保留。

发布快照: 2026-09-26 · 安全快照: 2026-09-26

内容来自 PostgreSQL 发布说明。交互方式参考 pgversions.com 与 pgversionreport.