受支持版本: 14

E.19. 发布版本 14.4 #

发布日期:. 2022-06-16

本次发布包含来自 14.3 的多项修复。 有关 14 主版本新特性的说明,请参见 Section E.23

E.19.1. 迁移到版本 14.4 #

对于运行 14.X 的用户,不需要执行导出/恢复。

但是,如果存在在 14.X 下使用 CONCURRENTLY 选项创建的索引, 建议在更新后重建这些索引。 请参见下面的第一个变更日志条目。

此外,如果是从早于 14.3 的版本升级,请参见 Section E.20

E.19.2. 变更 #

  • 防止使用 CONCURRENTLY 选项创建或重建的索引可能出现的损坏 (Álvaro Herrera) §

    v14 中增加的一项优化导致 CREATE INDEX ... CONCURRENTLYREINDEX ... CONCURRENTLY 有时会遗漏在索引构建期间被更新的行。 该优化已被回退。 建议在安装此更新后重建所有使用 CONCURRENTLY 选项创建的索引。 (或者,也可以不使用 CONCURRENTLY 选项来重建它们。)

  • 加固 Memoize 计划节点以应对非确定性的相等函数(David Rowley) §

    如果数据类型的相等或哈希函数在不同调用之间给出不一致的结果,Memoize 可能会崩溃。 现在改为抛出运行时错误。

  • 修复 Memoize 计划的不正确代价估算(David Rowley) §

    这一错误可能导致在 Memoize 并非最佳计划时仍然使用它,或者因为为 Memoize 节点初始化过大的哈希表而导致执行器启动时间过长。

  • 修复当整行变量引用返回复合类型域的函数结果时的查询问题 (Tom Lane) §

  • 修复在提升引用了 GROUPING 函数的子 SELECT 时出现的 variable not found in subplan target list 规划器错误 (Richard Guo) §

  • 防止 pg_stat_get_subscription() 可能返回包含垃圾值的额外行(Kuntal Ghosh) §

  • 修复当数据库编码为 SQL_ASCII 而客户端编码为多字节编码时 COPY FROM 的错误检查(Heikki Linnakangas) §

    这一错误可能导致对有效输入数据发出错误的无效编码投诉。

  • 避免在 XMLTABLEJSON_TABLE 结构上附加了过多列别名时崩溃(Álvaro Herrera) § §

  • 在反编译视图或规则时,如果 SELECT 输出列的 AS "?column?" 别名子句可能在其他地方被引用,则显示它 (Tom Lane) §

    之前,这个自动生成的别名总是被隐藏的;但在某些边界情况下,这样做会导致视图或规则定义无法恢复。

  • 向事件触发器报告隐式创建的操作符族(Masahiko Sawada) §

    如果 CREATE OPERATOR CLASS 导致隐式创建了一个操作符族, 该对象不会被报告给应当捕获此类事件的事件触发器。

  • 修复在备库提升期间有重启点正在运行时的控制文件更新 (Kyotaro Horiguchi) §

    之前,当重启点完成时,它可能会错误地更新控制文件中的最后检查点字段, 如果服务器在下一次正常检查点完成之前崩溃,可能导致 PANIC 和重启失败。

  • 防止在逻辑复制大事务期间触发备库的 wal_receiver_timeout(Wang Wei,Amit Kapila) §

    如果主库上的一个大事务没有向备库发送数据(可能是因为它修改的表都没有被发布), 备库可能会超时。通过确保在这种情况下定期发送保活消息来修复此问题。

  • 防止在读取无效时区缩写文件时发生打开文件泄漏(Kyotaro Horiguchi) §

    这种情况可能导致无害的警告消息。

  • 允许自定义服务器参数具有为 NULL 的简短描述(Steve Chavez) §

    之前,虽然扩展可以选择创建这样的设置,但某些代码路径在处理它们时会崩溃。

  • 移除 libpq 中不恰当的 SSL 密钥文件所有权检查 (Tom Lane) §

    在之前的小版本中,我们将服务器对 SSL 私钥文件的权限检查规则复制到了 libpq 中。 但我们不应该同时复制服务器的文件所有权检查。虽然在正常使用场景下这没有问题, 但对于以 root 身份运行的客户端可能会导致意外的失败,在其他情况下也可能如此。

  • 确保 ecpg 合理地报告服务器连接丢失 (Tom Lane) §

    对 libpq 生成的错误结果(例如连接丢失报告)的错误处理,会导致打印 (null) 而非有用的错误消息;在更早的版本中则会导致崩溃。

  • 防止 pg_amcheck 在服务器连接丢失后崩溃 (Tom Lane) §

    对 libpq 生成的错误结果(例如连接丢失报告)的错误处理,会导致崩溃。

  • 调整 PL/Perl 测试用例使其能在 Perl 5.36 下工作 (Dagfinn Ilmari Mannsåker) §

  • 避免在构建 PostgreSQL 时,当存在多个 OpenLDAP 安装时错误地使用过时的 libldap_r 库(Tom Lane) §

提交更正

如果您发现文档中有不正确的内容、与您使用特定功能的经验不符或需要进一步说明,请使用此表单来报告文档问题。