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

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

文档版本比较

POSTGRESQL · VERSION COMPARE

PostgreSQL 10.12 发布变化

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

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

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

完整发布变化

10.12

2020-02-13

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

10.12stable支持截止 2022-11-10

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

为 ALTER ... DEPENDS ON EXTENSION 补上缺失的权限检查

10.12已记录修复

PostgreSQL 10.12

迁移与兼容性

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

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

安全为 ALTER ... DEPENDS ON EXTENSION 补上缺失的权限检查

变更

为 ALTER ... DEPENDS ON EXTENSION 补上缺失的权限检查(Álvaro Herrera)

将对象标记为依赖某个扩展时,没有进行任何权限检查。这一疏漏使任何用户都可以将例程、触发器、物化视图或索引标记为可由任何有权删除该扩展的用户删除。现在要求调用用户拥有指定对象(因而有权删除它)。(CVE-2020-1720)

关联记录 (3)
问题修复修复逻辑复制订阅者代码,使其在适当情况下执行逐列 UPDATE 触发器

变更

修复逻辑复制订阅者代码,使其在适当情况下执行逐列 UPDATE 触发器(Peter Eisentraut)

关联记录 (2)
改进避免大事务必须溢写到许多独立临时文件时逻辑解码发生失败

变更

避免大事务必须溢写到许多独立临时文件时逻辑解码发生失败(Amit Khandekar)

关联记录 (5)
问题修复修复逻辑复制订阅者处理行更新时可能发生的崩溃或数据损坏

变更

修复逻辑复制订阅者处理行更新时可能发生的崩溃或数据损坏(Tom Lane,Tomas Vondra)

只有当订阅者的表包含未从发布者复制、且数据类型按引用传递的列时,此缺陷才会导致可见问题。

关联记录 (2)
问题修复修复对已订阅关系进行 DDL 变更后逻辑复制订阅者的崩溃

变更

修复对已订阅关系进行 DDL 变更后逻辑复制订阅者的崩溃(Jehan-Guillaume de Rorthais,Vignesh C)

关联记录 (2)
问题修复修复数据库崩溃并重启后逻辑复制发布者的失败

变更

修复数据库崩溃并重启后逻辑复制发布者的失败(Vignesh C)

关联记录 (5)
改进提高使用 REPLICA IDENTITY FULL 的逻辑复制效率

变更

提高使用 REPLICA IDENTITY FULL 的逻辑复制效率(Konstantin Knizhnik)

更新或删除操作中查找现有元组时,返回第一个匹配元组,而非最后一个。

关联记录 (2)
改进防止过早关闭位于 Limit 节点下方的 Gather 或 GatherMerge 计划节点

变更

防止过早关闭位于 Limit 节点下方的 Gather 或 GatherMerge 计划节点(Amit Kapila)

这可以避免此类计划节点需要被扫描多次时发生失败,例如它位于嵌套循环内侧时。

关联记录 (3)
问题修复避免没有空闲动态共享内存槽时发生内存泄漏

变更

避免没有空闲动态共享内存槽时发生内存泄漏(Thomas Munro)

关联记录 (5)
改进在临时表上创建、删除或重建索引时,忽略 CONCURRENTLY 选项

变更

在临时表上创建、删除或重建索引时,忽略 CONCURRENTLY 选项(Michael Paquier,Heikki Linnakangas,Andres Freund)

这可以避免临时表具有 ON COMMIT 动作时发生奇怪的失败。对临时表使用 CONCURRENTLY 本来就没有益处,因为其他会话无法访问该表,额外处理没有意义。

关联记录 (5)
问题修复修复重置标记为 ON COMMIT DELETE ROWS 的临时表上的表达式索引时可能发生的失败

变更

修复重置标记为 ON COMMIT DELETE ROWS 的临时表上的表达式索引时可能发生的失败(Tom Lane)

关联记录 (5)
问题修复修复对 box、range 和 inet 数据类型执行 BRIN 索引操作时可能发生的崩溃

变更

修复对 box、range 和 inet 数据类型执行 BRIN 索引操作时可能发生的崩溃(Heikki Linnakangas)

关联记录 (4)
问题修复修复 GIN 索引中对已删除页面的处理

变更

修复 GIN 索引中对已删除页面的处理(Alexander Korotkov)

避免可能发生的死锁、对已删除页面状态的不正确更新,以及无法遍历最近删除页面的问题。

关联记录 (5)
问题修复修复多行 VALUES 列表中包含 SubPlan(子 SELECT)时可能发生的崩溃

变更

修复多行 VALUES 列表中包含 SubPlan(子 SELECT)时可能发生的崩溃(Tom Lane)

关联记录 (5)
问题修复修复 FileClose() 失败后发生的崩溃

变更

修复 FileClose() 失败后发生的崩溃(Noah Misch)

只有启用 data_sync_retry 时才能观察到此问题,否则 FileClose() 失败会被报告为 PANIC。

关联记录 (2)
问题修复修复使用按引用传递的聚合转换状态时发生的罕见崩溃

变更

修复使用按引用传递的聚合转换状态时发生的罕见崩溃(Andres Freund,Teodor Sigaev)

关联记录 (5)
改进改进 to_date() 和 to_timestamp() 中的错误报告

变更

改进 to_date() 和 to_timestamp() 中的错误报告(Tom Lane,Álvaro Herrera)

报告输入字符串中不正确的月份名或星期名时,可能在多字节字符中间截断输入,导致错误消息的编码不正确,并可能引发后续失败。现在改为在下一个空白处截断。

关联记录 (5)
问题修复修复对公元前日期计算 EXTRACT(ISOYEAR FROM timestamp) 时结果相差一的问题

变更

修复对公元前日期计算 EXTRACT(ISOYEAR FROM timestamp) 时结果相差一的问题(Tom Lane)

关联记录 (5)
问题修复避免系统目录中存在自引用视图时 information_schema 视图发生栈溢出

变更

避免系统目录中存在自引用视图时 information_schema 视图发生栈溢出(Tom Lane)

自引用视图无法正常工作,它总会导致无限递归。尝试执行视图时,我们已能正确处理这种情况,但在查询它是否可自动更新时却未能正确处理。

关联记录 (5)
改进确保 WAL 发送进程进程在 pg_stat_activity 中的事务开始时间始终显示为 NULL

变更

确保 WAL 发送进程进程在 pg_stat_activity 中的事务开始时间始终显示为 NULL(Álvaro Herrera)

以前,xact_start 列有时会显示进程启动时间。

关联记录 (2)
性能提高内侧关系非常大时的哈希连接性能

变更

提高内侧关系非常大时的哈希连接性能(Thomas Munro)

关联记录 (5)
问题修复修复为范围操作符 <@ 和 @> 计算选择率时在边界情况下发生的崩溃和估算错误

变更

修复为范围操作符 <@ 和 @> 计算选择率时在边界情况下发生的崩溃和估算错误(Michael Paquier,Andrey Borodin,Tom Lane)

关联记录 (5)
改进应用最常见值扩展统计信息时忽略系统列

变更

应用最常见值扩展统计信息时忽略系统列(Tomas Vondra)

这可避免受影响查询发生 “negative bitmapset member not allowed” 规划器错误。

关联记录 (2)
问题修复修复 BRIN 索引逻辑,使其支持假想 BRIN 索引

变更

修复 BRIN 索引逻辑,使其支持假想 BRIN 索引(Julien Rouhaud,Heikki Linnakangas)

以前,如果“索引建议器”扩展尝试让规划器生成包含假想 BRIN 索引的计划,就会失败,因为 BRIN 代价估算代码始终尝试实际访问索引的元页面。现在会检查索引是否只是假想索引;如果是,则使用索引参数的默认假设。

关联记录 (2)
改进改进对带条件 INSTEAD 规则的视图尝试使用自动更新时的错误报告

变更

改进对带条件 INSTEAD 规则的视图尝试使用自动更新时的错误报告(Dean Rasheed)

这种用法从未得到支持,但以前只在执行时才抛出错误,因此它可能被规划器错误掩盖。

关联记录 (5)
改进防止复合类型通过范围类型间接包含自身

变更

防止复合类型通过范围类型间接包含自身(Tom Lane,Julien Rouhaud)

关联记录 (5)
改进禁止返回 record 等伪类型的分区键表达式

变更

禁止返回 record 等伪类型的分区键表达式(Tom Lane)

关联记录 (2)
问题修复修复索引表达式使用禁止的类型时的错误报告

变更

修复索引表达式使用禁止的类型时的错误报告(Amit Langote)

关联记录 (5)
问题修复修复仅包含 VALUES 列表的视图的转储,使其能够处理视图输出列被重命名的情况

变更

修复仅包含 VALUES 列表的视图的转储,使其能够处理视图输出列被重命名的情况(Tom Lane)

关联记录 (5)
改进确保计算视图或规则的依赖关系时,将 XMLTABLE 结构中使用的数据类型和排序规则考虑在内

变更

确保计算视图或规则的依赖关系时,将 XMLTABLE 结构中使用的数据类型和排序规则考虑在内(Tom Lane)

以前,如果某个类型未在视图中的其他地方被引用,删除该类型就可能破坏使用 XMLTABLE 的视图。此修复不会纠正现有视图已记录的依赖关系,仅对新建视图生效。

关联记录 (2)
改进防止 RADIUS 认证参数被意外转换为小写或截断

变更

防止 RADIUS 认证参数被意外转换为小写或截断(Marcos David)

pg_hba.conf 解析器错误地将这些字段当作 SQL 标识符,而它们通常并不是。

关联记录 (2)
改进在发送 ReadyForQuery 之前向客户端传送收到的 NOTIFY 消息,而非在之后发送

变更

在发送 ReadyForQuery 之前向客户端传送收到的 NOTIFY 消息,而非在之后发送(Tom Lane)

此更改确保,对于 libpq 以及行为类似的其他客户端库,当客户端认为事务已完成时,事务期间收到的所有通知都已可用。这在实际应用中可能没有影响(无论如何,应用都需要处理异步通知),但更便于编写行为可重现的测试用例。

关联记录 (3)
改进即使未编译 GSSAPI 代码,也允许 libpq 解析所有与 GSS 有关的连接参数

变更

即使未编译 GSSAPI 代码,也允许 libpq 解析所有与 GSS 有关的连接参数(Tom Lane)

这使其行为与我们的 SSL 支持类似:我们早已认为始终接受所有相关参数是可取的,即使某个构建缺少相应特性,导致部分参数被忽略或受到限制。

关联记录 (5)
问题修复修复 ecpg 的 PGTYPEStimestamp_fmt_asc() 函数对格式代码 %b 和 %B 的不正确处理

变更

修复 ecpg 的 PGTYPEStimestamp_fmt_asc() 函数对格式代码 %b 和 %B 的不正确处理(Tomas Vondra)

由于索引偏差一的错误,这些代码会输出错误的月份名,或可能导致崩溃。

关联记录 (5)
问题修复修复并行 pg_dump/pg_restore,使其更妥善地处理无法创建工作进程的情况

变更

修复并行 pg_dump/pg_restore,使其更妥善地处理无法创建工作进程的情况(Tom Lane)

关联记录 (5)
问题修复防止尝试通过信号终止并行 pg_dump/pg_restore 运行时可能发生的崩溃或卡死

变更

防止尝试通过信号终止并行 pg_dump/pg_restore 运行时可能发生的崩溃或卡死(Tom Lane)

关联记录 (5)
改进在 pg_upgrade 搜索表中不可升级的数据类型时,检查数组和范围的内部类型

变更

在 pg_upgrade 搜索表中不可升级的数据类型时,检查数组和范围的内部类型(Tom Lane)

关联记录 (5)
改进对 createuser 的 --connection-limit 选项进行更全面的语法检查

变更

对 createuser 的 --connection-limit 选项进行更全面的语法检查(Álvaro Herrera)

关联记录 (5)
问题修复避免 postgres_fdw 尝试向远程服务器发送 UPDATE remote_tab SET (x,y) = (SELECT ...) 之类命令时发生崩溃

变更

避免 postgres_fdw 尝试向远程服务器发送 UPDATE remote_tab SET (x,y) = (SELECT ...) 之类命令时发生崩溃(Tom Lane)

关联记录 (3)
改进在 contrib/dict_int 中,拒绝小于一的 maxlen 设置

变更

在 contrib/dict_int 中,拒绝小于一的 maxlen 设置(Tomas Vondra)

这可防止该参数设置不合理时可能发生的崩溃。

关联记录 (5)
改进在 contrib/tablefunc 的 crosstab() 函数中禁止 NULL 类别值

变更

在 contrib/tablefunc 的 crosstab() 函数中禁止 NULL 类别值(Joe Conway)

这种情况从未产生有用的结果,而且在某些平台上会导致崩溃。

关联记录 (5)
改进将某些超时和统计跟踪 GUC 变量标记为 PGDLLIMPORT,以允许扩展在 Windows 上访问它们

变更

将某些超时和统计跟踪 GUC 变量标记为 PGDLLIMPORT,以允许扩展在 Windows 上访问它们(Pascal Legrand)

这适用于 idle_in_transaction_session_timeout、lock_timeout、statement_timeout、track_activities、track_counts 和 track_functions。

关联记录 (5)
问题修复避免 “slab” 内存上下文健全性检查中的内存泄漏

变更

避免 “slab” 内存上下文健全性检查中的内存泄漏(Tomas Vondra)

这不会影响生产构建,因为它们通常不会启用内存上下文检查;但在调试构建中,这种泄漏可能相当严重。

关联记录 (2)
问题修复修复 LWLock 统计机制报告重复统计条目的问题

变更

修复 LWLock 统计机制报告重复统计条目的问题(Fujii Masao)

由于 hash 表键创建有误,LWLock 统计代码(默认不编译,需要使用 -DLWLOCK_STATS 编译)可能为同一个 LWLock 和后端进程报告多个条目。

关联记录 (2)
问题修复修复导致 Windows 上进程间信号延迟传递的竞争条件

变更

修复导致 Windows 上进程间信号延迟传递的竞争条件(Amit Kapila)

这使 NOTIFY 出现了可见的时序异常,也可能导致其他错误行为。

关联记录 (5)
改进在 Windows 上,发生 ERROR_ACCESS_DENIED 文件访问失败后重试几次

变更

在 Windows 上,发生 ERROR_ACCESS_DENIED 文件访问失败后重试几次(Alexander Lakhin,Tom Lane)

这有助于处理目标文件已被标记为删除、但尚未实际消失,导致打开文件失败的情况。例如,pg_ctl 在探测 postmaster 是否已经关闭时,经常因此类错误而失败。

关联记录 (5)
如何生成比较结果?

比较依据起始版本之后至目标版本的 PostgreSQL 发布说明。经核实的回补重复项会谨慎合并,保留每条原始说明;相关提交可能涉及独立变化,仍作为不同记录保留。

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

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