↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

已结束支持的版本: 9.6
历史版本。 PostgreSQL 9.6 已结束支持。 2021-11-11. 请参阅 当前版本手册.

E.7. 版本 9.6.18 #

发布日期:. 2020-05-14

此版本包含自 9.6.17 以来的多种修复。有关 9.6 大版本中新特性的信息,参见第 E.25 节。

E.7.1. 迁移到版本 9.6.18

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

不过,如果你是从 9.6.16 之前的版本升级,参见第 E.9 节。

E.7.2. 变更

  • 保留被 ALTER TABLE 重写的索引的 indisclustered 设置(Amit Langote、Justin Pryzby)

    此前,ALTER TABLE 会丢失哪个索引用于过 CLUSTER 的记录。

  • 保留被 ALTER TABLE 重写的索引的副本身份属性(Quan Zongliang、Peter Eisentraut)

  • 在 DROP OWNED BY 期间更早地锁定对象(Álvaro Herrera)

    这避免了另一会话正在删除部分相同对象的竞态情况下的失败。

  • 修复 CREATE ROLE ... IN ROLE 的错误情况处理(Andrew Gierth)

    某些错误情况会被报告为 “unexpected node type” 之类,而不是预期的消息。

  • 修复全文搜索正确处理短语搜索之上的 NOT(Tom Lane)

    诸如 !(foo<->bar) 之类的查询在作为 GiST 或 GIN 索引搜索实现时找不到匹配的行。

  • 修复短语搜索包含同时带前缀匹配和权重限制的项时的全文搜索(Tom Lane)

  • 修复 ts_headline() 在处理短语查询时做出更好的标题选择(Tom Lane)

  • 修复 gin_fuzzy_search_limit 处理中的 bug(Adé Heyward、Tom Lane)

    gin_fuzzy_search_limit 的值较小时,可能因无意中多次重新扫描同一索引页而导致意外缓慢。另一条代码路径则完全没有应用预期的过滤,可能返回过多的值。

  • 允许 circle 类型的输入接受文档所述的 “(x,y),r” 格式(David Zhang)

  • 让 get_bit() 和 set_bit() 函数应对长于 256MB 的 bytea 字符串(Movead Li)

    由于位号参数只有 int4,不可能用这些函数访问长 bytea 前 256MB 之外的位。我们将在 v13 中把参数放宽为 int8,但在此之前,允许这些函数处理长 bytea 的初始子串。

  • 避免 pg_ls_dir()、pg_timezone_names()、pg_tablespace_databases() 及相关函数可能泄漏打开的目录文件描述符(Justin Pryzby)

  • 修复多态函数类型解析,使其在只给出 anyrange 输入时正确推断 anyarray 输出的实际类型(Tom Lane)

  • 避免 REINDEX 被会话关闭信号终止时不太可能的崩溃(Tom Lane)

  • 防止 EXPLAIN 打印可能不正确的哈希连接表统计信息(Konstantin Knizhnik、Tom Lane、Thomas Munro)

  • 修复 VACUUM VERBOSE 中堆截断步骤所用时间的报告(Tatsuhito Kasahara)

  • 避免进程的 PS 状态中可能两次显示 “waiting”(Masahiko Sawada)

  • 避免崩溃恢复期间过早回收 WAL 段(Jehan-Guillaume de Rorthais)

    崩溃恢复期间变为可归档的 WAL 段有可能在未被归档的情况下就被回收。

  • 避免归档恢复期间扫描无关时间线(Kyotaro Horiguchi)

    这可以消除许多从归档存储获取不存在 WAL 文件的尝试,在归档访问缓慢时很有帮助。

  • 移除逻辑解码中虚假的 “subtransaction logged without previous top-level txn record” 错误检查(Arseny Sher、Amit Kapila)

    这一条件在各种场景下都可以合法达到,因此移除该检查。

  • 确保复制槽的 io_in_progress_lock 在失败代码路径中被释放(Pavan Deolasee)

    这可能导致 walsender 之后卡在等待该锁上。

  • 修复同步备库管理中的竞态条件(Tom Lane)

    在 synchronous_standby_names 设置更改期间,存在一个时间窗口,可能对是否可以释放等待同步提交的事务做出错误决定。如果一个 walsender 进程退出并立即被另一个取代,也存在类似错误决定的风险。

  • 确保备库服务器上 nextXid 不会倒退(Eka Palamadai)

    这一竞态条件可能使错误的热备反馈消息被发回主库,可能导致主库过早运行 VACUUM。

  • 为少数错误报告补上缺失的 SQLSTATE 值(Sawada Masahiko)

  • 修复 PL/pgSQL,使其可靠地拒绝把事件触发器函数当作普通函数执行(Tom Lane)

  • 修复使用 sslmode=verify-full 时 libpq 中的内存泄漏(Roman Peshkurov)

    连接启动期间的证书验证可能泄漏一些内存。如果客户端进程在其生命周期内打开许多数据库连接,这就会成为问题。

  • 修复 ecpg 在所有平台上都把仅为 “-” 的参数当作“从 stdin 读取”(Tom Lane)

  • 为 pg_dump 添加 ALTER ... DEPENDS ON EXTENSION 支持(Álvaro Herrera)

    pg_dump 此前忽略以这种方式添加的依赖,导致它们在转储/恢复或 pg_upgrade 期间被遗忘。

  • 修复 pg_dump 转储 RLS 策略对象上的注释(Tom Lane)

  • 在 pg_dump 中,把事件触发器的恢复推迟到最后(Fabrízio de Royes Mello、Hamid Akhtar、Tom Lane)

    这能把事件触发器干扰其他对象恢复的风险降到最低。

  • 修复 createdb 实用程序中 --encoding、--lc-ctype 和 --lc-collate 值的引号处理(Michael Paquier)

  • contrib/lo 的 lo_manage() 函数在被直接调用而非作为触发器调用时崩溃(Tom Lane)

  • 在 contrib/ltree 中,防止 ltree 和 lquery 长度字段溢出(Nikita Glukhov)

  • 修复 contrib/sepgsql 中的缓存引用泄漏(Michael Luo)

  • 避免在 Windows 上处理 Unix 风格区域名时的失败(Juan José Santamaría Flecha)

  • 在 MSVC 构建中,处理 Python 路径名中的空格(Victor Wagner)

  • 在 MSVC 构建中,修复 Visual Studio 版本检测以适应更多语言设置(Andrew Dunstan)

  • 在 MSVC 构建中,对 3.0 之后的 bison 版本使用 -Wno-deprecated,与非 Windows 构建已经做的一样(Andrew Dunstan)

  • 更新时区数据文件到 tzdata 版本 2020a,涉及摩洛哥和加拿大育空的夏令时法规变更,以及上海的历史修正。

    America/Godthab 时区已更名为 America/Nuuk 以反映当前英语用法;不过,旧名称仍作为兼容链接可用。

    同时,更新 initdb 的已知 Windows 时区名列表以包含新近添加的名称,提高它在该平台上正确翻译系统时区设置的几率。

报告文档问题

阅读 上游文档. 反馈更正前请先核对 当前版本手册.