文档版本比较
POSTGRESQL · VERSION COMPARE
PostgreSQL 10.3 发布变化
此版本的完整功能、修复与兼容性说明,以及其他版本的关联记录。
包括起始版本之后至目标版本的变化。大版本号表示该分支的首个版本。
从数据库输出识别起始版本
完整发布变化
10.3
2018-03-01
10.3stable支持截止 2022-11-10
安全变化
| CVE / 问题 | 严重程度 | 修复版本 | 所选版本状态 |
|---|---|---|---|
| CVE-2018-1058 记录如何配置安装和应用程序,以防范其他用户利用搜索路径发起的特洛伊木马攻击 | 10.3 | 已记录修复 |
PostgreSQL 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 设置
变更
避免在 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 引用时并发更新重新检查的错误行为
变更
修复子计划中存在 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 的问题
变更
修复 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 输出不正确的问题
变更
修复某些非默认序列界限值的 pg_dump 输出不正确的问题(Alexey Bashtanov)
问题修复修复 pg_dump 对 STATISTICS 对象处理不当的问题
变更
修复 pg_dump 对 STATISTICS 对象处理不当的问题(Tom Lane)
扩展统计对象所属的模式在转储目录中标注错误,可能导致按模式选择性恢复时产生错误结果。其所有权也未正确恢复。此外,调整逻辑,将统计对象作为独立对象决定是否转储和恢复,不再将这一决定与其所在表的转储和恢复决定绑定。原来的定义无法适应计划在未来增加的跨表统计功能。
问题修复修复错误 CONTEXT 堆栈中 PL/Python 函数名报告不正确的问题
变更
修复错误 CONTEXT 堆栈中 PL/Python 函数名报告不正确的问题(Tom Lane)
嵌套 PL/Python 函数调用(即从另一个 PL/Python 函数通过 SPI 查询到达的调用)内部发生错误时,堆栈跟踪会将内部函数名显示两次,未产生预期结果。此外,嵌套 PL/Python DO 块中的错误在某些平台上可能导致空指针解引用崩溃。
改进允许 contrib/auto_explain 的 log_min_duration 设置最大达到 INT_MAX,即约 24 天,而非 35 分钟
变更
允许 contrib/auto_explain 的 log_min_duration 设置最大达到 INT_MAX,即约 24 天,而非 35 分钟(Tom Lane)
关联记录 (4)
- 相同变化PostgreSQL 9.6.8 · 允许 contrib/auto_explain 的 log_min_duration 设置范围达到 INT_MAX,即约 24 天而不是 35 分钟
- 相同变化PostgreSQL 9.5.12 · 允许 contrib/auto_explain 的 log_min_duration 设置范围达到 INT_MAX,即约 24 天而不是 35 分钟
- 相同变化PostgreSQL 9.4.17 · 允许 contrib/auto_explain 的 log_min_duration 设置范围达到 INT_MAX,即约 24 天而不是 35 分钟
- 相同变化PostgreSQL 9.3.22 · 允许 contrib/auto_explain 的 log_min_duration 设置范围达到 INT_MAX,即约 24 天而不是 35 分钟
改进将多个 GUC 变量标记为 PGDLLIMPORT,以便将扩展模块移植到 Windows
变更
将多个 GUC 变量标记为 PGDLLIMPORT,以便将扩展模块移植到 Windows(Metin Doslu)
没有匹配的变化
尝试其他关键词,或 .
如何生成比较结果?
比较依据起始版本之后至目标版本的 PostgreSQL 发布说明。经核实的回补重复项会谨慎合并,保留每条原始说明;相关提交可能涉及独立变化,仍作为不同记录保留。
发布快照: 2026-09-26 · 安全快照: 2026-09-26
内容来自 PostgreSQL 发布说明。交互方式参考 pgversions.com 与 pgversionreport.