E.71. 发布8.3.6

发布日期: 2009-02-02

该发布包含来自8.3.5的各种修复。关于8.3主要发布中新特性信息, 参阅Section E.77

E.71.1. 迁移到版本8.3.6

运行8.3.X不需要备份/恢复。然而,如果从8.3.5更早版本更新,参阅8.3.5发布说明。

E.71.2. 变化

  • 使用DISCARD ALL发布咨询锁,除了它已经做的之外(Tom)

    这是最适合的操作。然而,这可能影响现有的应用程序。

  • 修复整个索引GiST扫描以便正确执行(Teodor)

    如果在GiST索引上集群一个表,那么这个错误可能导致行丢失。

  • 修复xmlconcat(NULL)的崩溃(Peter)

  • 如果高比特位字符被用作标志,那么修复ispell词典中可能崩溃(Teodor)

    这被称为是由一个广泛可用的Norwegian字典完成的, 并且在其它中相同的条件可能存在。

  • 修复为复合类型pg_dump错误顺序输出(Tom)

    最可能的问题是在索引和视图需要它们之后为用户定义的运算符类而被备份。

  • 完善headline()函数中URL的处理(Teodor)

  • 完善headline()函数中超长headline的处理(Teodor)

  • 如果用错误的转换函数为指定编码对创建一个编码转换, 防止可能的断言故障或错误转换。(Tom, Heikki)

  • 修复可能的断言失败,如果在PL/pgSQL中执行语句改写成另一种语句, 例如,如果INSERT改写为UPDATE (Heikki)

  • 确保快照可用于数据类型输入函数(Tom)

    这主要影响了声明为涉及用户定义的稳定或者不变函数CHECK 限制的域。如果没有设置快照,则这样的函数往往失败。

  • 为用于数据类型I/O中SPI使用函数使其更安全; 特别是用于域检查约束(Tom)

  • 避免VACUUM中小表的不必要锁定(Heikki)

  • 修复保持ALTER TABLE ENABLE/DISABLE RULE被活跃会话识别的问题(Tom)

  • 修复使用UPDATE RETURNING tableoid返回零而不是正确OID问题(Tom)

  • 允许函数声明为采用ANYARRAY以便在该类型的pg_statistic列上执行(Tom)

    这曾经运行,但是在8.3中无意被损坏。

  • 当转变的平等应用于外部连接子句的时候,修复选择性的规划器误评估(Tom)

    这可能会导致查询不好的规划像... from a left join b on a.a1 = b.b1 where a.a1 = 42 ...

  • 完善长IN列表的优化处理(Tom)

    当启用约束排除的时候,该变化避免了在列表上浪费大量时间。

  • 防止在GIN索引构建期间同步扫描(Tom)

    由于GIN是在增加TID顺序中为插入元组进行了优化, 选择使用同步扫描可能会减缓通过三个或更多个因素的编译。

  • 确保持有游标的内容不依赖于TOAST表的内容(Tom)

    此前,游标中大字段值可能会表示为TOAST指针,如果引用的表在读取游标之前被删除, 或者如果大值被删除,然后清理。这可能失败。这不能发生在普通游标中, 但它可能使用游标保持超过它创建的事务。

  • 当一组返回函数没有读取整个结果而被终止,那么修复内存泄露(Tom)

  • 当数据库编码不是UTF-8的时候,修复XML函数中编码转换问题(Tom)

  • 修复contrib/dblinkdblink_get_result(text,bool)函数(Joe)

  • 修复来自contrib/sslinfo函数的垃圾输出(Tom)

  • 当在命令中被触发一次以上的时候,修复contrib/tsearch2兼容性触发器的 不正确操作(Teodor)

  • 修复autovacuum中可能错误信号(Heikki)

  • 支持作为Windows 7 beta服务运行(Dave和Magnus)

  • 修复varchar结构ecpg的处理(Michael)

  • 当无法获得PL/Perl连接信息的时候,修复configure脚本用来正确报告 错误(Andrew)

  • 使用适当的所有文档引用pgsql-bugs 和/或者pgsql-hackers, 而不是现在过时的pgsql-portspgsql-patches邮件列表(Tom)

  • (为Kathmandu和Switzerland, Cuba中历史DST)更新时区数据文件到tzdata发布2009a