发布日期:. 2011-04-18
这个版本包含各种自9.0.3以来的修复。要想获取9.0主版本的新特性信息, 请参阅第 E.131 节。
运行9.0.X版本的用户不需要转储/恢复。
不过,如果您的安装是通过运行pg_upgrade从一个先前的主版本升级而来,
您应该采取措施防止由于pg_upgrade中一个现在修复的bug引起可能的数据丢失。
建议的解决方案是在所有的TOAST表上运行VACUUM FREEZE
。
更多信息可以参考 http://wiki.postgresql.org/wiki/20110408pg_upgrade_fix。
修复pg_upgrade对TOAST表的处理 (Bruce Momjian)
在pg_upgrade期间,TOAST表的pg_class
.relfrozenxid
值没有正确的拷贝到新的安装中。这可能稍后导致他们仍然需要在TOAST表中验证元组时,
pg_clog
文件被丢弃,导致“could not access status of transaction”失败。
这个错误造成了用pg_upgrade升级的安装的数据丢失的重大风险。 这个补丁纠正了将来使用pg_upgrade的问题, 但是没有本质上解决已经用错误版本的pg_upgrade处理过的安装中的问题。
废止错误的“PD_ALL_VISIBLE flag was incorrectly set”警告 (Heikki Linnakangas)
VACUUM
有时会发出这个警告,实际上是有效的。
为热备份冲突情况使用更好的SQLSTATE错误代码 (Tatsuo Ishii and Simon Riggs)
所有可重试的冲突错误现在有一段错误代码表明重试是可能的。另外,
由于数据库在master上删除引起的会话关闭现在报告为ERRCODE_DATABASE_DROPPED
,
而不是ERRCODE_ADMIN_SHUTDOWN
,所以连接池能正确的处理该情形。
防止间歇性挂在启动进程和后端写进程的交互中 (Simon Riggs)
这影响在非热备份情况下的恢复。
不允许包括复合类型本身 (Tom Lane)
这阻止了在服务器中处理复合类型时会无限递归的情形。当可能有一些这样的机构的使用时, 它们似乎不能足够令人信服的证明所需要的努力,以确保它总是安全的工作。
在目录缓存初始化期间避免潜在的死锁 (Nikhil Sontakke)
在某些情况下,缓存加载代码在锁住索引的目录之前会在系统索引上请求共享锁。 这可能会死锁对进程试图请求其他独占锁,更标准的顺序。
修复当有并发更新到目标元组时BEFORE ROW UPDATE
触发器处理中的悬空指针问题 (Tom Lane)
观察到这个错误在试图做UPDATE RETURNING ctid
时,
会导致间歇性的 “cannot extract system attribute from virtual tuple”失败。
有一个非常小的概率会发生更严重的错误,如为更新的元组生成不正确的索引条目。
当等待一个表的延迟触发的事件时,不允许DROP TABLE
(Tom Lane)
以前的DROP
会通过,导致触发器最终触发时的
“could not open relation with OID nnn”错误。
在pg_hba.conf
中允许“replication”作为一个用户名 (Andrew Dunstan)
“replication”在数据库名字字段中是特殊的,但是它在用户名字段中被错误的认为也是特殊的。
阻止GEQO最优化期间由WHERE条件常量错误触发的崩溃 (Tom Lane)
改善规划者处理半连接和反连接的情况 (Tom Lane)
修复子SELECT中SELECT FOR UPDATE
的处理 (Tom Lane)
这个错误通常导致“cannot extract system attribute from virtual tuple”错误。
修复文本搜索的选择性估计以计算NULL (Jesper Krogh)
修复get_actual_variable_range()以支持通过索引指导插件假设的索引注入 (Gurjeet Singh)
修复包含数组分片的PL/Python内存泄露 (Daniel Popowich)
当用户的根目录不可用时允许libpq的SSL成功初始化 (Tom Lane)
如果是SSL模式,那么根证书文件不是必须的,也就不需要失败。 这个改变恢复到9.0之前版本的行为。
修复libpq为在conninfo_array_parse
中检测到的错误返回有用的错误消息 (Joseph Adams)
打字错误导致库返回NULL给应用,而不是包含错误消息的PGconn
构成。
修复ecpg预处理器对浮点数常量的处理 (Heikki Linnakangas)
修复并发的pg_restore以正确的处理POST_DATA条目上的注释 (Arnd Hannemann)
修复pg_restore以处理TOC文件中较长的行(超过 1KB) (Tom Lane)
针对由过度热情的编译器优化和被零除引起的崩溃投入更多的保障 (Aurelien Jarno)
支持在MIPS上的FreeBSD和OpenBSD中使用dlopen() (Tom Lane)
有一个硬链接假设这个系统功能在这些系统的MIPS硬件上不可用。 那么使用一个编译时测试,因为最近的版本有这个功能。
修复HP-UX上的编译错误 (Heikki Linnakangas)
避免在启动过程中非常早的尝试写入Windows控制台时的崩溃 (Rushabh Lathia)
支持为Windows用MinGW 64位编译器建立 (Andrew Dunstan)
修复Windows上libintl的版本不兼容问题 (Hiroshi Inoue)
修复xcopy在Windows生成脚本中的使用,以在Windows 7下正确的运转 (Andrew Dunstan)
这只影响生成脚本,不影响安装或使用。
修复在Cygwin上被pg_regress使用的路径分隔符 (Andrew Dunstan)
更新时区数据文件到tzdata版本2011f,因为DST规律在以下地区发生了改变: Chile, Cuba, Falkland Islands, Morocco, Samoa, 和 Turkey;还有South Australia, Alaska, 和 Hawaii的历史修正。