选择 打开 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

不受支持的版本: 9.3 / 9.2
历史版本PostgreSQL 9.3 已于 2018 年 11 月结束社区维护,本页译文保留供仍在使用旧版本的读者参考。新系统请看当前版本手册首页

E.47. 版本 9.2.4 #

发行日期:. 2013-04-04

本次发布包含对 9.2.3 的多方面修复。有关 9.2 大版本中新特性的信息,请参见 第 E.51 节。.

E.47.1. 迁移到版本 9.2.4

对于运行 9.2.X 的用户,不需要进行转储/恢复。

不过,本版本纠正了 GiST 索引管理中的若干错误。安装此更新后,建议对满足下述一个或多个条件的 GiST 索引执行 REINDEX

不过,如果你是从早于 9.2.2 的版本升级, 请参见 第 E.49 节

E.47.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 索引可能变得不一致。安装此更新后,用户应对 boxpolygoncirclepoint 列上的所有 GiST 索引执行 REINDEX,因为它们都使用 gist_box_same

  • 修复对可变宽度数据类型(即 textbyteabitnumeric 列)使用 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 错误,使恢复无法进行。

  • 确保当数据库未被干净停止且存在 recovery.conf 文件时,在进入归档恢复之前先执行崩溃恢复(Heikki Linnakangas、Kyotaro Horiguchi、Mitsumasa Kondo)

    这用于确保数据库在某些场景下的一致性,例如用运行中服务器的文件系统快照初始化备库。

  • 避免在崩溃恢复期间删除尚未归档的 WAL 文件(Heikki Linnakangas、Fujii Masao)

  • 修复 DELETE RETURNING 中的竞态条件(Tom Lane)

    在合适的条件下,DELETE RETURNING 可能尝试从当前进程已不再持有任何 pin 的共享缓冲区中取数据。如果其他进程在此期间更改了该缓冲区,就会导致垃圾 RETURNING 输出,甚至崩溃。

  • 修复正则表达式编译中的无限循环风险(Tom Lane、Don Porter)

  • 修复正则表达式编译中潜在的空指针解引用(Tom Lane)

  • 修复 to_char(),在适当的地方只使用 ASCII 大小写折叠规则(Tom Lane)

    这修复了一些本应与区域设置无关的模板模式在土耳其区域下错误处理 Ii 的问题。

  • 修复时间戳 1999-12-31 24:00:00 被不当拒绝的问题(Tom Lane)

  • 修复 SQL 语言函数,使其可以安全地用作范围类型的支持函数(Tom Lane)

  • 修复单个事务先执行 UNLISTEN 再执行 LISTEN 时的逻辑错误(Tom Lane)

    会话最终完全没有监听通知事件,尽管在这种情况下它显然应该监听。

  • 修复在向被另一视图依赖的视图添加列之后规划器可能崩溃的问题(Tom Lane)

  • 修复 EXPLAIN (ANALYZE, TIMING OFF) 中的性能问题(Pavel Stehule)

  • 移除无用的 picksplit doesn't support secondary split 日志消息(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_dumppg_upgrade 忽略无效索引(Michael Paquier、Bruce Momjian)

    转储无效索引可能在恢复时造成问题,例如当索引创建失败的原因是它试图强制执行表数据不满足的唯一性条件时。此外,如果索引创建实际上仍在进行中,把它视为未提交的 DDL 变更似乎是合理的,pg_dump 本来也不应转储它。pg_upgrade 现在也跳过无效索引而不是失败。

  • pg_basebackup 中,备份表空间时只包含当前服务器版本的子目录(Heikki Linnakangas)

  • pg_basebackuppg_receivexlog 中加入服务器版本检查,使其在版本组合无法工作时干净地失败(Heikki Linnakangas)

  • 修复 contrib/dblink,使其安全处理 DateStyleIntervalStyle 设置不一致的情况(Daniel Farina、Tom Lane)

    此前,如果远程服务器这些参数的设置不同,有歧义的日期可能被错误读取。此修复确保 dblink 查询获取的日期时间和间隔列会被正确解释。但请注意,设置不一致仍然有风险,因为发送到远程服务器的 SQL 命令中出现的字面值的解释可能与本地不同。

  • 修复 contrib/pg_trgmsimilarity() 函数,使其对无三元组的字符串返回零(Tom Lane)

    此前它由于内部除以零而返回 NaN

  • 支持使用 Microsoft Visual Studio 2012 构建 PostgreSQL(Brar Piening、Noah Misch)

  • 把时区数据文件更新为 tzdata 版本 2013b for DST law changes in Chile, Haiti, Morocco, Paraguay, and some Russian areas。 Also, historical zone data corrections for numerous places.

    此外,更新时区缩写文件以反映俄罗斯和其他地方的近期变更:CHOTGETIRKTKGTKRATMAGTMAWTMSKNOVTOMSTTKTVLATWSTYAKTYEKT 现在遵循其当前含义,同时把 VOLT(Europe/Volgograd)和 MIST(Antarctica/Macquarie)加入默认缩写列表。

提交更正

译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。