pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
发行日期:. 2010-12-16
本次发布包含对 9.0.1 的多方面修复。有关 9.0 大版本中新特性的信息,请参见 第 E.100 节。.
对于运行 9.0.X 的用户,不需要进行转储/恢复。
强制 Linux 上的默认 wal_sync_method 为 fdatasync(Tom Lane、Marti Raudsepp)
Linux 上的默认值实际上多年来一直是 fdatasync,但最近的内核变更导致 PostgreSQL 改选 open_datasync。这一选择没有带来任何性能改进,反而在某些文件系统(特别是使用 data=journal 挂载选项的 ext4)上导致彻底失败。
修复热备重放期间的 “too many KnownAssignedXids” 错误(Heikki Linnakangas)
修复热备期间锁获取中的竞态条件(Simon Riggs)
避免热备期间不必要的冲突(Simon Riggs)
这修复了一些重放被认为与备库查询冲突(导致重放延迟或可能取消查询)但实际上并不存在真正冲突的情况。
修复 GIN 索引 WAL 重放逻辑中的若干缺陷(Tom Lane)
这可能导致复制期间的 “bad buffer id: 0” 失败或索引内容损坏。
修复当起始检查点 WAL 记录与其重做点不在同一 WAL 段时从基础备份恢复的问题(Jeff Davis)
修复在创建主数据库集簇后立即启用流复制时的极端情况缺陷(Heikki Linnakangas)
修复多个工作进程长期保持活动时自动清理工作进程的持续变慢(Tom Lane)
如果自动清理工作进程处理了足够多的表,其有效 vacuum_cost_limit 可能降到接近零,导致其运行极慢。
修复自动清理启动器中的长期内存泄漏(Alvaro Herrera)
避免在事务之外尝试报告即将发生的事务回卷情况时失败(Tom Lane)
这一疏忽阻碍了事务回卷过于接近后的恢复,因为数据库启动处理会失败。
新增在 IA64 上检测寄存器栈溢出的支持(Tom Lane)
IA64 架构有两个硬件栈。要完全防止栈溢出失败需要同时检查两者。
在 copyObject() 中添加栈溢出检查(Tom Lane)
给定足够复杂的查询,某些代码路径可能因栈溢出而崩溃。
修复临时 GiST 索引中页面分裂的检测(Heikki Linnakangas)
在临时索引中可能出现“并发”页面分裂,例如当插入时有打开的游标正在扫描该索引。GiST 未能检测到这种情况,因此当游标继续执行时可能给出错误结果。
修复早期连接处理期间的错误检查(Tom Lane)
某些情况下对子进程过多的检查被跳过,可能在尝试把新子进程添加到固定大小数组时导致 postmaster 崩溃。
改进窗口函数的效率(Tom Lane)
某些需要提前读取大量元组、但 work_mem 足够大可以全部保存在内存中的情况意外地慢。percent_rank()、cume_dist() 和 ntile() 尤其受此问题影响。
避免在 ANALYZE 复杂索引表达式时内存泄漏(Tom Lane)
确保使用整行 Var 的索引仍依赖于其表(Tom Lane)
像 create index i on t (foo(t.*)) 这样声明的索引在删除其表时不会自动被删除。
补齐 DROP OWNED BY 中缺失的移除用户所拥有的外部数据包装器/服务器权限的支持(Heikki Linnakangas)
不要“内联”带多个 OUT 参数的 SQL 函数(Tom Lane)
这避免了因丢失预期结果行类型信息而可能出现的崩溃。
修复内联参数列表包含对可内联用户函数引用的集合返回函数时的崩溃(Tom Lane)
修复当 ORDER BY、LIMIT、FOR UPDATE 或 WITH 附加到 INSERT ... VALUES 的 VALUES 部分时的正确行为(Tom Lane)
把 OFF 关键字改为非保留(Heikki Linnakangas)
这避免了在 PL/pgSQL 中使用 off 作为变量名的问题。这在 9.0 之前可行,但现在被破坏了,因为 PL/pgSQL 现在把所有核心保留字视为保留。
修复 COALESCE() 表达式的常量折叠(Tom Lane)
规划器有时会尝试求值实际上永远不可达的子表达式,可能导致意外错误。
修复比较整行 Var 时的 “could not find pathkey item to sort” 规划器失败(Tom Lane)
修复当连接接受(accept() 或紧随其后的调用之一)失败且 postmaster 编译时带 GSSAPI 支持时的 postmaster 崩溃(Alexander Chernikov)
在收到来自 RADIUS 认证服务器的无效响应包之后重试(Magnus Hagander)
这修复了一个低风险的潜在拒绝服务条件。
修复 log_temp_files 处于活动状态时临时文件漏删的问题(Tom Lane)
如果尝试发出日志消息时出错,就不会执行删除,导致临时文件累积。
为 InhRelation 节点添加打印功能(Tom Lane)
这避免了启用 debug_print_parse 且执行某些类型的查询时的失败。
修复点到水平线段距离的错误计算(Tom Lane)
该缺陷影响多个不同的几何距离测量操作符。
修复 ecpg 中事务状态的错误计算(Itagaki Takahiro)
修复 psql Unicode 转义支持的错误(Tom Lane)
加快归档包含许多大对象(blob)时并行 pg_restore 的速度(Tom Lane)
修复 PL/pgSQL 对“简单”表达式的处理,使其在递归或错误恢复情况下不失败(Tom Lane)
修复 PL/pgSQL 对不存在列情况的错误报告(Tom Lane)
从 9.0 起,它有时会报 “missing FROM-clause entry for table foo”,而更合适的消息应是 “record foo has no field bar”。
修复 PL/Python,使其在给元组字段赋值时遵循 typmod(即长度或精度限制)(Tom Lane)
这修复了一个自 8.4 以来的退化。
修复 PL/Python 对集合返回函数的处理(Jan Urbanski)
在生成集合结果的迭代器内尝试调用 SPI 函数会失败。
修复 contrib/cube 的 GiST picksplit 算法中的缺陷(Alexander Korotkov)
这可能导致 cube 列上的 GiST 索引相当低效,尽管答案并非真正错误。如果你有这样的索引,考虑在安装此更新后对其执行 REINDEX。
contrib/dblink 除了在创建新连接时外不再发出“identifier will be truncated”通知(Itagaki Takahiro)
修复 contrib/pgcrypto 在缺少公钥时可能的核心转储(Marti Raudsepp)
修复 contrib/pg_upgrade 中的缓冲区越界(Hernan Gonzalez)
修复 contrib/xml2 的 XPath 查询函数中的内存泄漏(Tom Lane)
把时区数据文件更新为 tzdata 版本 2010o for DST law changes in Fiji and Samoa; also historical corrections for Hong Kong。
译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。