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

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

文档版本对比

POSTGRESQL · VERSION COMPARE

PostgreSQL 9.5 的版本变更

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

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

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

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

本次发布的全部变更

9.5

2016-01-07

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

9.5.0 历史版本维护截止 2021-02-11

PostgreSQL 9.5

升级与兼容性说明

希望从任何之前的版本迁移数据的用户,需要使用pg_dumpall进行转储/恢复,或使用pg_upgrade。

版本 9.5 包含许多可能影响与以前版本兼容性的变更。请注意以下不兼容之处:

兼容性变化调整操作符优先级以符合 SQL 标准

兼容性

调整操作符优先级以符合 SQL 标准(Tom Lane)

<=、>= 和 <> 的优先级已降低到与 <、> 和 = 相同。IS 测试(例如 x IS NULL)的优先级已降低到恰好位于这六个比较操作符之下。此外,以 NOT 开头的多关键字操作符现在具有其基础操作符的优先级(例如 NOT BETWEEN 现在与 BETWEEN 优先级相同),而以前它们的优先级并不一致:对左操作数表现得像 NOT,对右操作数表现得像其基础操作符。新的配置参数operator_precedence_warning可以启用,以就在这些优先级变更导致不同解析选择的查询发出警告。

兼容性变化把pg_ctl的默认关闭模式从 smart 改为 fast

兼容性

把pg_ctl的默认关闭模式从 smart 改为 fast(Bruce Momjian)

这意味着默认行为将是强制取消现有的数据库会话,而不是简单地等待它们退出。

兼容性变化在 PL/pgSQL 赋值中使用赋值转换行为进行数据类型转换,而不是经由文本往返转换

兼容性

在 PL/pgSQL 赋值中使用赋值转换行为进行数据类型转换,而不是经由文本往返转换(Tom Lane)

此变更使布尔值到字符串的转换产生 true 或 false,而不是 t 或 f。其他类型转换可能在比以前更多的情况下成功;例如,把数值 3.9 赋给整数变量现在会赋值 4,而不是失败。如果没有为特定的源类型和目标类型定义赋值级转换,PL/pgSQL 将回退到旧的 I/O 转换行为。

兼容性变化允许服务器命令行选项中的字符用反斜杠转义

兼容性

允许服务器命令行选项中的字符用反斜杠转义(Andres Freund)

以前,选项字符串中的空格总是分隔选项,因此无法在选项值中包含空格。现在要在选项值中包含反斜杠,需要写成 \\。

兼容性变化把 GSSAPI 的 include_realm 参数默认值改为 1,因此默认情况下不会从 GSS 或 SSPI 主体名中移除领域(realm)

兼容性

把 GSSAPI 的 include_realm 参数默认值改为 1,因此默认情况下不会从 GSS 或 SSPI 主体名中移除领域(realm)(Stephen Frost)

兼容性变化用min_wal_size和max_wal_size替换配置参数 checkpoint_segments

兼容性

用min_wal_size和max_wal_size替换配置参数 checkpoint_segments(Heikki Linnakangas)

如果你以前调整过 checkpoint_segments,以下公式可给出近似等效的设置:

max_wal_size = (3 * checkpoint_segments) * 16MB

注意,max_wal_size 的默认设置比过去 checkpoint_segments 的默认值高得多,因此可能不再需要调整它。

关联记录(1)

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

兼容性变化通过新的环境变量 PG_OOM_ADJUST_FILE 和 PG_OOM_ADJUST_VALUE 控制 Linux 的 OOM killer,而不是编译时选项 LINUX_OOM_SCORE_ADJ 和 LINUX_OOM_ADJ

兼容性

通过新的环境变量 PG_OOM_ADJUST_FILE 和 PG_OOM_ADJUST_VALUE 控制 Linux 的 OOM killer,而不是编译时选项 LINUX_OOM_SCORE_ADJ 和 LINUX_OOM_ADJ(Gurjeet Singh)

关联记录(1)

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

兼容性变化停用服务器配置参数 ssl_renegotiation_limit,它在以前的版本中已被弃用

兼容性

停用服务器配置参数 ssl_renegotiation_limit,它在以前的版本中已被弃用(Andres Freund)

虽然 SSL 重协商在理论上是个好主意,但它引发的 bug 之多,使它在实践中被认为弊大于利,而且相关标准的未来版本将移除它。因此我们已从 PostgreSQL 中移除了对它的支持。ssl_renegotiation_limit 参数仍然存在,但只能设置为零(禁用)。它也不再被写入文档。

兼容性变化移除服务器配置参数 autocommit,它此前已被弃用且不起作用

兼容性

移除服务器配置参数 autocommit,它此前已被弃用且不起作用(Tom Lane)

兼容性变化移除 pg_authid 系统目录的 rolcatupdate 字段,因为它毫无用处

兼容性

移除 pg_authid 系统目录的 rolcatupdate 字段,因为它毫无用处(Adam Brightwell)

兼容性变化当没有有效值时,pg_stat_replication 系统视图的 sent 字段现在为 NULL 而不是零

兼容性

当没有有效值时,pg_stat_replication 系统视图的 sent 字段现在为 NULL 而不是零(Magnus Hagander)

兼容性变化允许 json 和 jsonb 数组提取操作符接受负数下标,它们从 JSON 数组末尾开始计数

兼容性

允许 json 和 jsonb 数组提取操作符接受负数下标,它们从 JSON 数组末尾开始计数(Peter Geoghegan、Andrew Dunstan)

以前,这些操作符对负数下标返回 NULL。

新功能添加块范围索引(BRIN)

服务器 / 索引

添加块范围索引(BRIN)(Álvaro Herrera)

BRIN 索引只为堆块范围存储摘要数据(如最小值和最大值)。因此它们非常紧凑且更新成本低;但如果数据是自然聚簇的,它们仍能显著加速搜索。

新功能允许查询使用 GiST 索引对边界框索引的对象(多边形、圆)执行精确的距离过滤

服务器 / 索引

允许查询使用 GiST 索引对边界框索引的对象(多边形、圆)执行精确的距离过滤(Alexander Korotkov、Heikki Linnakangas)

以前,要利用此类索引,必须使用子查询选取大量按边界框距离排序的行,然后再用更精确的距离计算对结果进一步过滤。

新功能允许 GiST 索引执行仅索引扫描

服务器 / 索引

允许 GiST 索引执行仅索引扫描(Anastasia Lubennikova、Heikki Linnakangas、Andreas Karlsson)

新功能添加配置参数gin_pending_list_limit来控制 GIN 待处理列表的大小

服务器 / 索引

添加配置参数gin_pending_list_limit来控制 GIN 待处理列表的大小(Fujii Masao)

该值也可以按索引设置为索引存储参数。以前,待处理列表的大小由work_mem控制,这很不方便,因为 work_mem 的合适值对此用途往往太大了。

新功能在创建哈希索引期间发出警告,因为它们不是崩溃安全的

服务器 / 索引

在创建哈希索引期间发出警告,因为它们不是崩溃安全的(Bruce Momjian)

性能改进通过“缩写”键提高 varchar、text 和 numeric 字段的排序速度

服务器 / 一般性能

通过“缩写”键提高 varchar、text 和 numeric 字段的排序速度(Peter Geoghegan、Andrew Gierth、Robert Haas)

性能改进扩展允许由内联的、非 SQL 可调用的比较函数执行排序的基础设施,使其覆盖 CREATE INDEX、REINDEX 和 CLUSTER

服务器 / 一般性能

扩展允许由内联的、非 SQL 可调用的比较函数执行排序的基础设施,使其覆盖 CREATE INDEX、REINDEX 和 CLUSTER(Peter Geoghegan)

性能改进改进哈希连接的性能

服务器 / 一般性能

改进哈希连接的性能(Tomas Vondra、Robert Haas)

性能改进改进共享缓冲区替换的并发性

服务器 / 一般性能

改进共享缓冲区替换的并发性(Robert Haas、Amit Kapila、Andres Freund)

性能改进减少索引扫描期间的页锁和引脚数量

服务器 / 一般性能

减少索引扫描期间的页锁和引脚数量(Kevin Grittner)

其主要好处是让索引清理较少被阻塞。

性能改进使按后端的缓冲区引脚跟踪更省内存

服务器 / 一般性能

使按后端的缓冲区引脚跟踪更省内存(Andres Freund)

性能改进改进锁的可伸缩性

服务器 / 一般性能

改进锁的可伸缩性(Andres Freund)

这尤其解决了在多 CPU 插槽系统上运行时的可伸缩性问题。

性能改进允许优化器移除对左连接子查询的不必要引用

服务器 / 一般性能

允许优化器移除对左连接子查询的不必要引用(David Rowley)

性能改进在合适的情况下,允许把查询限制下推到带窗口函数的子查询中

服务器 / 一般性能

在合适的情况下,允许把查询限制下推到带窗口函数的子查询中(David Rowley)

性能改进如果非防泄漏函数不接收任何视图输出列,则允许把它下推到安全屏障视图中

服务器 / 一般性能

如果非防泄漏函数不接收任何视图输出列,则允许把它下推到安全屏障视图中(Dean Rasheed)

性能改进当 WHERE 中出现匹配的函数调用时,让规划器使用从布尔返回函数表达式索引获得的统计信息

服务器 / 一般性能

当 WHERE 中出现匹配的函数调用时,让规划器使用从布尔返回函数表达式索引获得的统计信息(Tom Lane)

性能改进即使列的数据类型缺少相等函数,也让 ANALYZE 计算基本统计信息(空值比例和平均列宽)

服务器 / 一般性能

即使列的数据类型缺少相等函数,也让 ANALYZE 计算基本统计信息(空值比例和平均列宽)(Oleksandr Shulgin)

性能改进加速 CRC(循环冗余校验)计算并切换到 CRC-32C

服务器 / 一般性能

加速 CRC(循环冗余校验)计算并切换到 CRC-32C(Abhijit Menon-Sen、Heikki Linnakangas)

性能改进改进位图索引扫描的性能

服务器 / 一般性能

改进位图索引扫描的性能(Teodor Sigaev、Tom Lane)

性能改进通过避免不必要的内存复制加速 CREATE INDEX

服务器 / 一般性能

通过避免不必要的内存复制加速 CREATE INDEX(Robert Haas)

性能改进增加缓冲区映射的分区数

服务器 / 一般性能

增加缓冲区映射的分区数(Amit Kapila、Andres Freund、Robert Haas)

这提高了高并发负载下的性能。

新功能通过新的 log_autovacuum_min_duration 存储参数添加按表的自动清理日志控制

服务器 / 监控

通过新的 log_autovacuum_min_duration 存储参数添加按表的自动清理日志控制(Michael Paquier)

新功能添加新的配置参数cluster_name

服务器 / 监控

添加新的配置参数cluster_name(Thomas Munro)

这个字符串通常在 postgresql.conf 中设置,让客户端能够识别集群。该名称还会出现在所有服务器进程的进程标题中,便于识别属于同一集群的进程。

新功能防止非超级用户在连接启动时更改log_disconnections

服务器 / 监控

防止非超级用户在连接启动时更改log_disconnections(Fujii Masao)

新功能检查 SSL 服务器证书中的“使用者可选名称(Subject Alternative Names)”(如果存在)

服务器 / SSL

检查 SSL 服务器证书中的“使用者可选名称(Subject Alternative Names)”(如果存在)(Alexey Klyukin)

当它们存在时,这将取代对证书“通用名称(Common Name)”的检查。

新功能添加系统视图 pg_stat_ssl,用于报告 SSL 连接信息

服务器 / SSL

添加系统视图 pg_stat_ssl,用于报告 SSL 连接信息(Magnus Hagander)

新功能添加以与实现无关的方式返回 SSL 信息的 libpq 函数

服务器 / SSL

添加以与实现无关的方式返回 SSL 信息的 libpq 函数(Heikki Linnakangas)

虽然 PQgetssl() 仍可用于调用 OpenSSL 函数,但它现在被视为已弃用,因为未来版本的 libpq 可能支持其他 SSL 实现。在可能的情况下,请使用新函数 PQsslAttribute()、PQsslAttributeNames() 和 PQsslInUse(),以与 SSL 实现无关的方式获取 SSL 信息。

新功能使 libpq 遵循任何 OpenSSL 线程回调

服务器 / SSL

使 libpq 遵循任何 OpenSSL 线程回调(Jan Urbanski)

以前它们会被覆盖。

新功能用min_wal_size和max_wal_size替换配置参数 checkpoint_segments

服务器 / 服务器配置

用min_wal_size和max_wal_size替换配置参数 checkpoint_segments(Heikki Linnakangas)

此变更允许分配大量 WAL 文件,而在不再需要之后不必保留它们。因此 max_wal_size 的默认值被设置为 1GB,比过去 checkpoint_segments 的默认值大得多。另请注意,备库会执行重做点以尝试把 WAL 空间消耗限制在 max_wal_size 以内;以前它们完全不理会 checkpoint_segments。

关联记录(1)

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

新功能通过新的环境变量 PG_OOM_ADJUST_FILE 和 PG_OOM_ADJUST_VALUE 控制 Linux 的 OOM killer

服务器 / 服务器配置

通过新的环境变量 PG_OOM_ADJUST_FILE 和 PG_OOM_ADJUST_VALUE 控制 Linux 的 OOM killer(Gurjeet Singh)

以前的 OOM 控制基础设施涉及编译时选项 LINUX_OOM_SCORE_ADJ 和 LINUX_OOM_ADJ,它们不再受支持。新的行为在所有构建中都可用。

关联记录(1)

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

新功能当配置参数track_commit_timestamp启用时,允许记录事务提交时间戳

服务器 / 服务器配置

当配置参数track_commit_timestamp启用时,允许记录事务提交时间戳(Álvaro Herrera、Petr Jelínek)

时间戳信息可以通过函数 pg_xact_commit_timestamp() 和 pg_last_committed_xact() 访问。

新功能允许通过 ALTER ROLE SET 设置local_preload_libraries

服务器 / 服务器配置

允许通过 ALTER ROLE SET 设置local_preload_libraries(Peter Eisentraut、Kyotaro Horiguchi)

新功能允许自动清理工作进程在运行期间响应配置参数更改

服务器 / 服务器配置

允许自动清理工作进程在运行期间响应配置参数更改(Michael Paquier)

新功能把配置参数debug_assertions设为只读

服务器 / 服务器配置

把配置参数debug_assertions设为只读(Andres Freund)

这意味着,如果在编译时启用了断言,就无法再关闭它们,从而允许更高效的代码优化。此变更还移除了 postgres 的 -A 选项。

新功能允许在不生效的系统上设置effective_io_concurrency

服务器 / 服务器配置

允许在不生效的系统上设置effective_io_concurrency(Peter Eisentraut)

新功能添加系统视图 pg_file_settings,用于显示服务器配置文件的内容

服务器 / 服务器配置

添加系统视图 pg_file_settings,用于显示服务器配置文件的内容(Sawada Masahiko)

新功能向系统视图 pg_settings 添加 pending_restart,用于指示已做出更改但在数据库重启之前不会生效

服务器 / 服务器配置

向系统视图 pg_settings 添加 pending_restart,用于指示已做出更改但在数据库重启之前不会生效(Peter Eisentraut)

新功能允许用 ALTER SYSTEM RESET 重置 ALTER SYSTEM 的值

服务器 / 服务器配置

允许用 ALTER SYSTEM RESET 重置 ALTER SYSTEM 的值(Vik Fearing)

此命令会从 postgresql.auto.conf 中移除指定的设置。

新功能创建跟踪复制进度的机制,包括在逻辑复制期间识别单条变更来源的方法

复制与恢复

创建跟踪复制进度的机制,包括在逻辑复制期间识别单条变更来源的方法(Andres Freund)

这在实现复制解决方案时很有帮助。

新功能重做多事务提交日志的截断逻辑,使其正确记录 WAL

复制与恢复

重做多事务提交日志的截断逻辑,使其正确记录 WAL(Andres Freund)

这使事情变得明显更简单、更健壮。

新功能添加 recovery.conf 参数 recovery_target_action 来控制恢复之后的动作

复制与恢复

添加 recovery.conf 参数 recovery_target_action 来控制恢复之后的动作(Petr Jelínek)

它取代了旧的参数 pause_at_recovery_target。

新功能为archive_mode添加新值 always,允许备库始终归档收到的 WAL 文件

复制与恢复

为archive_mode添加新值 always,允许备库始终归档收到的 WAL 文件(Fujii Masao)

新功能添加配置参数wal_retrieve_retry_interval,控制在失败后重试读取 WAL 的间隔

复制与恢复

添加配置参数wal_retrieve_retry_interval,控制在失败后重试读取 WAL 的间隔(Alexey Vasiliev、Michael Paquier)

这对温备库特别有用。

新功能允许压缩存储在 WAL 中的全页映像

复制与恢复

允许压缩存储在 WAL 中的全页映像(Rahila Syed、Michael Paquier)

此特性可减少 WAL 量,代价是 WAL 记录和 WAL 重放消耗更多 CPU 时间。它由新的配置参数wal_compression控制,目前默认关闭。

新功能在备库提升期间为 WAL 文件加上 .partial 后缀后归档

复制与恢复

在备库提升期间为 WAL 文件加上 .partial 后缀后归档(Heikki Linnakangas)

新功能添加配置参数log_replication_commands来记录复制命令

复制与恢复

添加配置参数log_replication_commands来记录复制命令(Fujii Masao)

默认情况下,复制命令(例如 IDENTIFY_SYSTEM)不会被记录,即使log_statement被设置为 all。

新功能在 pg_replication_slots 中报告持有复制槽的进程

复制与恢复

在 pg_replication_slots 中报告持有复制槽的进程(Craig Ringer)

新增的输出列为 active_pid。

新功能允许 recovery.conf 的 primary_conninfo 设置使用连接 URI(例如 postgres://)

复制与恢复

允许 recovery.conf 的 primary_conninfo 设置使用连接 URI(例如 postgres://)(Alexander Shulgin)

新功能允许把会产生约束冲突的 INSERT 转换为 UPDATE 或忽略

查询

允许把会产生约束冲突的 INSERT 转换为 UPDATE 或忽略(Peter Geoghegan、Heikki Linnakangas、Andres Freund)

语法为 INSERT ... ON CONFLICT DO NOTHING/UPDATE。这是流行的 UPSERT 命令的 Postgres 实现。

关联记录(1)

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

新功能添加 GROUP BY 分析特性 GROUPING SETS、CUBE 和 ROLLUP

查询

添加 GROUP BY 分析特性 GROUPING SETS、CUBE 和 ROLLUP(Andrew Gierth、Atri Sharma)

新功能允许在 UPDATE 中用单个子 SELECT 的结果设置多个目标列

查询

允许在 UPDATE 中用单个子 SELECT 的结果设置多个目标列(Tom Lane)

这通过语法 UPDATE tab SET (col1, col2, ...) = (SELECT ...) 完成。

新功能为 SELECT 添加选项 SKIP LOCKED,用于跳过已锁定的行

查询

为 SELECT 添加选项 SKIP LOCKED,用于跳过已锁定的行(Thomas Munro)

与 NOWAIT 不同,它不会对已锁定的行抛出错误。

新功能为 SELECT 添加选项 TABLESAMPLE,用于返回表的子集

查询

为 SELECT 添加选项 TABLESAMPLE,用于返回表的子集(Petr Jelínek)

此特性支持 SQL 标准的表采样方法。此外,还为用户自定义表采样方法提供了机制。

新功能为拼错的列名建议可能的匹配

查询

为拼错的列名建议可能的匹配(Peter Geoghegan、Robert Haas)

新功能在 EXPLAIN 输出中添加有关排序的更多细节

工具命令

在 EXPLAIN 输出中添加有关排序的更多细节(Marius Timmer、Lukas Kreft、Arne Scheffer)

细节包括 COLLATE、DESC、USING 以及 NULLS FIRST/LAST。

新功能使 VACUUM 记录因引脚(pin)而跳过的页数

工具命令

使 VACUUM 记录因引脚(pin)而跳过的页数(Jim Nasby)

新功能使 TRUNCATE 正确更新 pg_stat* 元组计数器

工具命令

使 TRUNCATE 正确更新 pg_stat* 元组计数器(Alexander Shulgin)

新功能允许 REINDEX 使用 SCHEMA 选项对整个模式重新索引

工具命令 / REINDEX

允许 REINDEX 使用 SCHEMA 选项对整个模式重新索引(Sawada Masahiko)

新功能为 REINDEX 添加 VERBOSE 选项

工具命令 / REINDEX

为 REINDEX 添加 VERBOSE 选项(Sawada Masahiko)

新功能防止 REINDEX DATABASE 和 SCHEMA 输出对象名称,除非使用 VERBOSE

工具命令 / REINDEX

防止 REINDEX DATABASE 和 SCHEMA 输出对象名称,除非使用 VERBOSE(Simon Riggs)

新功能从 REINDEX 中移除过时的 FORCE 选项

工具命令 / REINDEX

从 REINDEX 中移除过时的 FORCE 选项(Fujii Masao)

新功能添加行级安全性控制

对象操作

添加行级安全性控制(Craig Ringer、KaiGai Kohei、Adam Brightwell、Dean Rasheed、Stephen Frost)

此特性允许逐行控制哪些用户可以添加、修改甚至看到表中的行。它由新命令 CREATE/ALTER/DROP POLICY 以及 ALTER TABLE ... ENABLE/DISABLE ROW SECURITY 控制。

新功能允许在创建表之后用 ALTER TABLE ... SET LOGGED / UNLOGGED 更改其 WAL 记录状态

对象操作

允许在创建表之后用 ALTER TABLE ... SET LOGGED / UNLOGGED 更改其 WAL 记录状态(Fabrízio de Royes Mello)

新功能为 CREATE TABLE AS、CREATE INDEX、CREATE SEQUENCE 和 CREATE MATERIALIZED VIEW 添加 IF NOT EXISTS 子句

对象操作

为 CREATE TABLE AS、CREATE INDEX、CREATE SEQUENCE 和 CREATE MATERIALIZED VIEW 添加 IF NOT EXISTS 子句(Fabrízio de Royes Mello)

新功能为 ALTER TABLE ... RENAME CONSTRAINT 添加对 IF EXISTS 的支持

对象操作

为 ALTER TABLE ... RENAME CONSTRAINT 添加对 IF EXISTS 的支持(Bruce Momjian)

新功能允许一些 DDL 命令接受 CURRENT_USER 或 SESSION_USER(即当前用户或会话用户)来代替特定的用户名

对象操作

允许一些 DDL 命令接受 CURRENT_USER 或 SESSION_USER(即当前用户或会话用户)来代替特定的用户名(Kyotaro Horiguchi、Álvaro Herrera)

ALTER USER、ALTER GROUP、ALTER ROLE、GRANT以及 ALTER object OWNER TO 命令现在支持此特性。

新功能支持对域约束的注释

对象操作

支持对域约束的注释(Álvaro Herrera)

新功能降低一些创建/更改触发器和外键命令的锁定级别

对象操作

降低一些创建/更改触发器和外键命令的锁定级别(Simon Riggs、Andreas Karlsson)

新功能允许对目标表具有 INSERT 权限的用户执行 LOCK TABLE ... ROW EXCLUSIVE MODE

对象操作

允许对目标表具有 INSERT 权限的用户执行 LOCK TABLE ... ROW EXCLUSIVE MODE(Stephen Frost)

以前此命令要求 UPDATE、DELETE 或 TRUNCATE 权限。

新功能按名称顺序应用表和域的 CHECK 约束

对象操作

按名称顺序应用表和域的 CHECK 约束(Tom Lane)

以前的顺序是不确定的。

新功能允许 CREATE/ALTER DATABASE 操纵 datistemplate 和 datallowconn

对象操作

允许 CREATE/ALTER DATABASE 操纵 datistemplate 和 datallowconn(Vik Fearing)

这样无需手动修改 pg_database 系统目录即可更改这些按数据库的设置。

新功能添加对IMPORT FOREIGN SCHEMA的支持

对象操作 / 外部表

添加对IMPORT FOREIGN SCHEMA的支持(Ronan Dunklau、Michael Paquier、Tom Lane)

此命令允许自动创建与远程服务器上现有表结构匹配的本地外部表。

新功能允许在外部表上放置 CHECK 约束

对象操作 / 外部表

允许在外部表上放置 CHECK 约束(Shigeru Hanada、Etsuro Fujita)

此类约束被假定在远程服务器上执行,本地并不执行。但在查询优化(例如约束排除)中假定它们成立。

新功能允许外部表参与继承

对象操作 / 外部表

允许外部表参与继承(Shigeru Hanada、Etsuro Fujita)

为使其自然工作,现在允许外部表带有标记为 NOT VALID 的检查约束,并允许设置存储和 OID 特性,尽管这些操作对外部表实际上是空操作。

新功能允许外部数据包装器和自定义扫描实现连接下推

对象操作 / 外部表

允许外部数据包装器和自定义扫描实现连接下推(KaiGai Kohei)

新功能只要安装了 ddl_command_end 事件触发器,就会捕获 DDL 活动的细节供其检查

对象操作 / 事件触发器

只要安装了 ddl_command_end 事件触发器,就会捕获 DDL 活动的细节供其检查(Álvaro Herrera)

这些信息可以通过集合返回函数 pg_event_trigger_ddl_commands() 获取;如果该函数提供的细节不够,也可以通过检查 C 数据结构获取。

新功能允许对由 ALTER TABLE 引起的表重写设置事件触发器

对象操作 / 事件触发器

允许对由 ALTER TABLE 引起的表重写设置事件触发器(Dimitri Fontaine)

新功能为数据库级的 COMMENT、SECURITY LABEL 和 GRANT/REVOKE 添加事件触发器支持

对象操作 / 事件触发器

为数据库级的 COMMENT、SECURITY LABEL 和 GRANT/REVOKE 添加事件触发器支持(Álvaro Herrera)

新功能向 pg_event_trigger_dropped_objects 的输出添加列

对象操作 / 事件触发器

向 pg_event_trigger_dropped_objects 的输出添加列(Álvaro Herrera)

这使删除操作的处理更简单。

新功能允许 xml 数据类型接受空或全空白的内容值

数据类型

允许 xml 数据类型接受空或全空白的内容值(Peter Eisentraut)

这是 SQL/XML 规范的要求。

新功能允许 macaddr 使用 xxxx-xxxx-xxxx 格式输入

数据类型

允许 macaddr 使用 xxxx-xxxx-xxxx 格式输入(Herwin Weststrate)

新功能禁止对 interval 同时指定精度和字段说明的非 SQL 标准语法

数据类型

禁止对 interval 同时指定精度和字段说明的非 SQL 标准语法(Bruce Momjian)

按照标准,此类类型说明应写成例如 INTERVAL MINUTE TO SECOND(2)。PostgreSQL 以前允许写成 INTERVAL(2) MINUTE TO SECOND,但现在必须按标准方式书写。

新功能为 inet/cidr 操作符添加选择率估计器,并改进文本检索函数的估计器

数据类型

为 inet/cidr 操作符添加选择率估计器,并改进文本检索函数的估计器(Emre Hasegeli、Tom Lane)

新功能添加数据类型 regrole 和 regnamespace,以简化角色或命名空间 OID 的输入与美化打印

数据类型

添加数据类型 regrole 和 regnamespace,以简化角色或命名空间 OID 的输入与美化打印(Kyotaro Horiguchi)

新功能添加 jsonb 函数 jsonb_set() 和 jsonb_pretty()

数据类型 / JSON

添加 jsonb 函数 jsonb_set() 和 jsonb_pretty()(Dmitry Dolgov、Andrew Dunstan、Petr Jelínek)

关联记录(1)

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

新功能添加 jsonb 生成函数 to_jsonb()、jsonb_object()、jsonb_build_object()、jsonb_build_array()、jsonb_agg() 和 jsonb_object_agg()

数据类型 / JSON

添加 jsonb 生成函数 to_jsonb()、jsonb_object()、jsonb_build_object()、jsonb_build_array()、jsonb_agg() 和 jsonb_object_agg()(Andrew Dunstan)

json 类型此前已有等效函数。

新功能降低 json 与 jsonb 之间相互转换的转换要求

数据类型 / JSON

降低 json 与 jsonb 之间相互转换的转换要求(Tom Lane)

新功能允许从 jsonb 文档中减去text、text 数组和 integer 值

数据类型 / JSON

允许从 jsonb 文档中减去text、text 数组和 integer 值(Dmitry Dolgov、Andrew Dunstan)

新功能添加 jsonb 的 || 操作符

数据类型 / JSON

添加 jsonb 的 || 操作符(Dmitry Dolgov、Andrew Dunstan)

关联记录(1)

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

新功能添加 json_strip_nulls() 和 jsonb_strip_nulls() 函数,用于从文档中移除 JSON 空值

数据类型 / JSON

添加 json_strip_nulls() 和 jsonb_strip_nulls() 函数,用于从文档中移除 JSON 空值(Andrew Dunstan)

新功能为 numeric 值添加 generate_series()

函数

为 numeric 值添加 generate_series()(Plato Malugin)

新功能允许 array_agg() 和 ARRAY() 接受数组作为输入

函数

允许 array_agg() 和 ARRAY() 接受数组作为输入(Ali Akbar、Tom Lane)

新功能添加函数 array_position() 和 array_positions(),用于返回数组值的下标

函数

添加函数 array_position() 和 array_positions(),用于返回数组值的下标(Pavel Stehule)

新功能添加 point 到 polygon 的距离操作符 <->

函数

添加 point 到 polygon 的距离操作符 <->(Alexander Korotkov)

新功能允许在 SIMILAR TO 和 SUBSTRING 中使用多字节字符作为转义符

函数

允许在 SIMILAR TO 和 SUBSTRING 中使用多字节字符作为转义符(Jeff Davis)

以前只允许单字节字符作为转义符。

新功能添加 width_bucket() 的一个变体,支持任何可排序的数据类型和非均匀的桶宽

函数

添加 width_bucket() 的一个变体,支持任何可排序的数据类型和非均匀的桶宽(Petr Jelínek)

新功能为 pg_read_file() 及相关函数添加可选的 missing_ok 参数

函数

为 pg_read_file() 及相关函数添加可选的 missing_ok 参数(Michael Paquier、Heikki Linnakangas)

新功能允许在函数调用中用 => 指定命名参数

函数

允许在函数调用中用 => 指定命名参数(Pavel Stehule)

以前只能使用 :=。这要求移除 => 作为用户定义操作符的可能。自 PostgreSQL 9.0 起,创建用户定义的 => 操作符就一直发出警告。

新功能为使用 PostgreSQL 提供的舍入函数的平台添加符合 POSIX 的舍入

函数

为使用 PostgreSQL 提供的舍入函数的平台添加符合 POSIX 的舍入(Pedro Gimeno Fortea)

新功能添加函数 pg_get_object_address()(返回唯一标识对象的 OID)和函数 pg_identify_object_as_address()(基于 OID 返回对象信息)

函数 / 系统信息函数和视图

添加函数 pg_get_object_address()(返回唯一标识对象的 OID)和函数 pg_identify_object_as_address()(基于 OID 返回对象信息)(Álvaro Herrera)

新功能放宽在 pg_stat_activity 中查看查询、执行 pg_cancel_backend() 和执行 pg_terminate_backend() 的安全检查

函数 / 系统信息函数和视图

放宽在 pg_stat_activity 中查看查询、执行 pg_cancel_backend() 和执行 pg_terminate_backend() 的安全检查(Stephen Frost)

以前,只有拥有目标会话的那个特定角色才能执行这些操作;现在,是该角色的成员即可。

新功能添加 pg_stat_get_snapshot_timestamp(),用于输出统计快照的时间戳

函数 / 系统信息函数和视图

添加 pg_stat_get_snapshot_timestamp(),用于输出统计快照的时间戳(Matt Kelly)

它表示快照文件最后一次写入文件系统的时间。

新功能添加 mxid_age(),用于计算多事务 ID 的年龄

函数 / 系统信息函数和视图

添加 mxid_age(),用于计算多事务 ID 的年龄(Bruce Momjian)

新功能为 inet/cidr 数据类型添加 min()/max() 聚合

函数 / 聚合

为 inet/cidr 数据类型添加 min()/max() 聚合(Haribabu Kommi)

新功能在支持的平台上,使用 128 位整数作为某些聚合函数的累加器

函数 / 聚合

在支持的平台上,使用 128 位整数作为某些聚合函数的累加器(Andreas Karlsson)

新功能改进PL/Python对组合类型的支持

服务器端语言

改进PL/Python对组合类型的支持(Ed Behn、Ronan Dunklau)

这允许 PL/Python 函数返回组合类型的数组。

新功能降低PL/Python浮点值转换的精度损失

服务器端语言

降低PL/Python浮点值转换的精度损失(Marko Kreen)

新功能允许指定 SQL 数据类型与过程语言数据类型之间的转换例程

服务器端语言

允许指定 SQL 数据类型与过程语言数据类型之间的转换例程(Peter Eisentraut)

此变更添加了新命令 CREATE/DROP TRANSFORM。它还添加了hstore和ltree类型与PL/Perl和PL/Python之间的可选转换。

性能改进改进PL/pgSQL的数组性能

服务器端语言 / PL/pgSQL Server-Side Language

改进PL/pgSQL的数组性能(Tom Lane)

新功能在 PL/pgSQL 中添加 ASSERT 语句

服务器端语言 / PL/pgSQL Server-Side Language

在 PL/pgSQL 中添加 ASSERT 语句(Pavel Stehule)

新功能允许更多PL/pgSQL关键字用作标识符

服务器端语言 / PL/pgSQL Server-Side Language

允许更多PL/pgSQL关键字用作标识符(Tom Lane)

新功能把pg_archivecleanup、pg_test_fsync、pg_test_timing和pg_xlogdump从 contrib 移到 src/bin

客户端应用程序

把pg_archivecleanup、pg_test_fsync、pg_test_timing和pg_xlogdump从 contrib 移到 src/bin(Peter Eisentraut)

这应使这些程序在大多数安装中默认被安装。

新功能添加pg_rewind,它允许在故障回切后重新同步主服务器

客户端应用程序

添加pg_rewind,它允许在故障回切后重新同步主服务器(Heikki Linnakangas)

新功能允许pg_receivexlog管理物理复制槽

客户端应用程序

允许pg_receivexlog管理物理复制槽(Michael Paquier)

这通过新的 --create-slot 和 --drop-slot 选项控制。

新功能允许pg_receivexlog使用新的 --synchronous 选项同步刷写 WAL 到存储

客户端应用程序

允许pg_receivexlog使用新的 --synchronous 选项同步刷写 WAL 到存储(Furuya Osamu、Fujii Masao)

若不使用该选项,WAL 文件只在关闭时被 fsync。

新功能允许vacuumdb使用新的 --jobs 选项并行清理

客户端应用程序

允许vacuumdb使用新的 --jobs 选项并行清理(Dilip Kumar)

新功能在vacuumdb中,当需要多个连接时不再重复提示输入同一密码

客户端应用程序

在vacuumdb中,当需要多个连接时不再重复提示输入同一密码(Haribabu Kommi、Michael Paquier)

新功能为reindexdb添加 --verbose 选项

客户端应用程序

为reindexdb添加 --verbose 选项(Sawada Masahiko)

新功能使pg_basebackup在使用 tar 格式时使用表空间映射文件,以支持 MS Windows 上的符号链接和 100 字符以上的文件路径

客户端应用程序

使pg_basebackup在使用 tar 格式时使用表空间映射文件,以支持 MS Windows 上的符号链接和 100 字符以上的文件路径(Amit Kapila)

新功能为pg_xlogdump添加 --stats 选项,用于显示摘要统计

客户端应用程序

为pg_xlogdump添加 --stats 选项,用于显示摘要统计(Abhijit Menon-Sen)

新功能允许 psql 生成 AsciiDoc 输出

客户端应用程序 / psql

允许 psql 生成 AsciiDoc 输出(Szymon Guz)

新功能为 psql 的 ECHO 变量添加 errors 模式,只显示失败的命令

客户端应用程序 / psql

为 psql 的 ECHO 变量添加 errors 模式,只显示失败的命令(Pavel Stehule)

该行为也可以通过 psql 的 -b 选项选择。

新功能在 psql 的 unicode 线型中提供对列、表头和边框线型的分别控制

客户端应用程序 / psql

在 psql 的 unicode 线型中提供对列、表头和边框线型的分别控制(Pavel Stehule)

支持单线或双线;默认为 single。

新功能在 psql 的 PROMPT 变量中添加新选项 %l,用于显示当前多行语句的行号

客户端应用程序 / psql

在 psql 的 PROMPT 变量中添加新选项 %l,用于显示当前多行语句的行号(Sawada Masahiko)

新功能添加 \pset 选项 pager_min_lines,用于控制分页器的调用

客户端应用程序 / psql

添加 \pset 选项 pager_min_lines,用于控制分页器的调用(Andrew Dunstan)

新功能改进 psql 在决定是否调用分页器时使用的行数统计

客户端应用程序 / psql

改进 psql 在决定是否调用分页器时使用的行数统计(Andrew Dunstan)

新功能如果 --output 或 --log-file 开关指定的文件无法写入,psql 现在会失败

客户端应用程序 / psql

如果 --output 或 --log-file 开关指定的文件无法写入,psql 现在会失败(Tom Lane、Daniel Vérité)

以前在这种情况下它实际上会忽略该开关。

新功能为设置search_path变量添加 psql Tab 补全

客户端应用程序 / psql

为设置search_path变量添加 psql Tab 补全(Jeff Janes)

目前只有第一个模式可以被 Tab 补全。

新功能改进 psql 对触发器和规则的 Tab 补全

客户端应用程序 / psql

改进 psql 对触发器和规则的 Tab 补全(Andreas Karlsson)

新功能为 psql 的 \? 帮助添加 variables 和 options 小节

客户端应用程序 / psql / 反斜线命令

为 psql 的 \? 帮助添加 variables 和 options 小节(Pavel Stehule)

\? variables 显示 psql 的特殊变量,\? options 显示命令行选项。\? commands 显示元命令,这是传统输出,仍为默认。这些帮助显示也可以通过命令行选项 --help=section 获取。

新功能在 psql 的 \db+ 中显示表空间大小

客户端应用程序 / psql / 反斜线命令

在 psql 的 \db+ 中显示表空间大小(Fabrízio de Royes Mello)

新功能在 psql 的 \dT+ 中显示数据类型的拥有者

客户端应用程序 / psql / 反斜线命令

在 psql 的 \dT+ 中显示数据类型的拥有者(Magnus Hagander)

新功能允许 psql 的 \watch 输出 \timing 信息

客户端应用程序 / psql / 反斜线命令

允许 psql 的 \watch 输出 \timing 信息(Fujii Masao)

同时防止 --echo-hidden 回显 \watch 查询,因为这通常是不需要的。

新功能使 psql 的 \sf 和 \ef 命令遵循 ECHO_HIDDEN

客户端应用程序 / psql / 反斜线命令

使 psql 的 \sf 和 \ef 命令遵循 ECHO_HIDDEN(Andrew Dunstan)

新功能改进 psql 对 \set、\unset 和 :variable 名称的 Tab 补全

客户端应用程序 / psql / 反斜线命令

改进 psql 对 \set、\unset 和 :variable 名称的 Tab 补全(Pavel Stehule)

新功能允许在 psql 的 \c 命令中 Tab 补全角色名

客户端应用程序 / psql / 反斜线命令

允许在 psql 的 \c 命令中 Tab 补全角色名(Ian Barwick)

新功能允许 pg_dump 使用 --snapshot 共享另一个会话取得的快照

客户端应用程序 / pg_dump

允许 pg_dump 使用 --snapshot 共享另一个会话取得的快照(Simon Riggs、Michael Paquier)

远程快照必须是由 pg_export_snapshot() 或逻辑复制槽创建所导出的。这可用于在多个 pg_dump 进程之间共享一致的快照。

新功能支持 tar 归档格式中超过 8GB 的表

客户端应用程序 / pg_dump

支持 tar 归档格式中超过 8GB 的表(Tom Lane)

POSIX 的 tar 格式标准不允许 tar 归档的元素超过 8GB,但大多数现代 tar 实现支持一个允许超过该限制的扩展。必要时使用扩展格式,而不是失败。

关联记录(1)

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

新功能使 pg_dump 始终打印服务器和 pg_dump 的版本

客户端应用程序 / pg_dump

使 pg_dump 始终打印服务器和 pg_dump 的版本(Jing Wang)

以前,版本信息只在 --verbose 模式下打印。

新功能从 pg_dump、pg_dumpall 和 pg_restore 中移除早已被忽略的 -i/--ignore-version 选项

客户端应用程序 / pg_dump

从 pg_dump、pg_dumpall 和 pg_restore 中移除早已被忽略的 -i/--ignore-version 选项(Fujii Masao)

新功能支持多个 pg_ctl 的 -o 选项,将其值串联

客户端应用程序 / pg_ctl

支持多个 pg_ctl 的 -o 选项,将其值串联(Bruce Momjian)

关联记录(1)

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

新功能允许在 MS Windows 上控制 pg_ctl 的事件源日志

客户端应用程序 / pg_ctl

允许在 MS Windows 上控制 pg_ctl 的事件源日志(MauMau)

这只控制 pg_ctl,不控制服务器;服务器在 postgresql.conf 中有单独的设置。

新功能如果服务器的监听地址设置为通配值(IPv4 的 0.0.0.0 或 IPv6 的 ::),则通过回环地址连接,而不是尝试按字面使用通配地址

客户端应用程序 / pg_ctl

如果服务器的监听地址设置为通配值(IPv4 的 0.0.0.0 或 IPv6 的 ::),则通过回环地址连接,而不是尝试按字面使用通配地址(Kondo Yuta)

此修复主要影响 Windows,因为在其他平台上 pg_ctl 会优先使用 Unix 域套接字。

关联记录(1)

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

新功能把 pg_upgrade 从 contrib 移到 src/bin

客户端应用程序 / pg_upgrade

把 pg_upgrade 从 contrib 移到 src/bin(Peter Eisentraut)

与此变更相关,先前由 pg_upgrade_support 模块提供的功能已被移入核心服务器。

新功能支持多个 pg_upgrade 的 -o/-O 选项,将其值串联

客户端应用程序 / pg_upgrade

支持多个 pg_upgrade 的 -o/-O 选项,将其值串联(Bruce Momjian)

关联记录(1)

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

新功能改进 pg_upgrade 中的数据库排序规则比较

客户端应用程序 / pg_upgrade

改进 pg_upgrade 中的数据库排序规则比较(Heikki Linnakangas)

新功能移除从 8.3 集群升级的支持

客户端应用程序 / pg_upgrade

移除从 8.3 集群升级的支持(Bruce Momjian)

新功能把 pgbench 从 contrib 移到 src/bin

客户端应用程序 / pgbench

把 pgbench 从 contrib 移到 src/bin(Peter Eisentraut)

BUG 修复修复“excluding connections establishing”(排除连接建立)的 TPS 数值的计算

客户端应用程序 / pgbench

修复“excluding connections establishing”(排除连接建立)的 TPS 数值的计算(Tatsuo Ishii、Fabien Coelho)

每当 pgbench 线程数少于客户端连接数时,连接建立的开销就会被算错。虽然这显然是个 bug,但我们不会把它回移植到 9.5 之前的分支,因为这会使 TPS 数值无法与以前的结果比较。

新功能允许统计超过指定时间的 pgbench 事务

客户端应用程序 / pgbench

允许统计超过指定时间的 pgbench 事务(Fabien Coelho)

这由新的 --latency-limit 选项控制。

新功能允许 pgbench 使用 \setrandom 生成高斯/指数分布

客户端应用程序 / pgbench

允许 pgbench 使用 \setrandom 生成高斯/指数分布(Kondo Mitsumasa、Fabien Coelho)

新功能允许 pgbench 的 \set 命令处理包含多个操作符的算术表达式,并向其支持的操作符集合添加 %(取模)

客户端应用程序 / pgbench

允许 pgbench 的 \set 命令处理包含多个操作符的算术表达式,并向其支持的操作符集合添加 %(取模)(Robert Haas、Fabien Coelho)

新功能简化 WAL 记录格式

源代码

简化 WAL 记录格式(Heikki Linnakangas)

这使外部工具更容易跟踪哪些块被修改。

新功能改进事务提交和中止 WAL 记录的表示

源代码

改进事务提交和中止 WAL 记录的表示(Andres Freund)

新功能添加原子内存操作 API

源代码

添加原子内存操作 API(Andres Freund)

新功能允许自定义路径和扫描方法

源代码

允许自定义路径和扫描方法(KaiGai Kohei、Tom Lane)

这允许扩展对优化器和执行器进行更大的控制。

新功能允许外部数据包装器执行过滤后锁定

源代码

允许外部数据包装器执行过滤后锁定(Etsuro Fujita)

新功能外部表现在可以参与 INSERT ... ON CONFLICT DO NOTHING 查询

源代码

外部表现在可以参与 INSERT ... ON CONFLICT DO NOTHING 查询(Peter Geoghegan、Heikki Linnakangas、Andres Freund)

必须修改外部数据包装器才能处理这一点。外部表不支持 INSERT ... ON CONFLICT DO UPDATE。

关联记录(1)

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

新功能改进 hash_create() 选择简单二进制键哈希函数的 API

源代码

改进 hash_create() 选择简单二进制键哈希函数的 API(Teodor Sigaev、Tom Lane)

新功能改进并行执行基础设施

源代码

改进并行执行基础设施(Robert Haas、Amit Kapila、Noah Misch、Rushabh Lathia、Jeevan Chalke)

新功能移除 Alpha(CPU)和 Tru64(操作系统)移植

源代码

移除 Alpha(CPU)和 Tru64(操作系统)移植(Andres Freund)

新功能移除 ARMv5 及更早 CPU 的基于字节交换的自旋锁实现

源代码

移除 ARMv5 及更早 CPU 的基于字节交换的自旋锁实现(Robert Haas)

ARMv5 的弱内存排序使这种锁定实现不安全。在支持原子操作的较新 gcc 实现上,自旋锁支持仍然可能。

新功能当过长的(100 字符以上)文件路径被写入 tar 文件时产生错误

源代码

当过长的(100 字符以上)文件路径被写入 tar 文件时产生错误(Peter Eisentraut)

tar 不支持这种过长的路径。

新功能把列 pg_seclabel.provider 和 pg_shseclabel.provider 的索引操作符类改为 text_pattern_ops

源代码

把列 pg_seclabel.provider 和 pg_shseclabel.provider 的索引操作符类改为 text_pattern_ops(Tom Lane)

这避免了当集群中不同数据库具有不同默认排序规则时这些索引可能出现的问题。

新功能把自旋锁原语改为兼作编译器屏障

源代码

把自旋锁原语改为兼作编译器屏障(Robert Haas)

新功能在 Windows 8、Windows Server 2012 及更高版本的 Windows 系统上允许更高精度的时间戳分辨率

源代码 / MS Windows

在 Windows 8、Windows Server 2012 及更高版本的 Windows 系统上允许更高精度的时间戳分辨率(Craig Ringer)

新功能在 MS Windows 上把共享库安装到 bin

源代码 / MS Windows

在 MS Windows 上把共享库安装到 bin(Peter Eisentraut、Michael Paquier)

新功能在 MSVC 构建中把 src/test/modules 与 contrib 一起安装

源代码 / MS Windows

在 MSVC 构建中把 src/test/modules 与 contrib 一起安装(Michael Paquier)

新功能允许 MSVC 构建遵循 configure 的 --with-extra-version 选项

源代码 / MS Windows

允许 MSVC 构建遵循 configure 的 --with-extra-version 选项(Michael Paquier)

新功能把 PGFILEDESC 传入 MSVC contrib 构建

源代码 / MS Windows

把 PGFILEDESC 传入 MSVC contrib 构建(Michael Paquier)

新功能为所有 MSVC 构建的二进制文件添加图标,并为所有 MS Windows 二进制文件添加版本信息

源代码 / MS Windows

为所有 MSVC 构建的二进制文件添加图标,并为所有 MS Windows 二进制文件添加版本信息(Noah Misch)

MinGW 此前已有此类图标。

新功能为内部的 getopt_long() 实现添加可选参数支持

源代码 / MS Windows

为内部的 getopt_long() 实现添加可选参数支持(Michael Paquier、Andres Freund)

这被 MSVC 构建使用。

新功能为pg_stat_statements添加最小、最大、平均和标准差时间统计

附加模块

为pg_stat_statements添加最小、最大、平均和标准差时间统计(Mitsumasa Kondo、Andrew Dunstan)

新功能添加pgcrypto函数 pgp_armor_headers(),用于提取 PGP armor 头

附加模块

添加pgcrypto函数 pgp_armor_headers(),用于提取 PGP armor 头(Marko Tiikkaja、Heikki Linnakangas)

新功能允许unaccent中使用空的替换字符串

附加模块

允许unaccent中使用空的替换字符串(Mohammad Alhashash)

这在变音符号表示为独立字符的语言中很有用。

新功能允许unaccent中使用多字符源字符串

附加模块

允许unaccent中使用多字符源字符串(Tom Lane)

这在变音符号表示为独立字符的语言中可能有用。它还允许更复杂的 unaccent 词典。

新功能添加 contrib 模块tsm_system_rows和tsm_system_time,以提供更多的表采样方法

附加模块

添加 contrib 模块tsm_system_rows和tsm_system_time,以提供更多的表采样方法(Petr Jelínek)

新功能为pageinspect添加 GIN 索引检查函数

附加模块

为pageinspect添加 GIN 索引检查函数(Heikki Linnakangas、Peter Geoghegan、Michael Paquier)

新功能在pg_buffercache显示中添加有关缓冲区引脚的信息

附加模块

在pg_buffercache显示中添加有关缓冲区引脚的信息(Andres Freund)

新功能允许pgstattuple使用 pgstattuple_approx() 以更低的开销报告近似结果

附加模块

允许pgstattuple使用 pgstattuple_approx() 以更低的开销报告近似结果(Abhijit Menon-Sen)

新功能把 dummy_seclabel、test_shm_mq、test_parser 和 worker_spi 从 contrib 移到 src/test/modules

附加模块

把 dummy_seclabel、test_shm_mq、test_parser 和 worker_spi 从 contrib 移到 src/test/modules(Álvaro Herrera)

这些模块仅用于服务器测试,因此在打包 PostgreSQL 时无需构建或安装它们。

这份对比如何生成?

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

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

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

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

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