2025年9月25日: PostgreSQL 18 发布!

PostgreSQL 11 Beta 2 发布!

发布于 2018-06-28,作者:PostgreSQL 全球开发组
PostgreSQL 项目

PostgreSQL 全球开发组宣布,PostgreSQL 11 的第二个 beta 版本现已可供下载。此版本包含了 PostgreSQL 11 最终版本中将提供的所有功能的预览(尽管发布的一些细节在最终发布前可能会有变动),以及在第一个 beta 版本期间报告的 bug 修复。

本着开源 PostgreSQL 社区的精神,我们强烈鼓励您在数据库系统中测试 PostgreSQL 11 的新功能,以帮助我们消除可能存在的任何 bug 或其他问题。虽然我们不建议您在生产环境中使用 PostgreSQL 11 Beta 2,但我们鼓励您寻找方法,让您的典型应用程序工作负载在该 beta 版本上运行。

升级到 PostgreSQL 11 Beta 2

要从 Beta 1 或更早版本的 PostgreSQL 升级到 PostgreSQL 11 Beta 2,您需要使用类似于 PostgreSQL 主版本升级(例如 pg_upgradepg_dump / pg_restore)的策略。有关更多信息,请访问关于 升级 的文档部分。

PostgreSQL 11 主要功能变更

PostgreSQL 11 Beta 1 版本宣布了“SCRAM 身份验证的通道绑定”作为一项主要功能,因为它可以防止在使用 SCRAM 身份验证时发生中间人攻击。在测试过程中,我们确定 libpq(PostgreSQL 的客户端连接库)无法强制使用通道绑定

虽然此功能可以在未来的 PostgreSQL 版本中修复,但目前 SCRAM 身份验证的通道绑定将不被视为 PostgreSQL 11 的主要功能。

Beta 1 以来的变更

在 Beta 1 期间报告了许多针对 PostgreSQL 11 的 bug 修复,并已应用于 Beta 2 版本。包含在 Beta 2 版本中的还有针对版本 10 或更早版本报告但也影响版本 11 的几项 bug 修复。这些修复包括:

  • 对 XML 支持的几项修复,包括使用文档节点作为 XPath 查询的上下文,这在 SQL 标准中有定义,并影响 xpathxpath_exists 函数以及 XMLTABLE。
  • 与 VACUUM 相关的几项修复,包括潜在的数据损坏问题。
  • 对分区(partitioning)的修复,包括确保分区与临时表一起正常工作,在 INSERT 时消除不必要的额外分区约束检查,以及生成错误的分区聚合路径。
  • 修复了副本服务器可能崩溃的问题,即副本会尝试读取已回收的 WAL 段。
  • pg_replication_slot_advance 的修复,包括当槽未推进时返回 NULL,以及根据是物理复制槽还是逻辑复制槽,槽更新方式的更改。
  • 确保 pg_resetwal 可以使用数据目录的相对路径。
  • 对查询并行性的修复,包括通过忽略查询计划中“并行追加”(parallel append)的并行不安全路径来防止崩溃。
  • 修复了在使用并行查询执行 variance 和类似的聚合函数时,返回准确结果的问题。
  • 修复了 COPY FROM .. WITH HEADER 在处理 4,294,967,296 行后会丢失一行的问题。
  • 确保所有与内存相关的配置参数都能接受“B”(字节)参数。
  • 对 PL/Python 和 PL/Perl 中的 JSONB 转换的几项修复。
  • 修复了 plpgsql 检查语句时,在重写前需要检查原始写入语句的问题,这可能导致崩溃。
  • 修复了 SHOW ALL 显示给允许读取所有设置的角色超级用户配置设置的问题。
  • 修复了 pg_upgrade,当使用带有非 NULL 默认值的“快速 ALTER TABLE .. ADD COLUMN”功能时,可以确保写入默认值。
  • 几项内存泄漏的修复。
  • 几项特定于 Windows 平台的修复。

此更新还包含 tzdata release 2018e,其中包括朝鲜的更新。2018e 版本还重新引入了最初在 2018a 中引入的负 DST(夏令时)更改,这会影响爱尔兰(1971 年至今)、纳米比亚(1994-2017 年)以及前捷克斯洛伐克(1946-1947 年)的历史和当前时间戳。如果您的应用程序存储了受影响日期范围内具有这些时区的时间戳,我们恳请您进行测试,以确保您的应用程序行为符合预期。

测试 Bug 和兼容性

每个 PostgreSQL 版本的稳定性很大程度上依赖于您,即社区,通过您的工作负载和测试工具来测试即将发布的版本,以便在 PostgreSQL 11 发布之前找到 bug 和回归。由于这是一个 Beta 版本,数据库行为、功能细节和 API 仍可能发生微小变化。您的反馈和测试将有助于确定新功能的最终调整,请尽快进行测试。用户测试的质量有助于我们确定何时可以发布最终版本。

PostgreSQL wiki 上公开提供了一个待解决问题列表。您可以使用 PostgreSQL 网站上的此表单报告错误。

https://postgresql.ac.cn/account/submitbug/

Beta 时间表

这是 11 版本的第二个 beta 版本。PostgreSQL 项目将在测试需要时发布额外的 beta 版本,随后发布一个或多个候选版本,直到 2018 年底发布最终版本。有关更多信息,请参阅 Beta 测试 页面。

链接