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

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

文档版本比较

POSTGRESQL · VERSION COMPARE

PostgreSQL 11.12 发布变化

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

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

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

完整发布变化

11.12

2021-05-13

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

11.12stable支持截止 2023-11-09

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

修复涉及连接的跨分区更新中 UPDATE ... RETURNING 输出可能计算不正确的问题

11.12已记录修复
CVE-2021-32028

修复 INSERT ... ON CONFLICT ... UPDATE 目标列表中对 “junk” 列的错误处理

11.12已记录修复
CVE-2021-32027

防止数组下标计算中的整数溢出

11.12已记录修复

PostgreSQL 11.12

迁移与兼容性

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

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

安全防止数组下标计算中的整数溢出

变更

防止数组下标计算中的整数溢出(Tom Lane)

以前,当数组下界加上长度发生整数溢出时,数组代码不会报错。这会使数组中后面的项无法访问(因为它们的下标无法表示为整数),更重要的是还会干扰后续赋值操作。这可能造成内存覆盖,进而导致崩溃或非预期的数据修改。(CVE-2021-32027)

关联记录 (4)
安全修复 INSERT ... ON CONFLICT ... UPDATE 目标列表中对 “junk” 列的错误处理

变更

修复 INSERT ... ON CONFLICT ... UPDATE 目标列表中对 “junk” 列的错误处理(Tom Lane)

如果 UPDATE 列表包含任何多列子查询(它们除了产生正式结果外,还会产生 junk 列),UPDATE 路径最终会存储包含额外 junk 列值的元组。短期内这基本无害,但如果向表中添加新列,这些值就会变得可访问;如果它们与新增列的数据类型不匹配,就可能导致异常。

此外,在支持跨分区更新的版本中,由此类情况触发的跨分区更新存在相反的问题:junk 列被从目标列表中移除,通常会因多列子查询机制失效而立即崩溃。(CVE-2021-32028)

关联记录 (4)
安全修复涉及连接的跨分区更新中 UPDATE ... RETURNING 输出可能计算不正确的问题

变更

修复涉及连接的跨分区更新中 UPDATE ... RETURNING 输出可能计算不正确的问题(Amit Langote,Etsuro Fujita)

如果对分区表的 UPDATE 使某行被移动到另一个行类型在物理上不同的分区(例如,已删除列的集合不同),为该行计算 RETURNING 结果时可能报错或得到错误的结果。只有当 UPDATE 涉及将其他表连接到目标表时,才会出现此错误。(CVE-2021-32029)

关联记录 (2)
问题修复修复分区表中约束可延迟属性的调整

变更

修复分区表中约束可延迟属性的调整(Álvaro Herrera)

对分区表的外键约束执行 ALTER TABLE ... ALTER CONSTRAINT 时,未能调整叶子分区的约束和触发器上的 DEFERRABLE 或 INITIALLY DEFERRED 标记。这导致此类约束产生非预期的行为。更新到此版本后,可以执行新的 ALTER 命令设置所需属性,从而修复行为异常的分区表。

此项修改还禁止直接对叶子分区的约束执行这样的 ALTER。唯一受支持的情况是整个分区层次结构具有相同的约束属性,因此此类 ALTER 必须在分区根表上执行。

关联记录 (2)
改进禁止将标识列标记为可空

变更

禁止将标识列标记为可空(Vik Fearing)

GENERATED ... AS IDENTITY 隐含 NOT NULL,因此不允许将其与显式的 NULL 指定结合使用。

关联记录 (3)
改进允许 ALTER ROLE/DATABASE ... SET 设置 role、session_authorization 和 temp_buffers 参数

变更

允许 ALTER ROLE/DATABASE ... SET 设置 role、session_authorization 和 temp_buffers 参数(Tom Lane)

以前,过于急切的有效性检查可能拒绝这些命令,即使相关值在之后实际使用时本可以正常工作。这使转储/重载和升级场景中出现了命令顺序方面的隐患。

关联记录 (4)
问题修复修复将 COLLATE 表达式的结果强制转换为不支持排序规则的类型时的缺陷

变更

修复将 COLLATE 表达式的结果强制转换为不支持排序规则的类型时的缺陷(Tom Lane)

这会生成一棵语法解析树,其中 COLLATE 看起来被应用于一个不支持排序规则的值。虽然这通常没有实际影响(因为 COLLATE 在运行时没有作用),但仍有可能构造出在转储/重载期间被拒绝的视图。

关联记录 (4)
改进禁止通过“快速路径”线协议消息调用窗口函数和过程

变更

禁止通过“快速路径”线协议消息调用窗口函数和过程(Tom Lane)

这里只支持普通函数。虽然尝试调用聚合函数已经会失败,但调用窗口函数会导致崩溃,而调用过程只有在过程不进行事务控制时才能正常工作。

关联记录 (4)
改进扩展 pg_identify_object_as_address(),使其支持事件触发器

变更

扩展 pg_identify_object_as_address(),使其支持事件触发器(Joel Jacobson)

关联记录 (4)
问题修复修复 to_char() 对负时间间隔使用罗马数字月份格式代码的处理

变更

修复 to_char() 对负时间间隔使用罗马数字月份格式代码的处理(Julien Rouhaud)

以前,此类情况通常会导致崩溃。

关联记录 (4)
改进检查 pg_import_system_collations() 的参数是否为有效的模式 OID

变更

检查 pg_import_system_collations() 的参数是否为有效的模式 OID(Tom Lane)

关联记录 (3)
问题修复修复解析 BRE 模式正则表达式中的 \{m,n\} 量词时使用未初始化值的问题

变更

修复解析 BRE 模式正则表达式中的 \{m,n\} 量词时使用未初始化值的问题(Tom Lane)

此错误可能使量词表现为非贪婪模式,即表现得像完整正则表达式中的 {m,n}? 量词。

关联记录 (4)
改进使用扩展统计信息估计分组数量时,不要忽略系统列

变更

使用扩展统计信息估计分组数量时,不要忽略系统列(Tomas Vondra)

这会导致 SELECT ... GROUP BY a, b, ctid 等查询得到异常的估计值。

关联记录 (3)
问题修复避免估计具有很长固定前缀的正则表达式的选择率时出现除零错误

变更

避免估计具有很长固定前缀的正则表达式的选择率时出现除零错误(Tom Lane)

这通常会产生 NaN 选择率值,从而导致断言失败或规划器行为异常。

关联记录 (4)
问题修复修复 BRIN 索引位图扫描中访问超出表末尾位置的错误

变更

修复 BRIN 索引位图扫描中访问超出表末尾位置的错误(Tomas Vondra)

如果 BRIN 索引使用的页范围大小不是二的幂,在某些边界情况下,位图扫描可能尝试获取超出表实际末尾的页面,导致 “could not open file” 错误。

关联记录 (4)
改进避免从 WAL 恢复未提交的两阶段事务时发生不正确的时间线变更

变更

避免从 WAL 恢复未提交的两阶段事务时发生不正确的时间线变更(Soumyadeep Chakraborty,Jimmy Yih,Kevin Yeap)

此错误可能使后续 WAL 记录在错误的时间线 ID 下写入,导致之后出现一致性问题,甚至完全无法重启服务器。

关联记录 (3)
改进确保关闭备库的启动进程时释放锁

变更

确保关闭备库的启动进程时释放锁(Fujii Masao)

在备库仍处于恢复状态时将其关闭,可能会留下某些仍被持有的锁。这会导致调试构建中的断言失败;尚不清楚在生产构建中是否可能造成严重后果。

关联记录 (4)
问题修复修复逻辑复制工作进程执行 ALTER SUBSCRIPTION REFRESH 时的崩溃

变更

修复逻辑复制工作进程执行 ALTER SUBSCRIPTION REFRESH 时的崩溃(Peter Smith)

核心代码不会这样做,但副本触发器可能会。

关联记录 (3)
改进确保在较新版本的 FreeBSD 上默认使用 wal_sync_method = fdatasync

变更

确保在较新版本的 FreeBSD 上默认使用 wal_sync_method = fdatasync(Thomas Munro)

FreeBSD 13 支持 open_datasync,通常它会成为默认选择。但尚不清楚这对 Postgres 是否确有改进,因此暂时保留现有默认值。

关联记录 (4)
改进确保分离 DSM 段期间被中断时仍能完成清理

变更

确保分离 DSM 段期间被中断时仍能完成清理(Thomas Munro)

此错误可能导致并行查询后未能及时清理临时文件。

关联记录 (4)
问题修复修复初始化服务器 SSL 参数时的内存泄漏

变更

修复初始化服务器 SSL 参数时的内存泄漏(Michael Paquier)

这通常影响很小,但如果反复向 postmaster 发送 SIGHUP 信号,泄漏就会随时间累积。

关联记录 (2)
问题修复修复服务器中多种较小的内存泄漏

变更

修复服务器中多种较小的内存泄漏(Tom Lane,Andres Freund)

关联记录 (4)
问题修复修复 PL/pgSQL DO 块同时使用复合类型变量和事务控制时的失败

变更

修复 PL/pgSQL DO 块同时使用复合类型变量和事务控制时的失败(Tom Lane)

以前,此类情况会导致关于元组描述符泄漏的错误。

关联记录 (2)
问题修复防止 libpq 收到长度损坏的 ParameterDescription 消息时陷入无限循环

变更

防止 libpq 收到长度损坏的 ParameterDescription 消息时陷入无限循环(Tom Lane)

关联记录 (4)
改进当 initdb 打印如何启动服务器的说明时,使其在 Windows 上显示的 pg_ctl 路径使用反斜杠分隔符

变更

当 initdb 打印如何启动服务器的说明时,使其在 Windows 上显示的 pg_ctl 路径使用反斜杠分隔符(Nitin Jadhav)

关联记录 (3)
问题修复修复 psql,恢复 \connect service=something 以前的行为

变更

修复 psql,恢复 \connect service=something 以前的行为(Tom Lane)

先前的一项缺陷修复导致环境变量(例如 PGPORT)在此情况下覆盖服务文件中的条目。现在恢复以前的行为,使优先级反过来。

关联记录 (4)
问题修复修复 psql 的 \e 及相关命令检测文件修改时的竞争条件

变更

修复 psql 的 \e 及相关命令检测文件修改时的竞争条件(Laurenz Albe)

输入速度非常快的用户可能使代码基于文件时间戳对临时编辑文件是否更改的判断失准。

关联记录 (4)
问题修复修复 pg_restore 中遗漏的文件版本检查

变更

修复 pg_restore 中遗漏的文件版本检查(Tom Lane)

从不支持定位的来源读取自定义格式归档时,pg_restore 忽略了检查归档版本。如果输入的归档版本比它所支持的版本更新,之后就会以混乱的方式失败。

关联记录 (4)
改进为 pg_upgrade 增加对包含不可升级数据类型的用户表的检查

变更

为 pg_upgrade 增加对包含不可升级数据类型的用户表的检查(Tom Lane)

修复对不可升级的数据类型嵌入容器类型(例如数组或范围)中的某些情况的检测。另外,如果用户表包含系统定义的复合类型的列,则不允许升级,因为这些类型的 OID 在不同版本之间并不稳定。

关联记录 (4)
问题修复修复 pg_waldump,使其在生成逐记录统计信息时正确统计 XACT 记录

变更

修复 pg_waldump,使其在生成逐记录统计信息时正确统计 XACT 记录(Kyotaro Horiguchi)

关联记录 (4)
问题修复修复 contrib/amcheck,使其不再因元组标志 HEAP_XMAX_LOCK_ONLY 和 HEAP_KEYS_UPDATED 同时设置而报错

变更

修复 contrib/amcheck,使其不再因元组标志 HEAP_XMAX_LOCK_ONLY 和 HEAP_KEYS_UPDATED 同时设置而报错(Julien Rouhaud)

这是 SELECT FOR UPDATE 之后的一种有效状态。

关联记录 (4)
改进调整 VPATH 构建规则,以支持较新版本的 Oracle Developer Studio 编译器

变更

调整 VPATH 构建规则,以支持较新版本的 Oracle Developer Studio 编译器(Noah Misch)

关联记录 (4)
问题修复修复 Solaris 上针对 Python 3 的 PL/Python 测试

变更

修复 Solaris 上针对 Python 3 的 PL/Python 测试(Noah Misch)

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

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

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

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