E.66. 发布8.3.11

发布日期: 2010-05-17

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

E.66.1. 迁移到版本8.3.11

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

E.66.2. 变化

  • plperl中使用用于整个解释器的opmask强制限制, 而不是使用Safe.pm(Tim Bunce, Andrew Dunstan)

    最近发展使我们确信Safe.pm太不安全而依靠plperl。 此变化删除了Safe.pm的使用,有利于使用应用于操作掩码的独立解析器。 该变化的副作用包括它在plperl中以一种自然的方式使用Perl的strict编译是可能的。 并且Perl的$a$b变量在某种程序中按预期执行,而且函数编译显著更快。

  • 防止PL/Tcl执行来自pltcl_modules的不可靠代码(Tom)

    从一个数据库表中自动加载的Tcl代码PL/Tcl功能可能会被特洛伊木马攻击利用, 因为关于谁可以创建或者插入该表没有限制。 这种变化禁用该功能,除非pltcl_modules是由超级用户拥有。 (但是,不检查表上的权限,真正需要一个低于安全模块表这样的安装仍然可以给予适当的权限到值得信赖的非超级用户)。 另外,防止代码加载到非限制"normal" Tcl解释器,除非我们真的要执行pltclu函数。(CVE-2010-1170)

  • 如果在relcache项重建过程中收到缓存重置信息,那么修复可能崩溃(Heikki)

    当修复了相关错误时,该错误被引入到8.3.10中。

  • 当为了该函数运行语言验证器的时候,应用每个函数GUC设置(Itagaki Takahiro)

    这就避免了失败,如果该函数的代码没有设置无效; 一个例子是SQL函数可能不解析,如果search_path 是不正确的。

  • 不允许无特权用户重置超级用户参数设置(Alvaro)

    以前,如果一个非特权用户为自身运行ALTER USER ... RESET ALL, 或者为拥有的数据库运行ALTER DATABASE ... RESET ALL, 这将为用户或数据库删除所有特殊参数设置, 甚至是那些只应该由超级用户改变的参数。 现在,ALTER将只删除该用户有权限改变的参数。

  • CONTEXT附加物到日志项的时候, 如果发生关机,那么避免后台关机期间可能崩溃(Tom)

    在某些情况中上下文输出函数可能失败,因为当输出日志信息的时候,当前事务已经被回滚。

  • 确保归档进程尽可能快地响应archive_command中变化(Tom)

  • 为现代Perl版本更新pl/perl的ppport.h(Andrew)

  • 修复pl/python中各种内存泄露(Andreas Freund, Tom)

  • 当扩展指向自身的一个变量的时候,避免psql中无限递归(Tom)

  • 修复psql的\copy\copy (select ...)中点周围 不添加空格(Tom)

    在数字文本小数点周围添加空格可能导致语法错误。

  • 为使用contrib/intarray操作符的未能满足的查询修复 不必要"GIN索引不支持整个索引扫描"错误(Tom)

  • 确保contrib/pgstattuple函数做出反应及时取消中断(Tatsuhito Kasahara)

  • 使得服务器启动正确处理 为已存在共享内存段使得shmget()返回EINVAL的情况(Tom)

    这种操作已在BSD派生内核包括OS X中被观察。 这导致了一个完全误导启动失败,抱怨共享内存请求大小太大。

  • 避免Windows上syslogger过程中可能崩溃(Heikki)

  • 更加鲁棒性处理Windows注册表中不完整时区信息(Magnus)

  • 更新已知的Windows时区名字设置(Magnus)

  • 为Argentina, Australian Antarctic, Bangladesh, Mexico, Morocco, Pakistan, Palestine, Russia, Syria, Tunisia中DST变化更新 时区数据文件到tzdata发布2010j;同时为Taiwan历史修正。

    另外,添加PKST(Pakistan Summer Time)到时区缩写的缺省设置中。