PostgreSQL 全球开发组发布了我们数据库系统所有受支持版本的更新,包括 12.1、11.6、10.11、9.6.16、9.5.20 和 9.4.25。此次发布修复了过去三个月报告的 60 多个错误。
PostgreSQL 9.4 将于 2020 年 2 月 13 日停止接收修复(这是下一个计划的累积更新发布日期)。更多信息请参阅我们的 版本策略。
此次更新还修复了过去几个月报告的 50 多个错误。其中一些问题仅影响 12 版本,但也可能影响所有受支持的版本。
部分修复包括:
ALTER TABLE
在添加一个没有默认值的列的同时进行其他需要重写表的操作时发生的崩溃。REINDEX CONCURRENTLY
中的若干问题。VACUUM
在涉及仍在进行的事务的特定情况下可能导致其失败的问题。VACUUM
时可能发生的内存泄漏问题。CLUSTER
时发生的错误。SET CONSTRAINTS ... DEFERRED
时发生的失败。bitshiftright()
的错误行为,当位串长度不是 8 的倍数时,它未能清零最后一个字节的填充空间。有关如何纠正您的数据,请参阅“更新”部分。position()
函数评估的空字符串返回 1,符合 SQL 标准。BEFORE UPDATE
触发器的特定情况引起的崩溃。recovery_min_apply_delay
的情况下,避免在归档恢复中发生失败。restore_command
、recovery_end_command
和 recovery_min_apply_delay
设置。pg_stat_subscription.last_msg_send_time
被设置为 NULL
。pg_upgrade
中的若干问题。pg_dump
现在根据表名而不是 OID 来排序输出相似名称的触发器和 RLS 策略。pg_rewind
在使用 --dry-run
选项时不更新 pg_control
内容的问题。此次更新还包含 tzdata 版本 2019c,用于斐济和诺福克岛的 DST 法规变更。以及对阿尔伯塔省、奥地利、比利时、不列颠哥伦比亚省、柬埔寨、香港、印第安纳州(佩里县)、加里宁格勒、肯塔基州、密歇根州、诺福克岛、韩国和土耳其的历史性更正。
有关所有可用更改的完整列表,请参阅 发行说明。
所有 PostgreSQL 更新版本都是累积的。与其他次要版本一样,用户不需要转储和重新加载数据库或使用 pg_upgrade
来应用此更新版本;您可以直接关闭 PostgreSQL 并更新其二进制文件。
跳过了一个或多个更新版本的用户可能需要执行额外的、更新后的步骤;有关详细信息,请参阅早期版本的发布说明。
如果您将 bitshiftright()
的输出保存到表中导致数据不一致,可以通过类似以下的查询进行修复:
UPDATE mytab SET bitcol = ~(~bitcol) WHERE bitcol != ~(~bitcol);
注意:PostgreSQL 9.4 将于 2020 年 2 月 13 日停止接收修复。更多信息请参阅我们的 版本策略。