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

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

文档版本对比

POSTGRESQL · VERSION COMPARE

PostgreSQL 11.4 的版本变更

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

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

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

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

本次发布的全部变更

11.4

2019-06-20

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

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

本版提及的安全记录 1 个 CVE
本版发布说明提及的 CVE,可能包含已有漏洞的后续修复
CVE / 问题严重程度修复版本
CVE-2019-10164

修复 SCRAM 验证信息解析中的缓冲区溢出隐患

7.511.4

PostgreSQL 11.4

升级与兼容性说明

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

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

安全相关修复 SCRAM 验证信息解析中的缓冲区溢出隐患

变更

修复 SCRAM 验证信息解析中的缓冲区溢出隐患(Jonathan Katz,Heikki Linnakangas,Michael Paquier)

任何已认证用户都可以通过将自己的密码修改为恶意构造的值,引发基于栈的缓冲区溢出。除了使 PostgreSQL 服务器崩溃之外,这还可能足以让攻击者以 PostgreSQL 操作系统账户的身份执行任意代码。

libpq 中也存在类似的溢出隐患,可能允许恶意服务器使客户端崩溃,甚至以客户端的操作系统账户执行任意代码。

PostgreSQL 项目感谢 Alexander Lakhin 报告此问题。(CVE-2019-10164)

关联记录(1)

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

BUG 修复修复运行时分区剪枝逻辑中的各类错误

变更

修复运行时分区剪枝逻辑中的各类错误(Tom Lane,Amit Langote,David Rowley)

如果用于剪枝的比较值是动态确定的,或者剪枝决策涉及多个范围分区列,或者涉及稳定但非不可变的比较操作符,这些错误可能使分区表查询返回错误结果。

BUG 修复修复尝试将触发器定义复制到新分区时可能发生的崩溃

变更

修复尝试将触发器定义复制到新分区时可能发生的崩溃(Tom Lane)

BUG 修复修复表具有部分排除约束时 ALTER TABLE ... ALTER COLUMN TYPE 发生的失败

变更

修复表具有部分排除约束时 ALTER TABLE ... ALTER COLUMN TYPE 发生的失败(Tom Lane)

关联记录(4)

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

BUG 修复修复为域约束添加注释时 COMMENT 命令发生的失败

变更

修复为域约束添加注释时 COMMENT 命令发生的失败(Daniel Gustafsson,Michael Paquier)

关联记录(3)

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

其他改进防止 hash 聚合的 hash 键列表中存在重复列时可能发生的内存破坏

变更

防止 hash 聚合的 hash 键列表中存在重复列时可能发生的内存破坏(Andrew Gierth)

关联记录(1)

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

BUG 修复修复对零参数或多参数聚合执行部分聚合时,不正确的参数空值检查

变更

修复对零参数或多参数聚合执行部分聚合时,不正确的参数空值检查(David Rowley,Kyotaro Horiguchi,Andres Freund)

BUG 修复修复归并追加计划的错误生成

变更

修复归并追加计划的错误生成(Tom Lane)

此错误可能导致 “could not find pathkey item to sort” 错误。

关联记录(2)

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

BUG 修复修复带有重复连接名称的查询的不正确输出

变更

修复带有重复连接名称的查询的不正确输出(Philip Dubé)

这一疏漏导致包含此类查询的视图转储/恢复失败。

关联记录(4)

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

BUG 修复修复 json_to_record() 和 json_populate_record() 中将 JSON 字符串字面量转换为 JSON 类型输出列的处理

变更

修复 json_to_record() 和 json_populate_record() 中将 JSON 字符串字面量转换为 JSON 类型输出列的处理(Tom Lane)

这些情况下应将字面量作为独立的 JSON 值输出,但如果字面量包含任何需要转义的字符,代码就会出现错误行为。

关联记录(1)

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

BUG 修复修复对正则表达式中 {1,1} 量词的不正确优化

变更

修复对正则表达式中 {1,1} 量词的不正确优化(Tom Lane)

此类量词被视为无操作并被优化掉;但文档规定,它们会为所附着的子表达式施加贪婪性,或在使用非贪婪变体 {1,1}? 时施加非贪婪性,而实际并未如此。只有当子表达式包含捕获括号或反向引用时,才会发生这种错误行为。

关联记录(4)

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

其他改进在页面分裂期间处理 INCLUDE 列时发生失败的罕见情况下,避免写入无效的空 B-树索引页

变更

在页面分裂期间处理 INCLUDE 列时发生失败的罕见情况下,避免写入无效的空 B-树索引页(Peter Geoghegan)

无效页面不会影响正常的索引操作,但可能导致后续 VACUUM 失败。如果某个索引已经发生此问题,可以通过重建该索引恢复。

其他改进避免初始化新进程的 pg_stat_activity 数据时可能发生的失败

变更

避免初始化新进程的 pg_stat_activity 数据时可能发生的失败(Tom Lane)

某些可能失败的操作,例如将从 SSL 证书提取的字符串转换为数据库编码,原本在临界区内执行。此处的失败会违反共享 pg_stat_activity 数据的访问协议,导致整个数据库卡死。

关联记录(3)

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

BUG 修复修复检查预先存在的共享内存段是否仍被冲突的 postmaster 使用时的竞争条件

变更

修复检查预先存在的共享内存段是否仍被冲突的 postmaster 使用时的竞争条件(Tom Lane)

关联记录(4)

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

BUG 修复修复 WAL 接收进程信号处理函数中的不安全代码

变更

修复 WAL 接收进程信号处理函数中的不安全代码(Tom Lane)

这避免了 WAL 接收进程进程在收到关闭指令时崩溃或死锁的罕见问题。

关联记录(1)

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

其他改进避免在未连接到特定数据库的进程中,为检查参数而尝试访问数据库

变更

避免在未连接到特定数据库的进程中,为检查参数而尝试访问数据库(Vignesh C,Andres Freund)

此错误可能导致 “cannot read pg_class without having selected a database” 等失败。

关联记录(4)

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

BUG 修复避免使用 SSL 且 OpenSSL 的待处理数据缓冲区恰好包含 256 字节整数倍的数据时,libpq 可能挂起的问题

变更

避免使用 SSL 且 OpenSSL 的待处理数据缓冲区恰好包含 256 字节整数倍的数据时,libpq 可能挂起的问题(David Binderman)

关联记录(3)

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

其他改进改进 initdb 对系统时区多个等效名称的处理

变更

改进 initdb 对系统时区多个等效名称的处理(Tom Lane,Andrew Gierth)

如果 /etc/localtime 符号链接存在,则让 initdb 检查它,以便在系统时区的多个等效名称之间作出选择。这使 initdb 在存在多个相同时区时,更有可能选择用户预期的时区名。如果 /etc/localtime 不是指向时区数据文件的符号链接,或者时区是由 TZ 环境变量确定的,则行为不变。

另外,如果 TZ 和 /etc/localtime 都未提供线索,则优先选择 UTC,而非该时区的其他拼写。这修复了 tzdata 2019a 将 UCT 和 UTC 时区名设为等效后引入的不便:initdb 之前会优先选择几乎没有人想要的 UCT。

关联记录(4)

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

BUG 修复修复 pg_dump 和 pg_dumpall 为数据库和表空间输出的 GRANT 命令的顺序

变更

修复 pg_dump 和 pg_dumpall 为数据库和表空间输出的 GRANT 命令的顺序(Nathan Bossart,Michael Paquier)

如果执行过级联授权,恢复可能因 GRANT 命令的顺序未遵循相互依赖关系而失败。

关联记录(2)

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

其他改进让 pg_dump 先使用 CREATE TABLE,再使用 ATTACH PARTITION 重建表分区,而非在创建命令中包含 PARTITION OF

变更

让 pg_dump 先使用 CREATE TABLE,再使用 ATTACH PARTITION 重建表分区,而非在创建命令中包含 PARTITION OF(Álvaro Herrera,David Rowley)

这避免了分区列顺序可能被更改以匹配父表而产生的问题。此外,即使未恢复父表,现在也可将分区从转储中恢复为独立表;ATTACH 会失败,但可以忽略该错误。

关联记录(1)

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

BUG 修复修复 reindexdb 中误导性的错误报告

变更

修复 reindexdb 中误导性的错误报告(Julien Rouhaud)

关联记录(4)

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

BUG 修复确保 vacuumdb 在使用并行作业期间发生错误时返回正确状态

变更

确保 vacuumdb 在使用并行作业期间发生错误时返回正确状态(Julien Rouhaud)

关联记录(3)

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

BUG 修复修复 contrib/auto_explain,使其不会在并行查询中引发问题

变更

修复 contrib/auto_explain,使其不会在并行查询中引发问题(Tom Lane)

以前,即使 auto_explain 没有记录父查询,并行工作进程也可能尝试记录自己的查询。这有时能够工作,但令人困惑,而且在某些情况下会导致 “could not find key N in shm TOC” 等失败。

此外,修复了一个相差一的错误,该错误使得即使采样率设置为 1.0,也不一定记录每条查询。

关联记录(2)

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

其他改进在 contrib/postgres_fdw 中,考虑本地 BEFORE ROW UPDATE 触发器可能进行的数据修改

变更

在 contrib/postgres_fdw 中,考虑本地 BEFORE ROW UPDATE 触发器可能进行的数据修改(Shohei Mochizuki)

如果触发器修改了 UPDATE 原本未更改的列,新值就不会传送到远程服务器。

关联记录(4)

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

其他改进在 Windows 上,避免数据库编码设置为 SQL_ASCII 时尝试记录非 ASCII 字符串而发生失败

变更

在 Windows 上,避免数据库编码设置为 SQL_ASCII 时尝试记录非 ASCII 字符串而发生失败(Noah Misch)

代码原本假定此类字符串必须采用 UTF-8 编码,如果它们看起来不是有效编码就会抛出错误。现在直接将未经转换的字节传送到日志。

关联记录(4)

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

其他改进使 PL/pgSQL 的头文件可安全用于 C++

变更

使 PL/pgSQL 的头文件可安全用于 C++(George Tarasov)

关联记录(4)

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

这份对比如何生成?

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

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

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

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

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