E.150. 版本 8.0.2
发布日期: 2005-04-07
这个版本包含各种自8.0.1以来的修复。关于8.0主版本的新特性信息, 请参阅Section E.152。
E.150.1. 迁移到版本 8.0.2
运行8.0.*的用户不需要转储/恢复。这个版本更新PostgreSQL 库的主版本号,所以如果他们不能找到正确编号的共享库, 可能需要重新连接一些用户应用。
E.150.2. 修改列表
增加所有接口库的主版本号 (Bruce)
这应该在8.0.0中完成。它需要7.4.X版本的PostgreSQL客户端应用, 像psql,可以用在和8.0.X应用相同的机器上。 这可能需要重新连接使用这些库的用户应用。
添加仅Windows的
wal_sync_method设置fsync_writethrough(Magnus, Bruce)这个设置导致写入WAL时PostgreSQL透写任何磁盘驱动的写缓存。 这个行为以前称为
fsync,但是已经重命名了, 因为它在其他平台上表现的与fsync稍微有点不同。在Windows上启用
wal_sync_method设置open_datasync, 并让它成为那个平台的缺省 (Magnus, Bruce)因为缺省不再是
fsync_writethrough,如果磁盘驱动启用了写缓存, 那么在电源故障期间的数据丢失是有可能的。在Windows上要关闭写缓存, 从Device Manager中,选择该驱动属性,然后Policies。新增缓存管理算法2Q替代ARC (Tom)
这样做是为了避免在ARC上挂起US执照。 2Q代码比ARC对于某些工作负载可能有几个百分点的缓慢。 一个更好的缓存管理算法将在8.1中出现。
规划器调整以改善自由创建的表上的行为 (Tom)
允许plpgsql分配初始为
NULL的数组元素 (Tom)以前该数组将保持
NULL,但是现在它变成一个单元素数组。 在8.0中主要的SQL引擎改变为以这种方式处理一个空数组值的UPDATE, 但是plpgsql中相似的情况则被忽视了。在plpython函数体中转换
\r\n和\r为\n(Michael Fuhr)这阻止了plpython代码是在Windows或Mac客户端上写的时的语法错误。
允许SPI游标处理返回行的工具命令,比如
EXPLAIN(Tom)修复
ALTER TABLE SET WITHOUT OIDS之后的CLUSTER失败 (Tom)减少
ALTER TABLE ADD COLUMN的内存使用 (Neil)修复
ALTER LANGUAGE RENAME(Tom)记录仅Windows的pg_ctl的
register和unregister选项 (Magnus)确保后端关闭期间所做的操作都被统计收集器计数
这是预计解决pg_autovacuum不够频繁的清理系统目录的报告— 没有告诉后端关闭期间临时表删除引起的目录删除。
为配置参数
log_destination到eventlog修改Windows缺省 (Magnus)缺省的,运行在Windows上的服务器现在将发送日志输出到windows事件记录器而不是标准误差。
让Kerberos认证在Windows上工作 (Magnus)
允许没有被标记为拥有CREATEDB权限的超级用户
ALTER DATABASE RENAME(Tom)为
CREATE和DROP DATABASE修改WAL日志条目, 不指定绝对路径 (Tom)这允许不同机器上的时间点恢复可以有不同的数据库位置。请注意,
CREATE TABLESPACE在这种情况下仍然构成了风险。修复后端带有创建了一个表并且在它上面打开了一个游标的打开的事务退出时的崩溃 (Tom)
修复
array_map(),这样它可以调用PL函数 (Tom)几个
contrib/tsearch2和contrib/btree_gist修复 (Teodor)修复某些平台上一些
contrib/pgcrypto函数的崩溃 (Marko Kreen)为64位平台修复
contrib/intagg(Tom)修复解析
CREATE语句时的ecpg错误 (Michael)绕开在ecpg上导致问题的powerpc和amd64上的gcc错误 (Christof Petig)
当本地环境是
C时,不要使用upper()、lower()和initcap()的对本地敏感的版本 (Bruce)这允许这些函数在本地环境是
C时,在为非7位的数据产生错误的平台上工作。修复
quote_ident(),以便给匹配关键字的名字加引号 (Tom)修复
to_date(),以在CC和YY字段都使用了时合理的行为 (Karel)当给出一个0月的间隔时,阻止
to_char(interval)失败 (Tom)修复
date_trunc('week')返回的错误星期date_trunc('week')为一些年份中的一月份的前几天返回错误的年份。为
INET数据类型中的类D地址使用正确的缺省标记长度 (Tom)