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

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

文档版本对比

POSTGRESQL · VERSION COMPARE

PostgreSQL 9.1.4 的版本变更

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

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

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

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

本次发布的全部变更

9.1.4

2012-06-04

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

9.1.4 历史版本维护截止 2016-10-27

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

忽略过程语言调用处理程序的 SECURITY DEFINER 和 SET 属性

—9.1.4
CVE-2012-2143

修复 contrib/pgcrypto 的 DES crypt() 函数中不正确的口令变换

—9.1.4

PostgreSQL 9.1.4

升级与兼容性说明

对于运行 9.1.X 的用户,不需要进行转储/恢复。

不过,如果你使用 citext 数据类型,并且是通过运行 pg_upgrade 从前一个大版本升级的,应执行 CREATE EXTENSION citext FROM unpackaged,以避免 citext 操作中与排序规则相关的失败。如果恢复来自包含 citext 数据类型的 9.1 之前数据库的转储,也需要这样做。如果你在升级到 9.1.4 之前已经运行过 CREATE EXTENSION 命令,则需要按下面第三条变更日志条目的说明手工更新系统目录。

不过,如果你是从早于 9.1.2 的版本升级,请参见第 E.23 节。

安全相关修复 contrib/pgcrypto 的 DES crypt() 函数中不正确的口令变换

变更

修复 contrib/pgcrypto 的 DES crypt() 函数中不正确的口令变换(Solar Designer)

如果口令串包含字节值 0x80,口令的其余部分会被忽略,使口令比看起来弱得多。修复后,字符串的其余部分会被正确纳入 DES 哈希。因此,受此缺陷影响的任何已存储口令值将不再匹配,所以可能需要更新已存储的值。(CVE-2012-2143)

关联记录(1)

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

安全相关忽略过程语言调用处理程序的 SECURITY DEFINER 和 SET 属性

变更

忽略过程语言调用处理程序的 SECURITY DEFINER 和 SET 属性(Tom Lane)

把这类属性应用于调用处理程序可能导致服务器崩溃。(CVE-2012-2655)

关联记录(1)

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

BUG 修复让 contrib/citext 的升级脚本修复 citext 数组以及 citext 之上的域的排序规则

变更

让 contrib/citext 的升级脚本修复 citext 数组以及 citext 之上的域的排序规则(Tom Lane)

9.1.2 提供了对从 9.1 之前安装升级或重载的数据库中 citext 列和索引排序规则的修复,但该修复不完整:它遗漏了对数组以及 citext 之上的域的处理。本版本扩展了该模块的升级脚本以处理这些情况。和以前一样,如果你已经运行过升级脚本,则需要改为手工运行排序规则更新命令。具体做法参见 9.1.2 发行说明。

其他改进允许 timestamp 输入中的数字时区偏移距 UTC 最多 16 小时

变更

允许 timestamp 输入中的数字时区偏移距 UTC 最多 16 小时(Tom Lane)

一些历史时区的偏移超过此前 15 小时的限制。这可能导致转储的数据值在重载期间被拒绝。

关联记录(1)

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

BUG 修复修复时间戳转换,使其在给定时间恰好是当前时区最后一次夏令时转换时间时能正确处理

变更

修复时间戳转换,使其在给定时间恰好是当前时区最后一次夏令时转换时间时能正确处理(Tom Lane)

这一疏忽已存在很长时间,但此前未被注意到,因为大多数使用夏令时的时区被假定有无限的未来夏令时转换序列。

关联记录(1)

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

BUG 修复修复 text 到 name 以及 char 到 name 的转换,使其在多字节编码下正确执行字符串截断

变更

修复 text 到 name 以及 char 到 name 的转换,使其在多字节编码下正确执行字符串截断(Karl Schnaitter)

关联记录(1)

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

BUG 修复修复 to_tsquery() 中的内存复制缺陷

变更

修复 to_tsquery() 中的内存复制缺陷(Heikki Linnakangas)

关联记录(1)

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

BUG 修复确保 txid_current() 在热备中执行时报告正确的纪元(epoch)

变更

确保 txid_current() 在热备中执行时报告正确的纪元(epoch)(Simon Riggs)

关联记录(1)

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

BUG 修复修复规划器对子查询内外层 PlaceHolderVar 的处理

变更

修复规划器对子查询内外层 PlaceHolderVar 的处理(Tom Lane)

该缺陷涉及引用来自外层查询外连接可空侧变量的子 SELECT。在 9.1 中,受此缺陷影响的查询会报 “ERROR: Upper-level PlaceHolderVar found where not expected” 失败。但在 9.0 和 8.4 中,你会静默地得到可能错误的答案,因为传入子查询的值不会在该为空时变为空。

关联记录(1)

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

BUG 修复修复输出列不是简单变量的 UNION ALL 子查询的规划

变更

修复输出列不是简单变量的 UNION ALL 子查询的规划(Tom Lane)

由于对 “MergeAppend child's targetlist doesn't match MergeAppend” 错误的一次误导性修复,这类情况的规划在 9.1 中明显变差。现已撤销该修复并改用其他方法。

BUG 修复修复 pg_attribute 非常大会话启动缓慢的问题

变更

修复 pg_attribute 非常大会话启动缓慢的问题(Tom Lane)

如果 pg_attribute 超过 shared_buffers 的四分之一,会话启动期间有时需要的缓存重建代码就会触发同步扫描逻辑,使其耗时比正常情况多数倍。如果许多新会话同时启动,问题尤为严重。

关联记录(1)

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

其他改进确保顺序扫描以合理的频率检查查询取消

变更

确保顺序扫描以合理的频率检查查询取消(Merlin Moncure)

遇到许多不含存活元组的连续页面的扫描在此期间不会响应中断。

关联记录(1)

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

其他改进确保 PGSemaphoreLock() 的 Windows 实现在返回前清除 ImmediateInterruptOK

变更

确保 PGSemaphoreLock() 的 Windows 实现在返回前清除 ImmediateInterruptOK(Tom Lane)

这一疏忽意味着同一查询稍后收到的查询取消中断可能在不安全的时刻被接受,后果不可预测且不好。

关联记录(1)

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

其他改进在打印视图或规则时安全地显示整行变量

变更

在打印视图或规则时安全地显示整行变量(Abbas Butt、Tom Lane)

涉及有歧义名称(即该名称既可能是查询的表名也可能是列名)的极端情况此前以有歧义的方式打印,存在视图或规则在转储和重载后被不同解释的风险。现通过附加无操作转换来避免歧义情况。

关联记录(1)

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

BUG 修复修复 COPY FROM,使其正确处理对应无效编码的空值标记串

变更

修复 COPY FROM,使其正确处理对应无效编码的空值标记串(Tom Lane)

诸如 E'\\0' 这样的空值标记串本应有效,过去也确实有效,但该情况在 8.4 中被破坏。

关联记录(1)

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

BUG 修复修复对包含 RETURNING 子句的可写 CTE 的 EXPLAIN VERBOSE

变更

修复对包含 RETURNING 子句的可写 CTE 的 EXPLAIN VERBOSE(Tom Lane)

BUG 修复修复 PREPARE TRANSACTION,使其在存在咨询锁时正确工作

变更

修复 PREPARE TRANSACTION,使其在存在咨询锁时正确工作(Tom Lane)

历史上,PREPARE TRANSACTION 只是忽略会话持有的任何会话级咨询锁,但这一情况在 9.1 中被意外破坏。

BUG 修复修复不记录日志的表的截断

变更

修复不记录日志的表的截断(Robert Haas)

其他改进在 search_path 的非交互式赋值期间忽略缺失的模式

变更

在 search_path 的非交互式赋值期间忽略缺失的模式(Tom Lane)

这使 9.1 的行为与较旧的分支重新一致。此前,9.1 会对来自 ALTER DATABASE SET 等处的 search_path 设置中提到的不存在模式抛出错误。

BUG 修复修复扩展脚本中所用临时表或瞬态表的缺陷

变更

修复扩展脚本中所用临时表或瞬态表的缺陷(Tom Lane)

这包括扩展更新脚本中的重写型 ALTER TABLE 等情况,因为它在后台使用了瞬态表。

其他改进确保自动清理工作进程正确执行栈深度检查

变更

确保自动清理工作进程正确执行栈深度检查(Heikki Linnakangas)

此前,由自动 ANALYZE 调用的函数中的无限递归可能导致工作进程崩溃。

关联记录(1)

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

BUG 修复修复日志收集器,使其在高负载下不丢失日志连贯性

变更

修复日志收集器,使其在高负载下不丢失日志连贯性(Andrew Dunstan)

此前,如果收集器过于忙碌,可能无法重新组装大消息。

关联记录(1)

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

BUG 修复修复日志收集器,确保它在收到 SIGHUP 后会重新开始文件轮转

变更

修复日志收集器,确保它在收到 SIGHUP 后会重新开始文件轮转(Tom Lane)

关联记录(1)

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

BUG 修复修复 GiST 索引中的 “too many LWLocks taken” 失败

变更

修复 GiST 索引中的 “too many LWLocks taken” 失败(Heikki Linnakangas)

BUG 修复修复 GIN 索引的 WAL 重放逻辑,使其在索引随后被删除时不失败

变更

修复 GIN 索引的 WAL 重放逻辑,使其在索引随后被删除时不失败(Tom Lane)

关联记录(1)

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

其他改进在崩溃后正确检测预备事务的 SSI 冲突

变更

在崩溃后正确检测预备事务的 SSI 冲突(Dan Ports)

其他改进提交只修改了临时表的事务时避免同步复制延迟

变更

提交只修改了临时表的事务时避免同步复制延迟(Heikki Linnakangas)

在这种情况下,事务的提交记录不需要刷到备库服务器,但部分代码不知道这一点,仍然等待它发生。

BUG 修复修复 pg_basebackup 中的错误处理

变更

修复 pg_basebackup 中的错误处理(Thomas Ogrisegg、Fujii Masao)

BUG 修复修复 walsender,使其在连接终止时不进入忙循环

变更

修复 walsender,使其在连接终止时不进入忙循环(Fujii Masao)

BUG 修复修复 PL/pgSQL 的 RETURN NEXT 命令中的内存泄漏

变更

修复 PL/pgSQL 的 RETURN NEXT 命令中的内存泄漏(Joe Conway)

关联记录(1)

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

BUG 修复修复 PL/pgSQL 的 GET DIAGNOSTICS 命令在目标是函数第一个变量时的问题

变更

修复 PL/pgSQL 的 GET DIAGNOSTICS 命令在目标是函数第一个变量时的问题(Tom Lane)

关联记录(1)

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

其他改进确保 PL/Perl 为 _TD 变量加上包限定

变更

确保 PL/Perl 为 _TD 变量加上包限定(Alex Hunsaker)

该缺陷导致触发器调用在嵌套于更改当前包的函数调用中时失败。

BUG 修复修复返回组合类型的 PL/Python 函数,使其接受字符串作为结果值

变更

修复返回组合类型的 PL/Python 函数,使其接受字符串作为结果值(Jan Urbanski)

这一情况被 9.1 中允许以其他格式(如字典)提供组合结果值的新增内容意外破坏。

BUG 修复修复 psql 扩展显示(\x)模式中可能越过内存末尾的访问

变更

修复 psql 扩展显示(\x)模式中可能越过内存末尾的访问(Peter Eisentraut)

关联记录(1)

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

BUG 修复修复数据库包含大量对象时 pg_dump 的若干性能问题

变更

修复数据库包含大量对象时 pg_dump 的若干性能问题(Jeff Janes、Tom Lane)

如果数据库包含许多模式、许多对象处于依赖循环中、或有许多被拥有的序列,pg_dump 可能变得非常慢。

关联记录(1)

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

BUG 修复修复 pg_restore 读取目录格式归档时的内存和文件描述符泄漏

变更

修复 pg_restore 读取目录格式归档时的内存和文件描述符泄漏(Peter Eisentraut)

BUG 修复修复 pg_upgrade 处理存储在非默认表空间的数据库包含集簇默认表空间中的表的情况

变更

修复 pg_upgrade 处理存储在非默认表空间的数据库包含集簇默认表空间中的表的情况(Bruce Momjian)

关联记录(1)

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

BUG 修复在 ecpg 中,修复罕见的内存泄漏以及 sqlca_t 结构之后一个字节可能被覆写的问题

变更

在 ecpg 中,修复罕见的内存泄漏以及 sqlca_t 结构之后一个字节可能被覆写的问题(Peter Eisentraut)

关联记录(1)

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

BUG 修复修复 contrib/dblink 的 dblink_exec(),使其在出错时不泄漏临时数据库连接

变更

修复 contrib/dblink 的 dblink_exec(),使其在出错时不泄漏临时数据库连接(Tom Lane)

关联记录(1)

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

BUG 修复修复 contrib/dblink,使其在错误消息中报告正确的连接名

变更

修复 contrib/dblink,使其在错误消息中报告正确的连接名(Kyotaro Horiguchi)

关联记录(1)

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

BUG 修复修复 contrib/vacuumlo,使其在删除许多大对象时使用多个事务

变更

修复 contrib/vacuumlo,使其在删除许多大对象时使用多个事务(Tim Lewis、Robert Haas、Tom Lane)

此变更避免了需要删除许多对象时超出 max_locks_per_transaction。该行为可以通过新的 -l(limit)选项调整。

关联记录(1)

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

其他改进把时区数据文件更新为 tzdata 版本 2012c for DST law changes in Antarctica, Armenia, Chile, Cuba, Falkland Islands, Gaza, Haiti, Hebron, Morocco, Syria, and Tokelau Islands; also historical corrections for Canada。

变更

把时区数据文件更新为 tzdata 版本 2012c for DST law changes in Antarctica, Armenia, Chile, Cuba, Falkland Islands, Gaza, Haiti, Hebron, Morocco, Syria, and Tokelau Islands; also historical corrections for Canada。

关联记录(1)

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

这份对比如何生成?

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

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

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

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

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