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

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

文档版本对比

POSTGRESQL · VERSION COMPARE

PostgreSQL 9.1.2 的版本变更

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

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

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

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

本次发布的全部变更

9.1.2

2011-12-05

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

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

PostgreSQL 9.1.2

升级与兼容性说明

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

不过,information_schema.referential_constraints 视图的定义中被发现存在一个长期错误。如果你依赖该视图的正确结果,应按下面第一条变更日志条目的说明替换其定义。

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

BUG 修复修复 information_schema.referential_constraints 视图中的缺陷

变更

修复 information_schema.referential_constraints 视图中的缺陷(Tom Lane)

该视图在把外键约束与它依赖的主键或唯一键约束匹配时不够谨慎。这可能导致某个外键约束完全不被显示、被显示多次,或者声称它依赖于一个并非其实际依赖的约束。

由于该视图定义是由 initdb 安装的,仅靠升级不会修复问题。如果需要修复现有安装,可以(以超级用户身份)删除 information_schema 模式,然后通过载入 SHAREDIR/information_schema.sql 重新创建它。(如果不确定 SHAREDIR 在哪里,运行 pg_config --sharedir。)这必须在每个要修复的数据库中重复执行。

关联记录(1)

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

BUG 修复让 contrib/citext 的升级脚本修复 citext 列和索引的排序规则

变更

让 contrib/citext 的升级脚本修复 citext 列和索引的排序规则(Tom Lane)

在从 9.1 之前服务器执行 pg_upgrade 期间,或者当包含 citext 类型的 9.1 之前转储被载入 9.1 服务器时,现有的 citext 列和索引不会被正确标记为可排序数据类型。这导致这些列上的操作失败,报诸如 “could not determine which collation to use for string comparison” 的错误。此变更允许它们在 CREATE EXTENSION citext FROM unpackaged 期间由把 citext 模块升级为正规 9.1 扩展的同一脚本修复。

如果你有一个此前升级的、正受此问题困扰的数据库,而且你已经运行过 CREATE EXTENSION 命令,可以(以超级用户身份)手工运行 SHAREDIR/extension/citext--unpackaged--1.0.sql 末尾的 UPDATE 命令。(如果不确定 SHAREDIR 在哪里,运行 pg_config --sharedir。)如果不确定,重复执行也没有害处。

BUG 修复修复连接到返回标量的函数输出的 UPDATE 或 DELETE 期间可能崩溃的问题

变更

修复连接到返回标量的函数输出的 UPDATE 或 DELETE 期间可能崩溃的问题(Tom Lane)

只有当目标行被并发更新时才可能崩溃,因此该问题只是间歇性出现。

关联记录(1)

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

BUG 修复修复 GIN 索引更新 WAL 记录的错误重放

变更

修复 GIN 索引更新 WAL 记录的错误重放(Tom Lane)

这可能导致崩溃后或热备服务器上瞬时找不到索引项。不过,该问题会在该索引下一次 VACUUM 时被修复。

关联记录(1)

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

BUG 修复修复 CREATE TABLE dest AS SELECT * FROM src 或 INSERT INTO dest SELECT * FROM src 期间与 TOAST 相关的数据损坏

变更

修复 CREATE TABLE dest AS SELECT * FROM src 或 INSERT INTO dest SELECT * FROM src 期间与 TOAST 相关的数据损坏(Tom Lane)

如果表曾被 ALTER TABLE ADD COLUMN 修改过,在某些极端情况下,尝试把它的数据原样复制到另一个表可能产生损坏的结果。该问题只会在 8.4 及更高版本中以这种确切形式出现,但我们也给更早的版本打了补丁,以防有其他代码路径可能触发同一缺陷。

关联记录(1)

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

BUG 修复修复热备启动期间可能的失败

变更

修复热备启动期间可能的失败(Simon Riggs)

关联记录(1)

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

性能改进当初始快照不完整时更快地启动热备

变更

当初始快照不完整时更快地启动热备(Simon Riggs)

关联记录(1)

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

BUG 修复修复从过期 syscache 条目访问 toast 表时的竞态条件

变更

修复从过期 syscache 条目访问 toast 表时的竞态条件(Tom Lane)

典型症状是诸如 “missing chunk number 0 for toast value NNNNN in pg_toast_2619” 的瞬时错误,其中引用的 toast 表总是属于某个系统目录。

关联记录(1)

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

其他改进跟踪函数对参数默认值表达式中所用项的依赖

变更

跟踪函数对参数默认值表达式中所用项的依赖(Tom Lane)

此前,被引用的对象可以在未删除或修改函数的情况下被删除,导致函数被使用时行为异常。注意,仅仅安装此更新不会修复缺失的依赖条目;要做到这一点,之后需要对每个这样的函数执行 CREATE OR REPLACE。如果你的函数默认值依赖于非内建对象,建议这样做。

关联记录(1)

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

BUG 修复修复 nestloop 连接中占位符变量的错误管理

变更

修复 nestloop 连接中占位符变量的错误管理(Tom Lane)

已知该缺陷会导致 “variable not found in subplan target list” 规划器错误,并且在涉及外连接时可能导致错误的查询输出。

BUG 修复修复按涉及聚合的表达式排序的窗口函数

变更

修复按涉及聚合的表达式排序的窗口函数(Tom Lane)

此前它们可能报 “could not find pathkey item to sort” 规划器错误。

BUG 修复修复 “MergeAppend child's targetlist doesn't match MergeAppend” 规划器错误

变更

修复 “MergeAppend child's targetlist doesn't match MergeAppend” 规划器错误(Tom Lane)

BUG 修复修复对同时具有可排序和不可排序输入的操作符的索引匹配

变更

修复对同时具有可排序和不可排序输入的操作符的索引匹配(Tom Lane)

在 9.1.0 中,左输入类型不可排序而右输入类型可排序的可索引操作符不会被识别为匹配左列的索引。例如 hstore ? text 操作符。

其他改进允许内联带多个 OUT 参数的集合返回 SQL 函数

变更

允许内联带多个 OUT 参数的集合返回 SQL 函数(Tom Lane)

关联记录(1)

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

其他改进不要为连接消除信任延迟唯一索引

变更

不要为连接消除信任延迟唯一索引(Tom Lane、Marti Raudsepp)

延迟唯一约束在事务内可能不成立,因此假设它成立可能给出错误的查询结果。

关联记录(1)

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

其他改进让 DatumGetInetP() 解包带 1 字节头的 inet datum,并新增一个不做此事的宏 DatumGetInetPP()

变更

让 DatumGetInetP() 解包带 1 字节头的 inet datum,并新增一个不做此事的宏 DatumGetInetPP()(Heikki Linnakangas)

此变更不影响任何核心代码,但可能避免期望 DatumGetInetP() 按常规约定产生已解包 datum 的附加代码中的崩溃。

关联记录(1)

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

其他改进改进 money 类型输入和输出的区域支持

变更

改进 money 类型输入和输出的区域支持(Tom Lane)

除了不支持所有标准 lc_monetary 格式化选项外,输入和输出函数还不一致,这意味着在某些区域设置下转储的 money 值无法重新读取。

关联记录(1)

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

其他改进不让 transform_null_equals 影响 CASE foo WHEN NULL ... 构造

变更

不让 transform_null_equals 影响 CASE foo WHEN NULL ... 构造(Heikki Linnakangas)

transform_null_equals 只应影响用户直接写的 foo = NULL 表达式,而不是这种形式的 CASE 在内部生成的相等性检查。

关联记录(1)

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

其他改进更改外键触发器的创建顺序,以更好地支持自引用外键

变更

更改外键触发器的创建顺序,以更好地支持自引用外键(Tom Lane)

对于引用自身表的级联外键,行更新会作为一个事件同时触发 ON UPDATE 触发器和 CHECK 触发器。ON UPDATE 触发器必须先执行,否则 CHECK 会检查行的非最终状态,并可能抛出不恰当的错误。然而这些触发器的触发顺序由其名称决定,而由于触发器使用遵循 “RI_ConstraintTrigger_NNNN” 约定的自动生成名称,它们通常按创建顺序排序。彻底的修复需要修改该约定(我们将在 9.2 中做),但在现有版本中更改它似乎有风险。因此此补丁只更改触发器的创建顺序。遇到这类错误的用户应删除并重新创建外键约束,使其触发器处于正确顺序。

关联记录(1)

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

BUG 修复修复 IF EXISTS 在 DROP OPERATOR FAMILY 中的正确工作

变更

修复 IF EXISTS 在 DROP OPERATOR FAMILY 中的正确工作(Robert Haas)

其他改进禁止从扩展自己的脚本内删除该扩展

变更

禁止从扩展自己的脚本内删除该扩展(Tom Lane)

这防止了扩展依赖管理不正确时的怪异行为。

其他改进不把自动生成的类型标记为扩展成员

变更

不把自动生成的类型标记为扩展成员(Robert Haas)

关系行类型和自动生成的数组类型不需要在 pg_depend 中有自己的扩展成员条目,创建这类条目会使扩展升级复杂化。

其他改进在 CREATE EXTENSION 期间应对无效的既有 search_path 设置

变更

在 CREATE EXTENSION 期间应对无效的既有 search_path 设置(Tom Lane)

其他改进避免在跟踪缓冲区分配率时发生浮点下溢

变更

避免在跟踪缓冲区分配率时发生浮点下溢(Greg Matthews)

虽然这本身无害,但在某些平台上会导致烦人的内核日志消息。

关联记录(1)

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

其他改进防止自动清理事务以可序列化模式运行

变更

防止自动清理事务以可序列化模式运行(Tom Lane)

自动清理此前使用集簇范围的默认事务隔离级别,但它没有必要使用高于 READ COMMITTED 的级别,而使用 SERIALIZABLE 可能给其他进程带来不必要的延迟。

其他改进确保 walsender 进程及时响应 SIGTERM

变更

确保 walsender 进程及时响应 SIGTERM(Magnus Hagander)

其他改进把 postmaster.opts 排除在基础备份之外

变更

把 postmaster.opts 排除在基础备份之外(Magnus Hagander)

其他改进在 Windows 下启动子进程时保留配置文件名和行号值

变更

在 Windows 下启动子进程时保留配置文件名和行号值(Tom Lane)

此前它们不会在 pg_settings 视图中正确显示。

关联记录(1)

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

BUG 修复修复 ecpg 的 SQLDA 区域中不正确的字段对齐

变更

修复 ecpg 的 SQLDA 区域中不正确的字段对齐(Zoltan Boszormenyi)

关联记录(1)

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

其他改进在 psql 的命令历史中保留命令内的空行

变更

在 psql 的命令历史中保留命令内的空行(Robert Haas)

例如,如果从字符串字面量中删除了空行,先前的行为可能导致问题。

关联记录(1)

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

其他改进避免 pg_dump 中平台特定的无限循环

变更

避免 pg_dump 中平台特定的无限循环(Steve Singer)

BUG 修复修复 pg_dump 纯文本输出格式的压缩

变更

修复 pg_dump 纯文本输出格式的压缩(Adrian Klaver、Tom Lane)

历史上,pg_dump 把不带 -F 开关的 -Z 理解为应输出纯文本输出的 gzip 压缩版本。现已恢复该行为。

BUG 修复修复 pg_dump,使其转储自动生成类型(如表行类型)之间的用户定义转换

变更

修复 pg_dump,使其转储自动生成类型(如表行类型)之间的用户定义转换(Tom Lane)

关联记录(1)

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

BUG 修复修复 pg_dump 中外部服务器名称漏加引号的问题

变更

修复 pg_dump 中外部服务器名称漏加引号的问题(Tom Lane)

BUG 修复对 pg_upgrade 的若干修复

变更

对 pg_upgrade 的若干修复(Bruce Momjian)

正确处理排他约束、避免 Windows 上的失败、不再对 8.4 数据库中不匹配的 toast 表名报错。

关联记录(1)

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

其他改进在 PL/pgSQL 中,允许外部表定义行类型

变更

在 PL/pgSQL 中,允许外部表定义行类型(Alexander Soudakov)

BUG 修复修正 PL/Perl 函数结果的转换

变更

修正 PL/Perl 函数结果的转换(Alex Hunsaker、Tom Lane)

恢复 9.1 之前的行为:返回 void 的 PL/Perl 函数忽略其最后一条 Perl 语句的结果值;9.1.0 在该语句返回引用时会抛出错误。同时,确保可以为组合类型返回字符串值,只要该字符串符合该类型的输入格式。此外,当函数声明的结果类型不是数组或组合类型时,对分别尝试返回 Perl 数组或哈希的做法抛出错误。(9.1 之前的版本在这种情况下会返回诸如 ARRAY(0x221a9a0) 或 HASH(0x221aa90) 之类毫无用处的字符串。)

其他改进确保 PL/Perl 字符串总是正确地以 UTF8 编码

变更

确保 PL/Perl 字符串总是正确地以 UTF8 编码(Amit Khandekar、Alex Hunsaker)

其他改进使用首选版本的 xsubpp 构建 PL/Perl,而不一定是操作系统的主副本

变更

使用首选版本的 xsubpp 构建 PL/Perl,而不一定是操作系统的主副本(David Wheeler、Alex Hunsaker)

关联记录(1)

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

其他改进在 PL/Python 异常中正确传播 SQLSTATE

变更

在 PL/Python 异常中正确传播 SQLSTATE(Mika Eloranta、Jan Urbanski)

其他改进不为构建所针对的 Python 大版本之外的其他版本安装 PL/Python 扩展文件

变更

不为构建所针对的 Python 大版本之外的其他版本安装 PL/Python 扩展文件(Peter Eisentraut)

其他改进更改所有 contrib 扩展脚本文件,使其在被喂给 psql 时报告有用的错误消息

变更

更改所有 contrib 扩展脚本文件,使其在被喂给 psql 时报告有用的错误消息(Andrew Dunstan、Tom Lane)

这应有助于让人们了解使用 CREATE EXTENSION 加载这些文件的新方法。大多数情况下,直接载入脚本本来就会失败,只是错误消息更难理解。

BUG 修复修复 contrib/dict_int 和 contrib/dict_xsyn 中的错误编码

变更

修复 contrib/dict_int 和 contrib/dict_xsyn 中的错误编码(Tom Lane)

一些函数错误地假定 palloc() 返回的内存保证被清零。

关联记录(1)

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

其他改进把 contrib/sepgsql 测试从常规回归测试机制中移除

变更

把 contrib/sepgsql 测试从常规回归测试机制中移除(Tom Lane)

由于这些测试的设置需要 root 权限,自动运行不现实。改为手工方式,并提供一个测试脚本来协助。

BUG 修复修复 contrib/unaccent 配置文件解析中的若干错误

变更

修复 contrib/unaccent 配置文件解析中的若干错误(Tom Lane)

关联记录(1)

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

其他改进让 pgstatindex() 及时响应查询取消中断

变更

让 pgstatindex() 及时响应查询取消中断(Robert Haas)

关联记录(1)

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

BUG 修复修复 macOS 启动脚本中日志文件名的不正确引号

变更

修复 macOS 启动脚本中日志文件名的不正确引号(Sidar Lopez)

其他改进撤销无意中启用的 WAL_DEBUG

变更

撤销无意中启用的 WAL_DEBUG(Robert Haas)

幸运的是,就调试工具而言,这个相当廉价;但它并不打算默认启用,因此撤销。

其他改进确保 VPATH 构建正确安装所有服务器头文件

变更

确保 VPATH 构建正确安装所有服务器头文件(Peter Eisentraut)

关联记录(1)

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

其他改进缩短详细错误消息中报告的文件名

变更

缩短详细错误消息中报告的文件名(Peter Eisentraut)

常规构建一直只报告包含错误消息调用的 C 文件的名称,但 VPATH 构建此前报告绝对路径名。

关联记录(1)

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

BUG 修复修复中美洲 Windows 时区名的解释

变更

修复中美洲 Windows 时区名的解释(Tom Lane)

把“Central America Standard Time”映射为 CST6 而不是 CST6CDT,因为中美洲各地通常不实行夏令时。

关联记录(1)

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

其他改进把时区数据文件更新为 tzdata 版本 2011n for DST law changes in Brazil, Cuba, Fiji, Palestine, Russia, and Samoa; also historical corrections for Alaska and British East Africa。

变更

把时区数据文件更新为 tzdata 版本 2011n for DST law changes in Brazil, Cuba, Fiji, Palestine, Russia, and Samoa; also historical corrections for Alaska and British East Africa。

关联记录(1)

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

这份对比如何生成?

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

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

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

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

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