E.2. 11.7 版

发布日期: 2020-02-13

此版本包含自 11.6 起的各种修复程序。有关主要版本 11 中新功能的信息,请参阅Section E.9

E.2.1. 迁移到版本 11.7

运行 11.X 的用户不需要转储/还原。

但是,如果要从 11.6 之前的版本升级,请参见Section E.3

E.2.2. Changes

将对象标记为依赖于 extensions 没有任何特权检查。这种监督允许任何用户将例程,触发器,物化视图或索引标记为任何能够删除扩展的用户都可以删除的对象。要求主叫用户拥有指定的对象(因此有权删除它)。 (CVE-2020-1720)

创建或附加分区时,可能会丢失用户定义的触发器(但不是外键触发器或延迟的唯一约束触发器)。

仅当订户的表包含未从发布者复制的列并且具有按引用传递的数据类型时,此错误才引起可见的问题。

在更新或删除操作期间搜索现有 Tuples 时,返回第一个匹配的 Tuples 而不是最后一个。

众所周知,这种疏忽会导致多批并行散列联接产生“临时文件泄漏”警告。

如果这样的计划节点需要多次扫描(例如,如果它在 Nestloop 内部),则可以避免失败。

而是回退到非并行索引构建。

如果临时表具有ON COMMIT操作,这可以避免奇怪的故障。无论如何,对临时表使用CONCURRENTLY都是没有好处的,因为其他会话无法访问该表,因此多余的处理毫无意义。

避免可能的死锁,对已删除页面状态的不正确更新以及无法遍历最近删除的页面。

当它们来自由ALTER TABLE ADD COLUMN添加且具有恒定默认值的列时,它们可能导致值错误地读取为 NULL。

仅在启用data_sync_retry时才能观察到此问题,因为否则 FileClose()失败将被报告为 PANIC。

关于 Importing 字符串中不正确的月份或日期名称的报告可能会截断多字节字符中间的 Importing,从而导致编码错误的错误消息,从而可能导致后续失败。截断下一个空格。

自我参照的观点行不通;它将始终导致无限递归。在尝试执行视图时,我们正确地处理了这种情况,但是在询问它是否可自动更新时,我们没有正确地处理这种情况。

以前,xact_start列有时会显示流程开始时间。

在非文本输出格式中,此字段在“计划”子组内发出,导致语法上无效的输出。将其按预期方式附加到父 Append 或 MergeAppend 计划节点。这也将导致该字段也以文本输出格式更改位置:如果在同一计划节点上附加了任何 InitPlans,则现在将在这些计划之前显示“已删除子计划”。

此更改解决了 CVE-2017-7484 修复程序所创建的分区表的性能问题。该安全修补程序不允许将泄漏运算符应用于当前用户无权直接读取的列的统计信息。但是,通常只在父分区表上授予权限,而不在单个分区上授予权限是很常见的。在这种情况下,用户可以通过父级读取该列,因此此安全限制没有任何意义。它只会导致计划者的估算比必要的要差。

这样可以防止受影响的查询出现“不允许负位图集成员”计划程序错误。

以前,如果“索引顾问”扩展程序试图使计划者生成包含假设的 BRIN 索引的计划,那将失败,因为 BRIN 成本估算代码将始终尝试物理访问索引的元页面。现在,它检查索引是否只是假设的,如果是,则使用有关索引参数的默认假设。

以前从未支持过此方法,但是以前,该错误仅在执行时抛出,因此可以被计划程序错误掩盖。

以前,如果视图中未另外引用该类型,则可以通过删除类型来使用XMLTABLE破坏视图。此修复程序不会更正已为现有视图记录的依赖关系,而是仅针对新创建的视图。

pg_hba.conf解析器错误地将这些字段视为 SQL 标识符,但通常不是。

此项更改可确保使用 libpq 和其他与此类似的 Client 端库,在 Client 端认为事务完成时,在事务期间收到的任何通知将可用。这在实际应用中可能没有什么区别(无论如何都需要处理异步通知)。但它使构建具有可复制行为的测试用例更加容易。

这使得行为类似于我们的 SSL 支持,在很早以前就认为始终接受所有相关参数是一个好主意,即使由于某些特定版本缺少该功能而忽略或限制了其中一些参数。

由于出现一对一错误,这些代码将打印错误的月份名称,否则可能会崩溃。

删除并重新创建 PL/pgSQL 变量引用的复合类型可能会导致“无法使用 OID * NNNN *打开关系”错误。

这样可以防止由于该参数的愚蠢设置而导致崩溃。

这种情况永远都不会有用,它会在某些平台上崩溃。

当针对旧版本的 OpenSSL 构建 PostgreSQL 时,此问题可能导致无法根据需要设置 SSL 压缩选项。

这适用于idle_in_transaction_session_timeoutlock_timeoutstatement_timeouttrack_activitiestrack_countstrack_functions

这对于生产版本来说不是问题,因为它们通常不会启用内存上下文检查。但是在调试版本中泄漏可能会非常严重。

由于哈希表密钥创建错误,LWLock 统计代码(默认情况下未构建;它需要使用-DLWLOCK_STATS进行编译)可能报告同一 LWLock 和后端进程的多个条目。

这导致NOTIFY中出现可见的计时奇数,并且可能还有其他不良行为。

这有助于应对文件打开尝试失败的情况,因为目标文件被标记为删除但尚未 true 消失。例如,pg_ctl 在尝试检查邮局主管是否已关闭时经常因此类错误而失败。

上一章 首页 下一章