PostgreSQL 12.1, 11.6, 10.11, 9.6.16, 9.5.20, and 9.4.25 Released!

发表于2019-11-14 by PostgreSQL Global Development Group

PostgreSQL全球开发小组已经发布了对数据库系统所有受支持版本的更新,包括12.1、11.6、10.11、9.6.16、9.5.20和9.4.25. 此版本修复了过去三个月内报告的60多个错误.

PostgreSQL 9.4 EOL Approaching

PostgreSQL 9.4将在2020年2月13日停止接收修复,这是下一个计划的累积更新版本. 请参阅我们的版本控制政策以获取更多信息.

Bug Fixes and Improvements

此更新还修复了过去几个月中报告的50多个错误. 其中一些问题仅影响版本12,但也可能影响所有受支持的版本.

其中一些修复程序包括:

  • 修复了当ALTER TABLE添加没有默认值的列以及需要重写表的其他更改时发生的崩溃
  • 同时修复REINDEX CONCURRENTLY几个问题.
  • 修复了VACUUM ,在涉及事务仍在运行的特定情况下, VACUUM可能导致失败.
  • 修复了VACUUM在GiST索引上运行时可能发生的内存泄漏.
  • 修复了在表达式索引上运行CLUSTER时发生的错误.
  • 修复分区表上SET CONSTRAINTS ... DEFERRED失败.
  • 在分区表上创建和删除索引的几个修复程序.
  • 修复了可能导致计划程序失败的分区联接.
  • 确保在处理查询的表达式时处理WINDOW子句中的偏移量表达式.
  • 修复bitshiftright()错误行为,如果位字符串长度不是8的倍数,则它无法将最后一个字节中的填充空间清零.有关如何更正数据的信息,请参见"更新"部分.
  • 确保按照SQL标准,由position()函数求值的空字符串返回1.
  • 修复了无法请求后台工作程序时并行查询失败的问题.
  • 修复由涉及BEFORE UPDATE触发器的情况触发的崩溃.
  • 查询尝试访问TOAST表时,显示正确的错误.
  • 允许编码转换在输出高达1GB的字符串上成功执行. 以前,输入字符串的硬限制为0.25GB.
  • 确保在归档恢复结束时删除临时的WAL和历史记录文件.
  • 如果避免在存档恢复失败recovery_min_apply_delay启用.
  • 在崩溃恢复期间忽略restore_commandrecovery_end_commandrecovery_min_apply_delay设置.
  • 逻辑复制的一些修复程序,包括在发布者和订阅者设置了不同的REPLICA IDENTITY列时失败.
  • 正确地为逻辑解码添加时间戳复制消息,如果消息破损,则会导致pg_stat_subscription.last_msg_send_time设置为NULL .
  • libpq的多个修复程序,包括一个改进PostgreSQL 12兼容性的修复程序.
  • Several pg_upgrade fixes.
  • 修复并行还原如何处理分区表上的外键约束,以确保不会太早创建它们.
  • pg_dump现在根据表名而不是OID顺序输出名称相似的触发器和RLS策略.
  • 修复pg_rewind时不使用--dry-run选项时不更新pg_control的内容.

此更新还包含tzdata版本2019c,用于斐济和诺福克岛DST法律变更. 对阿尔伯塔省,奥地利,比利时,不列颠哥伦比亚省,柬埔寨,香港,印第安纳州(佩里县),加里宁格勒,肯塔基州,密歇根州,诺福克岛,韩国和土耳其的历史更正.

有关可用更改的完整列表,请查看发行说明 .

Updating

所有PostgreSQL更新版本都是累积性的. 与其他次要版本一样,用户无需转储和重新加载数据库或使用pg_upgrade即可应用此更新版本; 您可以简单地关闭PostgreSQL并更新其二进制文件.

跳过一个或多个更新版本的用户可能需要运行其他更新后步骤; 有关详细信息,请参见早期版本的发行说明.

如果由于将bitshiftright()的输出保存在表中而导致数据不一致,则可以使用类似于以下查询的查询来修复它:

UPDATE mytab SET bitcol = ~(~bitcol) WHERE bitcol != ~(~bitcol);

注意 :PostgreSQL 9.4将在2020年2月13日停止接收修补程序.有关更多信息,请参见我们的版本控制政策 .

Links

PostgreSQL Project

by  ICOPY.SITE