E.67. 版本 9.1.9 #
发行日期:. 2013-04-04
本次发布包含对 9.1.8 的多方面修复。有关 9.1 大版本中新特性的信息,请参见第 E.76 节。.
E.67.1. 迁移到版本 9.1.9
对于运行 9.1.X 的用户,不需要进行转储/恢复。
不过,本版本纠正了 GiST 索引管理中的若干错误。安装此更新后,建议对满足下述一个或多个条件的 GiST 索引执行 REINDEX。
不过,如果你是从早于 9.1.6 的版本升级,请参见第 E.70 节。
E.67.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)修复 GiST 索引在不合适的情况下使用“模糊”几何比较的问题(Alexander Korotkov)
核心几何类型使用“模糊”相等进行比较,但
gist_box_same必须做精确比较,否则使用它的 GiST 索引可能变得不一致。安装此更新后,用户应对box、polygon、circle或point列上的所有 GiST 索引执行REINDEX,因为它们都使用gist_box_same。修复对可变宽度数据类型(即
text、bytea、bit和numeric列)使用contrib/btree_gist的 GiST 索引中错误的范围并集和惩罚逻辑(Tom Lane)这些错误可能导致不一致的索引:某些存在的键搜索不到,还会造成无用的索引膨胀。建议用户在安装此更新后对这类索引执行
REINDEX。修复多列索引的 GiST 页面分裂代码中的缺陷(Tom Lane)
这些错误可能导致不一致的索引:某些存在的键搜索不到,还会使索引的搜索效率不必要地低下。建议用户在安装此更新后对多列 GiST 索引执行
REINDEX。修复
gist_point_consistent,使其一致地处理模糊性(Alexander Korotkov)point列上 GiST 索引的索引扫描有时会得出与顺序扫描不同的结果,因为gist_point_consistent与底层操作符代码在是做精确比较还是模糊比较上不一致。修复 WAL 重放中的缓冲区泄漏(Heikki Linnakangas)
这一缺陷可能导致重放期间出现 “incorrect local pin count” 错误,使恢复无法进行。
修复
DELETE RETURNING中的竞态条件(Tom Lane)在合适的条件下,
DELETE RETURNING可能尝试从当前进程已不再持有任何 pin 的共享缓冲区中取数据。如果其他进程在此期间更改了该缓冲区,就会导致垃圾RETURNING输出,甚至崩溃。修复正则表达式编译中的无限循环风险(Tom Lane、Don Porter)
修复正则表达式编译中潜在的空指针解引用(Tom Lane)
修复
to_char(),在适当的地方只使用 ASCII 大小写折叠规则(Tom Lane)这修复了一些本应与区域设置无关的模板模式在土耳其区域下错误处理 “
I” 和 “i” 的问题。修复时间戳
1999-12-31 24:00:00被不当拒绝的问题(Tom Lane)修复单个事务先执行
UNLISTEN再执行LISTEN时的逻辑错误(Tom Lane)会话最终完全没有监听通知事件,尽管在这种情况下它显然应该监听。
修复在向被另一视图依赖的视图添加列之后规划器可能崩溃的问题(Tom Lane)
移除无用的 “picksplit doesn't support secondary split” 日志消息(Josh Hansen、Tom Lane)
这条消息似乎是为预期中从未编写、而且可能永远不会编写的代码而添加的,因为 GiST 对二次分裂的默认处理其实相当好。所以不再为此打扰最终用户。
修复会话最后几个事务的提交/中止计数可能未能发送到统计收集器的问题(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/pg_trgm的similarity()函数,使其对无三元组的字符串返回零(Tom Lane)此前它由于内部除以零而返回
NaN。把时区数据文件更新为 tzdata 版本 2013b for DST law changes in Chile, Haiti, Morocco, Paraguay, and some Russian areas。Also, historical zone data corrections for numerous places.
此外,更新时区缩写文件以反映俄罗斯和其他地方的近期变更:
CHOT、GET、IRKT、KGT、KRAT、MAGT、MAWT、MSK、NOVT、OMST、TKT、VLAT、WST、YAKT、YEKT现在遵循其当前含义,同时把VOLT(Europe/Volgograd)和MIST(Antarctica/Macquarie)加入默认缩写列表。