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
在 GiST 索引上运行时可能发生的内存泄漏。CLUSTER
时发生的错误。SET CONSTRAINTS ... DEFERRED
的失败。bitshiftright()
的错误行为,如果位字符串的长度不是 8 的倍数,则该函数未能将最后一个字节中的填充空间归零。有关如何更正数据的信息,请参阅“更新”部分。position()
函数评估的空字符串按 SQL 标准返回 1。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 日停止接收修复。请参阅我们的 版本控制策略 以获取更多信息。