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

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

文档版本比较

POSTGRESQL · VERSION COMPARE

PostgreSQL 9.0.2 发布变化

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

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

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

完整发布变化

9.0.2

2010-12-16

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

9.0.2stable支持截止 2015-10-08

PostgreSQL 9.0.2

迁移与兼容性

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

改进强制 Linux 上的默认 wal_sync_method 为 fdatasync

变更

强制 Linux 上的默认 wal_sync_method 为 fdatasync(Tom Lane、Marti Raudsepp)

Linux 上的默认值实际上多年来一直是 fdatasync,但最近的内核变更导致 PostgreSQL 改选 open_datasync。这一选择没有带来任何性能改进,反而在某些文件系统(特别是使用 data=journal 挂载选项的 ext4)上导致彻底失败。

问题修复修复热备重放期间的 “too many KnownAssignedXids” 错误

变更

修复热备重放期间的 “too many KnownAssignedXids” 错误(Heikki Linnakangas)

问题修复修复热备期间锁获取中的竞态条件

变更

修复热备期间锁获取中的竞态条件(Simon Riggs)

改进避免热备期间不必要的冲突

变更

避免热备期间不必要的冲突(Simon Riggs)

这修复了一些重放被认为与备库查询冲突(导致重放延迟或可能取消查询)但实际上并不存在真正冲突的情况。

问题修复修复 GIN 索引 WAL 重放逻辑中的若干缺陷

变更

修复 GIN 索引 WAL 重放逻辑中的若干缺陷(Tom Lane)

这可能导致复制期间的 “bad buffer id: 0” 失败或索引内容损坏。

问题修复修复当起始检查点 WAL 记录与其重做点不在同一 WAL 段时从基础备份恢复的问题

变更

修复当起始检查点 WAL 记录与其重做点不在同一 WAL 段时从基础备份恢复的问题(Jeff Davis)

问题修复修复在创建主数据库集簇后立即启用流复制时的极端情况缺陷

变更

修复在创建主数据库集簇后立即启用流复制时的极端情况缺陷(Heikki Linnakangas)

问题修复修复多个工作进程长期保持活动时自动清理工作进程的持续变慢

变更

修复多个工作进程长期保持活动时自动清理工作进程的持续变慢(Tom Lane)

如果自动清理工作进程处理了足够多的表,其有效 vacuum_cost_limit 可能降到接近零,导致其运行极慢。

问题修复修复自动清理启动器中的长期内存泄漏

变更

修复自动清理启动器中的长期内存泄漏(Alvaro Herrera)

改进避免在事务之外尝试报告即将发生的事务回卷情况时失败

变更

避免在事务之外尝试报告即将发生的事务回卷情况时失败(Tom Lane)

这一疏忽阻碍了事务回卷过于接近后的恢复,因为数据库启动处理会失败。

改进新增在 IA64 上检测寄存器栈溢出的支持

变更

新增在 IA64 上检测寄存器栈溢出的支持(Tom Lane)

IA64 架构有两个硬件栈。要完全防止栈溢出失败需要同时检查两者。

改进在 copyObject() 中添加栈溢出检查

变更

在 copyObject() 中添加栈溢出检查(Tom Lane)

给定足够复杂的查询,某些代码路径可能因栈溢出而崩溃。

问题修复修复临时 GiST 索引中页面分裂的检测

变更

修复临时 GiST 索引中页面分裂的检测(Heikki Linnakangas)

在临时索引中可能出现“并发”页面分裂,例如当插入时有打开的游标正在扫描该索引。GiST 未能检测到这种情况,因此当游标继续执行时可能给出错误结果。

问题修复修复早期连接处理期间的错误检查

变更

修复早期连接处理期间的错误检查(Tom Lane)

某些情况下对子进程过多的检查被跳过,可能在尝试把新子进程添加到固定大小数组时导致 postmaster 崩溃。

改进改进窗口函数的效率

变更

改进窗口函数的效率(Tom Lane)

某些需要提前读取大量元组、但 work_mem 足够大可以全部保存在内存中的情况意外地慢。percent_rank()、cume_dist() 和 ntile() 尤其受此问题影响。

问题修复避免在 ANALYZE 复杂索引表达式时内存泄漏

变更

避免在 ANALYZE 复杂索引表达式时内存泄漏(Tom Lane)

改进确保使用整行 Var 的索引仍依赖于其表

变更

确保使用整行 Var 的索引仍依赖于其表(Tom Lane)

像 create index i on t (foo(t.*)) 这样声明的索引在删除其表时不会自动被删除。

改进补齐 DROP OWNED BY 中缺失的移除用户所拥有的外部数据包装器/服务器权限的支持

变更

补齐 DROP OWNED BY 中缺失的移除用户所拥有的外部数据包装器/服务器权限的支持(Heikki Linnakangas)

改进不要“内联”带多个 OUT 参数的 SQL 函数

变更

不要“内联”带多个 OUT 参数的 SQL 函数(Tom Lane)

这避免了因丢失预期结果行类型信息而可能出现的崩溃。

问题修复修复内联参数列表包含对可内联用户函数引用的集合返回函数时的崩溃

变更

修复内联参数列表包含对可内联用户函数引用的集合返回函数时的崩溃(Tom Lane)

改进修复当 ORDER BY、LIMIT、FOR UPDATE 或 WITH 附加到 INSERT ... VALUES 的 VALUES 部分时的正确行为

变更

修复当 ORDER BY、LIMIT、FOR UPDATE 或 WITH 附加到 INSERT ... VALUES 的 VALUES 部分时的正确行为(Tom Lane)

改进把 OFF 关键字改为非保留

变更

把 OFF 关键字改为非保留(Heikki Linnakangas)

这避免了在 PL/pgSQL 中使用 off 作为变量名的问题。这在 9.0 之前可行,但现在被破坏了,因为 PL/pgSQL 现在把所有核心保留字视为保留。

问题修复修复 COALESCE() 表达式的常量折叠

变更

修复 COALESCE() 表达式的常量折叠(Tom Lane)

规划器有时会尝试求值实际上永远不可达的子表达式,可能导致意外错误。

问题修复修复比较整行 Var 时的 “could not find pathkey item to sort” 规划器失败

变更

修复比较整行 Var 时的 “could not find pathkey item to sort” 规划器失败(Tom Lane)

问题修复修复当连接接受(accept() 或紧随其后的调用之一)失败且 postmaster 编译时带 GSSAPI 支持时的 postmaster 崩溃

变更

修复当连接接受(accept() 或紧随其后的调用之一)失败且 postmaster 编译时带 GSSAPI 支持时的 postmaster 崩溃(Alexander Chernikov)

改进在收到来自 RADIUS 认证服务器的无效响应包之后重试

变更

在收到来自 RADIUS 认证服务器的无效响应包之后重试(Magnus Hagander)

这修复了一个低风险的潜在拒绝服务条件。

问题修复修复 log_temp_files 处于活动状态时临时文件漏删的问题

变更

修复 log_temp_files 处于活动状态时临时文件漏删的问题(Tom Lane)

如果尝试发出日志消息时出错,就不会执行删除,导致临时文件累积。

改进为 InhRelation 节点添加打印功能

变更

为 InhRelation 节点添加打印功能(Tom Lane)

这避免了启用 debug_print_parse 且执行某些类型的查询时的失败。

问题修复修复点到水平线段距离的错误计算

变更

修复点到水平线段距离的错误计算(Tom Lane)

该缺陷影响多个不同的几何距离测量操作符。

问题修复修复 ecpg 中事务状态的错误计算

变更

修复 ecpg 中事务状态的错误计算(Itagaki Takahiro)

问题修复修复 psql Unicode 转义支持的错误

变更

修复 psql Unicode 转义支持的错误(Tom Lane)

性能加快归档包含许多大对象(blob)时并行 pg_restore 的速度

变更

加快归档包含许多大对象(blob)时并行 pg_restore 的速度(Tom Lane)

问题修复修复 PL/pgSQL 对“简单”表达式的处理,使其在递归或错误恢复情况下不失败

变更

修复 PL/pgSQL 对“简单”表达式的处理,使其在递归或错误恢复情况下不失败(Tom Lane)

问题修复修复 PL/pgSQL 对不存在列情况的错误报告

变更

修复 PL/pgSQL 对不存在列情况的错误报告(Tom Lane)

从 9.0 起,它有时会报 “missing FROM-clause entry for table foo”,而更合适的消息应是 “record foo has no field bar”。

问题修复修复 PL/Python,使其在给元组字段赋值时遵循 typmod(即长度或精度限制)

变更

修复 PL/Python,使其在给元组字段赋值时遵循 typmod(即长度或精度限制)(Tom Lane)

这修复了一个自 8.4 以来的退化。

问题修复修复 PL/Python 对集合返回函数的处理

变更

修复 PL/Python 对集合返回函数的处理(Jan Urbanski)

在生成集合结果的迭代器内尝试调用 SPI 函数会失败。

问题修复修复 contrib/cube 的 GiST picksplit 算法中的缺陷

变更

修复 contrib/cube 的 GiST picksplit 算法中的缺陷(Alexander Korotkov)

这可能导致 cube 列上的 GiST 索引相当低效,尽管答案并非真正错误。如果你有这样的索引,考虑在安装此更新后对其执行 REINDEX。

改进contrib/dblink 除了在创建新连接时外不再发出“identifier will be truncated”通知

变更

contrib/dblink 除了在创建新连接时外不再发出“identifier will be truncated”通知(Itagaki Takahiro)

问题修复修复 contrib/pgcrypto 在缺少公钥时可能的核心转储

变更

修复 contrib/pgcrypto 在缺少公钥时可能的核心转储(Marti Raudsepp)

问题修复修复 contrib/pg_upgrade 中的缓冲区越界

变更

修复 contrib/pg_upgrade 中的缓冲区越界(Hernan Gonzalez)

问题修复修复 contrib/xml2 的 XPath 查询函数中的内存泄漏

变更

修复 contrib/xml2 的 XPath 查询函数中的内存泄漏(Tom Lane)

改进把时区数据文件更新为 tzdata 版本 2010o for DST law changes in Fiji and Samoa; also historical corrections for Hong Kong。

变更

把时区数据文件更新为 tzdata 版本 2010o for DST law changes in Fiji and Samoa; also historical corrections for Hong Kong。

如何生成比较结果?

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

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

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