E.7. 11.2 版

发布日期: 2019-02-14

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

E.7.1. 迁移到版本 11.2

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

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

E.7.2. Changes

一些流行的 os 在无法写出内核数据缓冲区时将其丢弃,并报告为fsync()失败。如果我们重新发出fsync()请求,它将成功,但实际上数据已丢失,因此 continue 存在数据库损坏的风险。通过引发紧急情况,我们可以从 WAL 中重播,WAL 在这种情况下可能仅包含数据的剩余副本。尽管这确实很丑陋且效率低下,但几乎没有其他选择,而且幸运的是,这种情况很少发生。

已添加新的服务器参数data_sync_retry来控制此参数;如果确定在这种情况下内核不会丢弃脏数据缓冲区,则可以将data_sync_retry设置为on以恢复旧的行为。

先前 Policy 引起的重复已经失控。我们的计划是在项目的网站上提供完整的发行说明存档,但不要在每个发行版本中重复。

在这种情况下,无法正确检查唯一性条件。

以前是pg_constraint。此类约束的conislocal字段可能会不正确地保留为false,使其无法放置。转储/恢复或 pg_upgrade 可以解决该问题,但如有必要,可以手动调整目录字段。

否则,将无法使其生效。

先前的锁定级别太弱,可能允许在表上进行并发 DDL,结果不佳。

最终应该可以使它起作用,但是它可能需要一个过于复杂的补丁程序,以至于无法进行反向修补。

此更改部分还原了版本 10.0 中引入的性能改进,该性能改进试图减少在删除 GIN 发布树页面期间锁定的索引页面的数量。现在发现这会导致死锁,因此我们已将其删除,以进行更深入的分析。

在某些情况下,如果应将表达式视为包含匹配数据类型的操作,则它们不会被视为匹配。

来自 btree 比较函数的实际信息泄漏通常很难引起,但原则上可能会发生。

如果两个级别的 nestloop 都需要将相同的变量传递到它们的右侧,则将生成错误的计划。

当外键范围比内键范围小得多时,即使内侧有很多重复的键,所以计划者还是更喜欢合并联接。

以前,ANALYZE的示例中省略了正在进行的事务删除的行,但是发现这种情况比包含它们会导致更多的不一致。实际上,该 samples 现在对应于ANALYZE开始时间的 MVCC 快照。

这使TRUNCATE与其他命令的行为保持一致。以前,这种情况通常以失败告终。

如果截断的表具有 TOAST 表,则将重置该表的计数器。

这一定是禁止操作,因为在热备模式下不允许LISTEN;但是允许虚拟操作简化了 Client 端中的会话状态重置逻辑。

在某些情况下,可以将已授予权限的角色删除。这不会立即引起问题,但是随后的转储/重新加载或升级将失败,并且会出现症状,包括尝试向所有数字角色名称授予特权。

禁止访问此类事务中的临时表已有很长时间,但是仍然可能导致对临时对象的其他操作出现问题。

这种疏忽可能导致现有会话无法执行新创建的约束,或者 continue 执行已删除的约束。

略高于最大有效整数值的值可能不会被拒绝,然后溢出,从而产生最小有效整数。同样,应舍入为最小或最大整数值的值可能会被错误地拒绝。

以前,该变量将设置为[local],这最好是无济于事的,因为它应该是主机名。

以前,可以将此变量设置为FATALPANIC,这具有抑制普通错误消息向 Client 端传输的作用。但是,这与 PostgreSQL 有线协议规范中给出的保证相反,这使某些 Client 端变得非常困惑。在已发布的分支中,通过静默将此类设置视为ERROR来解决此问题。版本 12 及更高版本将完全拒绝这些替代方案。

由于setlocale()不是线程本地的,甚至可能不是线程安全的,因此先前的编码在多线程 ecpg 应用程序中引起了问题。

前导零的值未正确复制。

以前,* target *选项被忽略,因此复制数据始终转到当前查询输出目标。

反斜杠和其他一些 ASCII 标点符号未正确呈现,从而导致文档语法错误或输出中的错误字符。

在任何特定平台上,使用特定值* N *获得的序列可能与此补丁之前的序列不同。

这导致对此类视图的转储归档条目的标签错误,从而导致有关“归档项目的节段 Sequences 不正确”的无害警告。不太有害的是,取决于这些标签的选择性还原选项(例如--section)可能会发生错误的行为。

当增加了将统计目标附加到索引表达式的功能时,我们忘了教 pg_dump 了,因此在转储/重新加载中丢失了此类设置。

如果需要将WITH OIDS子句应用于要转储的第一个表,则将其省略。

这种情况实际上无法直接通过COPY解决,但使用contrib/file_fdw可能会发生。

先前的编码没有提供与由较新版本创建的空hstore值相同的结果,因此有可能在哈希联接或哈希聚合中导致错误的结果。如果表中可能包含最初存储于 8.4 且此后从未转储/重新加载的数据,则建议对在hstore列上构建的任何哈希索引重新索引。

这允许在不再提供未版本化python可执行文件的平台上配置 PL/Python 时,无需显式指定PYTHON

这简化了扩展构建过程的自定义。

预计这不会影响现有用例。

上一章 首页 下一章