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

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

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

E.8. 版本 9.6.17 #

发布日期:. 2020-02-13

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

E.8.1. 迁移到版本 9.6.17

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

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

E.8.2. 变更

  • ALTER ... DEPENDS ON EXTENSION 补上缺失的权限检查 (Álvaro Herrera)

    把对象标记为依赖于扩展此前没有任何权限检查。这一疏漏允许任何用户把 例程、触发器、物化视图或索引标记为任何能删除扩展的人都可以删除的 对象。现在要求调用用户拥有指定对象(从而有权删除它)。 (CVE-2020-1720)

  • 修复大事务必须被溢出到许多单独临时文件时逻辑解码的失败 (Amit Khandekar)

  • 修复数据库崩溃并重启之后逻辑复制发布方的失败(Vignesh C)

  • 防止位于 Limit 节点之下的 Gather 或 GatherMerge 计划节点过早关闭 (Amit Kapila)

    这避免了此类计划节点需要被扫描多次时的失败,例如当它位于 nestloop 内侧时。

  • 避免没有空闲动态共享内存槽位时的内存泄漏(Thomas Munro)

  • 对临时表执行索引创建、删除或重建时忽略 CONCURRENTLY 选项(Michael Paquier、Heikki Linnakangas、Andres Freund)

    这避免了临时表带有 ON COMMIT 动作时的奇怪失败。 反正对临时表使用 CONCURRENTLY 没有益处,因为其他 会话无法访问该表,额外的处理毫无意义。

  • 修复重置标记为 ON COMMIT DELETE ROWS 的临时表上的 表达式索引时可能的失败(Tom Lane)

  • 修复对 boxrangeinet 数据 类型执行 BRIN 索引操作时可能的崩溃(Heikki Linnakangas)

  • 修复 GIN 索引中对已删除页的处理(Alexander Korotkov)

    避免可能的死锁、已删除页状态的错误更新,以及穿过最近删除页的遍历 失败。

  • 修复多行 VALUES 列表中包含 SubPlan(子 SELECT)时可能的崩溃(Tom Lane)

  • 修复按引用传递的聚合转换状态不太可能的崩溃(Andres Freund、 Teodor Sigaev)

  • 改进 to_date()to_timestamp() 中的错误报告 (Tom Lane、Álvaro Herrera)

    关于输入字符串中不正确月份或日期名称的报告,可能在多字节字符中间截断 输入,导致错误编码的错误消息并引发后续失败。现在改为在下一个空白 处截断。

  • 修复公元前日期的 EXTRACT(ISOYEAR FROM timestamp) 的差一结果 (Tom Lane)

  • 避免系统目录中存在自引用视图时 information_schema 视图中的栈溢出(Tom Lane)

    自引用视图无法工作;它总是导致无限递归。我们在尝试执行该视图时能正确 处理这种情况,但在查询它是否自动可更新时不能。

  • 改进有超大内侧关系的哈希连接的性能(Thomas Munro)

  • 修复 <@@> 范围操作符选择率 计算中的边界崩溃和估计错误(Michael Paquier、Andrey Borodin、 Tom Lane)

  • 改进对试图在带条件 INSTEAD 规则的视图上使用自动更新 的错误报告(Dean Rasheed)

    这从未被支持过,但此前错误只在执行时抛出,因此可能被规划器错误掩盖。

  • 防止复合类型通过范围类型间接包含自身(Tom Lane、Julien Rouhaud)

  • 修复对禁止类型索引表达式的错误报告(Amit Langote)

  • 修复仅包含 VALUES 列表的视图的转储,以处理视图输出 列被改名的情况(Tom Lane)

  • 把传入的 NOTIFY 消息在发送 ReadyForQuery 之前而不是之后传给客户端(Tom Lane)

    这一更改确保在使用 libpq 及行为类似它的其他客户端库时,事务期间收到 的任何通知在客户端认为事务完成之时都已可用。这在实际应用中可能 没有差别(反正都需要应对异步通知);但它使构建行为可重现的测试用例 更容易。

  • 允许 libpq 在未编译 GSSAPI 代码时也解析所有 与 GSS 相关的连接参数(Tom Lane)

    这使行为与我们的 SSL 支持相似——很久以前我们就认为始终接受所有相关 参数是个好主意,即使在特定构建中因缺少该特性而忽略或限制某些参数。

  • 修复 ecpgPGTYPEStimestamp_fmt_asc() 函数中 %b%B 格式代码的错误处理 (Tomas Vondra)

    由于差一错误,这些代码会打印错误的月份名称,或者可能崩溃。

  • 修复并行 pg_dump/pg_restore 更优雅地处理工作者进程创建失败(Tom Lane)

  • 防止试图通过信号终止并行 pg_dump/ pg_restore 运行时可能的崩溃或锁死 (Tom Lane)

  • pg_upgrade 中,搜索表中不可升级数据类型时 深入数组和范围内部(Tom Lane)

  • createuser--connection-limit 选项应用更彻底的语法检查 (Álvaro Herrera)

  • 避免 postgres_fdw 尝试向远程服务器发送诸如 UPDATE remote_tab SET (x,y) = (SELECT ...) 之类的 命令时崩溃(Tom Lane)

  • contrib/dict_int 中,拒绝小于一的 maxlen 设置(Tomas Vondra)

    这防止了该参数的愚蠢设置可能导致的崩溃。

  • 禁止 contrib/tablefunccrosstab() 函数中的 NULL 类别值(Joe Conway)

    这种情况从来就不能正常工作,而且在某些平台上会崩溃。

  • 把一些超时和统计追踪 GUC 变量标记为 PGDLLIMPORT, 以允许扩展在 Windows 上访问它们(Pascal Legrand)

    这适用于 idle_in_transaction_session_timeoutlock_timeoutstatement_timeouttrack_activitiestrack_countstrack_functions

  • 修复导致 Windows 上进程间信号延迟传递的竞态条件(Amit Kapila)

    这导致 NOTIFY 中可见的时机异常,或许还有其他错误 行为。

  • 在 Windows 上,ERROR_ACCESS_DENIED 文件访问失败后 重试几次(Alexander Lakhin、Tom Lane)

    这有助于应对目标文件已被标记为删除但尚未真正消失而导致打开失败的 情况。例如,pg_ctl 在探测 postmaster 是否 已关闭时经常因这种错误而失败。

提交更正

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