文档版本比较
POSTGRESQL · VERSION COMPARE
PostgreSQL 9.4.8 发布变化
此版本的完整功能、修复与兼容性说明,以及其他版本的关联记录。
包括起始版本之后至目标版本的变化。大版本号表示该分支的首个版本。
从数据库输出识别起始版本
完整发布变化
9.4.8
2016-05-12
9.4.8stable支持截止 2020-02-13
PostgreSQL 9.4.8
迁移与兼容性
对于运行 9.4.X 的用户,不需要转储/恢复。
但是,如果你是从早于 9.4.6 的版本升级,请参见第 E.21 节。
改进在调用 OpenSSL 之前清空 OpenSSL 错误队列,而不是假设它已经为空;并确保调用之后也让它保持为空
变更
在调用 OpenSSL 之前清空 OpenSSL 错误队列,而不是假设它已经为空;并确保调用之后也让它保持为空(Peter Geoghegan、Dave Vitek、Peter Eisentraut)
此变更可防止在单个进程内存在多条使用 OpenSSL 的连接、且相关代码并非全部遵循相同的错误队列清空规则时出现问题。特别是当客户端应用并发使用 libpq 的 SSL 连接和 PHP、Python 或 Ruby 的 OpenSSL 封装库的 SSL 连接时,已有失败报告。如果扩展模块建立外向 SSL 连接,服务器内部也可能出现类似问题。
关联记录 (4)
- 相同变化PostgreSQL 9.5.3 · 在调用 OpenSSL 之前清空 OpenSSL 错误队列,而不是假设它已经为空;并确保调用之后也让它保持为空
- 相同变化PostgreSQL 9.3.13 · 在调用 OpenSSL 之前清空 OpenSSL 错误队列,而不是假设它已经为空;并确保调用之后也让它保持为空
- 相同变化PostgreSQL 9.2.17 · 在调用 OpenSSL 之前清空 OpenSSL 错误队列,而不是假设它已经为空;并确保调用之后也让它保持为空
- 相同变化PostgreSQL 9.1.22 · 在调用 OpenSSL 之前清空 OpenSSL 错误队列,而不是假设它已经为空;并确保调用之后也让它保持为空
问题修复修复左连接右侧包含全连接时出现“failed to build any N-way joins”规划器错误的问题
变更
修复左连接右侧包含全连接时出现“failed to build any N-way joins”规划器错误的问题(Tom Lane)
关联记录 (4)
- 相同变化PostgreSQL 9.5.3 · 修复左连接右侧包含全连接时规划器出现“failed to build any N-way joins”错误的问题
- 相同变化PostgreSQL 9.3.13 · 修复左连接右侧包含全连接时规划器出现“failed to build any N-way joins”错误的问题
- 相同变化PostgreSQL 9.2.17 · 修复左连接右侧包含全连接时规划器出现“failed to build any N-way joins”错误的问题
- 相同变化PostgreSQL 9.1.22 · 修复左连接右侧包含全连接时规划器出现“failed to build any N-way joins”错误的问题
问题修复修复多层级 nestloop 计划中等价类测试的处理不正确的问题
变更
修复多层级 nestloop 计划中等价类测试的处理不正确的问题(Tom Lane)
对于三个或更多变量的等价类(例如 X.X = Y.Y = Z.Z),规划器可能遗漏一些确保所有变量确实相等的测试,导致输出不满足 WHERE 子句的连接行。由于种种原因,实践中很少选中错误的计划,因此这个 bug 长期未被发现。
问题修复修复 GIN 索引扫描中查询级内存泄漏
问题修复修复 GIN 索引插入中的查询生命周期内存泄漏和潜在的索引损坏风险
变更
修复 GIN 索引插入中的查询生命周期内存泄漏和潜在的索引损坏风险(Tom Lane)
在简单查询中,内存泄漏通常不会很大,但在以高 maintenance_work_mem 构建大型 GIN 索引期间,泄漏可能非常可观。
问题修复修复 to_timestamp() 中 TH、th 和 Y,YYY 格式代码可能的错误行为
变更
修复 to_timestamp() 中 TH、th 和 Y,YYY 格式代码可能的错误行为(Tom Lane)
这些代码可能越过输入字符串末尾,导致后续格式代码读取垃圾数据。
问题修复修复value operator ANY (array)结构的array参数为子 SELECT 时规则和视图的转储
变更
修复结构的value operator ANY (array)array参数为子 SELECT 时规则和视图的转储(Tom Lane)
关联记录 (4)
- 相同变化PostgreSQL 9.5.3 · 修复对这样的规则和视图的转储:value operator ANY (array) 结构的 array 参数是子 SELECT
- 相同变化PostgreSQL 9.3.13 · 修复对这样的规则和视图的转储:value operator ANY (array) 结构的 array 参数是子 SELECT
- 相同变化PostgreSQL 9.2.17 · 修复对这样的规则和视图的转储:value operator ANY (array) 结构的 array 参数是子 SELECT
- 相同变化PostgreSQL 9.1.22 · 修复对这样的规则和视图的转储:value operator ANY (array) 结构的 array 参数是子 SELECT
改进禁止 ALTER SYSTEM 参数值中出现换行
变更
禁止 ALTER SYSTEM 参数值中出现换行(Tom Lane)
配置文件解析器不支持字符串字面量中的内嵌换行,因此我们不能允许 ALTER SYSTEM 插入的值中包含换行。
关联记录 (1)
问题修复修复ALTER TABLE ... REPLICA IDENTITY USING INDEX在选中的是 OID 上的索引时正确工作的问题
变更
修复ALTER TABLE ... REPLICA IDENTITY USING INDEX在选中的是 OID 上的索引时正确工作的问题(David Rowley)
问题修复修复对齐敏感平台上逻辑解码崩溃的问题
变更
修复对齐敏感平台上逻辑解码崩溃的问题(Tom Lane、Andres Freund)
该失败仅发生在事务大到需要溢出到磁盘、且该事务内发生主键更改的情况。
关联记录 (1)
改进避免 walsender 关闭期间反复请求接收端反馈
变更
避免 walsender 关闭期间反复请求接收端反馈(Nick Cleaton)
关联记录 (1)
改进使 pg_regress 在设置了 PGCTLTIMEOUT 环境变量时使用其中的启动超时
变更
使 pg_regress 在设置了 PGCTLTIMEOUT 环境变量时使用其中的启动超时(Tom Lane)
这是为了与最近添加到 pg_ctl 的行为保持一致;它方便了在慢速机器上进行自动化测试。
问题修复修复 pg_upgrade 对仅包含一个操作符类的操作符族正确恢复扩展成员关系的问题
变更
修复 pg_upgrade 对仅包含一个操作符类的操作符族正确恢复扩展成员关系的问题(Tom Lane)
在这种情况下,操作符族会被恢复到新数据库中,但不再被标记为扩展的一部分。这没有直接的坏影响,但会导致后续 pg_dump 运行产生在恢复时引发(无害)错误的输出。
问题修复修复新集群 TOAST 规则与旧集群不同时 pg_upgrade 失败的问题
变更
修复新集群 TOAST 规则与旧集群不同时 pg_upgrade 失败的问题(Tom Lane)
pg_upgrade 原有专门代码处理新 PostgreSQL 版本认为表应有 TOAST 表而旧版本认为没有的情况。该代码有问题,因此将其移除,在这种情况下改为不做任何处理;没有理由认为,如果按照旧版本的规则没有 TOAST 表也没问题,我们就无法在没有 TOAST 表的情况下正常运作。
改进减少以--disable-spinlocks配置的构建所使用的 SysV 信号量数量
变更
减少以--disable-spinlocks配置的构建所使用的 SysV 信号量数量(Tom Lane)
改进将内部函数strtoi()重命名为strtoint(),以避免与 NetBSD 库函数冲突
变更
将内部函数strtoi()重命名为strtoint(),以避免与 NetBSD 库函数冲突(Thomas Munro)
问题修复修复 Windows 上bind()和listen()系统调用错误的报告
变更
修复 Windows 上bind()和listen()系统调用错误的报告(Tom Lane)
改进降低使用 Microsoft Visual Studio 构建时编译器输出的详细程度
变更
降低使用 Microsoft Visual Studio 构建时编译器输出的详细程度(Christian Ullrich)
问题修复修复putenv()在 Visual Studio 2013 下正常工作的问题
变更
修复putenv()在 Visual Studio 2013 下正常工作的问题(Michael Paquier)
改进避免可能不安全地使用 Windows 的 FormatMessage() 函数
变更
避免可能不安全地使用 Windows 的 FormatMessage() 函数(Christian Ullrich)
在适当之处使用 FORMAT_MESSAGE_IGNORE_INSERTS 标志。目前不知道这里存在实际的 bug,但小心谨慎似乎是明智的。
改进将时区数据文件更新到tzdata发行版 2016d,以反映俄罗斯和委内瑞拉的夏令时法规变更。新增了时区名Europe/Kirov和Asia/Tomsk,以反映这些地区现在与邻近地区有不同的时区历史。
变更
将时区数据文件更新到tzdata发行版 2016d,以反映俄罗斯和委内瑞拉的夏令时法规变更。新增了时区名Europe/Kirov和Asia/Tomsk,以反映这些地区现在与邻近地区有不同的时区历史。
关联记录 (4)
- 相同变化PostgreSQL 9.5.3 · 把时区数据文件更新到 tzdata 2016d 版,涉及俄罗斯和委内瑞拉的夏令时法规变更。新增时区名称 Europe/Kirov 和 Asia/Tomsk,以反映这些地区现在与相邻地区有不同的时区历史。
- 相同变化PostgreSQL 9.3.13 · 把时区数据文件更新到 tzdata 2016d 版,涉及俄罗斯和委内瑞拉的夏令时法规变更。新增时区名称 Europe/Kirov 和 Asia/Tomsk,以反映这些地区现在与相邻地区有不同的时区历史。
- 相同变化PostgreSQL 9.2.17 · 把时区数据文件更新到 tzdata 2016d 版,涉及俄罗斯和委内瑞拉的夏令时法规变更。新增时区名称 Europe/Kirov 和 Asia/Tomsk,以反映这些地区现在与相邻地区有不同的时区历史。
- 相同变化PostgreSQL 9.1.22 · 把时区数据文件更新到 tzdata 2016d 版,涉及俄罗斯和委内瑞拉的夏令时法规变更。新增时区名称 Europe/Kirov 和 Asia/Tomsk,以反映这些地区现在与相邻地区有不同的时区历史。
没有匹配的变化
尝试其他关键词,或 .
如何生成比较结果?
比较依据起始版本之后至目标版本的 PostgreSQL 发布说明。经核实的回补重复项会谨慎合并,保留每条原始说明;相关提交可能涉及独立变化,仍作为不同记录保留。
发布快照: 2026-09-26 · 安全快照: 2026-09-26
内容来自 PostgreSQL 发布说明。交互方式参考 pgversions.com 与 pgversionreport.