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

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

文档版本对比

POSTGRESQL · VERSION COMPARE

PostgreSQL 18.0 的版本变更

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

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

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

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

本次发布的全部变更

18.0

2025-09-25

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

18.0 受支持版本维护截止 2030-11-14

PostgreSQL 18.0

升级与兼容性说明

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

版本 18 包含许多可能影响与以前版本兼容性的更改。请注意以下不兼容项:

兼容性变化将initdb默认更改为启用数据校验和

兼容性

将initdb默认更改为启用数据校验和(Greg Sabino Mullane)§

可以使用新的 initdb 选项 --no-data-checksums 禁用校验和。pg_upgrade要求匹配集簇校验和设置,因此这个新选项对于升级不带校验和的旧集簇很有用。

关联记录(1)

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

兼容性变化更改时区缩写处理

兼容性

更改时区缩写处理(Tom Lane)§

系统现在将优先考虑当前会话的时区缩写,然后检查服务器变量timezone_abbreviations。以前是先检查 timezone_abbreviations。

兼容性变化弃用 MD5 密码认证

兼容性

弃用 MD5 密码认证(Nathan Bossart)§

对 MD5 密码的支持将在未来的主要版本中移除。CREATE ROLE和ALTER ROLE现在在设置 MD5 密码时会发出弃用警告。可以通过将md5_password_warnings参数设置为 off 来禁用这些警告。

兼容性变化更改VACUUM和ANALYZE以处理父表的继承子表

兼容性

更改VACUUM和ANALYZE以处理父表的继承子表(Michael Harris)§

可以使用新的 ONLY 选项执行以前的行为。

关联记录(1)

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

兼容性变化防止 COPY FROM 在读取 CSV 文件时将 \. 视为文件结束标记

兼容性

防止 COPY FROM 在读取 CSV 文件时将 \. 视为文件结束标记(Daniel Vérité, Tom Lane)§ §

psql在从 STDIN 读取 CSV 文件时仍会将 \. 视为文件结束标记。较旧的 psql 客户端连接到 PostgreSQL 18 服务器时,可能会在 \copy 上遇到问题。此版本还强制要求 \. 必须单独出现在一行中。

兼容性变化禁止不记录 WAL 的分区表

兼容性

禁止不记录 WAL 的分区表(Michael Paquier)§

以前 ALTER TABLE SET [UN]LOGGED 不执行任何操作,并且创建不记录 WAL 的分区表也不会导致其子表不记录 WAL。

兼容性变化让 AFTER 触发器以触发器事件排队时处于活动状态的角色身份执行

兼容性

让 AFTER 触发器以触发器事件排队时处于活动状态的角色身份执行(Laurenz Albe)§

以前,此类触发器以执行时(例如,在COMMIT时)处于活动状态的角色身份运行。这对于在排队时间和事务提交之间角色发生变化的情况很重要。

兼容性变化移除GRANT/REVOKE中不起作用的规则权限支持

兼容性

移除GRANT/REVOKE中不起作用的规则权限支持(Fujii Masao)§

这些权限自 PostgreSQL 8.2 起就已不起作用。

兼容性变化移除列 pg_backend_memory_contexts.parent

兼容性

移除列 pg_backend_memory_contexts.parent(Melih Mutlu)§

由于添加了 pg_backend_memory_contexts.path,不再需要此列。

兼容性变化将 pg_backend_memory_contexts.level 和 pg_log_backend_memory_contexts() 更改为从1开始

兼容性

将 pg_backend_memory_contexts.level 和 pg_log_backend_memory_contexts() 更改为从1开始(Melih Mutlu, Atsushi Torikoshi, David Rowley, Fujii Masao)§ § §

这些以前是从零开始的。

关联记录(1)

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

兼容性变化更改全文检索,使其使用数据库集簇默认排序规则提供程序来读取配置文件和词典,而不再始终使用 libc

兼容性

更改全文检索,使其使用数据库集簇默认排序规则提供程序来读取配置文件和词典,而不再始终使用 libc(Peter Eisentraut)§

如果数据库集簇默认使用的非 libc 排序规则提供程序(例如 ICU、builtin)对 LC_CTYPE 所处理字符的处理方式与 libc 不同,那么某些全文检索函数以及pg_trgm扩展的行为可能会发生变化。使用pg_upgrade升级此类数据库集簇时,建议在升级后重新索引所有与全文检索和pg_trgm相关的索引。

新功能自动删除一些不必要的表自连接

服务器 / 优化器

自动删除一些不必要的表自连接(Andrey Lepikhov, Alexander Kuzmenkov, Alexander Korotkov, Alena Rybakina)§

可以使用服务器变量enable_self_join_elimination禁用此优化。

新功能将一些 IN (VALUES ...) 转换为 x = ANY ... 以获得更好的优化器统计信息

服务器 / 优化器

将一些 IN (VALUES ...) 转换为 x = ANY ... 以获得更好的优化器统计信息(Alena Rybakina, Andrei Lepikhov)§

性能改进允许将 OR 子句转换为数组以加快索引处理

服务器 / 优化器

允许将 OR 子句转换为数组以加快索引处理(Alexander Korotkov, Andrey Lepikhov)§

性能改进加快 INTERSECT、EXCEPT、窗口聚合和视图列别名的处理速度

服务器 / 优化器

加快 INTERSECT、EXCEPT、窗口聚合和视图列别名的处理速度(Tom Lane, David Rowley)§ § § §

新功能允许 SELECT DISTINCT 的键在内部重新排序以避免排序

服务器 / 优化器

允许 SELECT DISTINCT 的键在内部重新排序以避免排序(Richard Guo)§

可以使用enable_distinct_reordering禁用此优化。

新功能忽略功能上依赖于其他列的 GROUP BY 列

服务器 / 优化器

忽略功能上依赖于其他列的 GROUP BY 列(Zhang Mingli, Jian He, David Rowley)§

如果 GROUP BY 子句包含唯一索引的所有列以及同一表的其他列,则这些其他列是冗余的,可以从分组中删除。对于非延迟主键,这已经成立。

新功能允许将作用于 GROUPING SETS 的某些 HAVING 子句下推到 WHERE 子句

服务器 / 优化器

允许将作用于 GROUPING SETS 的某些 HAVING 子句下推到 WHERE 子句(Richard Guo)§ § § §

这允许更早地进行行过滤。此版本还修复了一些以前返回不正确结果的 GROUPING SETS 查询。

新功能改进 generate_series() 使用 numeric 和 timestamp 值时的行数估计

服务器 / 优化器

改进 generate_series() 使用 numeric 和 timestamp 值时的行数估计(David Rowley, Song Jinzhou)§ §

新功能允许优化器使用 Right Semi Join 计划

服务器 / 优化器

允许优化器使用 Right Semi Join 计划(Richard Guo)§

半连接用于查找是否存在至少一个匹配项。

新功能允许合并连接使用增量排序

服务器 / 优化器

允许合并连接使用增量排序(Richard Guo)§

新功能提高访问多个分区的查询规划效率

服务器 / 优化器

提高访问多个分区的查询规划效率(Ashutosh Bapat, Yuya Watari, David Rowley)§ §

新功能在更多情况下允许分区连接,并减少其内存使用

服务器 / 优化器

在更多情况下允许分区连接,并减少其内存使用(Richard Guo, Tom Lane, Ashutosh Bapat)§ §

新功能改进分区查询的代价估算

服务器 / 优化器

改进分区查询的代价估算(Nikita Malakhov, Andrei Lepikhov)§

新功能改进 SQL 语言函数的计划缓存

服务器 / 优化器

改进 SQL 语言函数的计划缓存(Alexander Pyhalov, Tom Lane)§ §

新功能改进禁用优化器功能的处理

服务器 / 优化器

改进禁用优化器功能的处理(Robert Haas)§

新功能允许 B-树索引的跳过扫描

服务器 / 索引

允许 B-树索引的跳过扫描(Peter Geoghegan)§ §

这允许在更多情况下使用多列 B-树索引,例如,当第一个或较早的索引列上没有限制(或只有非等值限制),而后续索引列上存在有效限制时。

新功能允许非 B-树唯一索引用作分区键,并用于物化视图

服务器 / 索引

允许非 B-树唯一索引用作分区键,并用于物化视图(Mark Dilger)§ §

索引类型仍必须支持相等性。

新功能允许并行创建 GIN 索引

服务器 / 索引

允许并行创建 GIN 索引(Tomas Vondra, Matthias van de Meent)§

新功能允许对值进行排序以加快范围类型 GiST 和 B-树索引构建

服务器 / 索引

允许对值进行排序以加快范围类型 GiST 和 B-树索引构建(Bernd Helmle)§

性能改进添加异步 I/O 子系统

服务器 / 一般性能

添加异步 I/O 子系统(Andres Freund, Thomas Munro, Nazir Bilal Yavuz, Melanie Plageman)§ § § § § § § § § § §

此功能允许后端排队多个读取请求,从而实现更高效的顺序扫描、位图堆扫描、清理等。这由服务器变量io_method启用,并添加了服务器变量io_combine_limit和io_max_combine_limit来控制它。这还使得不支持 fadvise() 的系统也可以将effective_io_concurrency和maintenance_io_concurrency设为大于零的值。新的系统视图 pg_aios 显示用于异步 I/O 的文件句柄。

性能改进改进访问许多关系的查询的锁定性能

服务器 / 一般性能

改进访问许多关系的查询的锁定性能(Tomas Vondra)§

性能改进提高哈希连接和 GROUP BY 的性能并减少内存使用

服务器 / 一般性能

提高哈希连接和 GROUP BY 的性能并减少内存使用(David Rowley, Jeff Davis)§ § § § §

这也改进了 EXCEPT 使用的 hash 集操作和子计划值的 hash 查找。

性能改进允许普通清理冻结某些页面,即使它们都是可见的

服务器 / 一般性能

允许普通清理冻结某些页面,即使它们都是可见的(Melanie Plageman)§ §

这减少了后期全关系冻结的开销。其激进性可以通过服务器变量和每表设置vacuum_max_eager_freeze_failure_rate控制。以前,在需要冻结之前,清理从不处理所有可见页面。

性能改进添加服务器变量vacuum_truncate以控制VACUUM期间的文件截断

服务器 / 一般性能

添加服务器变量vacuum_truncate以控制VACUUM期间的文件截断(Nathan Bossart, Gurjeet Singh)§

已经存在一个具有相同名称和行为的存储级别参数。

性能改进将服务器变量effective_io_concurrency和maintenance_io_concurrency的默认值增加到 16

服务器 / 一般性能

将服务器变量effective_io_concurrency和maintenance_io_concurrency的默认值增加到 16(Melanie Plageman)§ §

这更准确地反映了现代硬件。

新功能增加服务器变量log_connections的日志记录粒度

服务器 / 监控

增加服务器变量log_connections的日志记录粒度(Melanie Plageman)§

此服务器变量以前仅接受布尔值;布尔值用法仍受支持。

新功能添加 log_connections 选项以报告连接阶段的持续时间

服务器 / 监控

添加 log_connections 选项以报告连接阶段的持续时间(Melanie Plageman)§

新功能添加log_line_prefix转义 %L 以输出客户端IP地址

服务器 / 监控

添加log_line_prefix转义 %L 以输出客户端IP地址(Greg Sabino Mullane)§

新功能添加服务器变量log_lock_failures以记录锁获取失败

服务器 / 监控

添加服务器变量log_lock_failures以记录锁获取失败(Yuki Seino, Fujii Masao)§ §

具体来说,它报告 SELECT ... NOWAIT 锁失败。

新功能修改 pg_stat_all_tables 及其变体以报告在VACUUM、ANALYZE及其自动执行的变体中花费的时间

服务器 / 监控

修改 pg_stat_all_tables 及其变体以报告在VACUUM、ANALYZE及其自动执行的变体中花费的时间(Sami Imseih)§

新列是 total_vacuum_time、total_autovacuum_time、total_analyze_time 和 total_autoanalyze_time。

新功能向VACUUM和ANALYZE添加延迟时间报告

服务器 / 监控

向VACUUM和ANALYZE添加延迟时间报告(Bertrand Drouvot, Nathan Bossart)§ §

此信息出现在服务器日志、系统视图 pg_stat_progress_vacuum 和 pg_stat_progress_analyze 以及VACUUM和ANALYZE在 VERBOSE 模式下的输出中;必须使用服务器变量track_cost_delay_timing启用跟踪。

新功能添加WAL、CPU以及平均读取统计信息输出到 ANALYZE VERBOSE

服务器 / 监控

添加WAL、CPU以及平均读取统计信息输出到 ANALYZE VERBOSE(Anthonin Bonnefoy)§ §

新功能添加完整WAL缓冲区计数到 VACUUM/ANALYZE (VERBOSE) 和 autovacuum 日志输出

服务器 / 监控

添加完整WAL缓冲区计数到 VACUUM/ANALYZE (VERBOSE) 和 autovacuum 日志输出(Bertrand Drouvot)§

新功能添加每后端 I/O 统计信息报告

服务器 / 监控

添加每后端 I/O 统计信息报告(Bertrand Drouvot)§ §

统计信息通过 pg_stat_get_backend_io() 访问。每后端 I/O 统计信息可以通过 pg_stat_reset_backend_stats() 清除。

新功能添加 pg_stat_io 列以字节报告 I/O 活动

服务器 / 监控

添加 pg_stat_io 列以字节报告 I/O 活动(Nazir Bilal Yavuz)§

新列是 read_bytes、write_bytes 和 extend_bytes。op_bytes 列(始终等于 BLCKSZ)已移除。

新功能向pg_stat_io添加WAL I/O 活动行

服务器 / 监控

向pg_stat_io添加WAL I/O 活动行(Nazir Bilal Yavuz, Bertrand Drouvot, Michael Paquier)§ § §

这包括WAL接收器活动以及此类写入的等待事件。

新功能更改服务器变量track_wal_io_timing以控制在pg_stat_io而不是 pg_stat_wal中跟踪WAL计时

服务器 / 监控

更改服务器变量track_wal_io_timing以控制在pg_stat_io而不是 pg_stat_wal中跟踪WAL计时(Bertrand Drouvot)§

关联记录(1)

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

新功能从 pg_stat_wal 中移除读/同步列

服务器 / 监控

从 pg_stat_wal 中移除读/同步列(Bertrand Drouvot)§ §

这会移除列 wal_write、wal_sync、wal_write_time 和 wal_sync_time。

关联记录(1)

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

新功能添加函数 pg_stat_get_backend_wal() 以返回每后端WAL统计信息

服务器 / 监控

添加函数 pg_stat_get_backend_wal() 以返回每后端WAL统计信息(Bertrand Drouvot)§

每后端WAL统计信息可以通过 pg_stat_reset_backend_stats() 清除。

新功能添加函数 pg_ls_summariesdir() 以专门列出 PGDATA/pg_wal/summaries 的内容

服务器 / 监控

添加函数 pg_ls_summariesdir() 以专门列出 PGDATA/pg_wal/summaries 的内容(Yushi Ogiwara)§

新功能添加列 pg_stat_checkpointer.num_done 以报告已完成的检查点数量

服务器 / 监控

添加列 pg_stat_checkpointer.num_done 以报告已完成的检查点数量(Anton A. Melnikov)§

列 num_timed 和 num_requested 同时统计已完成和已跳过的检查点。

新功能添加列 pg_stat_checkpointer.slru_written 以报告SLRU写入的缓冲区

服务器 / 监控

添加列 pg_stat_checkpointer.slru_written 以报告SLRU写入的缓冲区(Nitin Jadhav)§

此外,修改检查点服务器日志消息以报告单独的共享缓冲区和SLRU缓冲区值。

新功能添加列到 pg_stat_database 以报告并行工作者活动

服务器 / 监控

添加列到 pg_stat_database 以报告并行工作者活动(Benoit Lobréau)§

新列是 parallel_workers_to_launch 和 parallel_workers_launched。

新功能让常量列表的查询 ID 计算只考虑第一个和最后一个常量

服务器 / 监控

让常量列表的查询 ID 计算只考虑第一个和最后一个常量(Dmitry Dolgov, Sami Imseih)§ § §

查询规范化由pg_stat_statements使用。

新功能调整查询 ID 计算以将使用相同关系名称的查询组合在一起

服务器 / 监控

调整查询 ID 计算以将使用相同关系名称的查询组合在一起(Michael Paquier, Sami Imseih)§

即使不同模式中的表具有不同的列名,这也是成立的。

新功能添加列 pg_backend_memory_contexts.type 以报告内存上下文的类型

服务器 / 监控

添加列 pg_backend_memory_contexts.type 以报告内存上下文的类型(David Rowley)§

新功能添加列 pg_backend_memory_contexts.path 以显示内存上下文父级

服务器 / 监控

添加列 pg_backend_memory_contexts.path 以显示内存上下文父级(Melih Mutlu)§

关联记录(1)

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

新功能添加函数 pg_get_acl() 以检索数据库访问控制详细信息

服务器 / 权限

添加函数 pg_get_acl() 以检索数据库访问控制详细信息(Joel Jacobson)§ §

新功能添加函数 has_largeobject_privilege() 以检查大型对象权限

服务器 / 权限

添加函数 has_largeobject_privilege() 以检查大型对象权限(Yugo Nagata)§

新功能允许ALTER DEFAULT PRIVILEGES定义大型对象默认权限

服务器 / 权限

允许ALTER DEFAULT PRIVILEGES定义大型对象默认权限(Takatsuka Haruka, Yugo Nagata, Laurenz Albe)§

新功能添加预定义角色 pg_signal_autovacuum_worker

服务器 / 权限

添加预定义角色 pg_signal_autovacuum_worker(Kirill Reshke)§

这允许向自动清理工作者发送信号。

新功能添加对 OAuth 认证方法的支持

服务器 / 服务器配置

添加对 OAuth 认证方法的支持(Jacob Champion, Daniel Gustafsson, Thomas Munro)§

这为 pg_hba.conf 添加了 oauth 认证方法、libpq OAuth 选项、一个用于加载令牌验证库的服务器变量oauth_validator_libraries,以及一个 --with-libcurl 配置标志,用于添加所需的编译时库。

新功能添加服务器变量ssl_tls13_ciphers以允许指定多个以冒号分隔的 TLSv1.3 密码套件

服务器 / 服务器配置

添加服务器变量ssl_tls13_ciphers以允许指定多个以冒号分隔的 TLSv1.3 密码套件(Erica Zhang, Daniel Gustafsson)§

新功能将服务器变量ssl_groups的默认值更改为包含椭圆曲线 X25519

服务器 / 服务器配置

将服务器变量ssl_groups的默认值更改为包含椭圆曲线 X25519(Daniel Gustafsson, Jacob Champion)§

新功能将服务器变量 ssl_ecdh_curve 重命名为ssl_groups,并允许指定多个以冒号分隔的ECDH曲线

服务器 / 服务器配置

将服务器变量 ssl_ecdh_curve 重命名为ssl_groups,并允许指定多个以冒号分隔的ECDH曲线(Erica Zhang, Daniel Gustafsson)§

以前的名称仍然有效。

新功能将取消请求密钥设为 256 位

服务器 / 服务器配置

将取消请求密钥设为 256 位(Heikki Linnakangas, Jelte Fennema-Nio)§ §

这只有在服务器和客户端支持本版本中引入的线协议版本3.2时才可能实现。

新功能添加服务器变量autovacuum_worker_slots以指定后台工作者的最大数量

服务器 / 服务器配置

添加服务器变量autovacuum_worker_slots以指定后台工作者的最大数量(Nathan Bossart)§

设置此变量后,autovacuum_max_workers可以在运行时调整到此最大值,而无需重新启动服务器。

BUG 修复允许指定触发 autovacuum 的死元组的固定数量

服务器 / 服务器配置

允许指定触发 autovacuum 的死元组的固定数量(Nathan Bossart, Frédéric Yhuel)§

服务器变量是autovacuum_vacuum_max_threshold。百分比仍用于触发。

新功能更改服务器变量max_files_per_process以仅限制后端打开的文件

服务器 / 服务器配置

更改服务器变量max_files_per_process以仅限制后端打开的文件(Andres Freund)§

以前,postmaster 打开的文件也计入此限制。

新功能添加服务器变量num_os_semaphores以报告所需信号量的数量

服务器 / 服务器配置

添加服务器变量num_os_semaphores以报告所需信号量的数量(Nathan Bossart)§

这对于操作系统配置很有用。

新功能添加服务器变量extension_control_path以指定扩展控制文件的位置

服务器 / 服务器配置

添加服务器变量extension_control_path以指定扩展控制文件的位置(Peter Eisentraut, Matheus Alcantara)§ §

新功能允许使用服务器变量idle_replication_slot_timeout自动使非活动复制槽失效

服务器 / 流复制与恢复

允许使用服务器变量idle_replication_slot_timeout自动使非活动复制槽失效(Nisha Moond, Bharath Rupireddy)§

新功能添加服务器变量max_active_replication_origins以控制最大活动复制源

服务器 / 流复制与恢复

添加服务器变量max_active_replication_origins以控制最大活动复制源(Euler Taveira)§

这以前由max_replication_slots控制,但这个新设置允许在需要较少槽位的情况下具有更高的源计数。

新功能允许生成列的值进行逻辑复制

服务器 / 逻辑复制

允许生成列的值进行逻辑复制(Shubham Khanna, Vignesh C, Zhijie Hou, Shlok Kyal, Peter Smith)§ § § §

如果发布指定了列列表,则发布所有指定的列(生成的和非生成的)。如果没有指定的列列表,则发布选项 publish_generated_columns 控制是否发布生成的列。以前生成的列不进行复制,订阅者必须在可能的情况下计算值;这对于缺少此类功能的非 PostgreSQL 订阅者特别有用。

新功能将CREATE SUBSCRIPTION流式选项的默认值从 off 更改为 parallel

服务器 / 逻辑复制

将CREATE SUBSCRIPTION流式选项的默认值从 off 更改为 parallel(Vignesh C)§

新功能允许ALTER SUBSCRIPTION更改复制槽的两阶段提交行为

服务器 / 逻辑复制

允许ALTER SUBSCRIPTION更改复制槽的两阶段提交行为(Hayato Kuroda, Ajin Cherian, Amit Kapila, Zhijie Hou)§ §

新功能在应用逻辑复制更改时记录冲突

服务器 / 逻辑复制

在应用逻辑复制更改时记录冲突(Zhijie Hou, Nisha Moond)§ § § § §

同时在 pg_stat_subscription_stats 的新列中报告。

新功能允许生成列采用虚拟形式,并将虚拟生成列设为默认形式

工具命令

允许生成列采用虚拟形式,并将虚拟生成列设为默认形式(Peter Eisentraut, Jian He, Richard Guo, Dean Rasheed)§ § §

虚拟生成列在读取时生成其值,而不是在写入时生成。写入行为仍然可以通过 STORED 选项指定。

新功能为DML查询中的 RETURNING 添加 OLD/NEW 支持

工具命令

为DML查询中的 RETURNING 添加 OLD/NEW 支持(Dean Rasheed)§

以前,RETURNING只返回INSERT和UPDATE的新值,以及DELETE的旧值;MERGE则根据实际执行的内部查询返回相应的值。新语法允许INSERT/UPDATE/DELETE/MERGE的RETURNING列表通过特殊别名old和new显式返回旧值和新值。这些别名可以重命名,以避免标识符冲突。

新功能允许像现有本地表一样创建外部表

工具命令

允许像现有本地表一样创建外部表(Zhang Mingli)§

语法是 CREATE FOREIGN TABLE ... LIKE。

新功能允许 LIKE 与非确定性排序规则一起使用

工具命令

允许 LIKE 与非确定性排序规则一起使用(Peter Eisentraut)§

新功能允许文本位置搜索函数与非确定性排序规则一起使用

工具命令

允许文本位置搜索函数与非确定性排序规则一起使用(Peter Eisentraut)§

这些以前会生成错误。

新功能添加内置排序规则提供程序 PG_UNICODE_FAST

工具命令

添加内置排序规则提供程序 PG_UNICODE_FAST(Jeff Davis)§

此区域设置支持大小写映射,但按代码点顺序排序,而非自然语言顺序。

新功能允许VACUUM和ANALYZE处理分区表而不处理其子表

工具命令

允许VACUUM和ANALYZE处理分区表而不处理其子表(Michael Harris)§

这通过新的 ONLY 选项启用。这很有用,因为自动清理不处理分区表,只处理其子表。

关联记录(1)

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

新功能添加函数以修改每关系和每列优化器统计信息

工具命令

添加函数以修改每关系和每列优化器统计信息(Corey Huinker)§ § §

这些函数是 pg_restore_relation_stats()、pg_restore_attribute_stats()、pg_clear_relation_stats() 和 pg_clear_attribute_stats()。

新功能添加服务器变量file_copy_method以控制文件复制方法

工具命令

添加服务器变量file_copy_method以控制文件复制方法(Nazir Bilal Yavuz)§

这控制 CREATE DATABASE ... STRATEGY=FILE_COPY 和 ALTER DATABASE ... SET TABLESPACE 是使用文件复制还是克隆。

新功能允许指定不重叠的 PRIMARY KEY、 UNIQUE 和外键约束

工具命令 / 约束

允许指定不重叠的 PRIMARY KEY、 UNIQUE 和外键约束(Paul A. Jungwirth)§ §

这通过 WITHOUT OVERLAPS 用于 PRIMARY KEY 和 UNIQUE,并通过 PERIOD 用于外键,所有这些都应用于最后一个指定的列。

新功能允许将 CHECK 和外键约束指定为 NOT ENFORCED

工具命令 / 约束

允许将 CHECK 和外键约束指定为 NOT ENFORCED(Amul Sul)§ §

这还添加了列 pg_constraint.conenforced。

新功能要求主键/外键关系使用确定性排序规则或相同的非确定性排序规则

工具命令 / 约束

要求主键/外键关系使用确定性排序规则或相同的非确定性排序规则(Peter Eisentraut)§

如果这些要求不满足,pg_dump的恢复(pg_upgrade也使用)将失败;必须对模式进行更改才能使这些升级方法成功。

新功能将列 NOT NULL 规范存储在 pg_constraint 中

工具命令 / 约束

将列 NOT NULL 规范存储在 pg_constraint 中(Álvaro Herrera, Bernd Helmle)§ §

这允许为 NOT NULL 约束指定名称。这还向外部表添加了 NOT NULL 约束,并向本地表添加了 NOT NULL 继承控制。

新功能允许ALTER TABLE设置 NOT NULL 约束的 NOT VALID 属性

工具命令 / 约束

允许ALTER TABLE设置 NOT NULL 约束的 NOT VALID 属性(Rushabh Lathia, Jian He)§

新功能允许修改 NOT NULL 约束的可继承性

工具命令 / 约束

允许修改 NOT NULL 约束的可继承性(Suraj Kharage, Álvaro Herrera)§ §

语法是 ALTER TABLE ... ALTER CONSTRAINT ... [NO] INHERIT。

新功能允许分区表上的 NOT VALID 外键约束

工具命令 / 约束

允许分区表上的 NOT VALID 外键约束(Amul Sul)§

新功能允许在分区表上使用 ONLY 丢弃约束

工具命令 / 约束

允许在分区表上使用 ONLY 丢弃约束(Álvaro Herrera)§

这以前被错误地禁止了。

新功能添加 REJECT_LIMIT 以控制 COPY FROM 可以忽略的无效行数

工具命令 / COPY

添加 REJECT_LIMIT 以控制 COPY FROM 可以忽略的无效行数(Atsushi Torikoshi)§

这在 ON_ERROR = 'ignore' 时可用。

新功能允许 COPY TO 从已填充的物化视图复制行

工具命令 / COPY

允许 COPY TO 从已填充的物化视图复制行(Jian He)§

新功能添加 COPY LOG_VERBOSITY 级别 silent 以抑制被忽略行的日志输出

工具命令 / COPY

添加 COPY LOG_VERBOSITY 级别 silent 以抑制被忽略行的日志输出(Atsushi Torikoshi)§

当 on_error = 'ignore' 时,此新级别会抑制与被丢弃输入行有关的消息输出。

新功能禁止在外部表上 COPY FREEZE

工具命令 / COPY

禁止在外部表上 COPY FREEZE(Nathan Bossart)§

以前,COPY 可以工作,但 FREEZE 会被忽略,所以禁止此命令。

新功能自动将 BUFFERS 输出包含在 EXPLAIN ANALYZE 中

工具命令 / EXPLAIN

自动将 BUFFERS 输出包含在 EXPLAIN ANALYZE 中(Guillaume Lelarge, David Rowley)§

新功能添加完整WAL缓冲区计数到 EXPLAIN (WAL) 输出

工具命令 / EXPLAIN

添加完整WAL缓冲区计数到 EXPLAIN (WAL) 输出(Bertrand Drouvot)§

新功能在 EXPLAIN ANALYZE 中,报告每个索引扫描节点使用的索引查找次数

工具命令 / EXPLAIN

在 EXPLAIN ANALYZE 中,报告每个索引扫描节点使用的索引查找次数(Peter Geoghegan)§

新功能修改 EXPLAIN 以输出小数行计数

工具命令 / EXPLAIN

修改 EXPLAIN 以输出小数行计数(Ibrar Ahmed, Ilia Evdokimov, Robert Haas)§ §

新功能在 EXPLAIN 输出中,为 Material、Window Aggregate 和通用表表达式节点添加内存和磁盘使用详情

工具命令 / EXPLAIN

在 EXPLAIN 输出中,为 Material、Window Aggregate 和通用表表达式节点添加内存和磁盘使用详情(David Rowley, Tatsuo Ishii)§ § § §

新功能将窗口函数参数的详细信息添加到 EXPLAIN 输出

工具命令 / EXPLAIN

将窗口函数参数的详细信息添加到 EXPLAIN 输出(Tom Lane)§

新功能将 Parallel Bitmap Heap Scan 工作者缓存统计信息添加到 EXPLAIN ANALYZE

工具命令 / EXPLAIN

将 Parallel Bitmap Heap Scan 工作者缓存统计信息添加到 EXPLAIN ANALYZE(David Geier, Heikki Linnakangas, Donghang Lin, Alena Rybakina, David Rowley)§

新功能在 EXPLAIN ANALYZE 输出中指示已禁用节点

工具命令 / EXPLAIN

在 EXPLAIN ANALYZE 输出中指示已禁用节点(Robert Haas, David Rowley, Laurenz Albe)§ § §

新功能改进 Unicode 全大小写映射和转换

数据类型

改进 Unicode 全大小写映射和转换(Jeff Davis)§ §

这增加了进行条件和标题大小写映射的能力,以及将单个字符大小写映射到多个字符的能力。

新功能允许在将 jsonb null 值转换为标量类型时返回 NULL

数据类型

允许在将 jsonb null 值转换为标量类型时返回 NULL(Tom Lane)§

以前这样的转换会产生错误。

新功能向 json{b}_strip_nulls 添加可选参数,以允许删除数组中的空值元素

数据类型

向 json{b}_strip_nulls 添加可选参数,以允许删除数组中的空值元素(Florents Tselai)§

新功能添加函数 array_sort(),它对数组的第一维进行排序

数据类型

添加函数 array_sort(),它对数组的第一维进行排序(Junwang Zhao, Jian He)§

新功能添加函数 array_reverse(),它反转数组的第一维

数据类型

添加函数 array_reverse(),它反转数组的第一维(Aleksander Alekseev)§

新功能添加函数 reverse() 以反转 bytea 字节

数据类型

添加函数 reverse() 以反转 bytea 字节(Aleksander Alekseev)§

新功能允许在整数类型和 bytea 之间进行转换

数据类型

允许在整数类型和 bytea 之间进行转换(Aleksander Alekseev)§

整数值存储为 bytea 二进制补码值。

新功能更新 Unicode 数据至 Unicode 16.0.0

数据类型

更新 Unicode 数据至 Unicode 16.0.0(Peter Eisentraut)§

新功能添加爱沙尼亚语的全文检索词干提取

数据类型

添加爱沙尼亚语的全文检索词干提取(Tom Lane)§

关联记录(5)

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

新功能改进 XML 错误代码以更接近SQL标准

数据类型

改进 XML 错误代码以更接近SQL标准(Tom Lane)§

这些错误通过 SQLSTATE 报告。

新功能添加函数 casefold() 以允许更复杂的忽略大小写匹配

函数

添加函数 casefold() 以允许更复杂的忽略大小写匹配(Jeff Davis)§

这允许更准确的比较,即一个字符可以有多个大写或小写等价物,或者大写或小写转换会改变字符的数量。

新功能允许在数组和复合类型上进行 MIN()/MAX() 聚合

函数

允许在数组和复合类型上进行 MIN()/MAX() 聚合(Aleksander Alekseev, Marat Buharov)§ §

新功能向 EXTRACT() 添加 WEEK 选项

函数

向 EXTRACT() 添加 WEEK 选项(Tom Lane)§

关联记录(1)

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

新功能改进 EXTRACT(QUARTER ...) 对负值的输出

函数

改进 EXTRACT(QUARTER ...) 对负值的输出(Tom Lane)§

关联记录(1)

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

新功能向 to_number() 添加罗马数字支持

函数

向 to_number() 添加罗马数字支持(Hunaid Sohail)§

这通过 RN 模式访问。

新功能添加 UUID 版本7生成函数 uuidv7()

函数

添加 UUID 版本7生成函数 uuidv7()(Andrey Borodin)§

此 UUID 值可按时间排序。已添加函数别名 uuidv4() 以显式生成版本4 UUID。

新功能添加函数 crc32() 和 crc32c() 以计算CRC值

函数

添加函数 crc32() 和 crc32c() 以计算CRC值(Aleksander Alekseev)§

新功能添加数学函数 gamma() 和 lgamma()

函数

添加数学函数 gamma() 和 lgamma()(Dean Rasheed)§

新功能允许在 PL/pgSQL 中使用 => 语法指定具名游标参数

函数

允许在 PL/pgSQL 中使用 => 语法指定具名游标参数(Pavel Stehule)§

我们以前只接受 :=。

新功能允许 regexp_match[es]()/regexp_like()/regexp_replace()/regexp_count()/regexp_instr()/regexp_substr()/regexp_split_to_table()/regexp_split_to_array() 使用命名参数

函数

新功能添加函数 PQfullProtocolVersion() 以报告完整的(包括次要版本)协议版本号

Libpq

添加函数 PQfullProtocolVersion() 以报告完整的(包括次要版本)协议版本号(Jacob Champion, Jelte Fennema-Nio)§

新功能添加 libpq 连接参数和环境变量以指定连接的最小和最大可接受协议版本

Libpq

添加 libpq 连接参数和环境变量以指定连接的最小和最大可接受协议版本(Jelte Fennema-Nio)§ §

新功能向客户端报告search_path更改

Libpq

向客户端报告search_path更改(Alexander Kukushkin, Jelte Fennema-Nio, Tomas Vondra)§ §

新功能添加 PQtrace() 输出,用于所有消息类型,包括认证

Libpq

添加 PQtrace() 输出,用于所有消息类型,包括认证(Jelte Fennema-Nio)§ § § § §

新功能添加 libpq 连接参数 sslkeylogfile,该参数会转储SSL密钥材料

Libpq

添加 libpq 连接参数 sslkeylogfile,该参数会转储SSL密钥材料(Abhishek Chanda, Daniel Gustafsson)§

这对于调试很有用。

新功能修改一些 libpq 函数签名以使用 int64_t

Libpq

修改一些 libpq 函数签名以使用 int64_t(Thomas Munro)§

这些以前使用 pg_int64,现已弃用。

新功能允许 psql 解析、绑定和关闭命名预处理语句

psql

允许 psql 解析、绑定和关闭命名预处理语句(Anthonin Bonnefoy, Michael Paquier)§ §

这通过新命令 \parse、\bind_named 和 \close_prepared 完成。

新功能添加 psql 反斜杠命令以允许发出管道查询

psql

添加 psql 反斜杠命令以允许发出管道查询(Anthonin Bonnefoy)§ § §

新命令是 \startpipeline、\syncpipeline、\sendpipeline、\endpipeline、\flushrequest、\flush 和 \getresults。

新功能允许将管道状态添加到 psql 提示符并添加相关状态变量

psql

允许将管道状态添加到 psql 提示符并添加相关状态变量(Anthonin Bonnefoy)§

新的提示符字符是 %P,新的 psql 变量是 PIPELINE_SYNC_COUNT、PIPELINE_COMMAND_COUNT 和 PIPELINE_RESULT_COUNT。

新功能允许将连接服务名称添加到 psql 提示符或通过 psql 变量访问它

psql

允许将连接服务名称添加到 psql 提示符或通过 psql 变量访问它(Michael Banck)§

新功能添加 psql 选项,在所有列表命令上使用扩展模式

psql

添加 psql 选项,在所有列表命令上使用扩展模式(Dean Rasheed)§

添加反斜杠后缀 x 启用此功能。

新功能更改 psql 的\conninfo以使用表格格式并包含更多信息

psql

更改 psql 的\conninfo以使用表格格式并包含更多信息(Álvaro Herrera, Maiquel Grassi, Hunaid Sohail)§

新功能将函数的防泄漏指示器添加到 psql 的 \df+、\do+、\dAo+ 和 \dC+ 输出

psql

将函数的防泄漏指示器添加到 psql 的 \df+、\do+、\dAo+ 和 \dC+ 输出(Yugo Nagata)§

新功能在 \dP+ 中为分区关系添加访问方法详细信息

psql

在 \dP+ 中为分区关系添加访问方法详细信息(Justin Pryzby)§

新功能将 default_version 添加到 psql \dx 扩展输出

psql

将 default_version 添加到 psql \dx 扩展输出(Magnus Hagander)§

新功能添加 psql 变量WATCH_INTERVAL以设置默认的 \watch 等待时间

psql

添加 psql 变量WATCH_INTERVAL以设置默认的 \watch 等待时间(Daniel Gustafsson)§

新功能更改initdb默认启用校验和

服务器应用

更改initdb默认启用校验和(Greg Sabino Mullane)§ §

新的 initdb 选项 --no-data-checksums 禁用校验和。

关联记录(1)

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

新功能添加 initdb 选项 --no-sync-data-files 以避免同步堆/索引文件

服务器应用

添加 initdb 选项 --no-sync-data-files 以避免同步堆/索引文件(Nathan Bossart)§

initdb 选项 --no-sync 仍然可用,以避免同步任何文件。

新功能添加vacuumdb选项 --missing-stats-only 以仅计算缺失的优化器统计信息

服务器应用

添加vacuumdb选项 --missing-stats-only 以仅计算缺失的优化器统计信息(Corey Huinker, Nathan Bossart)§ §

此选项只能由超级用户运行,并且只能与选项 --analyze-only 和 --analyze-in-stages 一起使用。

新功能添加pg_combinebackup选项 -k/--link 以启用硬链接

服务器应用

添加pg_combinebackup选项 -k/--link 以启用硬链接(Israel Barth Rubio, Robert Haas)§

只有某些文件可以硬链接。如果备份将独立使用,则不应使用此功能。

新功能允许pg_verifybackup验证 tar 格式备份

服务器应用

允许pg_verifybackup验证 tar 格式备份(Amul Sul)§

新功能如果pg_rewind的 --source-server 指定了数据库名称,则在 --write-recovery-conf 输出中使用它

服务器应用

如果pg_rewind的 --source-server 指定了数据库名称,则在 --write-recovery-conf 输出中使用它(Masahiko Sawada)§

新功能添加pg_resetwal选项 --char-signedness 以更改默认的 char 有符号性

服务器应用

添加pg_resetwal选项 --char-signedness 以更改默认的 char 有符号性(Masahiko Sawada)§

新功能添加pg_dump选项 --statistics

服务器应用 / pg_dump/pg_dumpall/pg_restore

添加pg_dump选项 --statistics(Jeff Davis)§ §

新功能添加 pg_dump 和pg_dumpall选项 --sequence-data 以转储通常会被排除的序列数据

服务器应用 / pg_dump/pg_dumpall/pg_restore

添加 pg_dump 和pg_dumpall选项 --sequence-data 以转储通常会被排除的序列数据(Nathan Bossart)§ §

新功能添加pg_dump、pg_dumpall和pg_restore选项 --statistics-only、--no-statistics、--no-data 和 --no-schema

服务器应用 / pg_dump/pg_dumpall/pg_restore

添加pg_dump、pg_dumpall和pg_restore选项 --statistics-only、--no-statistics、--no-data 和 --no-schema(Corey Huinker, Jeff Davis)§

关联记录(1)

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

新功能添加选项 --no-policies 以禁用pg_dump、pg_dumpall、pg_restore中的行级安全策略处理

服务器应用 / pg_dump/pg_dumpall/pg_restore

添加选项 --no-policies 以禁用pg_dump、pg_dumpall、pg_restore中的行级安全策略处理(Nikolay Samokhvalov)§

这对于迁移到具有不同策略的系统很有用。

新功能允许 pg_upgrade 保留优化器统计信息

服务器应用 / pg_upgrade

允许 pg_upgrade 保留优化器统计信息(Corey Huinker, Jeff Davis, Nathan Bossart)§ § § §

不保留扩展统计信息。同时添加 pg_upgrade 选项 --no-statistics 以禁用统计信息保留。

关联记录(1)

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

新功能允许 pg_upgrade 并行处理数据库检查

服务器应用 / pg_upgrade

允许 pg_upgrade 并行处理数据库检查(Nathan Bossart)§ § § § § § § § § § §

这由现有 --jobs 选项控制。

新功能添加 pg_upgrade 选项 --swap 以交换目录而不是复制、克隆或链接文件

服务器应用 / pg_upgrade

添加 pg_upgrade 选项 --swap 以交换目录而不是复制、克隆或链接文件(Nathan Bossart)§

此模式可能是最快的。

新功能添加 pg_upgrade 选项 --set-char-signedness 以设置新集簇的默认 char 符号性

服务器应用 / pg_upgrade

添加 pg_upgrade 选项 --set-char-signedness 以设置新集簇的默认 char 符号性(Masahiko Sawada)§ §

这是为了处理 PostgreSQL 18 之前集簇的默认CPU符号性与新集簇不匹配的情况。

新功能添加pg_createsubscriber选项 --all 以创建所有数据库的逻辑副本

服务器应用 / 逻辑复制应用程序

添加pg_createsubscriber选项 --all 以创建所有数据库的逻辑副本(Shubham Khanna)§

新功能添加 pg_createsubscriber 选项 --clean 以删除发布

服务器应用 / 逻辑复制应用程序

添加 pg_createsubscriber 选项 --clean 以删除发布(Shubham Khanna)§ §

新功能添加 pg_createsubscriber 选项 --enable-two-phase 以启用预备事务

服务器应用 / 逻辑复制应用程序

添加 pg_createsubscriber 选项 --enable-two-phase 以启用预备事务(Shubham Khanna)§

新功能添加pg_recvlogical选项 --enable-failover 以指定故障切换槽

服务器应用 / 逻辑复制应用程序

添加pg_recvlogical选项 --enable-failover 以指定故障切换槽(Hayato Kuroda)§

还添加选项 --enable-two-phase 作为 --two-phase 的同义词,并弃用后者。

新功能允许 pg_recvlogical --drop-slot 在没有 --dbname 的情况下工作

服务器应用 / 逻辑复制应用程序

允许 pg_recvlogical --drop-slot 在没有 --dbname 的情况下工作(Hayato Kuroda)§

新功能分离注入点的加载和运行

源代码

分离注入点的加载和运行(Michael Paquier, Heikki Linnakangas)§ §

现在可以通过 INJECTION_POINT_LOAD() 创建注入点但不运行,并且可以通过 INJECTION_POINT_CACHED() 运行这些注入点。

新功能支持注入点中的运行时参数

源代码

支持注入点中的运行时参数(Michael Paquier)§

新功能允许使用 IS_INJECTION_POINT_ATTACHED() 的内联注入点测试代码

源代码

允许使用 IS_INJECTION_POINT_ATTACHED() 的内联注入点测试代码(Heikki Linnakangas)§

性能改进使用 SIMD(单指令多数据)改进处理长JSON字符串的性能

源代码

使用 SIMD(单指令多数据)改进处理长JSON字符串的性能(David Rowley)§

性能改进使用 x86 AVX-512 指令加速 CRC32C 计算

源代码

使用 x86 AVX-512 指令加速 CRC32C 计算(Raghuveer Devulapalli, Paul Amonson)§

新功能添加用于 popcount(整数位计数)的ARM Neon 和SVE CPU内在函数

源代码

添加用于 popcount(整数位计数)的ARM Neon 和SVE CPU内在函数(Chiranmoy Bhattacharya, Devanga Susmitha, Rama Malladi)§ §

新功能提高数值乘法和除法的速度

源代码

提高数值乘法和除法的速度(Joel Jacobson, Dean Rasheed)§ § § §

新功能添加配置选项--with-libnuma以启用NUMA感知功能

源代码

添加配置选项--with-libnuma以启用NUMA感知功能(Jakub Wartak, Bertrand Drouvot)§ § §

函数pg_numa_available() 报告是否具备NUMA感知能力;系统视图 pg_shmem_allocations_numa 和pg_buffercache_numa 报告共享内存在NUMA节点之间的分布。

新功能将TOAST表添加到pg_index,以允许创建超大型表达式索引

源代码

将TOAST表添加到pg_index,以允许创建超大型表达式索引(Nathan Bossart)§

新功能移除列pg_attribute.attcacheoff

源代码

移除列pg_attribute.attcacheoff(David Rowley)§

新功能添加列pg_class.relallfrozen

源代码

添加列pg_class.relallfrozen(Melanie Plageman)§

新功能将amgettreeheight、amconsistentequality和amconsistentordering添加到索引访问方法API

源代码

将amgettreeheight、amconsistentequality和amconsistentordering添加到索引访问方法API(Mark Dilger)§ §

新功能添加GiST支持函数stratnum()

源代码

添加GiST支持函数stratnum()(Paul A. Jungwirth)§

新功能在pg_controldata中记录CPU对char类型的默认有符号性

源代码

在pg_controldata中记录CPU对char类型的默认有符号性(Masahiko Sawada)§

新功能在PL/Python中添加对 Python“Limited API”的支持

源代码

在PL/Python中添加对 Python“Limited API”的支持(Peter Eisentraut)§§

这有助于防止由于Python 3.x 版本不匹配引起的问题。

新功能将最低支持的Python版本更改为3.6.8

源代码

将最低支持的Python版本更改为3.6.8(Jacob Champion)§

新功能移除对早于1.1.1版本的OpenSSL的支持

源代码

移除对早于1.1.1版本的OpenSSL的支持(Daniel Gustafsson)§ §

新功能如果启用LLVM,则要求版本14或更高

源代码

如果启用LLVM,则要求版本14或更高(Thomas Munro)§

新功能添加宏PG_MODULE_MAGIC_EXT以允许扩展报告其名称和版本

源代码

添加宏PG_MODULE_MAGIC_EXT以允许扩展报告其名称和版本(Andrei Lepikhov)§

此信息可以通过新函数pg_get_loaded_modules()访问。

新功能文档指出SPI_connect()/SPI_connect_ext()总是返回成功(SPI_OK_CONNECT)

源代码

文档指出SPI_connect()/SPI_connect_ext()总是返回成功(SPI_OK_CONNECT)(Stepan Neretin)§

错误总是通过ereport()报告。

新功能添加关于API和ABI兼容性的文档章节

源代码

添加关于API和ABI兼容性的文档章节(David Wheeler, Peter Eisentraut)§

新功能移除Meson上Windows构建的实验性标记

源代码

移除Meson上Windows构建的实验性标记(Aleksander Alekseev)§

新功能移除配置选项--disable-spinlocks和--disable-atomics

源代码

移除配置选项--disable-spinlocks和--disable-atomics(Thomas Munro)§ §

现在需要32位原子操作。

新功能移除对HPPA/PA-RISC架构的支持

源代码

移除对HPPA/PA-RISC架构的支持(Tom Lane)§

新功能添加扩展pg_logicalinspect以检查逻辑快照

附加模块

添加扩展pg_logicalinspect以检查逻辑快照(Bertrand Drouvot)§

新功能添加扩展pg_overexplain,它向EXPLAIN输出添加调试细节

附加模块

添加扩展pg_overexplain,它向EXPLAIN输出添加调试细节(Robert Haas)§

新功能向postgres_fdw_get_connections()添加输出列

附加模块

向postgres_fdw_get_connections()添加输出列(Hayato Kuroda, Sagar Dilip Shedge)§ § § §

新的输出列used_in_xact指示外部数据包装器是否正在被当前事务使用,closed指示它是否已关闭,user_name指示用户名,remote_backend_pid指示远程后端进程标识符。

新功能允许将客户端的SCRAM认证传递给postgres_fdw服务器

附加模块

允许将客户端的SCRAM认证传递给postgres_fdw服务器(Matheus Alcantara, Peter Eisentraut)§

这避免了在数据库中存储postgres_fdw认证信息,并通过postgres_fdw use_scram_passthrough连接选项启用。libpq使用新的连接参数scram_client_key和scram_server_key。

新功能允许将客户端的SCRAM认证传递给dblink服务器

附加模块

允许将客户端的SCRAM认证传递给dblink服务器(Matheus Alcantara)§

新功能为file_fdw添加on_error和log_verbosity选项

附加模块

为file_fdw添加on_error和log_verbosity选项(Atsushi Torikoshi)§

这些控制file_fdw如何处理和报告无效文件行。

新功能添加reject_limit以控制file_fdw可以忽略的无效行数

附加模块

添加reject_limit以控制file_fdw可以忽略的无效行数(Atsushi Torikoshi)§

这在ON_ERROR = 'ignore'时激活。

新功能向passwordcheck添加可配置变量min_password_length

附加模块

向passwordcheck添加可配置变量min_password_length(Emanuele Musella, Maurizio Boriani)§

这控制最小密码长度。

新功能让pgbench在每脚本报告中报告失败、重试或跳过的事务数

附加模块

让pgbench在每脚本报告中报告失败、重试或跳过的事务数(Yugo Nagata)§

新功能添加isn服务器变量weak以控制是否接受无效的校验位

附加模块

添加isn服务器变量weak以控制是否接受无效的校验位(Viktor Holmberg)§

这以前仅由函数isn_weak()控制。

新功能允许对值进行排序以加快btree_gist索引的构建

附加模块

允许对值进行排序以加快btree_gist索引的构建(Bernd Helmle, Andrey Borodin)§

新功能添加amcheck检查函数gin_index_check()以验证GIN索引

附加模块

添加amcheck检查函数gin_index_check()以验证GIN索引(Grigory Kryachko, Heikki Linnakangas, Andrey Borodin)§

新功能添加函数pg_buffercache_evict_relation()和pg_buffercache_evict_all()以逐出未钉住的共享缓冲区

附加模块

添加函数pg_buffercache_evict_relation()和pg_buffercache_evict_all()以逐出未钉住的共享缓冲区(Nazir Bilal Yavuz)§

现有函数pg_buffercache_evict()现在返回缓冲区刷新状态。

新功能允许扩展安装自定义的EXPLAIN选项

附加模块

允许扩展安装自定义的EXPLAIN选项(Robert Haas, Sami Imseih)§ § §

新功能允许扩展使用服务器的累计统计信息API

附加模块

允许扩展使用服务器的累计统计信息API(Michael Paquier)§ §

新功能允许CREATE TABLE AS和DECLARE的查询被pg_stat_statements跟踪

附加模块 / pg_stat_statements

允许CREATE TABLE AS和DECLARE的查询被pg_stat_statements跟踪(Anthonin Bonnefoy)§

它们现在也被分配了查询ID。

新功能允许在pg_stat_statements中对SET的值进行参数化

附加模块 / pg_stat_statements

允许在pg_stat_statements中对SET的值进行参数化(Greg Sabino Mullane, Michael Paquier)§

这减少了由于具有不同常量的SET语句引起的数据膨胀。

新功能添加pg_stat_statements列以报告并行活动

附加模块 / pg_stat_statements

添加pg_stat_statements列以报告并行活动(Guillaume Lelarge)§

新列是 parallel_workers_to_launch 和 parallel_workers_launched。

新功能添加pg_stat_statements.wal_buffers_full以报告满WAL缓冲区

附加模块 / pg_stat_statements

添加pg_stat_statements.wal_buffers_full以报告满WAL缓冲区(Bertrand Drouvot)§

新功能添加pgcrypto算法sha256crypt和sha512crypt

附加模块 / pgcrypto

添加pgcrypto算法sha256crypt和sha512crypt(Bernd Helmle)§

新功能为pgcrypto的加密和解密添加CFB模式

附加模块 / pgcrypto

为pgcrypto的加密和解密添加CFB模式(Umar Hayat)§

新功能添加函数fips_mode()以报告服务器的FIPS模式

附加模块 / pgcrypto

添加函数fips_mode()以报告服务器的FIPS模式(Daniel Gustafsson)§

新功能添加pgcrypto服务器变量builtin_crypto_enabled以允许禁用内置非FIPS模式密码学函数

附加模块 / pgcrypto

添加pgcrypto服务器变量builtin_crypto_enabled以允许禁用内置非FIPS模式密码学函数(Daniel Gustafsson, Joe Conway)§

这对于保证FIPS模式行为很有用。

这份对比如何生成?

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

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

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

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

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