↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

文档版本比较

POSTGRESQL · VERSION COMPARE

PostgreSQL 10.9 发布变化

此版本的完整功能、修复与兼容性说明,以及其他版本的关联记录。

此版本的完整变化
此版本的完整变化

包括起始版本之后至目标版本的变化。大版本号表示该分支的首个版本。

完整发布变化

10.9

2019-06-20

导出 JSON ↓
22项变化功能、修复、改进
1个版本按版本分组
1CVE独立漏洞编号

10.9stable支持截止 2022-11-10

安全变化
CVE / 问题严重程度修复版本所选版本状态
CVE-2019-10164

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

10.9已记录修复

PostgreSQL 10.9

迁移与兼容性

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

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

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

变更

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

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

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

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

关联记录 (1)
问题修复修复表具有部分排除约束时 ALTER TABLE ... ALTER COLUMN TYPE 发生的失败

变更

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

关联记录 (4)
问题修复修复为域约束添加注释时 COMMENT 命令发生的失败

变更

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

关联记录 (3)
改进防止 hash 聚合的 hash 键列表中存在重复列时可能发生的内存破坏

变更

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

关联记录 (1)
问题修复修复归并追加计划的错误生成

变更

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

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

关联记录 (2)
问题修复修复带有重复连接名称的查询的不正确输出

变更

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

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

关联记录 (4)
问题修复修复 json_to_record() 和 json_populate_record() 中将 JSON 字符串字面量转换为 JSON 类型输出列的处理

变更

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

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

关联记录 (1)
问题修复修复对正则表达式中 {1,1} 量词的不正确优化

变更

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

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

关联记录 (4)
改进避免初始化新进程的 pg_stat_activity 数据时可能发生的失败

变更

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

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

关联记录 (3)
问题修复修复检查预先存在的共享内存段是否仍被冲突的 postmaster 使用时的竞争条件

变更

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

关联记录 (4)
问题修复修复 WAL 接收进程信号处理函数中的不安全代码

变更

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

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

关联记录 (1)
改进避免在未连接到特定数据库的进程中,为检查参数而尝试访问数据库

变更

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

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

关联记录 (4)
问题修复避免使用 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)
问题修复修复 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)
问题修复修复 reindexdb 中误导性的错误报告

变更

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

关联记录 (4)
问题修复确保 vacuumdb 在使用并行作业期间发生错误时返回正确状态

变更

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

关联记录 (3)
问题修复修复 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 发布说明。经核实的回补重复项会谨慎合并,保留每条原始说明;相关提交可能涉及独立变化,仍作为不同记录保留。

发布快照: 2026-09-26 · 安全快照: 2026-09-26

内容来自 PostgreSQL 发布说明。交互方式参考 pgversions.com 与 pgversionreport.