E.73. 发布8.3.4

发布日期: 2008-09-22

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

E.73.1. 迁移到版本8.3.4

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

E.73.2. 变化

  • 修复btree WAL恢复编码中错误(Heikki)

    如果通过页拆分操作中途结束WAL,那么恢复失败。

  • 修复为HOT页修剪错误截断XID的潜在使用(Alvaro)

    这个错误产生通过VACUUM查阅的系统目录损坏风险: 死的元组版本可能太早被删除。 在实际数据库操作中的影响可能最小, 因为当检查目录的时候,该系统并不遵循MVCC规则, 但它可能会从pg_dump或其它客户端程序输出中导致瞬时错误。

  • 修复datfrozenxid的潜在错误计算(Alvaro)

    这个错误可能解释了删除旧的pg_clog数据一些错误报告。

  • pg_class重新被索引之后修复不正确的HOT更新(Tom)

    如果在同一会话中REINDEX TABLE pg_class伴随ALTER TABLE RENAME或者 ALTER TABLE SET SCHEMA命令,可能发生pg_class损坏。

  • 修复丢失的"combo cid"情况(Karl Schnaitter)

    这个错误使得行对于通过所有终止的多个子事务已经删除的事务不可见。

  • 如果该表目前的检查在错误的时间被删除, 那么避免自动清理崩溃(Alvaro)

  • 从32位到64位扩展本地锁计数器(Tom)

    该反馈是计数器可能在相当长事务中溢出,导致意想不到的"持有锁"错误。

  • 修复GiST索引扫描期间元组的重复输出(Teodor)

  • 当修改任何一个表的时候,从头回收外键检查查询(Tom)

    之前,8.3可能尝试重新规划查询,但是可能操作之前生产的查询文本。 如果重命名表或者列,那么导致错误。

  • 当视图包含一个简单的UNION ALL结构的时候, 修复丢失的权限检查(Heikki)

    正确检查引用表权限,但不是视图本身权限。

  • 在执行器启动中添加检查以确保通过INSERT或者UPDATE 产生的元组匹配目标表的当前行类型(Tom)

    这种情况在8.3中是不可能的,但是在以前版本中可以发生,所以检查似乎是谨慎的。

  • 修复DROP OWNED期间可能的重复删除(Tom)

    这通常会导致奇怪错误比如"对于关系NNN缓存查找失败"。

  • 修复XML操作中若干内存泄露(Kris Jurka, Tom)

  • 为不可接受的目标数据类型修复xmlserialize()正确改善误差(Tom)

  • 修复文本搜索配置文件解析中错误处理多字节字符的地方(Tom)

    配置文件中出现的某些字符总是引起"无效字节序列编码"错误。

  • 为文本搜索配置文件中报道的所有错误提供文件名和行号位置(Tom)

  • 修复AT TIME ZONE首先尝试解析它的时区参数为时区缩写, 并且如果失败,则尝试作为完整时区名,而不是之前的其它方式(Tom)

    时间戳输入函数一直按此顺序解决模棱两可的区域名称。 采用AT TIME ZONE这样做提高了一致性,并且修复了8.1引入的一个兼容性错误: 在模棱两可的情况下,我们现在操作和8.0以及以前的操作都是一样的, 因为在旧版本中AT TIME ZONE接受only缩写。

  • 当在64位平台上运行的时候,修复datetime输入函数以正确检测整数溢出(Tom)

  • 当显示有单位的配置参数的时候,防止单位换算期间整数溢出(Tom)

  • 改善写很长日志信息到syslog的性能(Tom)

  • 允许pg_hba.conf中LDAP URL的后缀部分空格(Tom)

  • 修复SELECT DISTINCT ON查询上游标向后扫描中的错误(Tom)

  • 修复规划器错误可能不正确地推翻外部连接下面的IS NULL测试(Tom)

    在大写OR子句的基础上通过IS NULL测试同一关系触发。

  • 修复嵌套子select表达式规划器错误(Tom)

    如果外部子select对父查询没有直接相关性,但内部确实如此, 可能不会为新的父查询行计算外部值。

  • 修复规划器以估计产生布尔结果的GROUP BY表达式总是产生两组, 不管表达式的内容(Tom)

    比起规则GROUP BY评估某个布尔测试像_col_``IS NULL来说 更加准确。

  • FOR循环的目标变量是包含复合类型字段的记录,修复 PL/pgSQL而不失败(Tom)

  • 修复PL/Tcl以正确操作Tcl 8.5, 并且更加小心数据编码发送的或者来自Tcl的(Tom)

  • 提高PQescapeBytea()的性能(Rudolf Leitgeb)

  • 在Windows上,通过避免libpq尝试发送超过64KB每个系统调用解决Microsoft错误(Magnus)

  • 修复ecpg正确处理SET命令中变量(Michael)

  • 在错误发送一个SQL命令之后完善pg_dump和pg_restore的错误报告(Tom)

  • 修复pg_ctl以正确保存通过restart的postmaster命令行参数(Bruce)

  • 修复pg_standby中错误的WAL文件截止点计算(Simon)

  • (为 Argentina, Bahamas, Brazil, Mauritius, Morocco,Pakistan, Palestine和Paraguay中DST变化) 更新时区数据文件到 tzdata发布2008f。