PostgreSQL 9.3.1 中文手册 | ||||
---|---|---|---|---|
Prev | Up | Appendix E. 版本说明 | Next |
发布日期: 2012-08-17
这个版本包含9.1.4的各种修复。关于9.1主要版本的新功能的信息, 参阅Section E.19。
防止通过XML实体引用访问外部文件夹/URL(Noah Misch, Tom Lane)
xml_parse()
可以尝试读取外部文件夹或者URL作为需要解决DTD
以及XML值中的实体引用,从而允许未授权数据库用户尝试读取与数据库服务器权限的数据。
当外部数据还没直接返回给用户时,如果数据没有解析为有效XML,那么它的一部分可能会暴露
在错误信息中;并且无论如何检查文件是否存在的能力可能对攻击者有用。
阻止通过contrib/xml2的
xslt_process()
访问外部文件夹/URL(Peter Eisentraut)
libxslt提供通过样式表命令读写文件夹和URL的能力, 从而允许未授权数据库用户以读写带有数据库服务器权限的数据。 禁止通过libxslt的安全选项的正确使用。(CVE-2012-3488)
同时,删除xslt_process()
的能力从外部文件夹/URL中读取文件和样式表。
当这是已证明"特性"时,那么它被长期视为坏主意。
为了CVE-2012-3489修复打破该能力,而不是付出努力尝试修复它,
我们只是打算简单地删除它。
防止btree索引页过早回收利用(Noah Misch)
当我们允许只读事务略过已分配XID时, 当只读事务仍然运行到它时, 那么我们介绍已删除btree页可以被重新利用的可能性。 这会导致不正确索引搜索结果。 在该字段产生错误的可能性很低,因为时间要求, 但尽管如此它应该被修复。
修复带有新创造或者重新设置序列的碰撞安全漏洞(Tom Lane)
如果在新创造或者重新设置序列上执行ALTER SEQUENCE,
然后在它上精确执行一个nextval()
调用,
然后服务器崩溃了,WAL回放可以恢复序列到似乎没有执行nextval()
的状态下,
然而允许通过下一个nextval()
调用再次返回第一个序列值。
特别是这可以表现为serial列,因为串行列的序列的创建包含
ALTER SEQUENCE OWNED BY步骤。
修复enum类型值比较的竞争条件 (Robert Haas, Tom Lane)
当遇到一个被添加的枚举值时, 比较可能失败, 因为当前查询开始。
当不再热备份时,
修复txid_current()
以报告正确时代(Heikki Linnakangas)
这修复了上一个次要版本介绍的回归。
防止不当的复制连接选择作为同步备用(Fujii Masao)
主库可能不恰当选择虚假服务器 比如pg_receivexlog或者pg_basebackup 作为同步备用,然后无限期等待它们。
当主事务有很多子事务时, 修复热备启用错误(Andres Freund)
这个错误导致故障报告 为"无效XID插入到KnownAssignedXids中"。
在pg_start_backup()
之后确保
backup_label文件是fsync (Dave Kerr)
在walsender进程中修复超时处理(Tom Lane)
WAL发送后端进程以建立SIGALRM处理程序, 意味着它们会永远等待超时发生的一些情况。
在每个后端通过walwriter冲洗后意识到walsender (Andres Freund, Simon Riggs)
当工作负载只包含异步提交事务时, 这大大减少了复制延迟。
修复LISTEN/NOTIFY更好地处理I/O问题, 比如磁盘空间不足(Tom Lane)
在写入失败后,尝试发送更多NOTIFY消息的所有子序列可能 带有信息如"不能从文件"pg_notify/nnnn" 偏移量nnnnn: 成功读取"而失败。
仅仅允许autovacuum通过直接的封锁进程被自动取消(Tom Lane)
原代码可能允许某些情况下的不一致操作; 特别是,在少于deadlock_timeout宽限期后可以取消autovacuum。
改善autovacuum取消记录(Robert Haas)
修复日志收集器以致于在服务器启动后 第一个日志循环期间运行log_truncate_on_rotation (Tom Lane)
修复WITH附属于嵌套设置操作 (UNION/INTERSECT/EXCEPT) (Tom Lane)
确保参照子查询的整行不包含任何额外的 GROUP BY或者ORDER BY列(Tom Lane)
在ALTER TABLE ... ADD CONSTRAINT USING INDEX期间修复产生的依赖(Tom Lane)
这个命令为索引留下了多余的pg_depend项, 这可能混淆后期操作, 尤其是索引列之一上的ALTER TABLE ... ALTER COLUMN TYPE。
修复REASSIGN OWNED以影响扩展(Alvaro Herrera)
在CREATE TABLE期间CHECK约束和索引定义中不 允许拷贝整行引用(Tom Lane)
这种情况可以产生带有 LIKE或者INHERITS的CREATE TABLE。 复制整列变量被错误地标记带有不是一个新的原来表的行类型。 为LIKE拒绝理由似乎是合理的, 因为行类型可能后面会分散。 为INHERITS我们理论上应该接受它, 伴随对父表的行类型的隐含 胁迫;但比起后端补丁似乎是安全的需要更多的工作。
修复ARRAY(SELECT ...)子查询中的内存泄露 (Heikki Linnakangas, Tom Lane)
修复规划器传递正确规则排序到操作符选择性估计者(Tom Lane)
任何核心选择性估计函数先前不需要这个, 但是第三方代码可能需要它。
从正则表达式修复常见前缀提取(Tom Lane)
该代码被量化的括号子表达式搞糊涂了,比如^(foo)?bar。 这将导致这种模式不正确的搜索索引优化。
修复interval常量中带有分析符号 hh:mm和 hh:mm:ss 字段的错误(Amit Kapila, Tom Lane)
修复pg_dump以 更好处理包含部分GROUP BY列表 的视图(Tom Lane)
视图在GROUP BY中只列出一个主键列, 但如果他们使用其他表列进行分组,那么根据主键进行标记。 pg_dump中这样的主键依赖的恰当处理导致差的有序转储, 这充其量是效率很低的恢复而且 在最坏的情况 可能会导致一个平行的pg_restore运行的彻底失败。
在PL/Perl中,当使用SQL_ASCII编码时, 避免设置UTF8标记(Alex Hunsaker, Kyotaro Horiguchi, Alvaro Herrera)
当转换Python Unicode字符串到PL/Python中的服务器编码时, 使用Postgres的编码转换函数,而不是Python的。
这避免了一些拐角情况问题, 值得注意的是Python不支持所有Postgres编码。 一个显著功能变化是如果服务器编码是SQL_ASCII, 你会 得到字符串UTF-8表示形式;以前, 字符串中任何非ASCII字符可以导致错误。
修复PostgreSQL编码映射到PL/Python中的Python编码(Jan Urbanski)
适当报告contrib/xml2的
xslt_process()
中的错误(Tom Lane)
为Morocco和Tokelau中DST变化规律更新时区 数据文件到tzdata发布2012e