E.94. 版本 8.2.7

发布日期: 2008-03-17

这个版本包含各种自8.2.6以来的修复。关于8.2主版本的新特性信息, 请查看Section E.101

E.94.1. 迁移到版本 8.2.7

运行8.2.X的用户不需要转储/恢复。不过,如果你受下列描述的Windows环境问题影响, 你可能需要在升级之后REINDEX在文本字段上的索引。

E.94.2. 修改列表

  • 为认为不同字符组合为相等的Windows环境修复字符串比较 (Tom)

    这个修复只应用于Windows并且是在使用UTF-8数据库编码时。 两年前为所有其他情况作了相同的修复,但是使用UTF-8的Windows使用一个单独的代码路径, 所以没有更新。如果你正在使用一个认为一些不相同的字符串相等的环境, 你可能需要REINDEX,以修复文本字段上现存的索引。

  • 修复在不同的系统目录上并发VACUUM FULL操作之间潜在的死锁 (Tom)

  • 修复长期存在的LISTEN/NOTIFY竞态条件 (Tom)

    在稀有情况下,一个刚刚执行了LISTEN的会话可能不会获得一个通知, 即使预期应该有一个,因为观察到并发事务执行NOTIFY在稍后提交。

    该修复的一个副作用是一个已经执行了还未提交的LISTEN 命令的事务对于该LISTEN将不会看到任何pg_listener中的行, 而它应该看到;以前它能看到。这个行为从未记录过,但是有可能有一些应用依赖于老的行为。

  • 不允许LISTENUNLISTEN在一个预备事务中 (Tom)

    以前是允许的,但是尝试这样做会有各种不愉快的结果,尤其是只要UNLISTEN 保持未提交,那么原始的后端就不会退出。

  • 不允许在一个预备事务中删除一个临时表 (Heikki)

    这在8.1中正确的禁用了,但是在8.2中无意的打破了检查。

  • 修复一个错误发生在查询使用哈希索引期间时的罕见崩溃 (Heikki)

  • 修复某些设置返回函数使用中的内存泄露 (Neil)

  • 修复公元前2月29的日期时间值的输入 (Tom)

    以前的代码关于哪年是闰年是错误的。

  • 修复ALTER OWNER的一些变体中的"未识别的节点类型"错误 (Tom)

  • 确保退出一个锁等待时,pg_stat_activity.waiting标记被清除了 (Tom)

  • 修复Windows Vista上进程权限的处理 (Dave, Magnus)

    特别的,这个修复允许作为管理员用户启动服务器。

  • 更新时区数据文件到tzdata版本2008a(特别的,最近智利的变化); 调整时区缩写VET (Venezuela)意为UTC-4:30,不是UTC-4:00 (Tom)

  • 修复pg_ctl,正确的从命令行选项中提取主进程的端口号 (Itagaki Takahiro, Tom)

    以前,pg_ctl start -w会在错误的端口尝试连接主进程,导致启动失败的错误报告。

  • 使用-fwrapv来防御最近的gcc版本中可能的错误优化 (Tom)

    在使用gcc 4.3或更高版本建立PostgreSQL时,这是必要的。

  • 正确的强制statement_timeout值比INT_MAX微妙(大约35分钟)更长 (Tom)

    这个错误只影响使用--enable-integer-datetimes的建立。

  • 修复常量折叠简化一个子查询时,"意外的 PARAM_SUBLINK ID"规划器错误 (Tom)

  • 修复约束排除处理IS NULLNOT表达式中的逻辑错误 (Tom)

    规划器有时会由于NULL结果的可能性排除不应该被排除的分区。

  • 修复另一个导致"未能建立一个 N-way 连接"规划器错误的原因 (Tom)

    这在利用一个连接子句之前必须强制一个缺乏子句的连接的情况下会发生。

  • 修复外连接规划中不正确的常数传播 (Tom)

    规划器有时不正确的推断一个变量会被迫等于一个常量,导致错误的查询结果。

  • 修复ORDER BYGROUP BY中常量表达式的显示 (Tom)

    明确计算的常量会不正确的显示。这会导致,例如转储或重载期间视图定义的损坏。

  • 修复libpq,在COPY OUT期间正确的处理NOTICE消息 (Tom)

    这个失败只有在一个用户定义数据类型的输出例程发出一个NOTICE时能观察到, 但是不保证它不会由于其他的原因而发生。