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

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

文档版本对比

POSTGRESQL · VERSION COMPARE

PostgreSQL 9.3.23 的版本变更

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

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

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

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

本次发布的全部变更

9.3.23

2018-05-10

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

9.3.23 历史版本维护截止 2018-11-08

PostgreSQL 9.3.23

升级与兼容性说明

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

不过,如果下面第一条变更日志条目中提到的函数标记错误影响到你,你可能需要采取措施更正数据库系统目录。

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

BUG 修复修复少数内建函数上不正确的易变性标记

变更

修复少数内建函数上不正确的易变性标记(Thomas Munro、Tom Lane)

函数 query_to_xml、cursor_to_xml、cursor_to_xmlschema、query_to_xmlschema 和 query_to_xml_and_xmlschema 应标记为 volatile,因为它们执行可能包含易变操作的用户提供的查询。它们没有被这样标记,导致错误查询优化的风险。新安装已通过更正初始目录数据修复,但现有安装将继续包含错误标记。实际使用这些函数似乎危害不大,但如遇到麻烦,可以手动更新这些函数的 pg_proc 条目来修复,例如 ALTER FUNCTION pg_catalog.query_to_xml(text, boolean, boolean, text) VOLATILE。(注意安装中的每个数据库都需要这样做。)另一个选择是把数据库 pg_upgrade 到包含更正后初始数据的版本。

关联记录(4)

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

其他改进避免重用与已死但尚未清理的 TOAST 条目匹配的 TOAST 值 OID

变更

避免重用与已死但尚未清理的 TOAST 条目匹配的 TOAST 值 OID(Pavan Deolasee)

一旦 OID 计数器回卷,就可能分配一个 OID 与同一 TOAST 表中先前删除的条目匹配的 TOAST 值。如果该条目尚未被清理,就会导致 “unexpected chunk number 0 (expected 1) for toast value nnnnn” 错误,并持续到 VACUUM 移除死条目为止。修复方法是创建新 TOAST 条目时不选择这种 OID。

关联记录(4)

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

其他改进更改 ANALYZE 更新 pg_class.reltuples 的算法

变更

更改 ANALYZE 更新 pg_class.reltuples 的算法(David Gould)

此前,ANALYZE 未实际扫描的页被假定保留其旧的元组密度。在 ANALYZE 只采样很少一部分页的大表中,这意味着总体元组密度估计不会有太大变化,因此无论表中实际发生什么,reltuples 都几乎与表物理大小(relpages)的变化成比例地变化。据观察,这会导致 reltuples 远大于实际值,以致实际上关闭了自动清理。为修复,假定 ANALYZE 的样本是表的无偏统计样本(本应如此),直接把这些页中观察到的密度外推到整表。

关联记录(4)

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

BUG 修复修复 UPDATE/DELETE ... WHERE CURRENT OF 在所引用游标使用仅索引扫描计划时不失败

变更

修复 UPDATE/DELETE ... WHERE CURRENT OF 在所引用游标使用仅索引扫描计划时不失败(Yugo Nagata、Tom Lane)

关联记录(4)

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

BUG 修复修复下推到参数化路径的连接子句的错误规划

变更

修复下推到参数化路径的连接子句的错误规划(Andrew Gierth、Tom Lane)

这个错误可能把本应是普通“过滤”条件的条件错误分类为外连接的“连接过滤”,导致错误的连接输出。

关联记录(4)

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

BUG 修复修复对顶层 AND/OR 条件带有可证明为 NULL 子子句的 CHECK 约束的错误优化

变更

修复对顶层 AND/OR 条件带有可证明为 NULL 子子句的 CHECK 约束的错误优化(Tom Lane、Dean Rasheed)

这可能导致例如约束排除错误地排除不应从查询中排除的子表。

关联记录(4)

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

其他改进避免提交预备事务时发生查询取消或会话终止中断时失败

变更

避免提交预备事务时发生查询取消或会话终止中断时失败(Stas Kelvich)

关联记录(4)

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

BUG 修复修复重复执行的哈希连接中的查询生命周期内存泄漏

变更

修复重复执行的哈希连接中的查询生命周期内存泄漏(Tom Lane)

关联记录(4)

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

BUG 修复修复 heap_prepare_freeze_tuple 中过于严格的健全性检查

变更

修复 heap_prepare_freeze_tuple 中过于严格的健全性检查(Álvaro Herrera)

在从 9.2 或更早版本 pg_upgrade 过来的数据库中,这可能导致错误的 “cannot freeze committed xmax” 失败。

关联记录(4)

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

其他改进防止 C 编写的 before-update 行触发器返回“旧”元组时的悬空指针解引用

变更

防止 C 编写的 before-update 行触发器返回“旧”元组时的悬空指针解引用(Rushabh Lathia)

关联记录(4)

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

其他改进减少自动清理工作者调度期间的锁定

变更

减少自动清理工作者调度期间的锁定(Jeff Janes)

原来的行为导致有许多表的数据库中潜在工作者并发性的急剧丧失。

关联记录(4)

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

其他改进确保把 pg_stat_activity 数据复制到本地内存时复制客户端主机名

变更

确保把 pg_stat_activity 数据复制到本地内存时复制客户端主机名(Edmund Horner)

此前,这个本应本地的快照包含指向共享内存的指针,使客户端主机名列可能因任何现有会话断开而意外改变。

关联记录(4)

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

BUG 修复修复 ispell 词典中多个复合词缀的错误处理

变更

修复 ispell 词典中多个复合词缀的错误处理(Arthur Zakirov)

关联记录(4)

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

BUG 修复修复 text 列上 SP-GiST 索引中的排序规则感知搜索(即使用不等操作符的索引扫描)

变更

修复 text 列上 SP-GiST 索引中的排序规则感知搜索(即使用不等操作符的索引扫描)(Tom Lane)

在大多数非 C 区域中,这种搜索会返回错误的行集合。

关联记录(4)

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

其他改进在 SP-GiST 索引初始构建期间正确计数索引元组数

变更

在 SP-GiST 索引初始构建期间正确计数索引元组数(Tomas Vondra)

此前,元组数被报告为与底层表相同,如果索引是部分索引就错了。

关联记录(4)

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

其他改进在 GiST 索引清理期间正确计数索引元组数

变更

在 GiST 索引清理期间正确计数索引元组数(Andrey Borodin)

此前它报告的是估计的堆元组数,可能不准确,而且如果索引是部分索引则肯定错误。

关联记录(4)

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

其他改进允许 scalarltsel 和 scalargtsel 用于非核心数据类型

变更

允许 scalarltsel 和 scalargtsel 用于非核心数据类型(Tomas Vondra)

关联记录(4)

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

其他改进减少收集了大量查询输出之后服务器报告错误时 libpq 的内存消耗

变更

减少收集了大量查询输出之后服务器报告错误时 libpq 的内存消耗(Tom Lane)

在处理错误消息之前而不是之后丢弃先前的输出。在某些平台(特别是 Linux)上,这可以改变应用之后的内存占用。

关联记录(4)

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

BUG 修复修复 ecpg 中的双重释放崩溃

变更

修复 ecpg 中的双重释放崩溃(Patrick Krecker、Jeevan Ladhe)

关联记录(4)

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

BUG 修复修复 ecpg 在 MSVC 构建中正确处理 long long int 变量

变更

修复 ecpg 在 MSVC 构建中正确处理 long long int 变量(Michael Meskes、Andrew Gierth)

关联记录(4)

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

BUG 修复修复转储中列表值 GUC 变量值的错误引号

变更

修复转储中列表值 GUC 变量值的错误引号(Michael Paquier、Tom Lane)

local_preload_libraries、session_preload_libraries、shared_preload_libraries 和 temp_tablespaces 变量在 pg_dump 输出中没有正确加引号。如果这些变量的设置出现在 CREATE FUNCTION ... SET 或 ALTER DATABASE/ROLE ... SET 子句中,这会导致问题。

关联记录(4)

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

BUG 修复修复 PL/pgSQL 整数 FOR 循环中的溢出处理

变更

修复 PL/pgSQL 整数 FOR 循环中的溢出处理(Tom Lane)

原来的编码在一些非 gcc 编译器上未能检测到循环变量的溢出,导致无限循环。

关联记录(4)

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

其他改进调整 PL/Python 回归测试在 Python 3.7 下通过

变更

调整 PL/Python 回归测试在 Python 3.7 下通过(Peter Eisentraut)

关联记录(4)

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

其他改进支持用 Python 3 和 MSVC 构建时测试 PL/Python 及相关模块

变更

支持用 Python 3 和 MSVC 构建时测试 PL/Python 及相关模块(Andrew Dunstan)

关联记录(4)

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

其他改进重命名内部 b64_encode 和 b64_decode 函数,避免与 Solaris 11.4 内置函数冲突

变更

重命名内部 b64_encode 和 b64_decode 函数,避免与 Solaris 11.4 内置函数冲突(Rainer Orth)

关联记录(4)

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

其他改进把我们的时区库副本与 IANA tzcode 版本 2018e 同步

变更

把我们的时区库副本与 IANA tzcode 版本 2018e 同步(Tom Lane)

这修复了 zic 时区数据编译器应对负夏令时偏移的能力。虽然 PostgreSQL 项目不会立即发布这种时区数据,但 zic 可能被用于直接从 IANA 获得的时区数据,因此现在更新 zic 是审慎的。

关联记录(4)

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

其他改进更新时区数据文件到 tzdata 版本 2018d,涉及巴勒斯坦和南极洲(凯西站)的夏令时法规变更,以及葡萄牙及其殖民地、恩德伯里、牙买加、特克斯和凯科斯群岛及乌拉圭的历史修正。

变更

更新时区数据文件到 tzdata 版本 2018d,涉及巴勒斯坦和南极洲(凯西站)的夏令时法规变更,以及葡萄牙及其殖民地、恩德伯里、牙买加、特克斯和凯科斯群岛及乌拉圭的历史修正。

关联记录(4)

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

这份对比如何生成?

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

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

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

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

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