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

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

文档版本对比

POSTGRESQL · VERSION COMPARE

PostgreSQL 9.1.5 的版本变更

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

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

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

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

本次发布的全部变更

9.1.5

2012-08-17

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

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

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

防止通过 XML 实体引用访问外部文件/URL

—9.1.5
CVE-2012-3488

防止通过 contrib/xml2 的 xslt_process() 访问外部文件/URL

—9.1.5

PostgreSQL 9.1.5

升级与兼容性说明

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

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

安全相关防止通过 XML 实体引用访问外部文件/URL

变更

防止通过 XML 实体引用访问外部文件/URL(Noah Misch、Tom Lane)

xml_parse() 会尝试按需获取外部文件或 URL 来解析 XML 值中的 DTD 和实体引用,从而使无特权数据库用户能够尝试以数据库服务器的权限获取数据。虽然外部数据不会直接返回给用户,但如果数据不能解析为有效 XML,其部分内容可能暴露在错误消息中;而且无论如何,仅仅能够检查文件是否存在对攻击者就可能有用。(CVE-2012-3489)

关联记录(1)

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

安全相关防止通过 contrib/xml2 的 xslt_process() 访问外部文件/URL

变更

防止通过 contrib/xml2 的 xslt_process() 访问外部文件/URL(Peter Eisentraut)

libxslt 提供通过样式表命令读写文件和 URL 的能力,从而使无特权数据库用户能够以数据库服务器的权限读写数据。现通过正确使用 libxslt 的安全选项禁用该能力。(CVE-2012-3488)

此外,移除了 xslt_process() 从外部文件/URL 获取文档和样式表的能力。虽然这是一个有记载的“特性”,但长期以来被认为是个坏主意。CVE-2012-3489 的修复破坏了该能力,与其花费精力修复它,我们干脆将其移除。

关联记录(1)

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

其他改进防止 btree 索引页被过早回收

变更

防止 btree 索引页被过早回收(Noah Misch)

当我们允许只读事务跳过分配 XID 时,引入了已删除 btree 页在只读事务仍在访问它时就被回收的可能性。这会导致错误的索引搜索结果。由于时序要求,这种错误在实际中发生的概率似乎很低,但仍应修复。

关联记录(1)

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

BUG 修复修复新创建或重置序列的崩溃安全缺陷

变更

修复新创建或重置序列的崩溃安全缺陷(Tom Lane)

如果在新创建或重置的序列上执行了 ALTER SEQUENCE,然后恰好对它调用了一次 nextval(),随后服务器崩溃,WAL 重放会把序列恢复到看起来没有执行过 nextval() 的状态,从而使下一个 nextval() 调用再次返回第一个序列值。这种情况尤其可能出现在 serial 列上,因为创建 serial 列的序列包含一个 ALTER SEQUENCE OWNED BY 步骤。

关联记录(1)

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

BUG 修复修复 enum 类型值比较中的竞态条件

变更

修复 enum 类型值比较中的竞态条件(Robert Haas、Tom Lane)

当遇到当前查询启动之后添加的枚举值时,比较可能失败。

BUG 修复修复 txid_current(),使其在非热备下报告正确的纪元(epoch)

变更

修复 txid_current(),使其在非热备下报告正确的纪元(epoch)(Heikki Linnakangas)

这修复了上一个小版本引入的退化。

关联记录(1)

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

其他改进防止选择不合适的复制连接作为同步备库

变更

防止选择不合适的复制连接作为同步备库(Fujii Masao)

主库可能不当地选择 pg_receivexlog 或 pg_basebackup 等伪服务器作为同步备库,然后无限期等待它们。

BUG 修复修复主库事务有大量子事务时热备启动的缺陷

变更

修复主库事务有大量子事务时热备启动的缺陷(Andres Freund)

这一失误导致报告为 “out-of-order XID insertion in KnownAssignedXids” 的失败。

关联记录(1)

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

其他改进确保 pg_start_backup() 之后对 backup_label 文件执行 fsync

变更

确保 pg_start_backup() 之后对 backup_label 文件执行 fsync(Dave Kerr)

关联记录(1)

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

BUG 修复修复 walsender 进程中的超时处理

变更

修复 walsender 进程中的超时处理(Tom Lane)

WAL 发送端后台进程疏于建立 SIGALRM 处理程序,这意味着在某些应发生超时的极端情况下它们会永远等待。

关联记录(1)

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

其他改进在 walwriter 每次后台刷写之后唤醒 walsender

变更

在 walwriter 每次后台刷写之后唤醒 walsender(Andres Freund、Simon Riggs)

当负载只包含异步提交的事务时,这能大幅减少复制延迟。

BUG 修复修复 LISTEN/NOTIFY,使其更好地应对 I/O 问题(例如磁盘空间耗尽)

变更

修复 LISTEN/NOTIFY,使其更好地应对 I/O 问题(例如磁盘空间耗尽)(Tom Lane)

写入失败之后,所有后续发送更多 NOTIFY 消息的尝试都会失败,并显示诸如 “Could not read from file "pg_notify/nnnn" at offset nnnnn: Success” 的消息。

关联记录(1)

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

其他改进只允许被直接阻塞的进程自动取消自动清理

变更

只允许被直接阻塞的进程自动取消自动清理(Tom Lane)

原始编码在某些情况下可能允许不一致的行为;特别是自动清理可能在不足 deadlock_timeout 宽限期之后就被取消。

关联记录(1)

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

其他改进改进自动清理取消的日志记录

变更

改进自动清理取消的日志记录(Robert Haas)

关联记录(1)

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

BUG 修复修复日志收集器,使 log_truncate_on_rotation 在服务器启动后的第一次日志轮转期间就能工作

变更

修复日志收集器,使 log_truncate_on_rotation 在服务器启动后的第一次日志轮转期间就能工作(Tom Lane)

关联记录(1)

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

BUG 修复修复附加到嵌套集合操作(UNION/INTERSECT/EXCEPT)上的 WITH

变更

修复附加到嵌套集合操作(UNION/INTERSECT/EXCEPT)上的 WITH(Tom Lane)

关联记录(1)

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

其他改进确保对子查询的整行引用不包含任何多余的 GROUP BY 或 ORDER BY 列

变更

确保对子查询的整行引用不包含任何多余的 GROUP BY 或 ORDER BY 列(Tom Lane)

关联记录(1)

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

BUG 修复修复 ALTER TABLE ... ADD CONSTRAINT USING INDEX 期间生成的依赖

变更

修复 ALTER TABLE ... ADD CONSTRAINT USING INDEX 期间生成的依赖(Tom Lane)

该命令为索引留下了一个多余的 pg_depend 条目,可能干扰后续操作,尤其是对被索引列之一的 ALTER TABLE ... ALTER COLUMN TYPE。

BUG 修复修复 REASSIGN OWNED,使其能用于扩展

变更

修复 REASSIGN OWNED,使其能用于扩展(Alvaro Herrera)

其他改进禁止在 CREATE TABLE 期间复制 CHECK 约束和索引定义中的整行引用

变更

禁止在 CREATE TABLE 期间复制 CHECK 约束和索引定义中的整行引用(Tom Lane)

这种情况可能出现在带 LIKE 或 INHERITS 的 CREATE TABLE 中。被复制的整行变量被错误地标记为原表而不是新表的行类型。对 LIKE 拒绝这种情况似乎是合理的,因为行类型之后很可能分化。对 INHERITS,理想情况下应该允许它,并隐式强制转换为父表的行类型;但这需要的工作量超出了回移植的安全范围。

关联记录(1)

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

BUG 修复修复 ARRAY(SELECT ...) 子查询中的内存泄漏

变更

修复 ARRAY(SELECT ...) 子查询中的内存泄漏(Heikki Linnakangas、Tom Lane)

关联记录(1)

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

BUG 修复修复规划器,使其向操作符选择率估计器传递正确的排序规则

变更

修复规划器,使其向操作符选择率估计器传递正确的排序规则(Tom Lane)

此前任何核心选择率估计函数都不需要它,但第三方代码可能需要。

BUG 修复修复从正则表达式中提取公共前缀的问题

变更

修复从正则表达式中提取公共前缀的问题(Tom Lane)

代码可能被带量词的带括号子表达式(例如 ^(foo)?bar)混淆。这会导致对此类模式搜索的索引优化不正确。

关联记录(1)

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

BUG 修复修复解析 interval 常量中带符号的 hh:mm 和 hh:mm:ss 字段的缺陷

变更

修复解析 interval 常量中带符号的 hh:mm 和 hh:mm:ss 字段的缺陷(Amit Kapila、Tom Lane)

关联记录(1)

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

BUG 修复修复 pg_dump,使其更好地处理包含部分 GROUP BY 列表的视图

变更

修复 pg_dump,使其更好地处理包含部分 GROUP BY 列表的视图(Tom Lane)

只在 GROUP BY 中列出主键列、却把其他表列当作已分组的视图,会被标记为依赖于该主键。pg_dump 对这类主键依赖处理不当会导致转储顺序不佳,往好里说恢复效率低下,往坏里说可能导致并行 pg_restore 彻底失败。

其他改进在 PL/Perl 中,避免在 SQL_ASCII 编码下设置 UTF8 标志

变更

在 PL/Perl 中,避免在 SQL_ASCII 编码下设置 UTF8 标志(Alex Hunsaker、Kyotaro Horiguchi、Alvaro Herrera)

其他改进在 PL/Python 中把 Python Unicode 字符串转换为服务器编码时,使用 Postgres 而不是 Python 的编码转换函数

变更

在 PL/Python 中把 Python Unicode 字符串转换为服务器编码时,使用 Postgres 而不是 Python 的编码转换函数(Jan Urbanski)

这避免了一些极端情况的问题,尤其是 Python 并不支持 Postgres 的所有编码。一个显著的功能变化是:如果服务器编码是 SQL_ASCII,你将得到该字符串的 UTF-8 表示;此前字符串中的任何非 ASCII 字符都会导致错误。

关联记录(1)

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

BUG 修复修复 PL/Python 中 PostgreSQL 编码到 Python 编码的映射

变更

修复 PL/Python 中 PostgreSQL 编码到 Python 编码的映射(Jan Urbanski)

关联记录(1)

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

其他改进修复 contrib/xml2 的 xslt_process() 中的错误报告

变更

修复 contrib/xml2 的 xslt_process() 中的错误报告(Tom Lane)

关联记录(1)

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

其他改进把时区数据文件更新为 tzdata 版本 2012e,以反映摩洛哥和托克劳的夏令时法规变更

变更

把时区数据文件更新为 tzdata 版本 2012e,以反映摩洛哥和托克劳的夏令时法规变更

关联记录(1)

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

这份对比如何生成?

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

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

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

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

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