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

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

文档版本比较

POSTGRESQL · VERSION COMPARE

PostgreSQL 9.2.18 发布变化

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

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

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

完整发布变化

9.2.18

2016-08-11

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

9.2.18stable支持截止 2017-11-09

安全变化
CVE / 问题严重程度修复版本所选版本状态
CVE-2016-5424

修复客户端程序对数据库名和角色名中特殊字符的处理

9.2.18已记录修复
CVE-2016-5423

修复嵌套 CASE-WHEN 表达式可能被错误评估的问题

9.2.18已记录修复

PostgreSQL 9.2.18

迁移与兼容性

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

不过,如果你是从早于 9.2.11 的版本升级,请参见第 E.14 节。

安全修复嵌套 CASE-WHEN 表达式可能被错误评估的问题

变更

修复嵌套 CASE-WHEN 表达式可能被错误评估的问题(Heikki Linnakangas、Michael Paquier、Tom Lane)

出现在另一个 CASE 的测试值子表达式中的 CASE 表达式,可能会混淆其自身的测试值是否为空。此外,内联实现 CASE 表达式所用相等操作符的 SQL 函数时,可能向该 SQL 函数体内 CASE 表达式中调用的函数传递错误的测试值。如果测试值的数据类型不同,可能导致崩溃;而且此类情况可被滥用以泄露服务器内存的部分内容。(CVE-2016-5423)

关联记录 (4)
安全修复客户端程序对数据库名和角色名中特殊字符的处理

变更

修复客户端程序对数据库名和角色名中特殊字符的处理(Noah Misch、Nathan Bossart、Michael Paquier)

vacuumdb 及其他客户端程序中的许多地方,可能会被包含双引号或反斜杠的数据库名和角色名弄混。收紧引用规则以使其安全。同时确保当 conninfo 字符串被用作这些程序的数据库名参数时,全程都被正确地如此对待。

修复 psql 的 \connect 和 \password 命令中对成对双引号的处理,使其与文档一致。

在 psql 的 \connect 命令中引入新的 -reuse-previous 选项,以显式控制是否复用先前连接的连接参数。(若不使用该选项,则与以前一样,根据数据库名是否看起来像 conninfo 字符串来决定。)这使 pg_dumpall 脚本能够安全地处理包含特殊字符的数据库名。

pg_dumpall 现在拒绝处理包含回车或换行的数据库名和角色名,因为在 Windows 上安全地引用这些字符似乎不切实际。将来我们可能会在服务器端拒绝此类名称,但尚未采取这一步骤。

这些被视为安全修复,因为包含特殊字符的恶意构造的对象名,可能在超级用户下次执行 pg_dumpall 或其他例行维护操作时被用于以超级用户权限执行命令。(CVE-2016-5424)

关联记录 (4)
问题修复修复对嵌套组合值应用 IS NULL/IS NOT NULL 时的边界错误行为

变更

修复对嵌套组合值应用 IS NULL/IS NOT NULL 时的边界错误行为(Andrew Gierth、Tom Lane)

SQL 标准规定,对于全空值的行,IS NULL 应返回 TRUE(因此 ROW(NULL,NULL) IS NULL 得到 TRUE),但这并不意味着递归适用(因此 ROW(NULL, ROW(NULL,NULL)) IS NULL 得到 FALSE)。核心执行器对此处理正确,但某些规划器优化把该测试当作递归的(因而在两种情况下都产生 TRUE),而 contrib/postgres_fdw 可能产生类似错误行为的远程查询。

关联记录 (4)
改进使 inet 和 cidr 数据类型正确拒绝包含过多冒号分隔字段的 IPv6 地址

变更

使 inet 和 cidr 数据类型正确拒绝包含过多冒号分隔字段的 IPv6 地址(Tom Lane)

关联记录 (4)
问题修复防止 close_ps()(point ## lseg 操作符)在输入坐标为 NaN 时崩溃

变更

防止 close_ps()(point ## lseg 操作符)在输入坐标为 NaN 时崩溃(Tom Lane)

使其返回 NULL 而不是崩溃。

关联记录 (4)
问题修复修复 to_number() 中几处一字节缓冲区过读

变更

修复 to_number() 中几处一字节缓冲区过读(Peter Eisentraut)

在几种情况下,to_number() 函数会从输入字符串中多读取一个字符。如果输入恰好位于内存末尾附近,则有很小的崩溃可能。

关联记录 (4)
改进避免在经过 heap_update() 的高开销路径中出现不安全的中间状态

变更

避免在经过 heap_update() 的高开销路径中出现不安全的中间状态(Masahiko Sawada、Andres Freund)

以前,这些情况会锁定目标元组(通过设置其 XMAX),但不为该动作记录 WAL,因此如果页面被刷出到磁盘,随后在元组更新完成之前发生数据库崩溃,就有数据完整性问题的风险。

关联记录 (4)
问题修复避免当指定变量的字符串值为空时 postgres -C 崩溃

变更

避免当指定变量的字符串值为空时 postgres -C 崩溃(Michael Paquier)

关联记录 (3)
改进避免在 VACUUM 期间消耗事务 ID

变更

避免在 VACUUM 期间消耗事务 ID(Alexander Korotkov)

VACUUM 中的某些情况会不必要地导致向当前事务分配 XID。通常这可以忽略不计,但如果已接近 XID 回卷限制,在防回卷清理期间消耗更多 XID 就非常糟糕了。

关联记录 (4)
改进避免在VACUUM FREEZE期间取消热备查询

变更

避免在VACUUM FREEZE期间取消热备查询(Simon Riggs, Álvaro Herrera)

在原本空闲的主库服务器上执行VACUUM FREEZE可能导致其备库服务器上的查询被不必要地取消。

关联记录 (3)
改进当手动 ANALYZE 指定列列表时,不要重置表的 changes_since_analyze 计数器

变更

当手动 ANALYZE 指定列列表时,不要重置表的 changes_since_analyze 计数器(Tom Lane)

如果只分析部分列,就不应阻止其他列的例行自动分析。

关联记录 (4)
问题修复修复 ANALYZE 对包含大量空值的唯一或近似唯一列的 n_distinct 高估

变更

修复 ANALYZE 对包含大量空值的唯一或近似唯一列的 n_distinct 高估(Tom Lane)

空值可能被当作它们本身就是不同的值来计数,导致某些类型查询中规划器的严重误估。

关联记录 (4)
改进防止自动清理为同一共享目录启动多个工作进程

变更

防止自动清理为同一共享目录启动多个工作进程(Álvaro Herrera)

通常这不是什么大问题,因为清理本来就不会花很长时间;但在目录严重膨胀的情况下,这可能导致除一个工作进程外的所有工作进程都在无用地等待,而不是对其他表做有用的工作。

关联记录 (4)
改进防止对包含 NaN 分量值的几何列构建 GiST 索引时出现无限循环

变更

防止对包含 NaN 分量值的几何列构建 GiST 索引时出现无限循环(Tom Lane)

关联记录 (3)
问题修复修复 contrib/btree_gin,使其正确处理 bigint 的最小可能值

变更

修复 contrib/btree_gin,使其正确处理 bigint 的最小可能值(Peter Eisentraut)

关联记录 (4)
改进让 libpq 能正确解码来自未来版本服务器的服务器版本号

变更

让 libpq 能正确解码来自未来版本服务器的服务器版本号(Peter Eisentraut)

计划在 9.6 之后的版本中把服务器版本号从三段式改为两段式。确保 PQserverVersion() 在此类情况下返回正确的值。

关联记录 (4)
问题修复修复 ecpg 中 unsigned long long 数组元素的代码

变更

修复 ecpg 中 unsigned long long 数组元素的代码(Michael Meskes)

关联记录 (4)
改进在同时使用 -c 和 -C 选项的 pg_dump 中,避免发出多余的 CREATE SCHEMA public 命令

变更

在同时使用 -c 和 -C 选项的 pg_dump 中,避免发出多余的 CREATE SCHEMA public 命令(David Johnston、Tom Lane)

关联记录 (3)
改进使 pg_basebackup 接受 -Z 0 表示不压缩

变更

使 pg_basebackup 接受 -Z 0 表示不压缩(Fujii Masao)

关联记录 (4)
问题修复修复构建 AIX 共享库的 makefile 规则,使其在并行 make 下安全

变更

修复构建 AIX 共享库的 makefile 规则,使其在并行 make 下安全(Noah Misch)

关联记录 (4)
问题修复修复 TAP 测试和 MSVC 脚本,使其在构建目录路径名包含空格时也能工作

变更

修复 TAP 测试和 MSVC 脚本,使其在构建目录路径名包含空格时也能工作(Michael Paquier、Kyotaro Horiguchi)

关联记录 (4)
改进使回归测试在丹麦语和威尔士语区域设置下安全

变更

使回归测试在丹麦语和威尔士语区域设置下安全(Jeff Janes、Tom Lane)

修改了一些会触发这些区域设置特殊排序规则的测试数据。

关联记录 (4)
改进更新我们的时区代码副本,以匹配 IANA 的 tzcode 2016c 版

变更

更新我们的时区代码副本,以匹配 IANA 的 tzcode 2016c 版(Tom Lane)

这是为了应对时区数据文件未来预期的变更。它还修复了处理特殊时区方面的一些边界 bug。

关联记录 (4)
改进把时区数据文件更新到 tzdata 2016f 版,涉及克麦罗沃和新西伯利亚的夏令时法规变更,以及阿塞拜疆、白俄罗斯和摩洛哥的历史数据修正。

变更

把时区数据文件更新到 tzdata 2016f 版,涉及克麦罗沃和新西伯利亚的夏令时法规变更,以及阿塞拜疆、白俄罗斯和摩洛哥的历史数据修正。

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

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

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

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