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

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

文档版本对比

POSTGRESQL · VERSION COMPARE

PostgreSQL 15.0 的版本变更

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

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

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

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

本次发布的全部变更

15.0

2022-10-13

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

15.0 受支持版本维护截止 2027-11-11

本版提及的安全记录 1 个 CVE
本版发布说明提及的 CVE,可能包含已有漏洞的后续修复
CVE / 问题严重程度修复版本
CVE-2018-1058

移除 public 模式对 PUBLIC 的创建权限

8.8

PostgreSQL 15.0

升级与兼容性说明

对于希望从任何以前的版本迁移数据的人来说,需要使用pg_dumpall进行转储/恢复,或者使用pg_upgrade或逻辑复制。有关迁移到新主要版本的通用信息,请参阅第 19.6 节。

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

安全相关移除 public 模式对 PUBLIC 的创建权限

兼容性

移除 public 模式对 PUBLIC 的创建权限(Noah Misch)§

这一默认设置是模式的安全使用方式之一;自 CVE-2018-1058 安全发布以来,第 5.9.6 节一直推荐这种方式。此变更适用于新的数据库集簇和现有集簇中新创建的数据库。升级集簇或恢复数据库导出将保留 public 的现有权限。

对于现有数据库,尤其是多用户数据库,请考虑撤销 public 模式上的 CREATE 权限,以采用这一新的默认设置。对于无需防御内部威胁的新数据库,授予 CREATE 权限即可恢复先前版本的行为。

关联记录(1)

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

兼容性变化将 public 模式的所有者更改为新的 pg_database_owner 角色

兼容性

将 public 模式的所有者更改为新的 pg_database_owner 角色(Noah Misch)§

这使每个数据库的所有者都能对其数据库中的 public 模式行使所有者权限。此前,该模式由引导超级用户拥有,因此非超级用户的数据库所有者无法对其执行任何操作。

此变更适用于新的数据库集簇和现有集簇中新创建的数据库。升级集簇或恢复数据库导出将保留 public 的现有所有权设置。

关联记录(1)

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

兼容性变化移除长期弃用的独占备份模式

兼容性

移除长期弃用的独占备份模式(David Steele,Nathan Bossart)§

如果数据库服务器在此模式下突然停止,服务器可能无法启动。非独占备份模式在各方面都被认为更优。函数 pg_start_backup()/pg_stop_backup() 已重命名为 pg_backup_start()/pg_backup_stop(),而函数 pg_backup_start_time() 和 pg_is_in_backup() 已被移除。

兼容性变化将 hash_mem_multiplier 默认值增加到 2.0

兼容性

将 hash_mem_multiplier 默认值增加到 2.0(Peter Geoghegan)§

这允许查询 hash 操作使用比其他操作更多的 work_mem 内存。

兼容性变化移除服务器端语言 plpython2u 和通用 Python 语言 plpythonu

兼容性

移除服务器端语言 plpython2u 和通用 Python 语言 plpythonu(Andres Freund)§

Python 2.x 已不再受支持。虽然 plpythonu 最初的意图是最终可以指向 plpython3u,但现在更改它似乎更可能造成问题而非解决问题,因此它被直接移除。

兼容性变化如果向 array_to_tsvector() 传递空字符串数组元素,则生成错误

兼容性

如果向 array_to_tsvector() 传递空字符串数组元素,则生成错误(Jean-Christophe Arnu)§

这是被禁止的,因为词位不应为空。先前 Postgres 版本的用户应确认未存储空词位,因为它们可能导致导出/恢复失败和结果不一致。

关联记录(1)

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

兼容性变化当向 chr() 提供负参数时生成错误

兼容性

当向 chr() 提供负参数时生成错误(Peter Eisentraut)§

兼容性变化防止 CREATE OR REPLACE VIEW 更改输出列的排序规则

兼容性

防止 CREATE OR REPLACE VIEW 更改输出列的排序规则(Tom Lane)§

兼容性变化禁止零长度的 Unicode 标识符,例如 U&""

兼容性

禁止零长度的 Unicode 标识符,例如 U&""(Peter Eisentraut)§

非 Unicode 的零长度标识符已经被禁止。

兼容性变化防止数字字面量具有非数字的尾随字符

兼容性

防止数字字面量具有非数字的尾随字符(Peter Eisentraut)§

以前,像 123abc 这样的查询文本会被解释为 123 后跟一个单独的标记 abc。

兼容性变化调整 JSON 数字字面量处理以匹配 SQL/JSON 标准

兼容性

调整 JSON 数字字面量处理以匹配 SQL/JSON 标准(Peter Eisentraut)§

这接受像 .1 和 1. 这样的数字格式,并禁止数字字面量之后的尾随垃圾,如 1.type()。

兼容性变化当 interval 输入为大于月的单位提供小数值时,将其舍入到最接近的整数月数

兼容性

当 interval 输入为大于月的单位提供小数值时,将其舍入到最接近的整数月数(Bruce Momjian)§

例如,将 1.99 years 转换为 2 years,而不是像以前那样转换为 1 year 11 months。

兼容性变化改进带有尾随句点的 interval 解析的一致性

兼容性

改进带有尾随句点的 interval 解析的一致性(Tom Lane)§

带有尾随句点的数字在某些平台上被拒绝。

兼容性变化将 interval 输出函数标记为 stable 而非 immutable,因为它依赖于 IntervalStyle

兼容性

将 interval 输出函数标记为 stable 而非 immutable,因为它依赖于 IntervalStyle(Tom Lane)§

例如,这将导致依赖于 interval 值文本输出的索引创建失败。

兼容性变化在间隔调整函数中检测整数溢出

兼容性

在间隔调整函数中检测整数溢出(Joe Koshakow)§

受影响的函数是 justify_interval()、justify_hours() 和 justify_days()。

兼容性变化更改类型 "char" 非 ASCII 字符的 I/O 格式

兼容性

更改类型 "char" 非 ASCII 字符的 I/O 格式(Tom Lane)§

高位被设置的字节现在输出为反斜杠和三个八进制数字,以避免编码问题。

关联记录(1)

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

兼容性变化移除登录角色对其自身角色成员资格的默认 ADMIN OPTION 权限

兼容性

移除登录角色对其自身角色成员资格的默认 ADMIN OPTION 权限(Robert Haas)§

以前,登录角色即使没有 ADMIN OPTION 权限也可以添加/移除其自身角色的成员。

兼容性变化允许逻辑复制以订阅的所有者身份运行

兼容性

允许逻辑复制以订阅的所有者身份运行(Mark Dilger)§

因为不检查行级安全策略,所以只有超级用户、具有 bypassrls 的角色和表所有者才能复制到具有行级安全策略的表中。

兼容性变化防止在订阅所有者对表没有 SELECT 权限的表上执行 UPDATE 和 DELETE 逻辑复制操作

兼容性

防止在订阅所有者对表没有 SELECT 权限的表上执行 UPDATE 和 DELETE 逻辑复制操作(Jeff Davis)§

UPDATE 和 DELETE 命令通常也涉及读取表,因此要求订阅所有者具有表的 SELECT 权限。

兼容性变化当 EXPLAIN 引用会话的临时对象模式时,将其称为 pg_temp

兼容性

当 EXPLAIN 引用会话的临时对象模式时,将其称为 pg_temp(Amul Sul)§

以前报告的是实际模式名称,导致不同会话之间的不一致。

兼容性变化修复 pg_statio_all_tables 以在 TOAST 表具有多个索引的罕见情况下求和值

兼容性

修复 pg_statio_all_tables 以在 TOAST 表具有多个索引的罕见情况下求和值(Andrei Zubkov)§

以前这种情况会为每个索引显示一行。

兼容性变化禁止设置与已安装扩展名称匹配但不是该扩展声明的变量之一的自定义选项

兼容性

禁止设置与已安装扩展名称匹配但不是该扩展声明的变量之一的自定义选项(Florin Irion,Tom Lane)§ § §

此变更导致在扩展加载期间删除任何此类已存在的变量,然后防止在会话中稍后创建新的变量。其目的是防止关于变量是否与扩展关联的混淆。

兼容性变化移除过时的服务器变量 stats_temp_directory

兼容性

移除过时的服务器变量 stats_temp_directory(Andres Freund,Kyotaro Horiguchi)§

兼容性变化改进用于计算 random() 的算法

兼容性

改进用于计算 random() 的算法(Fabien Coelho)§ §

这将导致 random() 的结果与以前版本发出的结果不同,即使是相同的种子值。

兼容性变化libpq 的 PQsendQuery() 函数在管道模式下不再被支持

兼容性

libpq 的 PQsendQuery() 函数在管道模式下不再被支持(Álvaro Herrera)§

使用该组合的应用程序需要修改为使用 PQsendQueryParams() 代替。

兼容性变化在非 Windows 平台上,查询 HOME 环境变量以查找用户的主目录

兼容性

在非 Windows 平台上,查询 HOME 环境变量以查找用户的主目录(Anders Kaseorg)§

如果 HOME 为空或未设置,则回退到先前的方法,检查 <pwd.h> 数据库。此变更影响 libpq(例如,在查找 ~/.pgpass 时)以及各种客户端应用程序。

兼容性变化移除pg_dump的 --no-synchronized-snapshots 选项

兼容性

移除pg_dump的 --no-synchronized-snapshots 选项(Tom Lane)§

所有仍受支持的服务器版本都支持同步快照,因此不再需要此选项。

兼容性变化在psql的 --single-transaction 模式中检测到错误后,仅在设置了 ON_ERROR_STOP 时才将最终的 COMMIT 命令更改为 ROLLBACK

兼容性

在psql的 --single-transaction 模式中检测到错误后,仅在设置了 ON_ERROR_STOP 时才将最终的 COMMIT 命令更改为 ROLLBACK(Michael Paquier)§

关联记录(1)

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

兼容性变化避免在 postgres_fdw 发送的查询中对常量进行不必要的类型转换

兼容性

避免在 postgres_fdw 发送的查询中对常量进行不必要的类型转换(Dian Fay)§

当本地和远程数据库之间的列类型故意不同时,这种类型转换可能会导致错误。

兼容性变化移除 xml2 的 xml_is_well_formed() 函数

兼容性

移除 xml2 的 xml_is_well_formed() 函数(Tom Lane)§

此函数自 Postgres 9.1 以来已在核心后端中实现。

兼容性变化允许自定义扫描提供者指示它们是否支持投影

兼容性

允许自定义扫描提供者指示它们是否支持投影(Sven Klemm)§

现在默认假设自定义扫描提供者不支持投影;支持投影的提供者需要为此版本进行更新。

新功能记录并检查每个数据库的排序规则版本

服务器

记录并检查每个数据库的排序规则版本(Peter Eisentraut)§

此功能旨在检测排序规则版本变更以避免索引损坏。函数 pg_database_collation_actual_version() 报告底层操作系统的排序规则版本,而 ALTER DATABASE ... REFRESH 将记录的数据库排序规则版本设置为与操作系统排序规则版本匹配。

新功能允许将 ICU 排序规则设置为集簇和数据库的默认值

服务器

允许将 ICU 排序规则设置为集簇和数据库的默认值(Peter Eisentraut)§

以前,只能在集簇和数据库级别选择基于 libc 的排序规则。ICU 排序规则只能通过显式的 COLLATE 子句使用。

新功能增加系统视图 pg_ident_file_mappings 以报告 pg_ident.conf 信息

服务器

增加系统视图 pg_ident_file_mappings 以报告 pg_ident.conf 信息(Julien Rouhaud)§

新功能改进引用分区表的查询的规划时间

服务器 / 分区

改进引用分区表的查询的规划时间(David Rowley)§

此变更在只有少数分区相关时有所帮助。

新功能允许分区的有序扫描在更多情况下避免排序

服务器 / 分区

允许分区的有序扫描在更多情况下避免排序(David Rowley)§

以前,具有 DEFAULT 分区或包含多个值的 LIST 分区的分区表不能用于有序分区扫描。现在,如果这些分区在规划期间被剪枝,则可以使用它们。

新功能改进在分区表上执行将行在分区之间移动的更新时的外键行为

服务器 / 分区

改进在分区表上执行将行在分区之间移动的更新时的外键行为(Amit Langote)§

以前,这样的更新在源分区上运行删除操作,在目标分区上运行插入操作。PostgreSQL 现在将在分区根上运行更新操作,提供更清晰的语义。

新功能允许在分区表上执行 CLUSTER

服务器 / 分区

允许在分区表上执行 CLUSTER(Justin Pryzby)§ §

BUG 修复修复分区表上的 ALTER TRIGGER RENAME 以正确重命名所有分区上的触发器

服务器 / 分区

修复分区表上的 ALTER TRIGGER RENAME 以正确重命名所有分区上的触发器(Arne Roland,Álvaro Herrera)§

同时禁止重命名克隆的触发器。

新功能允许系统表和 TOAST 表上的 B-树索引高效存储重复项

服务器 / 索引

允许系统表和 TOAST 表上的 B-树索引高效存储重复项(Peter Geoghegan)§

以前,这些类型的索引禁用了去重。

性能改进改进使用排序构建的 GiST 索引的查找性能

服务器 / 索引

改进使用排序构建的 GiST 索引的查找性能(Aliaksandr Kalenik,Sergei Shoulbakov,Andrey Borodin)§

新功能允许唯一约束和索引将 NULL 值视为不唯一

服务器 / 索引

允许唯一约束和索引将 NULL 值视为不唯一(Peter Eisentraut)§

以前 NULL 条目总是被视为不同的值,但现在可以通过使用 UNIQUE NULLS NOT DISTINCT 创建约束和索引来更改此行为。

新功能允许 ^@ 起始匹配操作符和 starts_with() 函数在使用 C 排序规则时使用 B-树索引

服务器 / 索引

允许 ^@ 起始匹配操作符和 starts_with() 函数在使用 C 排序规则时使用 B-树索引(Tom Lane)§

以前它们只能使用 SP-GiST 索引。

新功能允许扩展统计记录父表及其所有子表的统计信息

服务器 / 优化器

允许扩展统计记录父表及其所有子表的统计信息(Tomas Vondra,Justin Pryzby)§

常规统计已经分别跟踪父表和父表加所有子表的统计信息。

新功能增加服务器变量 recursive_worktable_factor 以允许用户指定递归查询工作表的预期大小

服务器 / 优化器

增加服务器变量 recursive_worktable_factor 以允许用户指定递归查询工作表的预期大小(Simon Riggs)§

性能改进允许对包含许多常量的 NOT IN 子句使用 hash 查找

服务器 / 一般性能

允许对包含许多常量的 NOT IN 子句使用 hash 查找(David Rowley,James Coleman)§

以前代码总是顺序扫描值列表。

性能改进允许 SELECT DISTINCT 并行化

服务器 / 一般性能

允许 SELECT DISTINCT 并行化(David Rowley)§

性能改进通过每次处理 16 字节来加速 UTF-8 文本的编码验证

服务器 / 一般性能

通过每次处理 16 字节来加速 UTF-8 文本的编码验证(John Naylor,Heikki Linnakangas)§

这将改进文本密集型操作,如 COPY FROM。

性能改进改进超过 work_mem 的排序性能

服务器 / 一般性能

改进超过 work_mem 的排序性能(Heikki Linnakangas)§ §

当排序数据不再适合 work_mem 时,切换到使用比以前更多输出流的批量排序算法。

性能改进改进内存排序的性能并减少内存消耗

服务器 / 一般性能

改进内存排序的性能并减少内存消耗(Ronan Dunklau,David Rowley,Thomas Munro,John Naylor)§ § §

性能改进允许 WAL 全页写入使用 LZ4 和 Zstandard 压缩

服务器 / 一般性能

允许 WAL 全页写入使用 LZ4 和 Zstandard 压缩(Andrey Borodin,Justin Pryzby)§ §

这由 wal_compression 服务器设置控制。

性能改进增加在 macOS 上使用直接 I/O 写入 WAL 的支持

服务器 / 一般性能

增加在 macOS 上使用直接 I/O 写入 WAL 的支持(Thomas Munro)§

这仅在 max_wal_senders = 0 且 wal_level = minimal 时有效。

性能改进允许 vacuum 在设置最旧的冻结和多事务 ID 时更积极

服务器 / 一般性能

允许 vacuum 在设置最旧的冻结和多事务 ID 时更积极(Peter Geoghegan)§

性能改进允许引用多个外部表的查询在更多情况下执行并行外部表扫描

服务器 / 一般性能

允许引用多个外部表的查询在更多情况下执行并行外部表扫描(Andrey Lepikhov,Etsuro Fujita)§

性能改进改进使用 row_number()、rank()、dense_rank() 和 count() 的窗口函数的性能

服务器 / 一般性能

改进使用 row_number()、rank()、dense_rank() 和 count() 的窗口函数的性能(David Rowley)§

性能改进改进高核心数 ARM64 系统上自旋锁的性能

服务器 / 一般性能

改进高核心数 ARM64 系统上自旋锁的性能(Geoffrey Blake)§

新功能启用检查点和慢速自动清理操作的默认日志记录

服务器 / 监控

启用检查点和慢速自动清理操作的默认日志记录(Bharath Rupireddy)§

这将 log_checkpoints 的默认值更改为 on,将 log_autovacuum_min_duration 的默认值更改为 10 分钟。这将导致即使是空闲的服务器也会生成一些日志输出,这在没有日志文件轮转的资源受限服务器上可能会造成问题。在这种情况下应更改这些默认值。

新功能在服务器缓慢启动期间在服务器日志中生成进度消息

服务器 / 监控

在服务器缓慢启动期间在服务器日志中生成进度消息(Nitin Jadhav,Robert Haas)§ §

消息报告延迟的原因。通知的时间间隔由新的服务器变量 log_startup_progress_interval 控制。

新功能将累计统计系统数据存储在共享内存中

服务器 / 监控

将累计统计系统数据存储在共享内存中(Kyotaro Horiguchi,Andres Freund,Melanie Plageman)§ §

以前,此数据通过 UDP 数据包发送到统计收集器进程,只有在通过文件系统传输后会话才能读取。现在不再有单独的统计收集器进程。

新功能向 VACUUM VERBOSE 和自动清理日志消息添加额外信息

服务器 / 监控

向 VACUUM VERBOSE 和自动清理日志消息添加额外信息(Peter Geoghegan)§ § §

新功能增加临时文件块 I/O 的 EXPLAIN (BUFFERS) 输出

服务器 / 监控

增加临时文件块 I/O 的 EXPLAIN (BUFFERS) 输出(Masahiko Sawada)§

新功能允许以 JSON 格式进行日志输出

服务器 / 监控

允许以 JSON 格式进行日志输出(Sehrope Sarkuni,Michael Paquier)§

新的设置是 log_destination = jsonlog。

新功能允许 pg_stat_reset_single_table_counters() 重置所有数据库间共享的关系的计数器

服务器 / 监控

允许 pg_stat_reset_single_table_counters() 重置所有数据库间共享的关系的计数器(Sadhuprasad Patro)§

新功能为本地 shell 命令增加等待事件

服务器 / 监控

为本地 shell 命令增加等待事件(Fujii Masao)§

新的等待事件在调用 archive_command、archive_cleanup_command、restore_command 和 recovery_end_command 时使用。

新功能允许通过视图进行的表访问可选择性地由视图调用者的权限控制

服务器 / 权限

允许通过视图进行的表访问可选择性地由视图调用者的权限控制(Christoph Heiss)§

以前,视图访问总是被视为由视图所有者完成。这仍然是默认行为。

新功能允许 pg_write_server_files 预定义角色的成员执行服务器端基础备份

服务器 / 权限

允许 pg_write_server_files 预定义角色的成员执行服务器端基础备份(Dagfinn Ilmari Mannsåker)§

以前只有超级用户可以执行此类备份。

新功能允许 GRANT 授予通过 SET 和 ALTER SYSTEM 更改单个服务器变量的权限

服务器 / 权限

允许 GRANT 授予通过 SET 和 ALTER SYSTEM 更改单个服务器变量的权限(Mark Dilger)§ §

新函数 has_parameter_privilege() 报告此权限。

新功能增加预定义角色 pg_checkpoint,允许其成员运行 CHECKPOINT

服务器 / 权限

增加预定义角色 pg_checkpoint,允许其成员运行 CHECKPOINT(Jeff Davis)§ §

以前只有超级用户可以运行检查点。

新功能允许 pg_read_all_stats 预定义角色的成员访问 pg_backend_memory_contexts 和 pg_shmem_allocations 视图

服务器 / 权限

允许 pg_read_all_stats 预定义角色的成员访问 pg_backend_memory_contexts 和 pg_shmem_allocations 视图(Bharath Rupireddy)§

以前这些视图只能由超级用户访问。

新功能允许 GRANT 授予 pg_log_backend_memory_contexts() 的权限

服务器 / 权限

允许 GRANT 授予 pg_log_backend_memory_contexts() 的权限(Jeff Davis)§

以前此函数只能由超级用户运行。

新功能增加服务器变量 shared_memory_size 以报告已分配共享内存的大小

服务器 / 服务器配置

增加服务器变量 shared_memory_size 以报告已分配共享内存的大小(Nathan Bossart)§ §

新功能增加服务器变量 shared_memory_size_in_huge_pages 以报告所需的大内存页数量

服务器 / 服务器配置

增加服务器变量 shared_memory_size_in_huge_pages 以报告所需的大内存页数量(Nathan Bossart)§ §

这仅在 Linux 上受支持。

新功能在单用户模式下遵守服务器变量 shared_preload_libraries

服务器 / 服务器配置

在单用户模式下遵守服务器变量 shared_preload_libraries(Jeff Davis)§

此变更支持使用 shared_preload_libraries 加载自定义访问方法和 WAL 资源管理器,即使在单用户模式下这对数据库访问也是必需的。

新功能在 Solaris 上,将 dynamic_shared_memory_type 的默认设置设为 sysv

服务器 / 服务器配置

在 Solaris 上,将 dynamic_shared_memory_type 的默认设置设为 sysv(Thomas Munro)§

之前的默认选择 posix 可能导致此平台上的虚假失败。

新功能允许 postgres -C 正确报告运行时计算的值

服务器 / 服务器配置

允许 postgres -C 正确报告运行时计算的值(Nathan Bossart)§

以前,运行时计算的值 data_checksums、wal_segment_size 和 data_directory_mode 会报告在运行中的服务器上不准确的值。但是,这在运行中的服务器上不起作用。

新功能增加对服务器端基础备份的 LZ4 和 Zstandard 压缩支持

流复制与恢复

增加对服务器端基础备份的 LZ4 和 Zstandard 压缩支持(Jeevan Ladhe,Robert Haas)§ § §

关联记录(1)

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

新功能在崩溃恢复期间运行检查点进程和后台写入进程

流复制与恢复

在崩溃恢复期间运行检查点进程和后台写入进程(Thomas Munro)§

这有助于加速长时间的崩溃恢复。

新功能允许 WAL 处理预取所需的文件内容

流复制与恢复

允许 WAL 处理预取所需的文件内容(Thomas Munro)§

这由服务器变量 recovery_prefetch 控制。

新功能允许通过可加载模块进行归档

流复制与恢复

允许通过可加载模块进行归档(Nathan Bossart)§

以前,归档只能通过调用 shell 命令完成。新的服务器变量 archive_library 可以设置为指定用于归档的库。

关联记录(1)

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

新功能不再要求在 START_REPLICATION 之前运行 IDENTIFY_SYSTEM

流复制与恢复

不再要求在 START_REPLICATION 之前运行 IDENTIFY_SYSTEM(Jeff Davis)§

新功能允许发布模式中的所有表

流复制与恢复 / 逻辑复制

允许发布模式中的所有表(Vignesh C,Hou Zhijie,Amit Kapila)§ § §

例如,现在支持此语法:CREATE PUBLICATION pub1 FOR TABLES IN SCHEMA s1,s2。ALTER PUBLICATION 支持类似的语法。稍后添加到列出的模式中的表也将被复制。

新功能允许使用 WHERE 子句过滤发布内容

流复制与恢复 / 逻辑复制

允许使用 WHERE 子句过滤发布内容(Hou Zhijie,Euler Taveira,Peter Smith,Ajin Cherian,Tomas Vondra,Amit Kapila)§ § §

不满足 WHERE 子句的行不会被发布。

新功能允许将发布内容限制为特定列

流复制与恢复 / 逻辑复制

允许将发布内容限制为特定列(Tomas Vondra,Álvaro Herrera,Rahila Syed)§

新功能允许使用 ALTER SUBSCRIPTION ... SKIP 在订阅者上跳过事务

流复制与恢复 / 逻辑复制

允许使用 ALTER SUBSCRIPTION ... SKIP 在订阅者上跳过事务(Masahiko Sawada)§

新功能为逻辑复制增加预备(两阶段)事务支持

流复制与恢复 / 逻辑复制

为逻辑复制增加预备(两阶段)事务支持(Peter Smith,Ajin Cherian,Amit Kapila,Nikhil Sontakke,Stas Kelvich)§ § §

新的 CREATE_REPLICATION_SLOT 选项称为 TWO_PHASE。pg_recvlogical 现在在创建槽时支持新的 --two-phase 选项。

新功能防止空事务的逻辑复制

流复制与恢复 / 逻辑复制

防止空事务的逻辑复制(Ajin Cherian,Hou Zhijie,Euler Taveira)§

以前,如果订阅的表没有被修改,发布者会向订阅者发送空事务。

新功能增加 SQL 函数来监控逻辑复制槽的目录内容

流复制与恢复 / 逻辑复制

增加 SQL 函数来监控逻辑复制槽的目录内容(Bharath Rupireddy)§

新函数是 pg_ls_logicalsnapdir()、pg_ls_logicalmapdir() 和 pg_ls_replslotdir()。它们可以由预定义的 pg_monitor 角色的成员运行。

新功能允许订阅者在出错时停止应用逻辑复制变更

流复制与恢复 / 逻辑复制

允许订阅者在出错时停止应用逻辑复制变更(Osumi Takamichi,Mark Dilger)§

这通过订阅者选项 disable_on_error 启用,避免流应用期间可能的无限错误循环。

新功能调整订阅者服务器变量以匹配发布者,使 datetime 和 float8 值被一致地解释

流复制与恢复 / 逻辑复制

调整订阅者服务器变量以匹配发布者,使 datetime 和 float8 值被一致地解释(Japin Li)§

某些发布者可能依赖于不一致的行为。

新功能增加系统视图 pg_stat_subscription_stats 以报告订阅者活动

流复制与恢复 / 逻辑复制

增加系统视图 pg_stat_subscription_stats 以报告订阅者活动(Masahiko Sawada)§ §

新函数 pg_stat_reset_subscription_stats() 允许重置这些统计计数器。

新功能在 pg_publication_tables 系统视图中抑制重复条目

流复制与恢复 / 逻辑复制

在 pg_publication_tables 系统视图中抑制重复条目(Hou Zhijie)§

在某些情况下,一个分区可能出现多次。

新功能增加 SQL MERGE 命令以调整一个表使其与另一个表匹配

工具命令

增加 SQL MERGE 命令以调整一个表使其与另一个表匹配(Simon Riggs,Pavan Deolasee,Álvaro Herrera,Amit Langote)§

这与 INSERT ... ON CONFLICT 类似,但更面向批量操作。

新功能增加 COPY 文本格式中 HEADER 选项的支持

工具命令

增加 COPY 文本格式中 HEADER 选项的支持(Rémi Lapeyre)§ §

新选项导致列名被输出,并可选择在输入时进行验证。

新功能增加新的 WAL 日志记录方法用于数据库创建

工具命令

增加新的 WAL 日志记录方法用于数据库创建(Dilip Kumar)§

这是复制模板数据库的新默认方法,因为它避免了数据库创建期间对检查点的需求。但是,如果模板数据库很大,它可能会很慢,因此旧方法仍然可用。

新功能允许 CREATE DATABASE 设置数据库 OID

工具命令

允许 CREATE DATABASE 设置数据库 OID(Shruthi Gowda,Antonin Houska)§

关联记录(1)

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

新功能防止 DROP DATABASE、DROP TABLESPACE 和 ALTER DATABASE SET TABLESPACE 在 Windows 上并发使用时偶尔失败

工具命令

防止 DROP DATABASE、DROP TABLESPACE 和 ALTER DATABASE SET TABLESPACE 在 Windows 上并发使用时偶尔失败(Thomas Munro)§

新功能允许外键 ON DELETE SET 操作仅影响指定的列

工具命令

允许外键 ON DELETE SET 操作仅影响指定的列(Paul Martinez)§

以前,外键中的所有列总是受到影响。

新功能允许 ALTER TABLE 修改表的 ACCESS METHOD

工具命令

允许 ALTER TABLE 修改表的 ACCESS METHOD(Justin Pryzby,Jeff Davis)§

新功能当 ALTER TABLE 导致表重写时正确调用对象访问钩子

工具命令

当 ALTER TABLE 导致表重写时正确调用对象访问钩子(Michael Paquier)§

新功能允许创建不记录 WAL 的序列

工具命令

允许创建不记录 WAL 的序列(Peter Eisentraut)§

新功能跟踪返回复合类型的函数结果中各个列的依赖关系

工具命令

跟踪返回复合类型的函数结果中各个列的依赖关系(Tom Lane)§

以前,如果视图或规则包含对返回复合类型的函数结果中特定列的引用,这不会被记录为依赖关系;视图或规则仅被认为依赖于整个复合类型。这意味着允许删除单个列,从而在以后使用视图或规则时造成问题。现在也记录了列级依赖关系,因此除非更改或删除视图,否则删除此类列将被拒绝。

新功能允许 numeric 值的精度为负数或大于其精度

数据类型

允许 numeric 值的精度为负数或大于其精度(Dean Rasheed,Tom Lane)§

这允许对小数点左边的值进行四舍五入,例如,'1234'::numeric(4, -2) 返回 1200。

新功能改进将值转换为 interval 时的溢出检测

数据类型

改进将值转换为 interval 时的溢出检测(Joe Koshakow)§

新功能更改类型 "char" 非 ASCII 字符的 I/O 格式

数据类型

更改类型 "char" 非 ASCII 字符的 I/O 格式(Tom Lane)§

关联记录(1)

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

新功能更新现代 Unicode 字符(如表情符号)的显示宽度信息

数据类型

更新现代 Unicode 字符(如表情符号)的显示宽度信息(Jacob Champion)§ §

同时从 Unicode 5.0 更新到 14.0.0。现在有一种自动化方法来保持 Postgres 与 Unicode 发布同步。

新功能为 range_agg() 增加多范围输入

函数

为 range_agg() 增加多范围输入(Paul Jungwirth)§

新功能为 xid8 数据类型增加 MIN() 和 MAX() 聚合

函数

为 xid8 数据类型增加 MIN() 和 MAX() 聚合(Ken Kato)§

新功能增加正则表达式函数以与其他关系系统兼容

函数

增加正则表达式函数以与其他关系系统兼容(Gilles Darold,Tom Lane)§

新函数是 regexp_count()、regexp_instr()、regexp_like() 和 regexp_substr()。还为 regexp_replace() 增加了一些新的可选参数。

新功能增加计算多边形之间距离的能力

函数

增加计算多边形之间距离的能力(Tom Lane)§

新功能为 to_char() 增加格式代码 of、tzh 和 tzm

函数

为 to_char() 增加格式代码 of、tzh 和 tzm(Nitin Jadhav)§

这些的大写等价形式已经被支持。

新功能当将 AT TIME ZONE 应用于 time with time zone 值时,使用事务开始时间而不是挂钟时间来确定是否适用夏令时

函数

当将 AT TIME ZONE 应用于 time with time zone 值时,使用事务开始时间而不是挂钟时间来确定是否适用夏令时(Aleksander Alekseev,Tom Lane)§

这允许将转换视为稳定的而不是易变的,并且每次调用节省一次内核调用。

新功能在带数组参数的 ts_delete() 和 setweight() 函数中忽略 NULL 数组元素

函数

在带数组参数的 ts_delete() 和 setweight() 函数中忽略 NULL 数组元素(Jean-Christophe Arnu)§

这些函数实际上会忽略空字符串数组元素(因为它们永远不会匹配有效的词素)。让它们也忽略 NULL 元素而不是失败似乎是一致的。

关联记录(1)

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

新功能为 pg_size_pretty() 和 pg_size_bytes() 增加 PB 单位支持

函数

为 pg_size_pretty() 和 pg_size_bytes() 增加 PB 单位支持(David Christensen)§

新功能更改 pg_event_trigger_ddl_commands() 以使用实际模式名称输出对其他会话临时模式的引用

函数

更改 pg_event_trigger_ddl_commands() 以使用实际模式名称输出对其他会话临时模式的引用(Tom Lane)§

以前此函数将所有临时模式报告为 pg_temp,但对当前会话的临时模式以外的任何模式使用该名称是有误导性的。

BUG 修复修复 PL/pgSQL 变量 CONSTANT 标记的强制执行

PL/pgSQL

修复 PL/pgSQL 变量 CONSTANT 标记的强制执行(Tom Lane)§

以前,变量即使被标记为 CONSTANT,仍可以用作 CALL 输出参数或 refcursor OPEN 变量。

新功能允许 IP 地址与服务器证书的主体替代名称进行匹配

libpq

允许 IP 地址与服务器证书的主体替代名称进行匹配(Jacob Champion)§

新功能允许 PQsslAttribute() 在不需要 libpq 连接的情况下报告 SSL 库类型

libpq

允许 PQsslAttribute() 在不需要 libpq 连接的情况下报告 SSL 库类型(Jacob Champion)§

新功能更改客户端发送的查询取消以使用与正常客户端连接相同的 TCP 设置

libpq

更改客户端发送的查询取消以使用与正常客户端连接相同的 TCP 设置(Jelte Fennema)§

这允许配置的 TCP 超时应用到查询取消连接。

新功能防止 libpq 事件回调失败强制产生错误结果

libpq

防止 libpq 事件回调失败强制产生错误结果(Tom Lane)§ §

新功能允许pgbench在序列化和死锁失败后重试

客户端应用

允许pgbench在序列化和死锁失败后重试(Yugo Nagata,Marina Polyakova)§

性能改进通过以更大的块发送数据来改进 psql 的 \copy 命令的性能

客户端应用 / psql

通过以更大的块发送数据来改进 psql 的 \copy 命令的性能(Heikki Linnakangas)§

新功能增加 \dconfig 命令以报告服务器变量

客户端应用 / psql

增加 \dconfig 命令以报告服务器变量(Mark Dilger,Tom Lane)§ § §

这类似于服务器端的 SHOW 命令,但它可以处理模式以方便地显示多个变量。

新功能增加 \getenv 命令以将环境变量的值赋给 psql 变量

客户端应用 / psql

增加 \getenv 命令以将环境变量的值赋给 psql 变量(Tom Lane)§

新功能为 \lo_list 和 \dl 命令增加 + 选项以显示大对象权限

客户端应用 / psql

为 \lo_list 和 \dl 命令增加 + 选项以显示大对象权限(Pavel Luzanov)§

新功能为 \watch 命令增加分页器选项

客户端应用 / psql

为 \watch 命令增加分页器选项(Pavel Stehule,Thomas Munro)§

这仅在 Unix 上受支持,由 PSQL_WATCH_PAGER 环境变量控制。

新功能使 psql 在发送到服务器的查询中包含查询内的双连字符注释

客户端应用 / psql

使 psql 在发送到服务器的查询中包含查询内的双连字符注释(Tom Lane,Greg Nancarrow)§ §

以前,这些注释在发送之前会从查询中删除。在任何查询文本之前的双连字符注释不会被发送,也不会被记录为单独的 psql 历史条目。

新功能调整 psql,使 Readline 的 meta-# 命令插入双连字符注释标记

客户端应用 / psql

调整 psql,使 Readline 的 meta-# 命令插入双连字符注释标记(Tom Lane)§

以前会插入井号标记,除非用户费心配置了非默认的注释标记。

新功能使 psql 在一次向服务器传递多个查询时输出所有结果

客户端应用 / psql

使 psql 在一次向服务器传递多个查询时输出所有结果(Fabien Coelho)§

以前只显示最后一个查询结果。可以通过将 SHOW_ALL_RESULTS psql 变量设置为 off 来恢复旧行为。

新功能在 --single-transaction 模式中检测到错误后,仅在设置了 ON_ERROR_STOP 时才将最终的 COMMIT 命令更改为 ROLLBACK

客户端应用 / psql

在 --single-transaction 模式中检测到错误后,仅在设置了 ON_ERROR_STOP 时才将最终的 COMMIT 命令更改为 ROLLBACK(Michael Paquier)§

以前,在 -c 命令或 -f 脚本文件中检测到错误会导致在最后发出 ROLLBACK,而不管 ON_ERROR_STOP 的值如何。

关联记录(1)

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

新功能改进 psql 的 Tab 补全

客户端应用 / psql

改进 psql 的 Tab 补全(Shinya Kato,Dagfinn Ilmari Mannsåker,Peter Smith,Koyu Tanigawa,Ken Kato,David Fetter,Haiying Tang,Peter Eisentraut,Álvaro Herrera,Tom Lane,Masahiko Sawada)§ § § § § § § § § § § § § § § § § § § §

新功能将 psql 反斜杠命令的支持限制为运行 PostgreSQL 9.2 或更高版本的服务器

客户端应用 / psql

将 psql 反斜杠命令的支持限制为运行 PostgreSQL 9.2 或更高版本的服务器(Tom Lane)§

移除仅在与较旧服务器一起运行时使用的代码。与 9.2 相比不需要任何特定版本调整的命令仍然可以工作。

新功能使 pg_dump 导出 public 模式的所有权变更和安全标签

客户端应用 / pg_dump

使 pg_dump 导出 public 模式的所有权变更和安全标签(Noah Misch)§ §

性能改进改进导出包含许多对象的数据库的性能

客户端应用 / pg_dump

改进导出包含许多对象的数据库的性能(Tom Lane)§ § §

这也将改进pg_upgrade的性能。

性能改进改进并行 pg_dump 对具有大型 TOAST 表的表的性能

客户端应用 / pg_dump

改进并行 pg_dump 对具有大型 TOAST 表的表的性能(Tom Lane)§

新功能增加导出/恢复选项 --no-table-access-method 以强制恢复仅使用默认表访问方法

客户端应用 / pg_dump

增加导出/恢复选项 --no-table-access-method 以强制恢复仅使用默认表访问方法(Justin Pryzby)§

新功能将 pg_dump 和pg_dumpall的支持限制为运行 PostgreSQL 9.2 或更高版本的服务器

客户端应用 / pg_dump

将 pg_dump 和pg_dumpall的支持限制为运行 PostgreSQL 9.2 或更高版本的服务器(Tom Lane)§

新功能为pg_basebackup增加新选项 --target 以控制基础备份位置

服务器应用

为pg_basebackup增加新选项 --target 以控制基础备份位置(Robert Haas)§

新选项是 server(在本地写入备份)和 blackhole(丢弃备份,用于测试)。

新功能允许 pg_basebackup 对基础备份文件进行服务器端 gzip、LZ4 和 Zstandard 压缩以及客户端 LZ4 和 Zstandard 压缩

服务器应用

允许 pg_basebackup 对基础备份文件进行服务器端 gzip、LZ4 和 Zstandard 压缩以及客户端 LZ4 和 Zstandard 压缩(Dipesh Pandit,Jeevan Ladhe)§ § §

客户端 gzip 压缩已经被支持。

关联记录(3)

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

新功能允许 pg_basebackup 在服务器端压缩并在客户端存储之前解压缩

服务器应用

允许 pg_basebackup 在服务器端压缩并在客户端存储之前解压缩(Dipesh Pandit)§

这通过指定服务器端压缩和纯文本输出格式来实现。

新功能允许 pg_basebackup 的 --compress 选项控制压缩位置(服务器或客户端)、压缩方法和压缩选项

服务器应用

允许 pg_basebackup 的 --compress 选项控制压缩位置(服务器或客户端)、压缩方法和压缩选项(Michael Paquier,Robert Haas)§ § §

关联记录(2)

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

新功能为pg_receivewal增加 LZ4 压缩方法

服务器应用

为pg_receivewal增加 LZ4 压缩方法(Georgios Kokolatos)§ §

这通过 --compress=lz4 启用,需要使用 --with-lz4 构建二进制文件。

新功能为 pg_receivewal 的 --compress 选项增加额外功能

服务器应用

为 pg_receivewal 的 --compress 选项增加额外功能(Georgios Kokolatos)§

新功能改进 pg_receivewal 在正确的 WAL 位置重新启动的能力

服务器应用

改进 pg_receivewal 在正确的 WAL 位置重新启动的能力(Ronan Dunklau)§

以前,pg_receivewal 会基于存储在本地归档目录中的 WAL 文件启动,或从发送服务器的当前 WAL 刷新位置启动。通过此变更,如果发送服务器运行 Postgres 15 或更高版本,本地归档目录为空,并且指定了复制槽,则将使用复制槽的重新启动点。

新功能为pg_rewind增加选项 --config-file 以简化服务器配置文件存储在数据目录之外时的使用

服务器应用

为pg_rewind增加选项 --config-file 以简化服务器配置文件存储在数据目录之外时的使用(Gunnar Bluth)§

新功能将 pg_upgrade 的日志和临时文件存储在新集簇的名为 pg_upgrade_output.d 的子目录中

服务器应用 / pg_upgrade

将 pg_upgrade 的日志和临时文件存储在新集簇的名为 pg_upgrade_output.d 的子目录中(Justin Pryzby)§ § §

以前这些文件留在当前目录中,需要手动清理。现在它们在 pg_upgrade 成功完成后会自动删除。

新功能如果输出不是终端,则在 pg_upgrade 操作期间禁用默认状态报告

服务器应用 / pg_upgrade

如果输出不是终端,则在 pg_upgrade 操作期间禁用默认状态报告(Andres Freund)§

可以通过使用 --verbose 为非终端使用启用状态报告输出。

新功能使 pg_upgrade 报告所有具有无效连接设置的数据库

服务器应用 / pg_upgrade

使 pg_upgrade 报告所有具有无效连接设置的数据库(Jeevan Ladhe)§

以前只报告第一个具有无效连接设置的数据库。

新功能使 pg_upgrade 保留表空间和数据库 OID,以及关系的 relfilenode 编号

服务器应用 / pg_upgrade

使 pg_upgrade 保留表空间和数据库 OID,以及关系的 relfilenode 编号(Shruthi Gowda,Antonin Houska)§ § §

关联记录(1)

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

新功能为 pg_upgrade 增加 --no-sync 选项

服务器应用 / pg_upgrade

为 pg_upgrade 增加 --no-sync 选项(Michael Paquier)§

这仅推荐用于测试。

新功能将 pg_upgrade 的支持限制为运行 PostgreSQL 9.2 或更高版本的旧服务器

服务器应用 / pg_upgrade

将 pg_upgrade 的支持限制为运行 PostgreSQL 9.2 或更高版本的旧服务器(Tom Lane)§

新功能允许按关系文件节点、块号、分支编号和整页镜像过滤 pg_waldump 输出

服务器应用 / pg_waldump

允许按关系文件节点、块号、分支编号和整页镜像过滤 pg_waldump 输出(David Christensen,Thomas Munro)§ §

新功能使 pg_waldump 在被中断退出之前报告统计信息

服务器应用 / pg_waldump

使 pg_waldump 在被中断退出之前报告统计信息(Bharath Rupireddy)§

例如,在运行 pg_waldump --stats --follow 的终端中按 Ctrl-C 将在退出前报告当前统计信息。这在 Windows 上不起作用。

新功能改进 pg_waldump 报告的某些事务 WAL 记录的描述

服务器应用 / pg_waldump

改进 pg_waldump 报告的某些事务 WAL 记录的描述(Masahiko Sawada,Michael Paquier)§

新功能允许 pg_waldump 转储多个资源管理器的信息

服务器应用 / pg_waldump

允许 pg_waldump 转储多个资源管理器的信息(Heikki Linnakangas)§

这通过多次指定 --rmgr 选项来启用。

新功能增加 pg_encoding_to_char() 和 pg_char_to_encoding() 的文档

文档

增加 pg_encoding_to_char() 和 pg_char_to_encoding() 的文档(Ian Lawrence Barwick)§

新功能记录 ^@ 起始匹配操作符的文档

文档

记录 ^@ 起始匹配操作符的文档(Tom Lane)§

新功能增加使用 cirrus-ci 进行持续集成测试的支持

源代码

增加使用 cirrus-ci 进行持续集成测试的支持(Andres Freund,Thomas Munro,Melanie Plageman)§

新功能增加配置选项 --with-zstd 以启用 Zstandard 构建

源代码

增加配置选项 --with-zstd 以启用 Zstandard 构建(Jeevan Ladhe,Robert Haas,Michael Paquier)§

新功能在可加载库的魔术块中增加 ABI 标识符字段,允许非社区 PostgreSQL 发行版识别与其他构建不兼容的库

源代码

在可加载库的魔术块中增加 ABI 标识符字段,允许非社区 PostgreSQL 发行版识别与其他构建不兼容的库(Peter Eisentraut)§

ABI 字段不匹配将在加载时生成错误。

新功能为 "char" 创建新的 pg_type.typcategory 值

源代码

为 "char" 创建新的 pg_type.typcategory 值(Tom Lane)§

一些其他仅供内部使用的类型也已被分配到此类别。

新功能增加新的协议消息 TARGET 以指定用于基础备份的新 COPY 方法

源代码

增加新的协议消息 TARGET 以指定用于基础备份的新 COPY 方法(Robert Haas)§

pg_basebackup 现在使用此方法。

新功能增加新的协议消息 COMPRESSION 和 COMPRESSION_DETAIL 以指定压缩方法和选项

源代码

增加新的协议消息 COMPRESSION 和 COMPRESSION_DETAIL 以指定压缩方法和选项(Robert Haas)§ §

关联记录(2)

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

新功能移除服务器对旧的 BASE_BACKUP 命令语法和基础备份协议的支持

源代码

移除服务器对旧的 BASE_BACKUP 命令语法和基础备份协议的支持(Robert Haas)§ §

新功能增加扩展设置自定义备份目标的支持

源代码

增加扩展设置自定义备份目标的支持(Robert Haas)§

新功能允许扩展定义自定义 WAL 资源管理器

源代码

允许扩展定义自定义 WAL 资源管理器(Jeff Davis)§

新功能增加函数 pg_settings_get_flags() 以获取服务器变量的标志

源代码

增加函数 pg_settings_get_flags() 以获取服务器变量的标志(Justin Pryzby)§

新功能在 Windows 上,使用 PGDLLIMPORT 标记导出服务器的所有全局变量

源代码

在 Windows 上,使用 PGDLLIMPORT 标记导出服务器的所有全局变量(Robert Haas)§

以前,在 Windows 上只有特定变量可供扩展访问。

新功能构建 PostgreSQL 需要 GNU make 3.81 或更高版本

源代码

构建 PostgreSQL 需要 GNU make 3.81 或更高版本(Tom Lane)§

新功能构建pgcrypto扩展需要 OpenSSL

源代码

构建pgcrypto扩展需要 OpenSSL(Peter Eisentraut)§

新功能需要 Perl 5.8.3 或更高版本

源代码

需要 Perl 5.8.3 或更高版本(Dagfinn Ilmari Mannsåker)§

新功能需要 Python 3.2 或更高版本

源代码

需要 Python 3.2 或更高版本(Andres Freund)§

新功能允许amcheck检查序列

附加模块

允许amcheck检查序列(Mark Dilger)§

新功能改进 amcheck 对 TOAST 表的完整性检查

附加模块

改进 amcheck 对 TOAST 表的完整性检查(Mark Dilger)§

新功能增加新模块 basebackup_to_shell 作为自定义备份目标的示例

附加模块

增加新模块 basebackup_to_shell 作为自定义备份目标的示例(Robert Haas)§ §

新功能增加新模块basic_archive作为通过库执行归档的示例

附加模块

增加新模块basic_archive作为通过库执行归档的示例(Nathan Bossart)§

关联记录(1)

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

新功能允许在布尔列上创建btree_gist索引

附加模块

允许在布尔列上创建btree_gist索引(Emre Hasegeli)§ § §

这些可以用于排除约束。

BUG 修复修复pageinspect的 page_header() 以处理 32KB 页面大小

附加模块

修复pageinspect的 page_header() 以处理 32KB 页面大小(Quan Zongliang)§

以前,在某些情况下可能返回不正确的负值。

新功能为pg_stat_statements增加临时文件块 I/O 的计数器

附加模块

为pg_stat_statements增加临时文件块 I/O 的计数器(Masahiko Sawada)§

新功能为 pg_stat_statements 增加 JIT 计数器

附加模块

为 pg_stat_statements 增加 JIT 计数器(Magnus Hagander)§

新功能增加新模块pg_walinspect

附加模块

增加新模块pg_walinspect(Bharath Rupireddy)§

这提供了类似于pg_waldump的 SQL 级别输出。

新功能在sepgsql日志消息中指示宽容/强制状态

附加模块

在sepgsql日志消息中指示宽容/强制状态(Dave Page)§

新功能允许 postgres_fdw 下推 CASE 表达式

附加模块 / postgres_fdw

允许 postgres_fdw 下推 CASE 表达式(Alexander Pyhalov)§

新功能增加服务器变量 postgres_fdw.application_name 以控制 postgres_fdw 连接的应用程序名称

附加模块 / postgres_fdw

增加服务器变量 postgres_fdw.application_name 以控制 postgres_fdw 连接的应用程序名称(Hayato Kuroda)§ § §

以前远程会话的 application_name 只能在远程服务器上设置或通过 postgres_fdw 连接规范设置。postgres_fdw.application_name 支持一些用于自定义的转义序列,使得在远程服务器上更容易区分这些连接。

新功能允许在 postgres_fdw 服务器上进行并行提交

附加模块 / postgres_fdw

允许在 postgres_fdw 服务器上进行并行提交(Etsuro Fujita)§

这通过 CREATE SERVER 选项 parallel_commit 启用。

这份对比如何生成?

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

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

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

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

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