E.4. 版本9.2.4
发布日期: 2013-04-04
该版本包含了9.2.3的各种修复。关于9.2主要版本的新功能信息,请参阅Section E.8。
E.4.1. 迁移到版本9.2.4
为了运行9.2.X不需要转储/恢复。
然而,该版本修正了GiST索引管理的一些错误。在安装这个更新之后,REINDEX
任何GiST索引满足一个或更多个下面描述的条件是明智的。
同时,如果你正从9.2.2更早版本中更新,参阅9.2.2的发布说明。
E.4.2. 变化
修复服务器命令行开关安全解析(Mitsumasa Kondo, Kyotaro Horiguchi)
包含以"
-
"开头的数据库名字的连接请求可以用来损坏或者破坏 服务器的数据目录文件,即使最终拒绝该请求。(CVE-2013-1899)在每个postmaster子进程中重置OpenSSL随机状态(Marko Kreen)
通过
contrib/pgcrypto
函数产生的随机数 可能对于另外一个猜测的数据库用户相对容易,避免这种情况。 当postmaster使用ssl
=on
被配置时,该风险是非常显著的, 但是大多数连接不能使用SSL加密。 (CVE-2013-1900)使用REPLICATION权限检查测试当前用户不是认证用户(Noah Misch)
一个未经授权的数据库用户可以利用这个错误调用
pg_start_backup()
或者pg_stop_backup()
, 因此可能干扰常规备份的创建。(CVE-2013-1901)当不适合这样执行时,不使用"fuzzy"几何比较修复GiST索引。(Alexander Korotkov)
核心几何类型使用"fuzzy"等式执行比较,但是
gist_box_same
必须执行 精确比较,否则GiST索引使用它可能变得不一致。安装这个更新之后, 用户应该在box
,polygon
,circle
或者point
列上REINDEX
任何GiST索引,因为所有这些使用gist_box_same
。修复不正确的范围并集以及为了可变宽度数据类型使用
contrib/btree_gist
的GiST索引中惩罚逻辑, 也就是text
,bytea
,bit
和numeric
列(Tom Lane)这些错误可能导致不一致索引,其中一些出现的关键字不会被搜索发现,并且在无用的索引膨胀中, 在安装此更新后建议用户
REINDEX
这种索引。修复为多列索引在GiST页中分离代码的错误(Tom Lane)
这些错误可能导致不一致索引,其中一些出现的关键字不会被搜索发现, 并且在索引中是不必要的无效的搜索。 在安装此更新后建议用户
REINDEX
多列GiST索引。修复
gist_point_consistent
处理模糊一致性(Alexander Korotkov)在
point
列GiST索引上的索引扫描可能有时产生不同于顺序扫描的结果, 因为gist_point_consistent
不同意底层操作编码关于是否精确或者模糊的执行比较。在WAL重放中修复缓冲区泄露(Heikki Linnakangas)
在回放期间这个缺陷可能产生"不正确的本地针数"错误,使得恢复不可能。
确保我们在进入归档恢复前执行故障修复,如果数据库没有规则地中断,并且
recovery.conf
文件 是存在的(Heikki Linnakangas, Kyotaro Horiguchi, Mitsumasa Kondo)这需要确保数据库在一定情况下的一致性, 比如初始化一个来自运行的服务器上的文件系统快照的备用服务器。
避免在崩溃恢复期间删除未归档的WAL文件(Heikki Linnakangas, Fujii Masao)
修复
DELETE RETURNING
中的紊乱情况(Tom Lane)在这样的情况下,
DELETE RETURNING
试图从当前进程不再有任何针的 共享缓冲区中抓取数据。 如果一些其他进程同时改变缓冲区,这将导致垃圾RETURNING
输出,甚至崩溃。修复规则表达式编译中的无限循环风险(Tom Lane, Don Porter)
修复规则表达式编译中潜在的空指针引用(Tom Lane)
合适的地方修复
to_char()
只使用ASCII大小写折叠规则(Tom Lane)这种修复一些区域独立化的模板模式的不当行为,但是 在Turkish区域中胡乱操作"
I
"和 "i
"。修复时间戳
1999-12-31 24:00:00
不必要的拒绝(Tom Lane)修复SQL语言函数可以安全的用于支持范围类型的函数(Tom Lane)
当一个事务执行
UNLISTEN
然后LISTEN
时,修复逻辑错误(Tom Lane)该会话根本不监听通知事件,尽管它确实在这种情况下应该监听。
在列被添加到依赖于其他视图的视图中之后修复可能的规划器崩溃(Tom Lane)
修复
EXPLAIN (ANALYZE, TIMING OFF)
中的性能问题(Pavel Stehule)删除无效的"picksplit不支持的二次分裂"日志消息(Josh Hansen, Tom Lane)
该消息似乎被添加到从未写入的期望代码中,并且可能从来不是,因为二次分裂的GiST的缺省处理 实际上相当好。所以停止打扰关于它的最终用户。
删除
gist_box_picksplit()
中残留的二次分裂支持(Tom Lane)这不仅是二次分裂的实现不如缺省实现,它实际上更糟。 所以删除它并让缺省代码路径处理该情况。
修复发送会话的 最后几个事务提交/终止计数到统计收集器的可能错误(Tom Lane)
消除在PL/Perl中的
spi_prepare()
函数的内存泄露(Alex Hunsaker, Tom Lane)修复pg_dumpall以处理正确包含"
=
"的 数据库名字(Heikki Linnakangas)当给定一个不正确的连接字符串时,避免pg_dump中崩溃(Heikki Linnakangas)
忽略pg_dump和pg_upgrade中的无效索引(Michael Paquier, Bruce Momjian)
备份无效索引可能导致恢复时间的问题, 比如如果索引创建失败的原因是它试图强制 不满足表的数据的唯一性条件。同时,如果索引创建实际上仍然在进行中, 认为它是一个不受约束的DDL变化似乎是合理的,其中pg_dump 不期望备份。pg_upgrade现在也跳过无效索引而非失败。
在pg_basebackup中,当备份表空间时,仅仅包含当前服务器版本的子目录 (Heikki Linnakangas)
在pg_basebackup和 pg_receivexlog中添加服务器版本检查, 因此它们与不工作的版本联合失败(Heikki Linnakangas)
修复
contrib/dblink
以安全地处理DateStyle
或者IntervalStyle
的 不一致设置(Daniel Farina, Tom Lane)先前,如果远程服务器有这些参数的不同设置,可能错误地读取模糊日期。 这个修复确保了通过
dblink
查询抓取的日期时间和间隔列将正确的被解释。 注意然而这个不一致的设置仍然有风险,因为出现在SQL命令中发送到远程服务器的文本值可能 比他们局部的有不同的解释。修复
contrib/pg_trgm
的similarity()
函数为少于三个的字符串返回零(Tom Lane)先前它返回
NaN
由于内部除以零。使用Microsoft Visual Studio 2012启动编译PostgreSQL (Brar Piening, Noah Misch)
为了Chile, Haiti, Morocco, Paraguay和一些Russian区域中DST变化规律更 新时间区域数据文件到tzdata版本2013d。 同时为更多地方修正历史区域数据。
同时,为俄罗斯和其他地方的最近变化更新时区缩写文件:
CHOT
,GET
,IRKT
,KGT
,KRAT
,MAGT
,MAWT
,MSK
,NOVT
,OMST
,TKT
,VLAT
,WST
,YAKT
,YEKT
现在遵从他们当前的含义,以及VOLT
(Europe/Volgograd)和MIST
(Antarctica/Macquarie) 被添加到缺省缩写列表中。