pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
文档版本对比
POSTGRESQL · VERSION COMPARE
本次发布的完整功能、修复与兼容性说明,以及它们在其他版本中的关联记录。
从起始版本之后,看到目标版本为止。大版本名称代表该系列首个正式版本。
收录 PostgreSQL 9.0 起的 17 个大版本、352 份发布说明;数据更新于 2026-09-26。
本次发布的全部变更
2018-03-01
10.3 历史版本维护截止 2022-11-10
| CVE / 问题 | 严重程度 | 修复版本 |
|---|---|---|
| CVE-2018-1058 记录如何配置安装和应用程序,以防范其他用户利用搜索路径发起的特洛伊木马攻击 | 8.8 | 10.3 |
对于运行 10.X 的用户,不需要执行导出/恢复。
但是,如果您的安装中并非所有用户都相互信任,或者您维护的应用程序或扩展需要用于各种场景,强烈建议阅读下方第一条变更日志所述的文档变更,并采取适当措施,确保您的安装或代码安全。
另外,下方变更记录中第二项所述的修改,可能使索引表达式或物化视图中使用的函数在自动分析期间或从转储重载时失败。升级后,请监视服务器日志中是否有此类问题,并修复受影响的函数。
此外,如果是从早于 10.2 的版本升级,请参见第 E.22 节。
变更
记录如何配置安装和应用程序,以防范其他用户利用搜索路径发起的特洛伊木马攻击(Noah Misch)
如果 search_path 设置包含恶意用户可写的任何模式,该用户就能控制查询,进而以被攻击用户的权限运行任意 SQL 代码。虽然可以编写不受此类劫持影响的查询,但写法十分繁琐,也很容易遗漏漏洞。因此,我们现在建议配置搜索路径时不要包含任何不可信模式。相关文档见第 5.8.6 节(面向数据库管理员和用户)、第 33.1 节(面向应用作者)、第 37.15.6 节(面向扩展作者),以及CREATE FUNCTION(面向 SECURITY DEFINER 函数作者)。(CVE-2018-1058)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
避免在 pg_dump 和其他客户端程序中使用不安全的 search_path 设置(Noah Misch,Tom Lane)
pg_dump、pg_upgrade、vacuumdb 以及其他由 PostgreSQL 提供的应用本身,也容易受到上一条变更记录中所述的劫持攻击;由于这些应用通常由超级用户运行,它们尤其容易成为攻击目标。为确保无论整个安装环境是否已做好安全配置,这些应用本身都安全,将它们的 search_path 设置修改为只包含 pg_catalog 模式。自动清理工作进程现在也采用相同做法。
如果这些程序间接执行用户提供的函数,例如索引表达式中的用户函数,更严格的 search_path 可能导致错误。需要调整这些用户函数,消除它们对调用时搜索路径的任何假设,才能修正这些错误。这一直是良好实践,而现在则是保证行为正确的必要条件。(CVE-2018-1058)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
防止逻辑复制尝试传送不可发布关系的变更(Peter Eisentraut)
标记为 FOR ALL TABLES 的发布会错误地传送物化视图和 information_schema 表的变更,而这些变更本应从变更流中排除。
变更
修复子计划中存在 CTE 引用时并发更新重新检查的错误行为(Tom Lane)
如果 InitPlan 或 SubPlan 使用了 CTE(WITH 子句引用),且查询因尝试更新或锁定被并发更新的行而需要重新检查,就可能产生不正确的结果。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复外连接中存在重叠归并连接子句时规划器失败的问题(Tom Lane)
这些问题会在边界情况下导致 “left and right pathkeys do not match in mergejoin” 或 “outer pathkeys do not match mergeclauses” 规划器错误。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复 pg_upgrade 未保留物化视图的 relfrozenxid 的问题(Tom Lane,Andres Freund)
这一疏漏可能在升级后导致物化视图中的数据损坏,表现为 “could not access status of transaction” 或 “found xmin from before relfrozenxid” 错误。很少刷新的物化视图,或仅使用 REFRESH MATERIALIZED VIEW CONCURRENTLY 维护的物化视图,更容易出现此问题。
如果发现此类损坏,可以通过刷新物化视图(不使用 CONCURRENTLY)来修复。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
修复某些非默认序列界限值的 pg_dump 输出不正确的问题(Alexey Bashtanov)
变更
修复 pg_dump 对 STATISTICS 对象处理不当的问题(Tom Lane)
扩展统计对象所属的模式在转储目录中标注错误,可能导致按模式选择性恢复时产生错误结果。其所有权也未正确恢复。此外,调整逻辑,将统计对象作为独立对象决定是否转储和恢复,不再将这一决定与其所在表的转储和恢复决定绑定。原来的定义无法适应计划在未来增加的跨表统计功能。
变更
修复错误 CONTEXT 堆栈中 PL/Python 函数名报告不正确的问题(Tom Lane)
嵌套 PL/Python 函数调用(即从另一个 PL/Python 函数通过 SPI 查询到达的调用)内部发生错误时,堆栈跟踪会将内部函数名显示两次,未产生预期结果。此外,嵌套 PL/Python DO 块中的错误在某些平台上可能导致空指针解引用崩溃。
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
允许 contrib/auto_explain 的 log_min_duration 设置最大达到 INT_MAX,即约 24 天,而非 35 分钟(Tom Lane)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
变更
将多个 GUC 变量标记为 PGDLLIMPORT,以便将扩展模块移植到 Windows(Metin Doslu)
“同一变更”有完整对应证据;“相关提交”可能包含多个独立事项、部分回补或后续调整,各版本说明分别保留。
试试其他关键词,或。
对比以 PostgreSQL 发行说明为依据,汇总起始版本之后、目标版本及之前的变更,支持同一大版本内的小版本更新,以及跨大版本升级。跨大版本时,旧分支的维护记录只纳入到下一大版本首次发布之日,所有记录均不晚于目标版本的发布日期。大版本名称(如 18)指首个正式版本(18.0);测试版与开发快照会单独标注。
条目正文来自本站中文手册,版本清单、条目覆盖与提交依据逐一核对上游英文原文。每条变更保留完整说明与原文链接;分类用于辅助浏览,具体影响、适用条件与升级操作请阅读条目正文和各版本的升级说明。
同一修复可能回补到多个版本分支。对比会保守合并可确认相同的条目,并保留各分支完整说明;已知由起始版本包含的修复会排除。一条说明包含多个独立修复时,只有全部已包含才排除。大版本新功能不因与旧版补丁存在提交关联而合并,不能确认相同的条目继续保留。这是发行说明的累计差异,不能覆盖二进制程序之间的每一处代码变化。
CVE 独立依据 PostgreSQL 官方安全公告与漏洞记录计算:起始版本受影响、目标版本已修复或不受影响的漏洞才计入,按编号去重。目标版本仍受影响的漏洞另行提示;安全变更条数与 CVE 数量分别统计。
交互参考 pgversions.com 与 pgversionreport,内容来自 PostgreSQL 发行说明。更多历史资料见发行说明归档。