PostgreSQL 全球开发组针对当前所有被支持版本发布了一次更新,版本包括:PostgreSQL 14.2, 13.6, 12.10, 11.15 和 10.20。此次更新修复了超过 55 个错误,可查看发行说明获取完整变更列表。
下面的列出的问题会影响 PostgreSQL 14,其中一些问题也可能会影响其他受支持的 PostgreSQL 版本:
- 修复了在
VACUUM
期间 HOT (heap-only tuple) 链改变状态时索引损坏的低概率问题。虽然遇到这种问题的可能性不大,但如果担心,可考虑重新索引。 - 修复在 TOAST 表索引上使用
REINDEX CONCURRENTLY
以防止损坏的问题,可通过再次重新索引它们来修复任何 TOAST 索引 。 psql
\password
命令现在默认为 CURRENT_USER 所定义的角色设置密码。此外,角色名称现在包括在密码提示中。- 为分区表构建扩展统计信息。如果之前向分区表添加了扩展统计信息,则应该在这些表上运行
ANALYZE
。由于autovacuum
目前不处理分区表,因此必须定期在任何分区表上运行ANALYZE
以更新其统计信息。 - 修复当统计对象同时被删除时
ALTER STATISTICS
的崩溃。 - 修复提取可变长度数据类型时多范围崩溃的问题。
- 对导致不正确查询结果的查询计划器的若干修复。
- 对 query plan memoization 的若干修复
- 修复物理副本的启动以容忍事务 ID 环绕
- 使用逻辑复制时,当发布包括子表和父表时,避免重复传输分区表的数据。
- 当分区表的行类型在别处用作复合类型时,不允许更改分区表列的数据类型。
- 不允许
ALTER TABLE ... DROP NOT NULL
作为副本标识索引一部分的列。 - 多个缓存修复,可纠正逻辑复制行为并提高性能。
- 修复更新表达式索引时的内存泄漏。
- 避免在
REASSIGN OWNED BY
操作中泄漏内存,这些操作重新分配了许多对象的所有权。 - 修复出现在
INSERT ... VALUES
规则中的整行变量的显示。 - 修复可能导致无法本地化在多线程使用 libpq 或 ecpglib 中早期报告的错误消息的竞争条件。
- 修复用于识别父触发器的命令
psql
\d
- 修复使用终端作为数据源或目标时 Windows 上的故障。这影响了 psql
\copy
命令和使用用pg_recvlogical
with-f -
。 - 修复
pg_dump
--inserts
和--column-inserts
模式以处理包含生成和删除列的表。 - 修正
postgres_fdw
处理异步查询的边缘情况。这些错误可能导致崩溃或在试图运行外域表的并行扫描时出现不正确的结果。