文档版本比较
POSTGRESQL · VERSION COMPARE
PostgreSQL 9.6.15 发布变化
此版本的完整功能、修复与兼容性说明,以及其他版本的关联记录。
包括起始版本之后至目标版本的变化。大版本号表示该分支的首个版本。
从数据库输出识别起始版本
完整发布变化
9.6.15
2019-08-08
9.6.15stable支持截止 2021-11-11
安全变化
| CVE / 问题 | 严重程度 | 修复版本 | 所选版本状态 |
|---|---|---|---|
| CVE-2019-10208 要求使用函数式转换语法转换到临时类型时进行模式限定 | 9.6.15 | 已记录修复 | |
| CVE-2007-2138 要求使用函数式转换语法转换到临时类型时进行模式限定 | 已记录修复 |
PostgreSQL 9.6.15
迁移与兼容性
对于运行 9.6.X 的用户,不需要转储/恢复。
不过,如果你是从 9.6.9 之前的版本升级,参见第 E.16 节。
安全要求使用函数式转换语法转换到临时类型时进行模式限定
变更
要求使用函数式转换语法转换到临时类型时进行模式限定(Noah Misch)
我们长期以来一直要求临时函数的调用显式指定临时模式,即 pg_temp.。现在把这一要求同样应用于使用函数表示法转换到临时类型,例如 func_name(args)pg_temp.。否则有可能截获使用临时对象的函数调用,从而以与我们在 CVE-2007-2138 中封堵的方式大致相同的途径实现权限提升。(CVE-2019-10208)type_name(arg)
问题修复修复在一条命令中更改多列类型时 ALTER TABLE ... ALTER COLUMN TYPE 的失败
变更
修复在一条命令中更改多列类型时 ALTER TABLE ... ALTER COLUMN TYPE 的失败(Tom Lane)
这修复了最近几个小版本中引入的回归:使用被更改列的索引未被正确处理,导致 ALTER TABLE 期间的奇怪失败。
关联记录 (4)
- 相同变化PostgreSQL 11.5 · 修复在一条命令中更改多列类型时 ALTER TABLE ... ALTER COLUMN TYPE 发生的失败
- 相同变化PostgreSQL 10.10 · 修复在一条命令中更改多列类型时 ALTER TABLE ... ALTER COLUMN TYPE 发生的失败
- 相同变化PostgreSQL 9.5.19 · 修复在一条命令中更改多列类型时 ALTER TABLE ... ALTER COLUMN TYPE 的失败
- 相同变化PostgreSQL 9.4.24 · 修复在一条命令中更改多列类型时 ALTER TABLE ... ALTER COLUMN TYPE 的失败
改进当涉及的表是继承父表时,不要优化掉 GROUP BY 列
变更
当涉及的表是继承父表时,不要优化掉 GROUP BY 列(David Rowley)
通常,如果表的主键列包含在 GROUP BY 中,去掉其他分组列是安全的,因为主键列足以使分组唯一。但如果查询还读取继承子表,这条规则就不成立;父表的唯一性不会延伸到子表。
改进避免对某些带 GROUPING SETS 的查询使用不必要的排序步骤
变更
避免对某些带 GROUPING SETS 的查询使用不必要的排序步骤(Andrew Gierth、Richard Guo)
问题修复修复重建外键约束时多列外键的处理不当
变更
修复重建外键约束时多列外键的处理不当(Tom Lane)
如果键的所有列不都是同一类型,ALTER TABLE 可能对是否需要重新验证外键做出错误决定。看来该错误的方向总是保守的,即不必要地重新验证。
问题修复避免升级元组锁时的虚假死锁错误
变更
避免升级元组锁时的虚假死锁错误(Oleksii Kliukin)
当两个或更多事务在等待事务 T1 释放元组级锁,而 T1 把它的锁升级到更高级别时,T1 结束后可能在等待的事务之间报告虚假死锁。
问题修复修复未能解决涉及多个并行工作者进程的死锁的问题
变更
修复未能解决涉及多个并行工作者进程的死锁的问题(Rui Hai Jiang)
尚不清楚此 bug 是否可被非人工查询触达,但如果确实发生,本可解决的死锁中涉及的查询会阻塞直到被取消。
改进防止对以 infinity 为端点的日期范围的错误规范化
变更
防止对以 infinity 为端点的日期范围的错误规范化(Laurenz Albe)
如果端点是无穷,试图通过递增或递减端点值把开区间转换为闭区间或反之都是不正确的;因此在这种情况下保持范围不变。
问题修复修复把非常大的 money 值转换为 numeric 时小数位数的丢失
变更
修复把非常大的 money 值转换为 numeric 时小数位数的丢失(Tom Lane)
问题修复修复 MIPS CPU 的自旋锁汇编代码,使其在 MIPS r6 上工作
变更
修复 MIPS CPU 的自旋锁汇编代码,使其在 MIPS r6 上工作(YunQiang Su)
改进让 libpq 忽略连接服务文件中的回车(\r)
变更
让 libpq 忽略连接服务文件中的回车(\r)(Tom Lane、Michael Paquier)
在某些边界情况下,包含 Windows 风格换行的服务文件可能被错误解析,导致连接失败。
改进在 psql 中,避免在 SET variable = 之后提供错误的 Tab 补全选项
变更
在 psql 中,避免在 SET 之后提供错误的 Tab 补全选项(Tom Lane)variable =
问题修复修复 pg_dump 确保自定义操作符类以正确的顺序转储
变更
修复 pg_dump 确保自定义操作符类以正确的顺序转储(Tom Lane)
如果用户定义的操作符类是某个用户定义范围类型的子类型操作符类,相关对象会以错误的顺序转储,产生无法恢复的转储。(操作符类依赖处理的这一底层失败也可能在其他情况下显现,但这是唯一已知的情况。)
问题修复修复 contrib/passwordcheck 与 check_password_hook 的其他使用者共存的问题
变更
修复 contrib/passwordcheck 与 check_password_hook 的其他使用者共存的问题(Michael Paquier)
关联记录 (4)
- 相同变化PostgreSQL 11.5 · 修复 contrib/passwordcheck,使其能与 check_password_hook 的其他使用者共存
- 相同变化PostgreSQL 10.10 · 修复 contrib/passwordcheck,使其能与 check_password_hook 的其他使用者共存
- 相同变化PostgreSQL 9.5.19 · 修复 contrib/passwordcheck 与 check_password_hook 的其他使用者共存的问题
- 相同变化PostgreSQL 9.4.24 · 修复 contrib/passwordcheck 与 check_password_hook 的其他使用者共存的问题
问题修复修复 contrib/sepgsql 测试在最近的 SELinux 版本下工作的问题
变更
修复 contrib/sepgsql 测试在最近的 SELinux 版本下工作的问题(Mike Palmiotto)
改进改进 src/test/recovery 回归测试的稳定性
变更
改进 src/test/recovery 回归测试的稳定性(Michael Paquier)
改进减少 pg_upgrade 测试脚本的 stderr 输出
变更
减少 pg_upgrade 测试脚本的 stderr 输出(Tom Lane)
问题修复修复 TAP 测试在 msys Perl 下、构建目录位于非根 msys 挂载点时的工作问题
变更
修复 TAP 测试在 msys Perl 下、构建目录位于非根 msys 挂载点时的工作问题(Noah Misch)
改进支持用 Microsoft Visual Studio 2019 构建 Postgres
变更
支持用 Microsoft Visual Studio 2019 构建 Postgres(Haribabu Kommi)
关联记录 (5)
- 相关提交PostgreSQL 13.0 · 增加使用 Visual Studio 2019 构建的支持
- 相同变化PostgreSQL 11.5 · 支持使用 Microsoft Visual Studio 2019 构建 Postgres
- 相同变化PostgreSQL 10.10 · 支持使用 Microsoft Visual Studio 2019 构建 Postgres
- 相同变化PostgreSQL 9.5.19 · 支持用 Microsoft Visual Studio 2019 构建 Postgres
- 相同变化PostgreSQL 9.4.24 · 支持用 Microsoft Visual Studio 2019 构建 Postgres
改进在 Visual Studio 构建中,尊重 WindowsSDKVersion 环境变量(如果已设置)
变更
在 Visual Studio 构建中,尊重 WindowsSDKVersion 环境变量(如果已设置)(Peifeng Qiu)
这修复了某些配置下的构建失败。
关联记录 (4)
- 相同变化PostgreSQL 11.5 · 在 Visual Studio 构建中,如果设置了 WindowsSDKVersion 环境变量,则遵循其设置
- 相同变化PostgreSQL 10.10 · 在 Visual Studio 构建中,如果设置了 WindowsSDKVersion 环境变量,则遵循其设置
- 相同变化PostgreSQL 9.5.19 · 在 Visual Studio 构建中,尊重 WindowsSDKVersion 环境变量(如果已设置)
- 相同变化PostgreSQL 9.4.24 · 在 Visual Studio 构建中,尊重 WindowsSDKVersion 环境变量(如果已设置)
改进在 Visual Studio 构建中支持 OpenSSL 1.1.0 及更新版本
变更
在 Visual Studio 构建中支持 OpenSSL 1.1.0 及更新版本(Juan José Santamaría Flecha、Michael Paquier)
改进允许在顶层调用非 GNU make 时把 make 选项传递给 gmake
变更
允许在顶层调用非 GNU make 时把 make 选项传递给 gmake(Thomas Munro)
改进避免 initdb 期间选择 localtime 或 posixrules 作为 TimeZone
变更
避免 initdb 期间选择 localtime 或 posixrules 作为 TimeZone(Tom Lane)
某些情况下 initdb 会选择这些人工时区名之一而不是“真实”时区名。让任何其他与 C 库时区行为相匹配的时区都优先于这两个。
关联记录 (4)
改进调整 pg_timezone_names 视图,使其仅当 Factory 时区有短缩写时才显示它
变更
调整 pg_timezone_names 视图,使其仅当 Factory 时区有短缩写时才显示它(Tom Lane)
历史上,IANA 为这个人工时区设置的“缩写”形如 Local time zone must be set--see zic manual page。现代版本的 tzdb 数据库显示 -00,但某些平台修改了数据以显示历史措辞之一或另一个。仅当该时区使用现代缩写时才显示它。
改进把我们的时区库副本与 IANA tzcode 版本 2019b 同步
变更
把我们的时区库副本与 IANA tzcode 版本 2019b 同步(Tom Lane)
这增加了对 zic 新的 -b slim 选项的支持,以缩小安装的时区文件。我们目前没有使用它,但将来可能启用。
改进更新时区数据文件到 tzdata 版本 2019b,涉及巴西的夏令时法规变更,以及香港、意大利和巴勒斯坦的历史修正。
变更
更新时区数据文件到 tzdata 版本 2019b,涉及巴西的夏令时法规变更,以及香港、意大利和巴勒斯坦的历史修正。
关联记录 (4)
- 相同变化PostgreSQL 11.5 · 将时区数据文件更新到 tzdata 2019b 版,以反映巴西的夏令时法规变更,并修正香港、意大利和巴勒斯坦的历史数据。
- 相同变化PostgreSQL 10.10 · 将时区数据文件更新到 tzdata 2019b 版,以反映巴西的夏令时法规变更,并修正香港、意大利和巴勒斯坦的历史数据。
- 相同变化PostgreSQL 9.5.19 · 更新时区数据文件到 tzdata 版本 2019b,涉及巴西的夏令时法规变更,以及香港、意大利和巴勒斯坦的历史修正。
- 相同变化PostgreSQL 9.4.24 · 更新时区数据文件到 tzdata 版本 2019b,涉及巴西的夏令时法规变更,以及香港、意大利和巴勒斯坦的历史修正。
没有匹配的变化
尝试其他关键词,或 .
如何生成比较结果?
比较依据起始版本之后至目标版本的 PostgreSQL 发布说明。经核实的回补重复项会谨慎合并,保留每条原始说明;相关提交可能涉及独立变化,仍作为不同记录保留。
发布快照: 2026-09-26 · 安全快照: 2026-09-26
内容来自 PostgreSQL 发布说明。交互方式参考 pgversions.com 与 pgversionreport.