↑↓ 选择 ↵ 打开 ⌫ 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

文档版本对比

POSTGRESQL · VERSION COMPARE

PostgreSQL 11.19 的版本变更

本次发布的完整功能、修复与兼容性说明,以及它们在其他版本中的关联记录。

查看该版本全部变更
查看该版本全部变更

从起始版本之后,看到目标版本为止。大版本名称代表该系列首个正式版本。

收录 PostgreSQL 9.0 起的 17 个大版本、352 份发布说明;数据更新于 2026-09-26。

本次发布的全部变更

11.19

2023-02-09

导出 JSON
29项变更功能、修复与改进
1次版本发布按发行版本归档
0个 CVE本版说明中提及的漏洞编号

11.19 历史版本维护截止 2023-11-09

PostgreSQL 11.19

升级与兼容性说明

对于运行 11.X 的用户,不需要执行导出/恢复。

但是,如果是从早于 11.14 的版本升级,请参见第 E.9 节。

其他改进允许在尚未(完全)有效的索引上设置 REPLICA IDENTITY

变更

允许在尚未(完全)有效的索引上设置 REPLICA IDENTITY(Tom Lane)

当 pg_dump 导出一个标记了 REPLICA IDENTITY 的分区索引时,它生成的命令序列会在分区索引被标记为有效之前应用 REPLICA IDENTITY,导致恢复失败。似乎没有很好的理由禁止按此顺序操作,因此允许这样做。在索引变为有效之前,该标记不会产生任何效果。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复在规则中从多行 VALUES 列表执行 INSERT 时对 DEFAULT 标记的处理

变更

修复在规则中从多行 VALUES 列表执行 INSERT 时对 DEFAULT 标记的处理(Dean Rasheed)

在某些情况下,DEFAULT 标记不会被替换为正确的默认值表达式,导致 “unrecognized node type” 错误。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复并行哈希连接在边界情况下发生的数据损坏

变更

修复并行哈希连接在边界情况下发生的数据损坏(Dmitry Astapov)

如果正在写入临时文件的大元组的最后一个块恰好是 32760 字节,由于栅栏柱错误会导致数据损坏。查询通常会在稍后以数据损坏的症状而失败。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进遵循 checkpoint_completion_target 的非默认设置

变更

遵循 checkpoint_completion_target 的非默认设置(Bharath Rupireddy)

在 checkpoint_completion_target 更改后,内部状态未被更新,可能导致检查点 I/O 执行得比预期更快或更慢,特别是在动态更改该设置时。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复在 recovery_target_xid 模式下记录正确的结束时间戳

变更

在 recovery_target_xid 模式下记录正确的结束时间戳(Tom Lane)

当基于 recovery_target_xid 设置且 recovery_target_inclusive = off 结束恢复时,我们在 “recovery stopping before ... transaction” 日志消息中打印了一个不正确的时间戳(始终为 2000-01-01)。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进在扩展查询协议中,如果我们正在运行管道,避免在 ANALYZE 之后立即提交

变更

在扩展查询协议中,如果我们正在运行管道,避免在 ANALYZE 之后立即提交(Tom Lane)

如果没有显式的 BEGIN TRANSACTION,ANALYZE 会自行提交,但这在管道化的命令序列中不应该发生。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进拒绝长度错误的取消请求包

变更

拒绝长度错误的取消请求包(Andrey Borodin)

即使取消请求的长度字段过小,服务器也会处理该请求。这导致读取超出已分配缓冲区的末尾。理论上这可能导致段错误,但在实际中不太可能发生,因为缓冲区需要非常接近内存末尾才会出现。更可能的结果是关于错误后端 PID 或取消码的虚假日志消息。改为对错误的长度发出报告。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进在子查询提升中增加递归和循环防护

变更

在子查询提升中增加递归和循环防护(Tom Lane)

一个精心构造的查询可能导致深度递归和过多的时间用于尝试展平子查询。一个正确的修复对于后移来说过于侵入性,但至少我们可以增加堆栈深度检查和中断检查以允许取消查询。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复按分区连接代码以容忍无法为每个分区生成计划的情况

变更

修复按分区连接代码以容忍无法为每个分区生成计划的情况(Tom Lane)

这可能导致 “could not devise a query plan for the given query” 错误。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进限制 get_actual_variable_range 执行的清理工作量

变更

限制 get_actual_variable_range 执行的清理工作量(Simon Riggs)

在删除大量出现在索引末尾的元组之后立即进行的规划器运行,可能会花费大量工作来设置那些索引条目的 “killed” 位。通过在检查 100 个堆页面后放弃此过程来限制任何一次查询中的工作量。所有清理工作最终仍会完成,但不会出现如此大的性能波动。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进确保在执行短语匹配时可以取消全文检索查询的执行

变更

确保在执行短语匹配时可以取消全文检索查询的执行(Tom Lane)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进在复制连接尝试失败后清理 libpq 连接对象

变更

在复制连接尝试失败后清理 libpq 连接对象(Andres Freund)

之前的代码泄漏了连接对象。在后台代码路径中这基本无害,因为调用进程会放弃并退出。但在诸如 CREATE SUBSCRIPTION 等命令中,此类失败会导致少量会话生命周期的内存泄漏。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进在热备服务器中,减少跟踪主库上已知活跃 XID 的处理开销

变更

在热备服务器中,减少跟踪主库上已知活跃 XID 的处理开销(Simon Riggs,Michail Nikolaev)

对 KnownAssignedXids 数组清理不够积极可能导致性能下降,特别是在备库上 max_connections 设置较大时。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复逻辑解码中未初始化内存的使用

变更

修复逻辑解码中未初始化内存的使用(Masahiko Sawada)

在某些情况下,逻辑解码的恢复可能会尝试重用已经释放的 XID 数据,导致不可预测的行为。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进避免在 WAL 重放 hash 索引页面分裂操作期间出现罕见的 “failed to acquire cleanup lock” 恐慌

变更

避免在 WAL 重放 hash 索引页面分裂操作期间出现罕见的 “failed to acquire cleanup lock” 恐慌(Robert Haas)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进在 WAL 重放期间设置堆页面的 all-visible 位时推进页面的 LSN

变更

在 WAL 重放期间设置堆页面的 all-visible 位时推进页面的 LSN(Jeff Davis)

未能这样做会导致备库上的页面可能与主库不同,并违反了关于 LSN 何时更改的其他预期。就 PostgreSQL 本身而言,这似乎只是一个理论上的隐患,但可能影响第三方工具。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进防止不安全地使用关系缓存条目的 rd_smgr 指针

变更

防止不安全地使用关系缓存条目的 rd_smgr 指针(Amul Sul)

移除各种假设 rd_smgr 在一系列操作中始终有效的假定,通过将所有使用包装在一个函数中,在需要时重新计算。这防止了在一系列操作中途发生意外缓存刷新时出现的错误。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 WaitEventSet 逻辑中的潜在缓冲区溢出问题

变更

修复 WaitEventSet 逻辑中的潜在缓冲区溢出问题(Thomas Munro)

基于 epoll 和 kqueue 的实现,在其内部缓冲区大小与调用者输出缓冲区大小不同时,可能向内核请求过多的事件。该情况在已发布的 PostgreSQL 版本中尚未出现,但此错误对外部模块和未来的错误修复构成隐患。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进避免在 32 位构建中访问共享内存时出现名义上的未定义行为

变更

避免在 32 位构建中访问共享内存时出现名义上的未定义行为(Andres Freund)

clang 的未定义行为检测器对使用对齐不足的指针发出了警告。这在非调试构建中不太可能造成问题,但为了测试目的值得修复。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 ACL 检查中缓存查找失败消息的复制粘贴错误

变更

修复 ACL 检查中缓存查找失败消息的复制粘贴错误(Justin Pryzby)

原则上这些错误应该永远不会触发。但如果触发了,其中一些会报告错误类型的对象。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进在 pg_dump 中,避免在获取要检查的表的锁之前调用不安全的服务器函数

变更

在 pg_dump 中,避免在获取要检查的表的锁之前调用不安全的服务器函数(Tom Lane,Gilles Darold)

pg_dump 使用某些服务器函数,如果检查的表被并发删除则可能失败。通过确保在深入查询表的属性之前获取访问共享锁,以及不对我们不打算导出的表应用此类函数,来避免此类失败。

关联记录(3)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 ALTER FUNCTION/PROCEDURE/ROUTINE ... SET SCHEMA 的 Tab 补全

变更

修复 ALTER FUNCTION/PROCEDURE/ROUTINE ... SET SCHEMA 的 Tab 补全(Dean Rasheed)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 contrib/seg 在输入数字超过 127 位时不再崩溃或输出垃圾数据

变更

修复 contrib/seg 在输入数字超过 127 位时不再崩溃或输出垃圾数据(Tom Lane)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进在 contrib/sepgsql 中,避免较新版本的 libselinux 产生弃用警告

变更

在 contrib/sepgsql 中,避免较新版本的 libselinux 产生弃用警告(Michael Paquier)

关联记录(2)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复在使用 Strawberry Perl 时用 MSVC 构建 PL/Perl 的编译失败问题

变更

修复在使用 Strawberry Perl 时用 MSVC 构建 PL/Perl 的编译失败问题(Andrew Dunstan)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复用 MSVC 构建的 PL/Perl 与用 gcc 构建的 Perl 库之间的不匹配问题

变更

修复用 MSVC 构建的 PL/Perl 与用 gcc 构建的 Perl 库之间的不匹配问题(Andrew Dunstan)

此类组合之前可能导致 “loadable library and perl binaries are mismatched” 错误。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进抑制来自 Perl 头文件的编译器警告

变更

抑制来自 Perl 头文件的编译器警告(Andres Freund)

我们首选的编译器选项会对 Perl 头文件最近版本中出现的构造引发警告。在使用 gcc 时,我们可以用 pragma 来抑制这些警告。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

BUG 修复修复 pg_waldump 使其在不丢弃未使用的 static-inline 函数的编译器上可以构建

变更

修复 pg_waldump 使其在不丢弃未使用的 static-inline 函数的编译器上可以构建(Tom Lane)

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

其他改进将时区数据文件更新到 tzdata 2022g 版,以反映格陵兰和墨西哥的夏令时法规变更,并修正加拿大北部、哥伦比亚和新加坡的历史数据。

变更

将时区数据文件更新到 tzdata 2022g 版,以反映格陵兰和墨西哥的夏令时法规变更,并修正加拿大北部、哥伦比亚和新加坡的历史数据。

值得注意的是,一个新的时区 America/Ciudad_Juarez 从 America/Ojinaga 中分离出来。

关联记录(4)

“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。

这份对比如何生成?

对比以 PostgreSQL 发行说明为依据,汇总起始版本之后、目标版本及之前的变更,支持同一大版本内的小版本更新,以及跨大版本升级。跨大版本时,旧分支的维护记录只纳入到下一大版本首次发布之日,所有记录均不晚于目标版本的发布日期。大版本名称(如 18)指首个正式版本(18.0);测试版与开发快照会单独标注。

条目正文来自本站中文手册,版本清单、条目覆盖与提交依据逐一核对上游英文原文。每条变更保留完整说明与原文链接;分类用于辅助浏览,具体影响、适用条件与升级操作请阅读条目正文和各版本的升级说明。

同一修复可能回补到多个版本分支。对比会保守合并可确认相同的条目,并保留各分支完整说明;已知由起始版本包含的修复会排除。一条说明包含多个独立修复时,只有全部已包含才排除。大版本新功能不因与旧版补丁存在提交关联而合并,不能确认相同的条目继续保留。这是发行说明的累计差异,不能覆盖二进制程序之间的每一处代码变化。

CVE 独立依据 PostgreSQL 官方安全公告与漏洞记录计算:起始版本受影响、目标版本已修复或不受影响的漏洞才计入,按编号去重。目标版本仍受影响的漏洞另行提示;安全变更条数与 CVE 数量分别统计。

交互参考 pgversions.com 与 pgversionreport,内容来自 PostgreSQL 发行说明。更多历史资料见发行说明归档。