PostgreSQL 14.2、13.6、12.10、11.15 和 10.20 发布!

发布于 2022-02-10,PostgreSQL Global Development Group
PostgreSQL

PostgreSQL 全球开发组发布了所有受支持版本的更新,包括 14.2、13.6、12.10、11.15 和 10.20。本次发布修复了过去三个月内报告的 55 个以上的缺陷。

有关完整变更列表,请查阅发布说明 (https://www.postgresql.org/docs/release/)。

缺陷修复和改进

本次更新修复了过去几个月内报告的 55 个以上的缺陷。以下列出的问题影响 PostgreSQL 14,其中部分问题也可能影响其他受支持的 PostgreSQL 版本。

本次发布包含:

  • 修复了 HOT(仅堆元组 (https://git.postgresql.org/gitweb/?p=postgresql.git;a=blob;f=src/backend/access/heap/README.HOT;hb=HEAD))链在 VACUUM 期间状态变化时导致索引损坏的低概率场景。遇到此问题的可能性很低,但如果你有所担心,请考虑进行重建索引 (https://www.postgresql.org/docs/current/sql-reindex.html)。

  • 修复了在 TOAST (https://www.postgresql.org/docs/current/storage-toast.html) 表索引上使用 REINDEX CONCURRENTLY (https://www.postgresql.org/docs/current/sql-reindex.html) 以防止损坏的问题。你可以通过再次重建索引 (https://www.postgresql.org/docs/current/sql-reindex.html) 来修复任何 TOAST 索引。

  • psql (https://www.postgresql.org/docs/current/app-psql.html) 的 \password 命令现在默认为 CURRENT_USER 定义的角色设置密码。此外,角色名称现在包含在密码提示中。

  • 为分区表构建扩展统计信息。如果你之前为分区表添加了扩展统计信息,应该对这些表运行 ANALYZE (https://www.postgresql.org/docs/current/sql-analyze.html)。由于 autovacuum (https://www.postgresql.org/docs/current/routine-vacuuming.html#AUTOVACUUM) 目前不处理分区表,你必须定期对分区表运行 ANALYZE 以更新其统计信息。

  • 修复了在统计对象被并发删除时 ALTER STATISTICS (https://www.postgresql.org/docs/current/sql-alterstatistics.html) 导致崩溃的问题。

  • 修复了提取可变长度数据类型时多范围类型 (https://www.postgresql.org/docs/current/rangetypes.html) 导致崩溃的问题。

  • 多项查询规划器的修复,解决了导致查询结果不正确的问题。

  • 查询计划记忆化 (https://www.postgresql.org/docs/current/runtime-config-query.html#GUC-ENABLE-MEMOIZE) 的多项修复。

  • 修复了物理副本在事务 ID 回卷时的启动问题。

  • 在使用逻辑复制时,当发布同时包含子表和父表时,避免重复传输分区表的数据。

  • 当分区表的行类型在其他地方被用作复合类型时,禁止修改分区表列的数据类型。

  • 禁止对作为副本标识索引一部分的列执行 ALTER TABLE ... DROP NOT NULL (https://www.postgresql.org/docs/current/sql-altertable.html)。

  • 多项缓存修复,纠正了逻辑复制行为并提升了性能。

  • 修复了更新表达式索引时的内存泄漏问题。

  • 避免在 REASSIGN OWNED BY (https://www.postgresql.org/docs/current/sql-reassign-owned.html) 操作重新分配大量对象所有权时泄漏内存。

  • 修复了出现在 INSERT ... VALUES 规则中的整行变量的显示问题。

  • 修复了在 libpq 或 ecpglib 的多线程使用中,可能导致早期报告的错误消息本地化失败的竞态条件。

  • 修复了 psql (https://www.postgresql.org/docs/current/app-psql.html) \d 命令在识别父触发器方面的问题。

  • 修复了在 Windows 上使用终端作为数据源或目标时的失败问题。这影响了 psql 的 \copy 命令以及使用 pg_recvlogical (https://www.postgresql.org/docs/current/app-pgrecvlogical.html) 配合 -f - 的情况。

  • 修复了 pg_dump (https://www.postgresql.org/docs/current/app-pgdump.html) 的 --inserts--column-inserts 模式在处理同时包含生成列和已删除列的表时的问题。

  • 修复了 postgres_fdw (https://www.postgresql.org/docs/current/postgres-fdw.html) 处理异步查询的边界情况。这些错误可能在尝试对外部表进行并行扫描时导致崩溃或结果不正确。

有关完整变更列表,请查阅发布说明 (https://www.postgresql.org/docs/release/)。

升级

所有 PostgreSQL 更新版本都是累积的。与其他小版本更新一样,用户无需通过导出和重新加载数据库或使用 pg_upgrade 来应用此更新;只需关闭 PostgreSQL 并更新其二进制文件即可。

跳过了一个或多个更新版本的用户可能需要在更新后执行额外步骤;请参阅早期版本的发布说明了解详情。

更多详细信息请查阅发布说明 (https://www.postgresql.org/docs/release/)。

链接

  • 下载 (https://www.postgresql.org/download/)

  • 发布说明 (https://www.postgresql.org/docs/release/)

  • 安全 (https://www.postgresql.org/support/security/)

  • 版本策略 (https://www.postgresql.org/support/versioning/)

  • 在 Twitter 上关注 @postgresql (https://twitter.com/postgresql)