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

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

文档版本对比

POSTGRESQL · VERSION COMPARE

PostgreSQL 11.5 的版本变更

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

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

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

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

本次发布的全部变更

11.5

2019-08-08

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

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

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

使用函数式类型转换语法转换为临时类型时,要求使用模式限定

7.511.5
CVE-2019-10209

修复需要跨类型比较的 hash 子计划的执行

3.111.5
CVE-2007-2138

使用函数式类型转换语法转换为临时类型时,要求使用模式限定

—

PostgreSQL 11.5

升级与兼容性说明

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

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

安全相关使用函数式类型转换语法转换为临时类型时,要求使用模式限定

变更

使用函数式类型转换语法转换为临时类型时,要求使用模式限定(Noah Misch)

我们早已要求调用临时函数时显式指定临时模式,即 pg_temp.func_name(args)。现在也要求在使用函数记法转换为临时类型时这样做,例如 pg_temp.type_name(arg)。否则,就可能利用临时对象截获函数调用,从而以与我们在 CVE-2007-2138 中阻止的方式基本相同的方式提升权限。(CVE-2019-10208)

关联记录(4)

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

安全相关修复需要跨类型比较的 hash 子计划的执行

变更

修复需要跨类型比较的 hash 子计划的执行(Tom Lane,Andreas Seltenreich)

hash 子计划使用外层查询原有的比较操作符来比较 hash 表中的项。如果该操作符是跨类型的,这样做就是错误的,因为 hash 表中的所有项都会具有子查询的输出类型。对于核心 PostgreSQL 中可进行 hash 运算的跨类型操作符,这一错误在 64 位机器上似乎几乎没有危害,但在 32 位机器上可能导致崩溃,也可能造成未经授权的服务器内存泄露。扩展可能提供风险更大的、可进行 hash 运算的跨类型操作符。(CVE-2019-10209)

BUG 修复修复在一条命令中更改多列类型时 ALTER TABLE ... ALTER COLUMN TYPE 发生的失败

变更

修复在一条命令中更改多列类型时 ALTER TABLE ... ALTER COLUMN TYPE 发生的失败(Tom Lane)

这修复了最近的小版本引入的回归问题:使用被修改列的索引未得到正确处理,导致 ALTER TABLE 期间出现异常失败。

关联记录(4)

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

其他改进如果子分区中存在待处理的触发器事件,则防止删除分区表的触发器

变更

如果子分区中存在待处理的触发器事件,则防止删除分区表的触发器(Álvaro Herrera)

这尤其适用于外键约束,因为外键约束是通过触发器实现的。

其他改进将触发器定义从分区表复制到其分区时,包含用户指定的触发器参数

变更

将触发器定义从分区表复制到其分区时,包含用户指定的触发器参数(Patrick McHardy)

其他改进建立依赖关系以防止删除分区键列

变更

建立依赖关系以防止删除分区键列(Tom Lane)

ALTER TABLE ... DROP COLUMN 会拒绝删除分区键列。但间接删除(例如删除键列的数据类型所引发的级联删除)没有这样的检查,因此可能删除键列。这会使分区表严重损坏,既无法访问也无法删除。

此修复添加了 pg_depend 条目,确保如果级联删除迫使键列被移除,将删除整个分区表,而非仅删除键列。不过,这些条目仅在创建分区表时生成,因此此修复无法消除现有分区表的风险。此问题只会发生在分区键列使用非内置数据类型的情况下,所以对大多数用户似乎没有威胁。

关联记录(1)

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

其他改进确保分区表与其默认分区之间的列号得到正确映射

变更

确保分区表与其默认分区之间的列号得到正确映射(Amit Langote)

如果映射不是严格的一一对应,例如一个表中有已删除列而另一个表中没有,某些操作会出现错误行为。

其他改进在分区表上创建索引时,忽略作为外部表的分区

变更

在分区表上创建索引时,忽略作为外部表的分区(Álvaro Herrera)

以前,遇到外部表分区时会抛出错误,但这没有帮助,也不能防止任何实际问题。

其他改进在更多情况下剪枝分区表的默认分区(即避免无用地扫描它)

变更

在更多情况下剪枝分区表的默认分区(即避免无用地扫描它)(Yuzuko Hosoya)

BUG 修复修复存在多个 boolean 类型分区键列时可能无法剪枝分区的问题

变更

修复存在多个 boolean 类型分区键列时可能无法剪枝分区的问题(David Rowley)

其他改进当涉及的表是继承父表时,不要通过优化移除 GROUP BY 列

变更

当涉及的表是继承父表时,不要通过优化移除 GROUP BY 列(David Rowley)

通常,如果表的主键列包含在 GROUP BY 中,就可以安全地移除其他分组列,因为主键列足以使各组唯一。但如果查询还读取继承子表,这条规则就不成立:父表的唯一性并不延伸到子表。

关联记录(2)

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

其他改进避免对半连接查询错误地使用并行哈希连接

变更

避免对半连接查询错误地使用并行哈希连接(Thomas Munro)

此错误导致某些 EXISTS 查询返回重复的结果行。

其他改进避免在某些带有 GROUPING SETS 的查询中使用不必要的排序步骤

变更

避免在某些带有 GROUPING SETS 的查询中使用不必要的排序步骤(Andrew Gierth,Richard Guo)

关联记录(3)

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

BUG 修复修复规划器的索引端点探测可能发生的失败

变更

修复规划器的索引端点探测可能发生的失败(Tom Lane)

使用最近创建的索引确定列的最小值或最大值时,规划器可能选中一个最近死亡、实际并不包含端点值的元组。最坏情况下,该元组可能包含空值,导致可见的 “found unexpected null value in index” 错误;更常见的情况是最终使用错误的值,降低规划估算的质量。

BUG 修复修复 EvalPlanQual 复检期间无法访问触发器过渡表的问题

变更

修复 EvalPlanQual 复检期间无法访问触发器过渡表的问题(Alex Aktsipetrov)

在存在并发更新时,依赖过渡表的触发器有时会失败。

关联记录(1)

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

BUG 修复修复重建外键约束时对多列外键的不正确处理

变更

修复重建外键约束时对多列外键的不正确处理(Tom Lane)

如果外键的各列类型不完全相同,ALTER TABLE 可能错误判断是否需要重新验证外键。这种错误似乎总会偏向保守方向,即进行不必要的重新验证。

关联记录(4)

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

其他改进不再为继承树构建扩展统计信息

变更

不再为继承树构建扩展统计信息(Tomas Vondra)

这避免了 ANALYZE 期间发生 “tuple already updated by self” 错误。

关联记录(1)

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

BUG 修复避免升级元组锁时出现虚假的死锁错误

变更

避免升级元组锁时出现虚假的死锁错误(Oleksii Kliukin)

当两个或更多事务正在等待事务 T1 释放元组级锁,而 T1 又将锁升级到更高的级别时,T1 结束时可能会报告这些等待事务之间存在虚假的死锁。

关联记录(2)

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

BUG 修复修复无法解除涉及多个并行工作进程的死锁的问题

变更

修复无法解除涉及多个并行工作进程的死锁的问题(Rui Hai Jiang)

尚不清楚非人为构造的查询能否触发此缺陷,但如果发生,参与本可解除的死锁的查询会一直阻塞,直到被取消。

关联记录(2)

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

其他改进防止对端点为 infinity 的日期范围进行不正确的规范化

变更

防止对端点为 infinity 的日期范围进行不正确的规范化(Laurenz Albe)

如果端点为无穷大,通过递增或递减端点值将开区间转换为闭区间(或反过来)是不正确的,因此在这种情况下保持范围原样。

关联记录(4)

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

BUG 修复修复将非常大的 money 值转换为 numeric 时小数位丢失的问题

变更

修复将非常大的 money 值转换为 numeric 时小数位丢失的问题(Tom Lane)

关联记录(4)

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

BUG 修复修复 BTREE_META_CLEANUP WAL 记录的输出

变更

修复 BTREE_META_CLEANUP WAL 记录的输出(Michael Paquier)

其他改进防止对版本 2 的 B-树元页面处理不当导致断言失败

变更

防止对版本 2 的 B-树元页面处理不当导致断言失败(Peter Geoghegan)

BUG 修复修复 MIPS CPU 的自旋锁汇编代码,使其适用于 MIPS r6

变更

修复 MIPS CPU 的自旋锁汇编代码,使其适用于 MIPS r6(YunQiang Su)

关联记录(4)

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

其他改进确保从 PL/pgSQL 函数返回的记录值或行值被标记为函数声明的复合类型

变更

确保从 PL/pgSQL 函数返回的记录值或行值被标记为函数声明的复合类型(Tom Lane)

这可避免将结果直接存入表时出现问题。

其他改进使 libpq 忽略连接服务文件中的回车符(\r)

变更

使 libpq 忽略连接服务文件中的回车符(\r)(Tom Lane,Michael Paquier)

在某些边界情况下,包含 Windows 风格换行符的服务文件可能被错误解析,导致连接失败。

关联记录(4)

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

其他改进在 psql 中,避免在 SET variable = 之后提供不正确的 Tab 补全选项

变更

在 psql 中,避免在 SET variable = 之后提供不正确的 Tab 补全选项(Tom Lane)

关联记录(2)

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

BUG 修复修复 psql 的 \d 命令中少量的内存泄漏

变更

修复 psql 的 \d 命令中少量的内存泄漏(Tom Lane)

关联记录(1)

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

BUG 修复修复 pg_dump,以确保按正确顺序转储自定义操作符类

变更

修复 pg_dump,以确保按正确顺序转储自定义操作符类(Tom Lane)

如果用户定义的操作符类是用户定义范围类型的子类型操作符类,相关对象会按错误顺序转储,产生无法恢复的转储。(底层对操作符类依赖关系的处理缺陷也可能在其他情况下出现,但这是唯一已知的情况。)

关联记录(4)

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

BUG 修复修复使用 -R 选项时 pgbench 可能卡死的问题

变更

修复使用 -R 选项时 pgbench 可能卡死的问题(Fabien Coelho)

关联记录(1)

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

其他改进提高 contrib/amcheck 索引验证的可靠性

变更

提高 contrib/amcheck 索引验证的可靠性(Peter Geoghegan)

BUG 修复修复 contrib/jsonb_plperl 中对 Perl undef 值的处理

变更

修复 contrib/jsonb_plperl 中对 Perl undef 值的处理(Ivan Panchenko)

BUG 修复修复 contrib/passwordcheck,使其能与 check_password_hook 的其他使用者共存

变更

修复 contrib/passwordcheck,使其能与 check_password_hook 的其他使用者共存(Michael Paquier)

关联记录(4)

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

BUG 修复修复 contrib/sepgsql 测试,使其适用于近期的 SELinux 版本

变更

修复 contrib/sepgsql 测试,使其适用于近期的 SELinux 版本(Mike Palmiotto)

关联记录(4)

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

其他改进提高 src/test/kerberos 和 src/test/ldap 回归测试的稳定性

变更

提高 src/test/kerberos 和 src/test/ldap 回归测试的稳定性(Thomas Munro,Tom Lane)

其他改进提高 src/test/recovery 回归测试的稳定性

变更

提高 src/test/recovery 回归测试的稳定性(Michael Paquier)

关联记录(2)

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

其他改进减少 pg_upgrade 测试脚本的 stderr 输出

变更

减少 pg_upgrade 测试脚本的 stderr 输出(Tom Lane)

关联记录(4)

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

BUG 修复修复 pgbench 回归测试,使其适用于 Windows

变更

修复 pgbench 回归测试,使其适用于 Windows(Fabien Coelho)

BUG 修复修复构建目录位于非根 msys 挂载点时 TAP 测试在 msys Perl 下的运行

变更

修复构建目录位于非根 msys 挂载点时 TAP 测试在 msys Perl 下的运行(Noah Misch)

关联记录(2)

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

其他改进支持使用 Microsoft Visual Studio 2019 构建 Postgres

变更

支持使用 Microsoft Visual Studio 2019 构建 Postgres(Haribabu Kommi)

关联记录(5)

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

其他改进在 Visual Studio 构建中,如果设置了 WindowsSDKVersion 环境变量,则遵循其设置

变更

在 Visual Studio 构建中,如果设置了 WindowsSDKVersion 环境变量,则遵循其设置(Peifeng Qiu)

这修复了某些配置下的构建失败。

关联记录(4)

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

其他改进在 Visual Studio 构建中支持 OpenSSL 1.1.0 及更新版本

变更

在 Visual Studio 构建中支持 OpenSSL 1.1.0 及更新版本(Juan José Santamaría Flecha,Michael Paquier)

关联记录(4)

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

其他改进在顶层调用非 GNU make 时,允许将 make 选项向下传递给 gmake

变更

在顶层调用非 GNU make 时,允许将 make 选项向下传递给 gmake(Thomas Munro)

关联记录(3)

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

其他改进在 initdb 期间,避免选择 localtime 或 posixrules 作为 TimeZone

变更

在 initdb 期间,避免选择 localtime 或 posixrules 作为 TimeZone(Tom Lane)

在某些情况下,initdb 会选择这两个人为设置的时区名之一,而非“真实”的时区名。现在,只要有其他名称与 C 库的时区行为匹配,就优先选择其他名称。

关联记录(4)

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

其他改进调整 pg_timezone_names 视图,使其仅在 Factory 时区具有简短缩写时才显示它

变更

调整 pg_timezone_names 视图,使其仅在 Factory 时区具有简短缩写时才显示它(Tom Lane)

历史上,IANA 为这个人为设置的时区指定了类似 Local time zone must be set--see zic manual page 的“缩写”。现代版本的 tzdb 数据库改为显示 -00,但某些平台会修改数据,显示某个历史短语。现在,仅当此时区使用现代缩写时才显示它。

关联记录(4)

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

其他改进将我们使用的时区库副本同步到 IANA tzcode 2019b 版

变更

将我们使用的时区库副本同步到 IANA tzcode 2019b 版(Tom Lane)

这添加了对 zic 的新选项 -b slim 的支持,可减小已安装时区文件的大小。我们目前未使用此选项,但未来可能会启用。

关联记录(4)

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

其他改进将时区数据文件更新到 tzdata 2019b 版,以反映巴西的夏令时法规变更,并修正香港、意大利和巴勒斯坦的历史数据。

变更

将时区数据文件更新到 tzdata 2019b 版,以反映巴西的夏令时法规变更,并修正香港、意大利和巴勒斯坦的历史数据。

关联记录(4)

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

这份对比如何生成?

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

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

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

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

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