文档版本比较
POSTGRESQL · VERSION COMPARE
PostgreSQL 16.0 发布变化
此版本的完整功能、修复与兼容性说明,以及其他版本的关联记录。
包括起始版本之后至目标版本的变化。大版本号表示该分支的首个版本。
从数据库输出识别起始版本
完整发布变化
16.0
2023-09-14
16.0stable支持截止 2028-11-09
PostgreSQL 16.0
迁移与兼容性
对于希望从任何以前的版本迁移数据的人来说,需要使用pg_dumpall进行转储/恢复,或者使用pg_upgrade或逻辑复制。有关迁移到新主要版本的通用信息,请参阅第 19.6 节。
版本 16 包含一些可能影响与以前版本兼容性的变更。请注意以下不兼容性:
兼容性更改PL/pgSQL绑定游标变量的赋值规则
兼容性禁止主键使用 NULLS NOT DISTINCT 索引
兼容性
禁止主键使用 NULLS NOT DISTINCT 索引(Daniel Gustafsson)§
兼容性更改 REINDEX DATABASE 和reindexdb不再处理系统目录上的索引
兼容性
更改 REINDEX DATABASE 和reindexdb不再处理系统目录上的索引(Simon Riggs)§ §
仍可通过 REINDEX SYSTEM 和 reindexdb --system 处理此类索引。
兼容性收紧对继承表和分区表的 GENERATED 表达式限制
兼容性移除pg_walinspect的函数 pg_get_wal_records_info_till_end_of_wal() 和 pg_get_wal_stats_till_end_of_wal()
兼容性
移除pg_walinspect的函数 pg_get_wal_records_info_till_end_of_wal() 和 pg_get_wal_stats_till_end_of_wal()(Bharath Rupireddy)§
兼容性将服务器变量 force_parallel_mode 重命名为 debug_parallel_query
兼容性
将服务器变量 force_parallel_mode 重命名为 debug_parallel_query(David Rowley)§ §
兼容性移除服务器变量 vacuum_defer_cleanup_age
兼容性
移除服务器变量 vacuum_defer_cleanup_age(Andres Freund)§
自从引入 hot_standby_feedback 和复制槽后,它就已不再需要。
兼容性移除服务器变量 promote_trigger_file
兼容性
移除服务器变量 promote_trigger_file(Simon Riggs)§
这用于将备库提升为主库,但现在使用 pg_ctl promote 或 pg_promote() 更容易实现。
兼容性移除只读服务器变量 lc_collate 和 lc_ctype
兼容性
移除只读服务器变量 lc_collate 和 lc_ctype(Peter Eisentraut)§
排序规则和区域设置可以在数据库之间不同,因此将它们作为只读服务器变量并无意义。
兼容性角色的继承属性现在决定在 GRANT 时添加的成员角色的默认继承状态
兼容性限制 CREATEROLE 的权限及其修改其他角色的能力
兼容性
限制 CREATEROLE 的权限及其修改其他角色的能力(Robert Haas)§ §
之前,具有 CREATEROLE 权限的角色可以更改任何非超级用户角色的许多方面。此类更改(包括添加成员)现在要求请求更改的角色具有 ADMIN OPTION 权限。例如,它们现在只有在也具有这些权限时才能更改 CREATEDB、REPLICATION 和 BYPASSRLS 属性。
兼容性移除 postmaster 二进制文件的符号链接
兼容性
移除 postmaster 二进制文件的符号链接(Peter Eisentraut)§
新功能增加聚合函数使用带有 ORDER BY 或 DISTINCT 的预排序数据的能力
服务器 / 优化器
增加聚合函数使用带有 ORDER BY 或 DISTINCT 的预排序数据的能力(David Rowley)§ § §
新的服务器变量 enable_presorted_aggregate 可用于禁用此功能。
新功能允许在 UNION ALL 之上使用 memoize
服务器 / 优化器
允许在 UNION ALL 之上使用 memoize(Richard Guo)§
新功能允许反连接以非空输入作为内关系执行
服务器 / 优化器
允许反连接以非空输入作为内关系执行(Richard Guo)§
性能当 RANGE 模式处于活动状态但不必要时,允许窗口函数在内部使用更快的 ROWS 模式
性能允许优化单调递增的窗口函数 ntile()、cume_dist() 和 percent_rank()
性能允许聚合函数 string_agg() 和 array_agg() 被并行化
服务器 / 一般性能
允许聚合函数 string_agg() 和 array_agg() 被并行化(David Rowley)§
性能通过缓存 RANGE 和 LIST 分区查找来改进性能
性能允许控制 vacuum 和 analyze 使用的共享缓冲区
性能在 Windows 上支持 wal_sync_method=fdatasync
服务器 / 一般性能
在 Windows 上支持 wal_sync_method=fdatasync(Thomas Munro)§
性能当只更新了 BRIN 索引列时,允许 HOT 更新
性能允许 xid/subxid 搜索和 ASCII 字符串检测使用向量运算
性能减少内存分配的开销
服务器 / 一般性能
减少内存分配的开销(Andres Freund,David Rowley)§
新功能记录表上最后一次顺序扫描和索引扫描的统计信息
服务器 / 监控
记录表上最后一次顺序扫描和索引扫描的统计信息(Dave Page)§
此信息显示在 pg_stat_*_tables 和 pg_stat_*_indexes 中。
新功能记录已更新行移动到新页面的统计信息
服务器 / 监控
记录已更新行移动到新页面的统计信息(Corey Huinker)§
pg_stat_*_tables 列为 n_tup_newpage_upd。
新功能向 pg_locks 系统视图添加推测锁信息
新功能向 pg_prepared_statements 视图添加预备语句结果类型的显示
服务器 / 监控
向 pg_prepared_statements 视图添加预备语句结果类型的显示(Dagfinn Ilmari Mannsåker)§ §
新功能在订阅创建时创建订阅统计条目,使 stats_reset 准确
服务器 / 监控
在订阅创建时创建订阅统计条目,使 stats_reset 准确(Andres Freund)§
之前条目仅在首次报告统计信息时创建。
问题修复修正 pg_stat_database 中显示的临时关系写入的 I/O 统计
服务器 / 监控
修正 pg_stat_database 中显示的临时关系写入的 I/O 统计(Melanie Plageman)§
新功能增加函数 pg_stat_get_backend_subxact() 以报告会话的子事务缓存
服务器 / 监控
增加函数 pg_stat_get_backend_subxact() 以报告会话的子事务缓存(Dilip Kumar)§
新功能使 pg_stat_get_backend_idset()、pg_stat_get_backend_activity() 和相关函数使用不变的后端 id
服务器 / 监控
使 pg_stat_get_backend_idset()、pg_stat_get_backend_activity() 和相关函数使用不变的后端 id(Nathan Bossart)§
之前索引值在会话生命周期内可能会更改。
新功能以特殊的后端类型报告独立后端
服务器 / 监控
以特殊的后端类型报告独立后端(Melanie Plageman)§
新功能创建新的等待事件 DSMAllocate 以指示等待动态共享内存分配
服务器 / 监控
创建新的等待事件 DSMAllocate 以指示等待动态共享内存分配(Thomas Munro)§
之前此类等待被报告为 DSMFillZeroWrite,该名称也被 mmap() 分配使用。
新功能将数据库名称添加到逻辑 WAL 发送器的进程标题中
新功能向 log_checkpoints 消息添加检查点和 REDO LSN 信息
服务器 / 监控
向 log_checkpoints 消息添加检查点和 REDO LSN 信息(Bharath Rupireddy,Kyotaro Horiguchi)§
新功能在客户端证书失败时提供额外详细信息
服务器 / 监控
在客户端证书失败时提供额外详细信息(Jacob Champion)§
新功能增加具有创建订阅权限的预定义角色 pg_create_subscription
新功能允许订阅不要求密码
服务器 / 权限
这通过选项 password_required=false 实现。
新功能简化 LOCK TABLE 的权限
服务器 / 权限
简化 LOCK TABLE 的权限(Jeff Davis)§
之前用户执行各种锁级别的 LOCK TABLE 的能力被限制为他们有权在表上执行的命令所需的锁级别。例如,具有 UPDATE 权限的用户可以执行除 ACCESS SHARE 之外的所有锁级别,即使它是较低的锁级别。现在,如果用户已有更高锁级别的权限,则可以发出较低的锁级别。
新功能允许使用 ADMIN OPTION 执行 ALTER GROUP group_name ADD USER user_name
服务器 / 权限
允许使用 ADMIN OPTION 执行 ALTER GROUP group_name ADD USER user_name(Robert Haas)§
之前需要 CREATEROLE 权限。
新功能允许 GRANT 使用 WITH ADMIN TRUE/FALSE 语法
服务器 / 权限
新功能允许创建其他角色的角色自动继承新角色的权限或 SET ROLE 到新角色的能力
服务器 / 权限
允许创建其他角色的角色自动继承新角色的权限或 SET ROLE 到新角色的能力(Robert Haas,Shi Yu)§ §
这由服务器变量 createrole_self_grant 控制。
新功能防止用户更改非继承角色的默认权限
服务器 / 权限
防止用户更改非继承角色的默认权限(Robert Haas)§
现在这仅对继承的角色允许。
新功能在授予角色成员资格时,要求被授权人角色具有适当的权限
服务器 / 权限
在授予角色成员资格时,要求被授权人角色具有适当的权限(Robert Haas)§
即使非引导超级用户授予角色成员资格时也有此要求。
新功能允许非超级用户使用非当前用户的被授权人授予权限
服务器 / 权限
允许非超级用户使用非当前用户的被授权人授予权限(Robert Haas)§
当前用户仍然必须具有指定被授权人所给予的足够权限。
新功能增加 GRANT 以控制使用 SET ROLE 的权限
新功能为已授予权限的角色添加依赖跟踪
服务器 / 权限
为已授予权限的角色添加依赖跟踪(Robert Haas)§
例如,如果存在使用该选项的权限,移除 ADMIN OPTION 将会失败;必须使用 CASCADE 来撤销依赖的权限。
新功能为 GRANT 记录添加授予者的依赖跟踪
服务器 / 权限
为 GRANT 记录添加授予者的依赖跟踪(Robert Haas)§
这保证 pg_auth_members.grantor 值始终有效。
新功能允许多个角色成员资格记录
服务器 / 权限
新功能防止移除引导用户的超级用户权限
服务器 / 权限
防止移除引导用户的超级用户权限(Robert Haas)§
恢复此类用户可能导致错误。
新功能允许 makeaclitem() 接受多个权限名称
服务器 / 权限
允许 makeaclitem() 接受多个权限名称(Robins Tharakan)§
之前只接受单个权限名称,如 SELECT。
新功能增加对 Kerberos 凭证委托的支持
服务器 / 服务器配置
增加对 Kerberos 凭证委托的支持(Stephen Frost)§ § § §
这通过服务器变量 gss_accept_delegation 和 libpq 连接参数 gssdelegation 启用。
新功能允许通过服务器变量 scram_iterations 设置 SCRAM 迭代次数
服务器 / 服务器配置
允许通过服务器变量 scram_iterations 设置 SCRAM 迭代次数(Daniel Gustafsson)§
新功能收紧对哪些服务器变量可以重置的限制
服务器 / 服务器配置
收紧对哪些服务器变量可以重置的限制(Masahiko Sawada)§
之前,虽然某些变量(如 transaction_isolation)不受 RESET ALL 影响,但它们可以在不适当的情况下被单独重置。
新功能将各种 postgresql.conf 项目移入新类别
服务器 / 服务器配置
将各种 postgresql.conf 项目移入新类别(Shinya Kato)§
这也影响 pg_settings 视图中显示的类别。
新功能防止配置文件递归超过 10 层
服务器 / 服务器配置
防止配置文件递归超过 10 层(Julien Rouhaud)§
新功能允许自动清理更频繁地遵守延迟设置的更改
新功能移除归档文件必须持久重命名的限制
服务器 / 服务器配置
移除归档文件必须持久重命名的限制(Nathan Bossart)§ §
archive_command 命令现在更可能在崩溃后使用已归档的文件被调用。
新功能防止同时设置 archive_library 和 archive_command
服务器 / 服务器配置
防止同时设置 archive_library 和 archive_command(Nathan Bossart)§
之前 archive_library 会覆盖 archive_command。
新功能允许 postmaster 使用中止信号终止子进程
服务器 / 服务器配置
允许 postmaster 使用中止信号终止子进程(Tom Lane)§
这允许收集卡住的子进程的核心转储。这由 send_abort_for_crash 和 send_abort_for_kill 控制。postmaster 的 -T 开关现在与设置 send_abort_for_crash 相同。
关联记录 (1)
新功能移除无功能的 postmaster -n 选项
新功能允许服务器为具有 pg_use_reserved_connections 成员资格的角色预留后端槽位
服务器 / 服务器配置
允许服务器为具有 pg_use_reserved_connections 成员资格的角色预留后端槽位(Nathan Bossart)§
预留槽位的数量由服务器变量 reserved_connections 设置。
新功能允许大页在较新版本的 Windows 10 上工作
新功能增加供开发者使用的 debug_io_direct 设置
服务器 / 服务器配置
增加供开发者使用的 debug_io_direct 设置(Thomas Munro,Andres Freund,Bharath Rupireddy)§ §
虽然主要面向开发者,wal_sync_method=open_sync/open_datasync 已被修改为在 wal_level=minimal 时不使用直接 I/O;现在通过 debug_io_direct=wal 启用。
新功能增加函数 pg_split_walfile_name() 以报告 WAL 文件名的段和时间线值
服务器 / 服务器配置
增加函数 pg_split_walfile_name() 以报告 WAL 文件名的段和时间线值(Bharath Rupireddy)§ §
新功能增加在 pg_hba.conf 中对数据库和角色条目进行正则表达式匹配的支持
服务器 / pg_hba.conf
增加在 pg_hba.conf 中对数据库和角色条目进行正则表达式匹配的支持(Bertrand Drouvot)§
正则表达式模式以斜杠为前缀。以斜杠开头的数据库和角色名称如果在 pg_hba.conf 中引用,需要用双引号括起来。
新功能改进 pg_ident.conf 的用户列处理以匹配 pg_hba.conf
服务器 / pg_hba.conf
改进 pg_ident.conf 的用户列处理以匹配 pg_hba.conf(Jelte Fennema)§
具体来说,增加对 all、使用 + 的角色成员资格以及使用前导斜杠的正则表达式的支持。与这些模式匹配的任何用户名必须用双引号括起来。
新功能允许在 pg_hba.conf 和 pg_ident.conf 中包含文件
服务器 / pg_hba.conf
允许在 pg_hba.conf 和 pg_ident.conf 中包含文件(Julien Rouhaud)§
这由 include、include_if_exists 和 include_dir 控制。系统视图 pg_hba_file_rules 和 pg_ident_file_mappings 现在显示文件名。
新功能允许 pg_hba.conf 令牌具有无限长度
服务器 / pg_hba.conf
允许 pg_hba.conf 令牌具有无限长度(Tom Lane)§
关联记录 (5)
- 相关提交PostgreSQL 15.4 · 允许 pg_hba.conf 和 pg_ident.conf 中的令牌长度最多为 10240 字节
- 相关提交PostgreSQL 14.9 · 允许 pg_hba.conf 和 pg_ident.conf 中的令牌长度最多为 10240 字节
- 相关提交PostgreSQL 13.12 · 允许 pg_hba.conf 和 pg_ident.conf 中的令牌长度最多为 10240 字节
- 相关提交PostgreSQL 12.16 · 允许 pg_hba.conf 和 pg_ident.conf 中的令牌长度最多为 10240 字节
- 相关提交PostgreSQL 11.21 · 允许 pg_hba.conf 和 pg_ident.conf 中的令牌长度最多为 10240 字节
新功能向系统视图 pg_hba_file_rules 添加规则和映射编号
服务器 / pg_hba.conf
向系统视图 pg_hba_file_rules 添加规则和映射编号(Julien Rouhaud)§
新功能使用 ICU 时从区域设置确定默认编码
服务器 / 本地化
使用 ICU 时从区域设置确定默认编码(Jeff Davis)§
之前默认始终为 UTF-8。
新功能使 CREATE DATABASE 和 CREATE COLLATION 的 LOCALE 选项以及initdb和createdb的 --locale 选项控制非 libc 排序规则提供程序
服务器 / 本地化
使 CREATE DATABASE 和 CREATE COLLATION 的 LOCALE 选项以及initdb和createdb的 --locale 选项控制非 libc 排序规则提供程序(Jeff Davis)
之前它们仅控制 libc 提供程序。
新功能增加预定义排序规则 unicode 和 ucs_basic
服务器 / 本地化
增加预定义排序规则 unicode 和 ucs_basic(Peter Eisentraut)§
这仅在启用 ICU 支持时有效。
新功能允许创建自定义 ICU 排序规则
服务器 / 本地化
允许创建自定义 ICU 排序规则(Peter Eisentraut)§
这通过 CREATE COLLATION 的新 RULES 子句以及 CREATE DATABASE、createdb和initdb的新选项来实现。
新功能允许 Windows 自动导入系统区域设置
服务器 / 本地化
允许 Windows 自动导入系统区域设置(Juan José Santamaría Flecha)§
之前在 Windows 上只能导入 ICU 区域设置。
新功能允许在备库上进行逻辑解码
逻辑复制
允许在备库上进行逻辑解码(Bertrand Drouvot,Andres Freund,Amit Khandekar)§ § §
创建逻辑槽需要快照 WAL 记录,但这类记录无法在备库上生成。为避免延迟,新函数 pg_log_standby_snapshot() 可生成此类记录。
新功能允许逻辑复制初始表同步以二进制格式复制行
逻辑复制
允许逻辑复制初始表同步以二进制格式复制行(Melih Mutlu)§
这仅对标记为二进制的订阅可用。
新功能允许并行应用逻辑复制
逻辑复制
允许并行应用逻辑复制(Hou Zhijie,Wang Wei,Amit Kapila)§ § §
CREATE SUBSCRIPTION 的 STREAMING 选项现在支持 parallel,以便使用并行工作进程应用大事务。并行工作进程的数量由新的服务器变量 max_parallel_apply_workers_per_subscription 控制。还新增了等待事件 LogicalParallelApplyMain、LogicalParallelApplyStateChange 和 LogicalApplySendData。系统视图 pg_stat_subscription 也新增了列 leader_pid 以跟踪并行活动。
性能改进没有主键时逻辑复制应用的性能
新功能允许逻辑复制订阅者仅处理没有来源的变更
新功能以表所有者身份执行逻辑复制 SELECT 和 DML 操作
逻辑复制
以表所有者身份执行逻辑复制 SELECT 和 DML 操作(Robert Haas)§ §
这提高了安全性,现在要求订阅所有者是超级用户或对复制集中所有拥有表的角色具有 SET ROLE 权限。以订阅所有者身份执行所有操作的先前行为可以通过订阅 run_as_owner 选项启用。
新功能使 wal_retrieve_retry_interval 按订阅操作
逻辑复制
使 wal_retrieve_retry_interval 按订阅操作(Nathan Bossart)§
之前重试时间是全局应用的。这还添加了等待事件 LogicalRepLauncherDSA 和 LogicalRepLauncherHash。
新功能增加 EXPLAIN 选项 GENERIC_PLAN 以显示参数化查询的通用计划
新功能允许 COPY 以批量方式向外部表添加行
工具命令
允许 COPY 以批量方式向外部表添加行(Andrey Lepikhov,Etsuro Fujita)§
这由postgres_fdw选项 batch_size 控制。
新功能允许 CREATE TABLE 指定 STORAGE 类型
工具命令
允许 CREATE TABLE 指定 STORAGE 类型(Teodor Sigaev,Aleksander Alekseev)§ §
之前只有 ALTER TABLE 可以控制这一点。
新功能允许 VACUUM 和vacuumdb仅处理 TOAST 表
新功能增加 VACUUM 选项以跳过或更新所有冻结统计
工具命令
关联记录 (1)
新功能更改 REINDEX DATABASE 和 REINDEX SYSTEM 不再要求参数
工具命令
更改 REINDEX DATABASE 和 REINDEX SYSTEM 不再要求参数(Simon Riggs)§ §
之前必须指定数据库名称。
新功能允许 CREATE STATISTICS 在未指定名称时自动生成统计名称
工具命令
允许 CREATE STATISTICS 在未指定名称时自动生成统计名称(Simon Riggs)§
新功能允许 NUMERIC 处理任意大小的十六进制、八进制和二进制整数
新功能接受日期时间输入中 +infinity 的拼写
数据类型
接受日期时间输入中 +infinity 的拼写(Vik Fearing)§
新功能禁止在日期时间字符串中将 epoch 或 infinity 与其他字段组合使用
数据类型
禁止在日期时间字符串中将 epoch 或 infinity 与其他字段组合使用(Joseph Koshakow)§
新功能移除对 YyearMmonthDday 形式日期输入的未文档化支持
数据类型
移除对 Y 形式日期输入的未文档化支持(Joseph Koshakow)§yearMmonthDday
新功能增加函数 pg_input_is_valid() 和 pg_input_error_info() 以检查类型转换错误
数据类型
增加函数 pg_input_is_valid() 和 pg_input_error_info() 以检查类型转换错误(Tom Lane)§ §
新功能允许 FROM 子句中的子查询省略别名
一般查询
允许 FROM 子句中的子查询省略别名(Dean Rasheed)§
新功能增加对 SQL/JSON 路径中增强数字字面量的支持
一般查询
增加对 SQL/JSON 路径中增强数字字面量的支持(Peter Eisentraut)§
例如,允许十六进制、八进制和二进制整数以及数字间的下划线。
新功能增加 SQL/JSON 构造函数
函数
增加 SQL/JSON 构造函数(Nikita Glukhov,Teodor Sigaev,Oleg Bartunov,Alexander Korotkov,Amit Langote)§
新函数 JSON_ARRAY()、JSON_ARRAYAGG()、JSON_OBJECT() 和 JSON_OBJECTAGG() 是 SQL 标准的一部分。
新功能增加 SQL/JSON 对象检查
新功能允许 JSON 字符串解析使用向量运算
函数
允许 JSON 字符串解析使用向量运算(John Naylor)§
新功能改进全文高亮函数 ts_headline() 对 OR 和 NOT 表达式的处理
函数
改进全文高亮函数 ts_headline() 对 OR 和 NOT 表达式的处理(Tom Lane)§
新功能增加在指定时区中添加、减去和生成 timestamptz 值的函数
函数
增加在指定时区中添加、减去和生成 timestamptz 值的函数(Przemyslaw Sztoch,Gurjeet Singh)§
函数为 date_add()、date_subtract() 和 generate_series()。
新功能将 date_trunc(unit, timestamptz, time_zone) 更改为不可变函数
函数
将 date_trunc(unit, timestamptz, time_zone) 更改为不可变函数(Przemyslaw Sztoch)§
这允许使用此函数创建表达式索引。
新功能增加服务器变量 SYSTEM_USER
函数
增加服务器变量 SYSTEM_USER(Bertrand Drouvot)§
这报告认证方法及其认证的用户。
新功能增加函数 array_sample() 和 array_shuffle()
函数
增加函数 array_sample() 和 array_shuffle()(Martin Kalcher)§
新功能增加聚合函数 ANY_VALUE(),返回集合中的任意值
函数
增加聚合函数 ANY_VALUE(),返回集合中的任意值(Vik Fearing)§
新功能增加函数 random_normal() 以提供正态分布的随机数
函数
增加函数 random_normal() 以提供正态分布的随机数(Paul Ramsey)§
新功能增加 XMLSERIALIZE() 选项 INDENT 以美化输出
函数
增加 XMLSERIALIZE() 选项 INDENT 以美化输出(Jim Jones)§
新功能更改 pg_collation_actual_version() 以为默认排序规则返回合理的值
函数
更改 pg_collation_actual_version() 以为默认排序规则返回合理的值(Jeff Davis)§
之前它返回 NULL。
新功能允许 pg_read_file() 和 pg_read_binary_file() 忽略缺失的文件
函数
允许 pg_read_file() 和 pg_read_binary_file() 忽略缺失的文件(Kyotaro Horiguchi)§
新功能向 pg_size_bytes() 添加字节规格(B)
函数
向 pg_size_bytes() 添加字节规格(B)(Peter Eisentraut)§
新功能增加在 PL/pgSQL 中获取当前函数 OID 的能力
PL/pgSQL
增加在 PL/pgSQL 中获取当前函数 OID 的能力(Pavel Stehule)§
新功能增加 libpq 连接选项 require_auth 以指定可接受的认证方法列表
libpq
增加 libpq 连接选项 require_auth 以指定可接受的认证方法列表(Jacob Champion)§
这也可用于禁止某些认证方法。
新功能允许多个 libpq 指定的主机被随机选择
libpq
允许多个 libpq 指定的主机被随机选择(Jelte Fennema)§ §
这通过 load_balance_hosts=random 启用,可用于负载均衡。
新功能增加 libpq 选项 sslcertmode 以控制客户端证书的传输
libpq
增加 libpq 选项 sslcertmode 以控制客户端证书的传输(Jacob Champion)§
选项值为 disable、allow 和 require。
新功能允许 libpq 使用系统证书池进行证书验证
libpq
允许 libpq 使用系统证书池进行证书验证(Jacob Champion,Thomas Habets)§
这通过 sslrootcert=system 启用,同时也会启用 sslmode=verify-full。
新功能允许 ECPG 变量声明使用与非保留 SQL 关键字匹配的 typedef 名称
新功能允许 psql 控制扩展格式中标题行的最大宽度
客户端应用 / psql
允许 psql 控制扩展格式中标题行的最大宽度(Platon Pronko)§
这由 xheader_width 控制。
新功能增加 psql 命令 \drg 以显示角色成员资格详情
客户端应用 / psql
关联记录 (1)
新功能允许 psql 的访问权限命令显示系统对象
客户端应用 / psql
关联记录 (1)
新功能在 psql \d+ 中为外部表的子表和分区添加 FOREIGN 标识
新功能允许 psql 使用扩展查询协议提交查询
新功能允许 psql 脚本获取 shell 命令和查询的退出状态
客户端应用 / psql
允许 psql 脚本获取 shell 命令和查询的退出状态(Corey Huinker,Tom Lane)§ §
新的 psql 控制变量为 SHELL_ERROR 和 SHELL_EXIT_CODE。
新功能各种 psql tab 补全改进
新功能增加 pg_dump 对导出子表和分区的控制
客户端应用 / pg_dump
增加 pg_dump 对导出子表和分区的控制(Gilles Darold)§
新选项为 --table-and-children、--exclude-table-and-children 和 --exclude-table-data-and-children。
新功能向 pg_dump 添加 LZ4 和 Zstandard 压缩
客户端应用 / pg_dump
向 pg_dump 添加 LZ4 和 Zstandard 压缩(Georgios Kokolatos,Justin Pryzby)
新功能允许 pg_dump 和pg_basebackup使用 long 模式进行压缩
客户端应用 / pg_dump
允许 pg_dump 和pg_basebackup使用 long 模式进行压缩(Justin Pryzby)§ § § §
新功能改进 pg_dump 以接受更一致的压缩语法
客户端应用 / pg_dump
改进 pg_dump 以接受更一致的压缩语法(Georgios Kokolatos)§
类似 --compress=gzip:5 的选项。
新功能增加initdb选项以在 initdb 期间和所有未来的服务器启动中设置服务器变量
新功能向createuser添加选项以控制更多用户选项
新功能弃用createuser选项 --role
服务器应用
弃用createuser选项 --role(Nathan Bossart)§ §
此选项容易与新的 createuser 角色成员资格选项混淆,因此添加了具有相同功能的选项 --member-of。--role 选项仍可使用。
关联记录 (1)
性能使用新的 VACUUM 选项改进vacuumdb的性能
服务器应用
关联记录 (1)
新功能使pg_upgrade设置新集簇的区域设置和编码
服务器应用
使pg_upgrade设置新集簇的区域设置和编码(Jeff Davis)§
这消除了新集簇必须使用相同的区域设置和编码设置创建的要求。
新功能增加pg_upgrade选项以指定默认传输模式
服务器应用
增加pg_upgrade选项以指定默认传输模式(Peter Eisentraut)§
选项为 --copy。
新功能改进pg_basebackup以接受数字压缩选项
服务器应用
改进pg_basebackup以接受数字压缩选项(Georgios Kokolatos,Michael Paquier)§
现在支持类似 --compress=server-5 的选项。
问题修复修复pg_basebackup以处理存储在 PGDATA 目录中的表空间
服务器应用
修复pg_basebackup以处理存储在 PGDATA 目录中的表空间(Robert Haas)§
新功能增加pg_waldump选项 --save-fullpage 以导出整页镜像
服务器应用
增加pg_waldump选项 --save-fullpage 以导出整页镜像(David Christensen)§
新功能允许pg_waldump选项 -t/--timeline 接受十六进制值
服务器应用
允许pg_waldump选项 -t/--timeline 接受十六进制值(Peter Eisentraut)§
新功能为pg_verifybackup增加进度报告支持
服务器应用
为pg_verifybackup增加进度报告支持(Masahiko Sawada)§
新功能允许pg_rewind正确跟踪时间线变更
新功能使pg_receivewal和pg_recvlogical在 SIGTERM 时干净退出
服务器应用
使pg_receivewal和pg_recvlogical在 SIGTERM 时干净退出(Christoph Berg)§
此信号通常由 systemd 使用。
新功能增加对 x86-64 架构上 SSE2(Streaming SIMD Extensions 2)向量运算的支持
源代码
增加对 x86-64 架构上 SSE2(Streaming SIMD Extensions 2)向量运算的支持(John Naylor)§
新功能增加对 ARM 架构上 Advanced SIMD(Single Instruction Multiple Data)(NEON)指令的支持
源代码
增加对 ARM 架构上 Advanced SIMD(Single Instruction Multiple Data)(NEON)指令的支持(Nathan Bossart)§
新功能使用 MSVC 构建的 Windows 二进制文件使用 RandomizedBaseAddress(ASLR)
源代码
使用 MSVC 构建的 Windows 二进制文件使用 RandomizedBaseAddress(ASLR)(Michael Paquier)§
这在 MinGW 构建中已经启用。
新功能要求 Windows 10 或更新版本
源代码
要求 Windows 10 或更新版本(Michael Paquier,Juan José Santamaría Flecha)§
之前支持 Windows Vista 和 Windows XP。
新功能要求 Perl 版本 5.14 或更高
源代码
要求 Perl 版本 5.14 或更高(John Naylor)§
新功能要求 Bison 版本 2.3 或更高
源代码
要求 Bison 版本 2.3 或更高(John Naylor)§
新功能要求 Flex 版本 2.5.35 或更高
源代码
要求 Flex 版本 2.5.35 或更高(John Naylor)§
新功能GSSAPI 支持要求 MIT Kerberos
源代码
GSSAPI 支持要求 MIT Kerberos(Stephen Frost)§
新功能移除对 Visual Studio 2013 的支持
源代码
移除对 Visual Studio 2013 的支持(Michael Paquier)§
新功能移除对 HP-UX 的支持
源代码
移除对 HP-UX 的支持(Thomas Munro)§
新功能移除对 HP/Intel Itanium 的支持
源代码
移除对 HP/Intel Itanium 的支持(Thomas Munro)§
新功能增加meson构建系统
新功能允许控制构建系统使用的 openssl 二进制文件的位置
源代码
允许控制构建系统使用的 openssl 二进制文件的位置(Peter Eisentraut)§
将查找 openssl 程序改为由 configure 或 meson 选项控制。
新功能增加构建选项以允许测试小表段大小
源代码
增加构建选项以允许测试小表段大小(Andres Freund)§
构建选项为 --with-segsize-blocks 和 -Dsegsize_blocks。
新功能增加pgindent选项
新功能将pg_bsd_indent源代码添加到主代码树中
源代码
将pg_bsd_indent源代码添加到主代码树中(Tom Lane)§
新功能改进 make_ctags 和 make_etags
源代码
改进 make_ctags 和 make_etags(Yugo Nagata)§
新功能调整 pg_attribute 列以提高效率
源代码
调整 pg_attribute 列以提高效率(Peter Eisentraut)§
新功能改进对布尔列上扩展索引的使用
附加模块
改进对布尔列上扩展索引的使用(Zongliang Quan,Tom Lane)§
新功能向fuzzystrmatch添加 Daitch-Mokotoff Soundex 支持
附加模块
向fuzzystrmatch添加 Daitch-Mokotoff Soundex 支持(Dag Lem)§
新功能允许auto_explain记录传递给参数化语句的值
附加模块
允许auto_explain记录传递给参数化语句的值(Dagfinn Ilmari Mannsåker)§
这影响使用服务器端 PREPARE/EXECUTE 的查询,以及客户端通过 Parse/Bind 协议消息发出的查询。日志记录由 auto_explain.log_parameter_max_length 控制;默认情况下,查询参数记录时不受长度限制。
新功能使auto_explain的 log_verbose 模式遵守 compute_query_id 的值
附加模块
使auto_explain的 log_verbose 模式遵守 compute_query_id 的值(Atsushi Torikoshi)§
之前即使启用了 compute_query_id,log_verbose 也不显示查询标识符。
新功能使 pg_stat_statements 规范化工具命令中使用的常量
附加模块
使 pg_stat_statements 规范化工具命令中使用的常量(Michael Paquier)§
之前显示的是常量而非占位符,如 $1。
新功能增加pg_walinspect函数 pg_get_wal_block_info() 以报告 WAL 块信息
附加模块
增加pg_walinspect函数 pg_get_wal_block_info() 以报告 WAL 块信息(Michael Paquier,Melanie Plageman,Bharath Rupireddy)§ § § §
新功能更改pg_walinspect函数 pg_get_wal_records_info() 和 pg_get_wal_stats() 解释结束 LSN 的方式
附加模块
更改pg_walinspect函数 pg_get_wal_records_info() 和 pg_get_wal_stats() 解释结束 LSN 的方式(Bharath Rupireddy)§
之前表示不存在的 WAL 位置的结束 LSN 会产生错误,而现在将被解释为 WAL 的末尾。
新功能在pg_walinspect和pg_waldump中添加 WAL 记录的详细描述
附加模块
在pg_walinspect和pg_waldump中添加 WAL 记录的详细描述(Melanie Plageman,Peter Geoghegan)§ § § §
新功能增加pageinspect函数 bt_multi_page_stats() 以报告多页统计信息
附加模块
增加pageinspect函数 bt_multi_page_stats() 以报告多页统计信息(Hamid Akhtar)§
这与 bt_page_stats() 类似,但可以报告一个范围的页面。
新功能向pageinspect函数 brin_page_items() 添加空范围输出列
附加模块
向pageinspect函数 brin_page_items() 添加空范围输出列(Tomas Vondra)§
新功能重新设计归档模块以更加灵活
附加模块
重新设计归档模块以更加灵活(Nathan Bossart)§
这一初始化变更要求为较旧 PostgreSQL 版本编写的模块进行更新。
问题修复修正pg_stat_statements扩展查询协议语句的不准确行跟踪
附加模块
修正pg_stat_statements扩展查询协议语句的不准确行跟踪(Sami Imseih)§
新功能增加pg_buffercache函数 pg_buffercache_usage_counts() 以报告使用总计
附加模块
增加pg_buffercache函数 pg_buffercache_usage_counts() 以报告使用总计(Nathan Bossart)§
新功能增加pg_buffercache函数 pg_buffercache_summary() 以报告汇总的缓冲区统计
附加模块
增加pg_buffercache函数 pg_buffercache_summary() 以报告汇总的缓冲区统计(Melih Mutlu)§
新功能允许在扩展脚本中使用新语法 @extschema:referenced_extension_name@ 引用必需扩展的模式
新功能允许使用 no_relocate 将必需扩展标记为不可重定位
附加模块
允许使用 no_relocate 将必需扩展标记为不可重定位(Regina Obe)§
这允许 @extschema:referenced_extension_name@ 在扩展的生命周期内被视为常量。
新功能允许 postgres_fdw 并行执行中止操作
附加模块 / postgres_fdw
允许 postgres_fdw 并行执行中止操作(Etsuro Fujita)§
这通过 postgres_fdw 选项 parallel_abort 启用。
新功能使对外部 postgres_fdw 表的 ANALYZE 更高效
附加模块 / postgres_fdw
使对外部 postgres_fdw 表的 ANALYZE 更高效(Tomas Vondra)§
postgres_fdw 选项 analyze_sampling 控制采样方法。
新功能限制 postgres_fdw 中 reg* 类型常量的传输,仅允许引用内置对象或标记为可传输的扩展
没有匹配的变化
尝试其他关键词,或 .
如何生成比较结果?
比较依据起始版本之后至目标版本的 PostgreSQL 发布说明。经核实的回补重复项会谨慎合并,保留每条原始说明;相关提交可能涉及独立变化,仍作为不同记录保留。
发布快照: 2026-09-26 · 安全快照: 2026-09-26
内容来自 PostgreSQL 发布说明。交互方式参考 pgversions.com 与 pgversionreport.