pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
文档版本对比
POSTGRESQL · VERSION COMPARE
本次发布的完整功能、修复与兼容性说明,以及它们在其他版本中的关联记录。
从起始版本之后,看到目标版本为止。大版本名称代表该系列首个正式版本。
收录 PostgreSQL 9.0 起的 17 个大版本、352 份发布说明;数据更新于 2026-09-26。
本次发布的全部变更
2019-05-09
9.5.17 历史版本维护截止 2021-02-11
| CVE / 问题 | 严重程度 | 修复版本 |
|---|---|---|
| CVE-2017-7484 防止通过选择率估计器绕过行级安全策略 | 4.3 | 9.5.7 |
| CVE-2019-10130 防止通过选择率估计器绕过行级安全策略 | 3.1 | 9.5.17 |
对于运行 9.5.X 的用户,不需要转储/恢复。
不过,如果你是从 9.5.13 之前的版本升级,参见第 E.13 节。
变更
防止通过选择率估计器绕过行级安全策略(Dean Rasheed)
规划器的一些选择率估计器会对 pg_statistic 中的值(如最常见值)应用用户定义的操作符。因此,泄漏型操作符可以泄露数据列中的一些条目,即使调用用户没有读取该列的权限。我们在 CVE-2017-7484 中加了限制来防止这一点,但没有考虑到行级安全的影响。有 SQL 权限读取某列、但因 RLS 策略被禁止看到某些行的用户,仍可能通过泄漏型操作符了解这些行的内容。本补丁进一步收紧规则,仅当没有相关 RLS 策略时才允许把泄漏型操作符应用于统计数据。(CVE-2019-10130)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复对每个表都可被排除的继承树或分区表执行 UPDATE 或 DELETE 时的行为(Amit Langote、Tom Lane)
这类情况下,当存在 RETURNING 子句时,查询没有报告正确的输出列集合;如果有应当触发的语句级触发器,它也没有触发。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复目标关系是可更新视图时带多行 VALUES 的 INSERT ... VALUES 命令中显式 DEFAULT 项的处理(Amit Langote、Dean Rasheed)
当可更新视图对该列没有默认值而其底层表有时,单行 INSERT ... VALUES 会使用底层表的默认值。然而在多行情况下,总是使用 NULL。已纠正为与单行情况一致。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 CREATE VIEW 允许零列视图(Ashutosh Sharma)
为了与允许零列表保持一致,我们应当允许这一点。由于表可以被转换为视图,即使有此限制也能创建零列视图,从而导致转储/恢复失败。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
补上对 CREATE TABLE IF NOT EXISTS ... AS EXECUTE ... 的缺失支持(Andreas Karlsson)
IF NOT EXISTS 与 EXECUTE 的组合应当能工作,但语法中遗漏了它。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
确保行级安全策略表达式中出现的子 SELECT 以正确的用户权限执行(Dean Rasheed)
此前,如果带 RLS 策略的表是通过视图访问的,这种检查可能以调用视图的用户而非应有的视图所有者身份执行。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
在 xmloption 设为 content 时按 SQL:2006 及后续标准的要求接受 XML 文档作为 xml 类型的有效值(Chapman Flack)
此前 PostgreSQL 遵循不允许这么做的 SQL:2003 定义。但这给转储/恢复带来了严重问题:没有哪个 xmloption 设置能接受所有有效 XML 数据。因此切换到 2006 定义。
还修改了 pg_dump,使其在恢复数据期间发出 SET xmloption = content,确保即使当前设置是 document 转储/恢复也能工作。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
改进服务器启动时对既有共享内存段是否仍在使用的检查(Noah Misch)
即使 postmaster.pid 文件已被移除,postmaster 现在也更可能检测到上一个 postmaster 实例仍有活动进程。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 GIN 索引 WAL 记录的不兼容(Alexander Korotkov)
二月份小版本中应用的一个修复对向后兼容性不够谨慎,导致那个年代的备库服务器读取前一个小版本的主库生成的 GIN 页删除 WAL 记录时出问题。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
在适当的情况下容忍 fsync 和 sync_file_range 调用的 EINVAL 和 ENOSYS 错误结果(Thomas Munro、James Sewell)
此前对文件同步失败就 panic 的更改对于某些失败可预见且基本上意味着“操作不受支持”的情况显得过于偏执。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 FULL 外连接中通向外部横向引用导致的 “failed to build any N-way joins” 规划器失败(Tom Lane)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
在执行关于让泄漏型操作符看到 pg_statistic 数据的规则时,检查正确用户的权限(Dean Rasheed)
当底层表通过视图被访问时,在决定是否可以把泄漏型操作符应用于该表的统计数据时,考虑视图所有者的权限而不是发起查询的用户的权限。这使规划器关于哪些数据可见的规则与执行器的规则一致,避免了不必要的低劣计划。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
避免回滚创建了许多表的事务时的 O(N^2) 性能问题(Tomas Vondra)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复动态共享内存管理中的竞态条件(Thomas Munro)
这些可能导致 “dsa_area could not attach to segment” 或 “cannot unpin a segment that is not pinned” 错误。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复热备 postmaster 收到 smart 关闭请求后可能不关闭的竞态条件(Tom Lane)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复给 pg_identify_object_as_address() 无效输入时可能的崩溃(Álvaro Herrera)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
收紧对编码后的 SCRAM-SHA-256 和 MD5 口令的验证(Jonathan Katz)
开头字符正确的口令字符串可能被误认为是已正确哈希为 SCRAM-SHA-256 或 MD5 格式的口令。这种口令会被接受但之后无法使用。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复对隐含与数据库编码不同的编码的 lc_time 设置的处理(Juan José Santamaría Flecha、Tom Lane)
包含非 ASCII 字符的本地化月份或日期名此前在此类区域中导致意外错误或错误输出。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复涉及一元减号操作符的不正确 operator_precedence_warning 检查(Rikard Falkeborn)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
禁止把 NaN 用作浮点服务器参数的值(Tom Lane)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
重排 REINDEX 处理,避免对 pg_class 的单个索引重建时断言失败(Andres Freund、Tom Lane)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复参数化虚拟路径的规划器断言失败(Tom Lane)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
在 SnapBuildInitialSnapshot() 的结果中插入正确的测试函数(Antonin Houska)
没有核心代码关心这一点,但一些扩展关心。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 Windows 上间歇性的 “could not reattach to shared memory” 会话启动失败(Noah Misch)
这些失败的一个此前未被识别的来源是为进程默认线程池创建线程栈。安排把这种栈分配在不同的内存区域。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 Windows 上目录扫描中的错误检测(Konstantin Knizhnik)
诸如缺少读取目录权限之类的错误没有被正确检测或报告;代码而是静默地表现为目录为空。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 ecpg 中的语法问题(Tom Lane)
一个缺失的分号导致 ecpg 程序中的 SET (但不是 variable = DEFAULTSET )被错误翻译,产生服务器会拒绝的语法无效输出。此外,在列出多个类型名的 variable TO DEFAULTDROP TYPE 或 DROP DOMAIN 命令中,实际上只处理了第一个类型名。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
把 ecpg 的 CREATE TABLE AS 语法与服务器的同步(Daisuke Higuchi)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 ecpg 处理 include 文件名时可能的缓冲区越界(Liu Huailing、Fei Wu)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
避免 lo_unlink() 调用失败时 contrib/vacuumlo 崩溃(Tom Lane)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
把我们的时区库副本与 IANA tzcode 版本 2019a 同步(Tom Lane)
这更正了 zic 的一个小 bug——它在 Africa/Casablanca 时区输出错误的 2440 年转换,并增加了对 zic 新 -r 选项的支持。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
更新时区数据文件到 tzdata 版本 2019a,涉及巴勒斯坦和梅特拉卡特拉的夏令时法规变更,以及以色列的历史修正。
Etc/UCT 现在是指向 Etc/UTC 的向后兼容链接,而不再是生成缩写 UCT 的独立时区 ——如今 UCT 通常是笔误。PostgreSQL 仍然接受 UCT 作为输入时区缩写,但不会输出它。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
试试其他关键词,或。
对比以 PostgreSQL 发行说明为依据,汇总起始版本之后、目标版本及之前的变更,支持同一大版本内的小版本更新,以及跨大版本升级。跨大版本时,旧分支的维护记录只纳入到下一大版本首次发布之日,所有记录均不晚于目标版本的发布日期。大版本名称(如 18)指首个正式版本(18.0);测试版与开发快照会单独标注。
条目正文来自本站中文手册,版本清单、条目覆盖与提交依据逐一核对上游英文原文。每条变更保留完整说明与原文链接;分类用于辅助浏览,具体影响、适用条件与升级操作请阅读条目正文和各版本的升级说明。
同一修复可能回补到多个版本分支。对比会保守合并可确认相同的条目,并保留各分支完整说明;已知由起始版本包含的修复会排除。一条说明包含多个独立修复时,只有全部已包含才排除。大版本新功能不因与旧版补丁存在提交关联而合并,不能确认相同的条目继续保留。这是发行说明的累计差异,不能覆盖二进制程序之间的每一处代码变化。
CVE 独立依据 PostgreSQL 官方安全公告与漏洞记录计算:起始版本受影响、目标版本已修复或不受影响的漏洞才计入,按编号去重。目标版本仍受影响的漏洞另行提示;安全变更条数与 CVE 数量分别统计。
交互参考 pgversions.com 与 pgversionreport,内容来自 PostgreSQL 发行说明。更多历史资料见发行说明归档。