E.5. 版本9.2.3
发布日期: 2013-02-07
此版本包含了9.2.2各种修复。关于9.2主要版本的新功能的信息,参阅Section E.8。
E.5.1. 迁移到版本9.2.3
为了运行9.2.X不需要转储/恢复。
然而,如果你是从早于9.2.2的版本上更新,参阅9.2.2发布说明。
E.5.2. 变化
防止来自SQL的
enum_recv
的执行(Tom Lane)该函数被错误声明,允许简单SQL命令导致服务器崩溃。原则上攻击者可以使用它检查服务器内存的内容。 我们该感谢Sumit Soni (通过Secunia SVCRP)报告这个问题。(CVE-2013-0255)
当检测WAL回放期间达到一致性数据库状态时,修复多个问题。 (Fujii Masao, Heikki Linnakangas, Simon Riggs, Andres Freund)
当不需要实际恢复工作时,修复结束备份点检查(Heikki Linnakangas)
这个错误可能导致不正确的"在线备份结束之前WAL结束"错误。
当截断关系文件时更新最小恢复点(Heikki Linnakangas)
一旦数据被丢弃,在时间线中的早一点停止恢复不再安全。
在改变恢复目标时间线之后修复WAL段重新回收利用(Heikki Linnakangas)
正确地恢复来自级联备用服务器上归档的时间线历史文件(Heikki Linnakangas)
修复热备份服务器上的锁冲突检测(Andres Freund, Robert Haas)
修复热备份模式中错过的取消事件(Noah Misch, Simon Riggs)
取消冲突的热备查询的需求有时会被错过, 允许这些查询查看不一致数据。
用户可以连接之前防止从暂停中恢复暂停功能(Tom Lane)
修复SQL语法以允许下标或者来自子SELECT结果的字段选择(Tom Lane)
解决繁忙工作负载下的自动清理截断的性能问题(Jan Wieck)
在表末尾的空白页截断需要排他锁,但是当有冲突的锁请求时,自动清理编码失败(并且释放表锁)。 在负载下,截断不会发生是可能的,导致表膨胀。通过执行部分截断进行修复, 释放锁,然后尝试重新获取锁并且继续。该修复在冲突请求到达后自动清理释放锁之前将大大 减少平均时间。
提高
SPI_execute
的性能以及相关函数,从而提高了PL/pgSQL的EXECUTE
(Heikki Linnakangas, Tom Lane)删除一些数据拷贝开销,它被增加到9.2中作为 计划的缓存机制中的修订结果。与9.1相比较 消除了性能回归,也节省了内存,特别是当要执行的查询字符串包含许多 SQL语句的时候。
另一个好处是,多个语句查询字符串现在 完全连续地被处理,这是我们在运行解析分析之前完成早期语句的执行以及 在下面一个中进行规划。这消除了长期存在的问题,在影响以后声明操作的DDL中 将表现为预期的。
恢复索引用法的pre-9.2成本估算(Tom Lane)
修正因子的不妥当变化为使用非常大的索引导致不符合要求的高成本估计。
修复
DROP INDEX CONCURRENTLY
中的间歇崩溃(Tom Lane)修复在
CREATE/DROP INDEX CONCURRENTLY
期间的共享内存锁表的潜在败坏 (Tom Lane)在一个元组超过页面大小减去填充因子的情况下修复
COPY
的多个元组插入代码(Heikki Linnakangas)前面的编码可以进入一个无限循环。
当扫描
pg_tablespace
的时候防止竞争条件(Stephen Frost, Tom Lane)如果有
pg_tablespace
项的并发更新, 那么CREATE DATABASE
和DROP DATABASE
可能行为不当。防止
DROP OWNED
试图把整个数据库或表空间删除(Álvaro Herrera)为安全起见,这些对象的所有权必须被重新分配,而不是删掉。
修复
vacuum_freeze_table_age
实现中的错误(Andres Freund)为了超过
vacuum_freeze_min_age
事务已存在的安装中,这个错误阻止使用部分表 扫描自动清理,以致于全表扫描总是相反的。当
RowExpr
或者XmlExpr
是解析分析2倍时,防止不当行为(Andres Freund, Tom Lane)这个错误可能在上下文中是用户可见的比如
CREATE TABLE LIKE INCLUDING INDEXES
。提高哈希表的大小计算中整数溢出的防御(Jeff Davis)
解决数据类型权限相关的一些错误(Tom Lane)
有一些类型的默认权限问题,并且pg_dump失败备份这样的权限。
修复服务器崩溃后忽略剩余的临时表的失败(Tom Lane)
修复为Windows上大小的原因交替postmaster日志文件的失败(Jeff Janes, Heikki Linnakangas)
拒绝
to_date()
中超出范围的日期(Hitoshi Harada)修复
pg_extension_config_dump()
恰当地处理 扩展更新情况(Tom Lane)这个函数将为目标表取代任何现有项, 使其在扩展更新脚本中可用。
修复在尽可能简单的表达式中计划时间误差的PL/pgSQL的报告(Tom Lane)
前面的编码有时导致省略
CONTEXT
追踪误差中的第一行。修复函数作为多表触发器的PL/Python的处理(Andres Freund)
确保非ASCII提示字符串被转换为Windows上正确的代码页(Alexander Law, Noah Misch)
这个错误影响psql和一些其他客户端程序。
当没有连接到数据库的时候,修复psql的
\?
命令中的 可能的崩溃(Meng Qingzhong)当正在运行pg_basebackup的时候,如果删除了关系文件,那么修复 可能的错误(Heikki Linnakangas)
当
pg_basebackup -X fetch
在备用服务器备份的时候,忍受时间线切换(Heikki Linnakangas)当在热备服务器上运行的时候,使pg_dump排除未记录的表中的数据(Magnus Hagander)
这将失败,因为在备用服务器上数据是不可用的,所以认为最方便的是自动假设
--no-unlogged-table-data
。修复pg_upgrade安全地处理无效索引(Bruce Momjian)
修复pg_upgrade的-O/-o选项(Marti Raudsepp)
修复libpq的
PQprintTuples
中一个字节缓冲区溢出(Xi Wang)这个过时的函数不用在PostgreSQL自身的任何地方, 但它可能仍然被客户端代码使用。
使得ecpglib正确使用已翻译消息(Chen Huajun)
在MSVC上正确安装ecpg_compat和 pgtypes库(Jiang Guiqing)
如果它不是通过系统提供的,那么在libecpg中包含
isinf()
我们的版本(Jiang Guiqing)为已提供的函数重新安排配置测试, 因此它不会被来自libedit/libreadline的假冒输出愚弄(Christoph Berg)
确保Windows随时间编译数增加(Magnus Hagander)
当交叉编译Windows时,使得pgxs生成带有正确
.exe
后缀的可执行程序(Zoltan Boszormenyi)添加新的时区缩写
FET
(Tom Lane)有一些东欧时区。