文档版本比较
POSTGRESQL · VERSION COMPARE
PostgreSQL 13.0 发布变化
此版本的完整功能、修复与兼容性说明,以及其他版本的关联记录。
包括起始版本之后至目标版本的变化。大版本号表示该分支的首个版本。
从数据库输出识别起始版本
完整发布变化
13.0
2020-09-24
13.0stable支持截止 2025-11-13
PostgreSQL 13.0
迁移与兼容性
对于希望从任何先前版本迁移数据的用户,需要使用pg_dumpall进行导出/恢复,或使用pg_upgrade或逻辑复制。有关迁移到新主版本的一般信息,请参见第 18.6 节。
版本 13 包含许多可能影响与先前版本兼容性的变更。请注意以下不兼容性:
兼容性将 SIMILAR TO ... ESCAPE NULL 改为返回 NULL
兼容性
将 SIMILAR TO ... ESCAPE NULL 改为返回 NULL(Tom Lane)§
这一新行为符合 SQL 规范。以前,ESCAPE 为空值时,被解释为使用默认转义字符串(反斜杠字符)。这也适用于 substring(。通过保持原函数不变,在旧视图中保留了以前的行为。text FROM pattern ESCAPE text)
兼容性使 json[b]_to_tsvector() 完整检查其 string 选项的拼写
兼容性
使 json[b]_to_tsvector() 完整检查其 string 选项的拼写(Dominik Czarnota)§
兼容性改变非默认的effective_io_concurrency值影响并发度的方式
兼容性
改变非默认的effective_io_concurrency值影响并发度的方式(Thomas Munro)§
以前,该值在用于设置并发请求数之前会经过调整。现在直接使用该值。可以通过以下方式将旧值转换为新值:
SELECT round(sum(OLDVALUE/ n::float)) AS newvalue FROM generate_series(1,OLDVALUE) s(n);
兼容性不再在pg_stat_ssl和pg_stat_gssapi系统视图中显示辅助进程
兼容性
不再在pg_stat_ssl和pg_stat_gssapi系统视图中显示辅助进程(Euler Taveira)§
如果查询将这些视图与pg_stat_activity连接,并希望看到辅助进程,就需要使用左连接。
兼容性修复 ALTER FOREIGN TABLE ... RENAME COLUMN,使其返回更合适的命令标签
兼容性
修复 ALTER FOREIGN TABLE ... RENAME COLUMN,使其返回更合适的命令标签(Fujii Masao)§
以前返回 ALTER TABLE;现在返回 ALTER FOREIGN TABLE。
兼容性修复 ALTER MATERIALIZED VIEW ... RENAME COLUMN,使其返回更合适的命令标签
兼容性
修复 ALTER MATERIALIZED VIEW ... RENAME COLUMN,使其返回更合适的命令标签(Fujii Masao)§
以前返回 ALTER TABLE;现在返回 ALTER MATERIALIZED VIEW。
兼容性将配置参数 wal_keep_segments 重命名为wal_keep_size
兼容性
将配置参数 wal_keep_segments 重命名为wal_keep_size(Fujii Masao)§
这决定为备库保留多少 WAL。它以 MB 为单位指定,而旧参数以文件数量指定。如果以前使用 wal_keep_segments,以下公式可以得到大致等价的设置:
wal_keep_size = wal_keep_segments * wal_segment_size (typically 16MB)
兼容性移除对 PostgreSQL 7.3 之前的服务器所使用的 "opaque" 伪类型的支持
兼容性移除对升级未打包扩展(9.1 之前的扩展)的支持
兼容性
移除对升级未打包扩展(9.1 之前的扩展)的支持(Tom Lane)§
CREATE EXTENSION 不再支持 FROM 选项。任何仍使用未打包扩展的安装实例,都应在更新到 PostgreSQL 13 之前,将这些扩展升级为已打包的版本。
兼容性移除对时区数据库中 posixrules 文件的支持
兼容性
移除对时区数据库中 posixrules 文件的支持(Tom Lane)§
IANA 的时区工作组已弃用此特性,这意味着它将在未来几年中逐渐从系统的时区数据库中消失。为避免时区数据更新意外引发行为变化,我们从版本 13 开始移除了 PostgreSQL 对此特性的支持。这只影响缺少显式夏令时切换规则的 POSIX 风格时区指定的行为;以前可以通过安装自定义 posixrules 文件来确定切换规则,现在则使用硬编码规则。对于受影响的安装实例,建议改用地理时区名称。
兼容性在ltree中,当 lquery 模式包含相邻的带花括号星号时,例如 *{2}.*{3},将其正确解释为 *{5}
兼容性修复pageinspect的 bt_metap(),使其返回更合适、不易溢出的数据类型
兼容性
修复pageinspect的 bt_metap(),使其返回更合适、不易溢出的数据类型(Peter Geoghegan)§
新功能允许在更多情况下进行逐分区连接
新功能允许通过发布对分区表进行逻辑复制
服务器 / 分区
允许通过发布对分区表进行逻辑复制(Amit Langote)§ §
以前,必须逐个复制分区。现在可以显式发布分区表,从而自动发布其所有分区。添加或移除分区时,也会将其相应地添加到发布或从发布中移除。CREATE PUBLICATION 的 publish_via_partition_root 选项控制分区变更是作为分区自身的变更发布,还是作为父表的变更发布。
新功能允许逻辑复制写入订阅者上的分区表
服务器 / 分区
允许逻辑复制写入订阅者上的分区表(Amit Langote)§
以前,订阅者只能将接收到的行写入非分区表。
新功能允许在分区表达式中使用整行变量(即 table.*)
服务器 / 分区
允许在分区表达式中使用整行变量(即 table.*)(Amit Langote)§
新功能更高效地存储 B-树索引中的重复项
服务器 / 索引
更高效地存储 B-树索引中的重复项(Anastasia Lubennikova,Peter Geoghegan)§
这通过只存储一次重复键,使低基数列能够高效地使用 B-树索引。使用pg_upgrade升级的用户,需要执行 REINDEX 才能让现有索引使用这一特性。
新功能允许 box 列上的 GiST 和 SP-GiST 索引支持 ORDER BY box <-> point 查询
新功能允许 GIN 索引更高效地处理 tsquery 搜索中的 !(NOT)子句
新功能允许索引操作符类接受参数
服务器 / 索引
新功能允许 CREATE INDEX 指定 GiST 签名长度和整数范围的最大数量
新功能禁止将使用非默认排序规则的索引添加为表的唯一约束或主键约束
新功能允许为扩展统计信息设置统计目标
新功能允许将扩展统计对象用于 OR 子句和 IN/ANY 常量列表
新功能如果 FROM 子句中的函数求值为常量,则允许将其上拉(内联)
性能实现增量排序
服务器 / 一般性能
实现增量排序(James Coleman,Alexander Korotkov,Tomas Vondra)§ §
如果已知查询的中间结果按照所需排序顺序的一个或多个前导键排好序,则可以将前导键相同的行分批排序,只考虑剩余键即可完成额外的排序。
如有需要,可以使用enable_incremental_sort控制此行为。
性能允许hash 聚合对大型聚合结果集使用磁盘存储
性能允许插入操作也触发自动清理中的清理活动,而不再仅由更新和删除触发
服务器 / 一般性能
允许插入操作也触发自动清理中的清理活动,而不再仅由更新和删除触发(Laurenz Albe,Darafei Praliaskouski)§
以前,仅有插入活动时会触发自动分析,但不会触发自动清理,理由是不存在需要移除的死元组。然而,清理扫描还有其他有益的副作用,例如设置页面全可见位,从而提高仅索引扫描的效率。另外,让仅插入的表接受周期性清理,有助于分散“冻结”旧元组的工作量,避免整个表同时达到防回卷阈值时,突然需要执行大量冻结工作。
如有需要,可以通过新参数autovacuum_vacuum_insert_threshold和autovacuum_vacuum_insert_scale_factor,或等价的表存储选项来调整此行为。
性能增加maintenance_io_concurrency参数,以控制维护操作的 I/O 并发度
服务器 / 一般性能
增加maintenance_io_concurrency参数,以控制维护操作的 I/O 并发度(Thomas Munro)§
性能如果wal_level为 minimal,则允许在创建或重写关系的事务期间跳过 WAL 写入
服务器 / 一般性能
如果wal_level为 minimal,则允许在创建或重写关系的事务期间跳过 WAL 写入(Kyotaro Horiguchi)§
对于大于wal_skip_threshold的关系,会对其文件执行 fsync,而不生成 WAL。以前,只有 COPY 操作会这样处理,但其实现有一个缺陷,可能在崩溃恢复期间导致数据丢失。
性能提高使用大量表空间时重放 DROP DATABASE 命令的性能
服务器 / 一般性能
提高使用大量表空间时重放 DROP DATABASE 命令的性能(Fujii Masao)§
性能改进对经过 TOAST 处理的值的起始字节的获取
性能加快整数到文本的转换
服务器 / 一般性能
加快整数到文本的转换(David Fetter)§
性能减少包含大量 SQL 语句的查询字符串和扩展脚本的内存用量
服务器 / 一般性能
减少包含大量 SQL 语句的查询字符串和扩展脚本的内存用量(Amit Langote)§
新功能允许 EXPLAIN、auto_explain、自动清理和pg_stat_statements跟踪 WAL 使用统计信息
服务器 / 监控
允许 EXPLAIN、auto_explain、自动清理和pg_stat_statements跟踪 WAL 使用统计信息(Kirill Bychik,Julien Rouhaud)§ § §
新功能允许抽样记录 SQL 语句,而不必记录全部语句
服务器 / 监控
允许抽样记录 SQL 语句,而不必记录全部语句(Adrien Nayrat)§
对于耗时超过log_min_duration_sample的语句,将按log_statement_sample_rate指定的比例记录日志。
新功能将后端类型添加到 csvlog 日志输出中,并允许选择将其加入log_line_prefix日志输出
服务器 / 监控
将后端类型添加到 csvlog 日志输出中,并允许选择将其加入log_line_prefix日志输出(Peter Eisentraut)§
新功能改进对预备语句参数日志记录的控制
服务器 / 监控
改进对预备语句参数日志记录的控制(Alexey Bashtanov,Álvaro Herrera)§ §
GUC 设置log_parameter_max_length控制记录未出错语句时输出的参数值的最大长度,而log_parameter_max_length_on_error对出错语句的日志执行相同控制。以前,发生错误时从不记录预备语句的参数。
新功能允许在出错后记录函数调用回溯
服务器 / 监控
允许在出错后记录函数调用回溯(Peter Eisentraut,Álvaro Herrera)§ §
新参数backtrace_functions指定哪些 C 函数应在出错时生成回溯。
新功能向pg_stat_activity添加 leader_pid,以报告并行工作进程的领导者进程
服务器 / 系统视图
向pg_stat_activity添加 leader_pid,以报告并行工作进程的领导者进程(Julien Rouhaud)§
新功能增加系统视图 pg_stat_progress_basebackup,以报告流式基础备份的进度
服务器 / 系统视图
增加系统视图 pg_stat_progress_basebackup,以报告流式基础备份的进度(Fujii Masao)§
新功能增加系统视图 pg_stat_progress_analyze,以报告 ANALYZE 进度
服务器 / 系统视图
增加系统视图 pg_stat_progress_analyze,以报告 ANALYZE 进度(Álvaro Herrera,Tatsuro Yamada,Vinayak Pokale)§
新功能增加系统视图 pg_shmem_allocations,以显示共享内存使用情况
服务器 / 系统视图
增加系统视图 pg_shmem_allocations,以显示共享内存使用情况(Andres Freund,Robert Haas)§
新功能增加系统视图 pg_stat_slru,以监控内部 SLRU 缓存
服务器 / 系统视图
增加系统视图 pg_stat_slru,以监控内部 SLRU 缓存(Tomas Vondra)§
新功能允许将track_activity_query_size设置为最高 1MB
服务器 / 系统视图
允许将track_activity_query_size设置为最高 1MB(Vyacheslav Makarov)§
以前的最大值为 100kB。
新功能使用 posix_fallocate() 创建 DSM 段时报告等待事件
服务器 / 等待事件
使用 posix_fallocate() 创建 DSM 段时报告等待事件(Thomas Munro)§
新功能增加等待事件 VacuumDelay,以报告基于代价的清理延迟
服务器 / 等待事件
增加等待事件 VacuumDelay,以报告基于代价的清理延迟(Justin Pryzby)§
新功能为 WAL 归档和恢复暂停增加等待事件
服务器 / 等待事件
为 WAL 归档和恢复暂停增加等待事件(Fujii Masao)§
新增事件为 BackupWaitWalArchive 和 RecoveryPause。
新功能增加等待事件 RecoveryConflictSnapshot 和 RecoveryConflictTablespace,以监控恢复冲突
服务器 / 等待事件
增加等待事件 RecoveryConflictSnapshot 和 RecoveryConflictTablespace,以监控恢复冲突(Masahiko Sawada)§
性能提高基于 BSD 的系统上的等待事件性能
服务器 / 等待事件
提高基于 BSD 的系统上的等待事件性能(Thomas Munro)§
新功能只允许超级用户查看ssl_passphrase_command设置
服务器 / Authentication
只允许超级用户查看ssl_passphrase_command设置(Insung Moon)§
此项修改出于安全考虑。
新功能将服务器加密连接默认允许的最低 TLS 版本从 1.0 改为 1.2
服务器 / Authentication
将服务器加密连接默认允许的最低 TLS 版本从 1.0 改为 1.2(Peter Eisentraut)§
可以通过ssl_min_protocol_version控制这一选择。
新功能收紧关于只读事务模式下允许执行哪些实用命令的规则
服务器 / 服务器配置
收紧关于只读事务模式下允许执行哪些实用命令的规则(Robert Haas)§
此项修改还增加了可在并行查询中运行的实用命令数量。
新功能允许在服务器启动后修改allow_system_table_mods
服务器 / 服务器配置
允许在服务器启动后修改allow_system_table_mods(Peter Eisentraut)§
新功能在设置allow_system_table_mods时,禁止非超级用户修改系统表
服务器 / 服务器配置
在设置allow_system_table_mods时,禁止非超级用户修改系统表(Peter Eisentraut)§
以前,如果在服务器启动时设置了allow_system_table_mods,非超级用户就可以对系统表执行 INSERT/UPDATE/DELETE 命令。
新功能允许通过重载更改流复制配置设置
流复制和恢复
允许通过重载更改流复制配置设置(Sergei Kornilov)§
以前,更改primary_conninfo和primary_slot_name需要重启服务器。
新功能允许 WAL 接收进程在未指定永久复制槽时使用临时复制槽
流复制和恢复
允许 WAL 接收进程在未指定永久复制槽时使用临时复制槽(Peter Eisentraut,Sergei Kornilov)§ §
可以使用wal_receiver_create_temp_slot启用此行为。
新功能允许通过max_slot_wal_keep_size限制复制槽的 WAL 存储量
流复制和恢复
允许通过max_slot_wal_keep_size限制复制槽的 WAL 存储量(Kyotaro Horiguchi)§
需要超过此值的复制槽会被标记为无效。
新功能如果恢复未到达指定的恢复目标,则产生错误
新功能允许控制逻辑解码在溢写到磁盘之前可以使用多少内存
流复制和恢复
允许控制逻辑解码在溢写到磁盘之前可以使用多少内存(Tomas Vondra,Dilip Kumar,Amit Kapila)§
新功能允许在 WAL 引用无效页面时仍继续恢复
流复制和恢复
允许在 WAL 引用无效页面时仍继续恢复(Fujii Masao)§
可以使用ignore_invalid_pages启用此功能。
新功能允许 VACUUM 并行处理一个表的各个索引
新功能允许 FETCH FIRST 使用 WITH TIES 返回与最后一个结果行的排序值相同的所有额外行
工具命令
允许 FETCH FIRST 使用 WITH TIES 返回与最后一个结果行的排序值相同的所有额外行(Surafel Temesgen)§
新功能使 CREATE TABLE LIKE 将 CHECK 约束的 NO INHERIT 属性传递给所创建的表
工具命令
使 CREATE TABLE LIKE 将 CHECK 约束的 NO INHERIT 属性传递给所创建的表(Ildar Musin,Chris Travers)§
新功能对分区表使用 LOCK TABLE 时,不检查子表上的权限
工具命令
对分区表使用 LOCK TABLE 时,不检查子表上的权限(Amit Langote)§
新功能允许向标识列插入时使用 OVERRIDING USER VALUE
工具命令
允许向标识列插入时使用 OVERRIDING USER VALUE(Dean Rasheed)§
新功能增加 ALTER TABLE ... DROP EXPRESSION,以允许移除列的 GENERATED 属性
工具命令
增加 ALTER TABLE ... DROP EXPRESSION,以允许移除列的 GENERATED 属性(Peter Eisentraut)§
问题修复修复多步骤 ALTER TABLE 命令中的缺陷
工具命令
修复多步骤 ALTER TABLE 命令中的缺陷(Tom Lane)§
IF NOT EXISTS 子句现在按预期工作:如果列已存在,就不会执行派生操作(例如创建索引)。另外,将相关操作合并到一条 ALTER TABLE 中的某些情况,以前无法正常工作,现在也已可用。
新功能增加用于重命名视图列的 ALTER VIEW 语法
工具命令
增加用于重命名视图列的 ALTER VIEW 语法(Fujii Masao)§
以前已经可以重命名视图列,但必须写成 ALTER TABLE RENAME COLUMN,这令人困惑。
新功能增加 ALTER TYPE 选项,以修改基础类型的 TOAST 属性和支持函数
工具命令
增加 ALTER TYPE 选项,以修改基础类型的 TOAST 属性和支持函数(Tomas Vondra,Tom Lane)§
新功能增加 CREATE DATABASE 的 LOCALE 选项
工具命令
增加 CREATE DATABASE 的 LOCALE 选项(Peter Eisentraut)§
这将现有的 LC_COLLATE 和 LC_CTYPE 选项合并为单个选项。
新功能允许 DROP DATABASE 断开正在使用目标数据库的会话,以使删除成功
工具命令
允许 DROP DATABASE 断开正在使用目标数据库的会话,以使删除成功(Pavel Stehule,Amit Kapila)§
这通过 FORCE 选项启用。
新功能增加结构成员 tg_updatedcols,使 C 语言更新触发器能够知道哪些列被更新
工具命令
增加结构成员 tg_updatedcols,使 C 语言更新触发器能够知道哪些列被更新(Peter Eisentraut)§
新功能增加多态数据类型,供要求参数类型兼容的函数使用
数据类型
增加多态数据类型,供要求参数类型兼容的函数使用(Pavel Stehule)§
新增数据类型为 anycompatible、anycompatiblearray、anycompatiblenonarray 和 anycompatiblerange。
新功能增加 SQL 数据类型 xid8,以对外提供 FullTransactionId
新功能增加数据类型 regcollation 及相关函数,以表示排序规则对象的 OID
数据类型
增加数据类型 regcollation 及相关函数,以表示排序规则对象的 OID(Julien Rouhaud)§
新功能在某些情况下使用 glibc 版本作为排序规则版本标识符
新功能增加 Windows 上的排序规则版本支持
数据类型
增加 Windows 上的排序规则版本支持(Thomas Munro)§
新功能增加 jsonb_set() 的另一个版本,改进对 NULL 的处理
函数
增加 jsonb_set() 的另一个版本,改进对 NULL 的处理(Andrew Dunstan)§
新函数 jsonb_set_lax() 根据请求处理值为 NULL 的新值:将指定键设为 JSON null、删除该键、抛出异常,或返回未经修改的 jsonb 值。
新功能增加 jsonpath 的 .datetime() 方法
函数
增加 jsonpath 的 .datetime() 方法(Nikita Glukhov,Teodor Sigaev,Oleg Bartunov,Alexander Korotkov)§
此函数允许将 JSON 值转换为时间戳,随后即可在 jsonpath 表达式中处理这些时间戳。此项修改还增加了支持时区感知输出的 jsonpath 函数。
新功能增加 SQL 函数 NORMALIZE(),以规范化 Unicode 字符串,并增加 IS NORMALIZED 来检查是否已规范化
函数
增加 SQL 函数 NORMALIZE(),以规范化 Unicode 字符串,并增加 IS NORMALIZED 来检查是否已规范化(Peter Eisentraut)§
新功能为 pg_lsn 增加 min() 和 max() 聚合
新功能允许Unicode 转义,例如 E'\unnnn' 或 U&'\nnnn',指定数据库编码中可用的任何字符,即使数据库编码不是 UTF-8
函数
允许Unicode 转义,例如 E'\u 或 nnnn'U&'\,指定数据库编码中可用的任何字符,即使数据库编码不是 UTF-8(Tom Lane)§nnnn'
新功能允许 to_date() 和 to_timestamp() 识别非英语的月份名和星期名
新功能增加日期时间格式模式 FF1 – FF6,以指定输入或输出 1 到 6 位小数秒
函数
增加日期时间格式模式 FF1 – FF6,以指定输入或输出 1 到 6 位小数秒(Alexander Korotkov,Nikita Glukhov,Teodor Sigaev,Oleg Bartunov)§
这些模式可用于 to_char()、to_timestamp() 和 jsonpath 的 .datetime()。
新功能增加日期时间格式模式 SSSSS,作为 SSSS 的 SQL 标准别名
函数
增加日期时间格式模式 SSSSS,作为 SSSS 的 SQL 标准别名(Nikita Glukhov,Alexander Korotkov)§
新功能增加函数 gen_random_uuid(),以生成版本 4 UUID
函数
增加函数 gen_random_uuid(),以生成版本 4 UUID(Peter Eisentraut)§
性能提高 numeric 类型的平方根(sqrt)和自然对数(ln)函数的性能与精度
新功能增加函数 min_scale(),返回完整精确表示 numeric 值所需的小数点右侧位数
函数
增加函数 min_scale(),返回完整精确表示 numeric 值所需的小数点右侧位数(Pavel Stehule)§
新功能增加函数 trim_scale(),通过移除尾随零来减少 numeric 值的小数位数
函数
增加函数 trim_scale(),通过移除尾随零来减少 numeric 值的小数位数(Pavel Stehule)§
新功能允许 get_bit() 和 set_bit() 设置 bytea 值前 256MB 之外的位
函数
关联记录 (5)
- 相关提交PostgreSQL 12.3 · 使 get_bit() 和 set_bit() 函数能够处理长于 256MB 的 bytea 字符串
- 相关提交PostgreSQL 11.8 · 使 get_bit() 和 set_bit() 函数能够处理长于 256MB 的 bytea 字符串
- 相关提交PostgreSQL 10.13 · 使 get_bit() 和 set_bit() 函数能够处理长于 256MB 的 bytea 字符串
- 相关提交PostgreSQL 9.6.18 · 让 get_bit() 和 set_bit() 函数应对长于 256MB 的 bytea 字符串
- 相关提交PostgreSQL 9.5.22 · 让 get_bit() 和 set_bit() 函数应对长于 256MB 的 bytea 字符串
新功能增加移除对象对扩展依赖的能力
函数
增加移除对象对扩展依赖的能力(Álvaro Herrera)§
对象可以是函数、物化视图、索引或触发器。语法为 ALTER .. NO DEPENDS ON。
性能提高简单 PL/pgSQL 表达式的性能
PL/pgSQL
提高简单 PL/pgSQL 表达式的性能(Tom Lane,Amit Langote)§
性能提高使用不可变表达式的 PL/pgSQL 函数的性能
PL/pgSQL
提高使用不可变表达式的 PL/pgSQL 函数的性能(Konstantin Knizhnik)§
新功能允许 libpq 客户端要求加密连接使用通道绑定
客户端接口
允许 libpq 客户端要求加密连接使用通道绑定(Jeff Davis)§
使用 libpq 连接参数 channel_binding,会强制 TLS 连接的另一端证明它知道用户的密码。这可以防止中间人攻击。
新功能增加 libpq 连接参数,以控制加密连接允许的最低和最高 TLS 版本
客户端接口
增加 libpq 连接参数,以控制加密连接允许的最低和最高 TLS 版本(Daniel Gustafsson)§ § §
这些设置为ssl_min_protocol_version和ssl_max_protocol_version。默认最低 TLS 版本为 1.2(这与以前的发行版相比是行为上的变化)。
新功能允许使用密码解锁客户端证书
新功能允许 libpq 使用 DER 编码的客户端证书
问题修复修复 ecpg 的 EXEC SQL elif 指令,使其正确工作
客户端接口
修复 ecpg 的 EXEC SQL elif 指令,使其正确工作(Tom Lane)§
以前,它的行为与 endif 后跟 ifdef 相同,因此即使同一 if 结构中的前一个分支已成功匹配,也不会阻止展开 elif 分支或后续分支。
新功能允许 psql 的次级提示符为空白,但与主提示符具有相同宽度
客户端应用程序 / psql
允许 psql 的次级提示符为空白,但与主提示符具有相同宽度(Thomas Munro)§
这通过将 PROMPT2 设为 %w 实现。
新功能允许 psql 的 \g 和 \gx 命令只在该条命令执行期间更改 \pset 输出选项
新功能增加用于显示操作符类和操作符族的 psql 命令
新功能在 psql 的 \dt+ 及相关命令中显示表的持久性
问题修复修复 psql 的 \e 命令之后的重新显示
新功能向 psql 增加 \warn 命令
新功能将 PostgreSQL 主页添加到命令行 --help 输出中
客户端应用程序 / psql
将 PostgreSQL 主页添加到命令行 --help 输出中(Peter Eisentraut)§
新功能允许 pgbench 对其 “accounts” 表进行分区
客户端应用程序 / pgbench
允许 pgbench 对其 “accounts” 表进行分区(Fabien Coelho)§
这使分区性能测试成为可能。
新功能增加 pgbench 命令 \aset,其行为类似 \gset,但适用于多个查询
客户端应用程序 / pgbench
增加 pgbench 命令 \aset,其行为类似 \gset,但适用于多个查询(Fabien Coelho)§
新功能允许 pgbench 在服务器端而非客户端生成初始数据
客户端应用程序 / pgbench
允许 pgbench 在服务器端而非客户端生成初始数据(Fabien Coelho)§
新功能允许 pgbench 使用 --show-script 选项显示脚本内容
客户端应用程序 / pgbench
允许 pgbench 使用 --show-script 选项显示脚本内容(Fabien Coelho)§
新功能为基础备份生成备份清单,并验证备份
服务器应用程序
为基础备份生成备份清单,并验证备份(Robert Haas)§ §
新工具pg_verifybackup可以验证备份。
新功能使pg_basebackup默认估计备份总大小
服务器应用程序
使pg_basebackup默认估计备份总大小(Fujii Masao)§
这一计算使 pg_stat_progress_basebackup 能够显示进度。如果不需要,可以使用 --no-estimate-size 选项禁用它。以前,只有使用 --progress 选项时才会进行这一计算。
新功能为pg_rewind增加配置备库的选项
服务器应用程序
为pg_rewind增加配置备库的选项(Paul Guo,Jimmy Yih,Ashwin Agrawal)§
这与pg_basebackup的 --write-recovery-conf 选项一致。
新功能允许 pg_rewind 使用目标集群的restore_command获取所需的 WAL
服务器应用程序
允许 pg_rewind 使用目标集群的restore_command获取所需的 WAL(Alexey Kondratov)§
这通过 -c/--restore-target-wal 选项启用。
新功能使 pg_rewind 在回退之前自动运行崩溃恢复
服务器应用程序
使 pg_rewind 在回退之前自动运行崩溃恢复(Paul Guo,Jimmy Yih,Ashwin Agrawal)§
可以使用 --no-ensure-shutdown 禁用此行为。
新功能增加 pg_waldump 报告的 PREPARE TRANSACTION 相关信息
服务器应用程序
增加 pg_waldump 报告的 PREPARE TRANSACTION 相关信息(Fujii Masao)§
新功能增加pg_waldump选项 --quiet,以抑制非错误输出
服务器应用程序
增加pg_waldump选项 --quiet,以抑制非错误输出(Andres Freund,Robert Haas)§
新功能增加pg_dump选项 --include-foreign-data,以转储外部服务器上的数据
新功能允许 vacuumdb 运行的清理命令以并行模式执行
新功能允许 dropdb 断开正在使用目标数据库的会话,以使删除成功
新功能从 createuser 中移除 --adduser 和 --no-adduser
服务器应用程序
从 createuser 中移除 --adduser 和 --no-adduser(Alexander Lakhin)§
长期以来,用于此目的的推荐选项是 --superuser 和 --no-superuser。
新功能运行 pg_upgrade 时,将pg_upgrade程序所在的目录用作默认的 --new-bindir 设置
服务器应用程序
运行 pg_upgrade 时,将pg_upgrade程序所在的目录用作默认的 --new-bindir 设置(Daniel Gustafsson)§
新功能升级为使用 DocBook 4.5
文档
升级为使用 DocBook 4.5(Peter Eisentraut)§
新功能增加使用 Visual Studio 2019 构建的支持
源代码
增加使用 Visual Studio 2019 构建的支持(Haribabu Kommi)§
关联记录 (5)
- 相关提交PostgreSQL 11.5 · 支持使用 Microsoft Visual Studio 2019 构建 Postgres
- 相关提交PostgreSQL 10.10 · 支持使用 Microsoft Visual Studio 2019 构建 Postgres
- 相关提交PostgreSQL 9.6.15 · 支持用 Microsoft Visual Studio 2019 构建 Postgres
- 相关提交PostgreSQL 9.5.19 · 支持用 Microsoft Visual Studio 2019 构建 Postgres
- 相关提交PostgreSQL 9.4.24 · 支持用 Microsoft Visual Studio 2019 构建 Postgres
新功能增加 MSYS2 构建支持
源代码
增加 MSYS2 构建支持(Peter Eisentraut)§
新功能为 Power PC 编译器增加 compare_exchange 和 fetch_add 的汇编代码
源代码
为 Power PC 编译器增加 compare_exchange 和 fetch_add 的汇编代码(Noah Misch)§
新功能更新全文检索使用的 Snowball 词干分析器词典
源代码
更新全文检索使用的 Snowball 词干分析器词典(Panagiotis Mavrogiorgos)§
这增加了希腊语词干提取,并改进了丹麦语和法语的词干提取。
新功能移除对 Windows 2000 的支持
源代码
移除对 Windows 2000 的支持(Michael Paquier)§
新功能移除对非 ELF 的 BSD 系统的支持
源代码
移除对非 ELF 的 BSD 系统的支持(Peter Eisentraut)§
新功能移除 configure 选项 --disable-float8-byval 和 --disable-float4-byval
新功能将查询字符串传递给规划器钩子函数
源代码
将查询字符串传递给规划器钩子函数(Pascal Legrand,Julien Rouhaud)§
新功能增加 TLS 初始化钩子
源代码
增加 TLS 初始化钩子(Andrew Dunstan)§
新功能允许在不预定义 Unix 域套接字目录的情况下构建
源代码
允许在不预定义 Unix 域套接字目录的情况下构建(Peter Eisentraut)§
新功能降低 Unix 平台上 SysV 资源键冲突的概率
源代码
降低 Unix 平台上 SysV 资源键冲突的概率(Tom Lane)§
新功能使用操作系统函数可靠地擦除包含敏感信息的内存
源代码
使用操作系统函数可靠地擦除包含敏感信息的内存(Peter Eisentraut)§
例如,可用它清除存储在内存中的密码。
新功能增加 headerscheck 脚本以测试 C 头文件的兼容性
源代码
增加 headerscheck 脚本以测试 C 头文件的兼容性(Tom Lane)§
新功能将内部列表实现为数组,而不再采用单元链表
源代码
将内部列表实现为数组,而不再采用单元链表(Tom Lane)§
这提高了访问大量对象的查询的性能。
新功能修改 TS_execute() 的 API
新功能允许将扩展指定为可信
新功能允许非超级用户不使用密码就连接到postgres_fdw外部服务器
附加模块
允许非超级用户不使用密码就连接到postgres_fdw外部服务器(Craig Ringer)§
具体来说,允许超级用户将某个用户映射的 password_required 设置为 false。仍须注意防止非超级用户使用超级用户凭据连接到外部服务器。
新功能允许 postgres_fdw 使用证书认证
附加模块
允许 postgres_fdw 使用证书认证(Craig Ringer)§
不同用户可以使用不同证书。
新功能增加扩展bool_plperl,以在 SQL 布尔值和 PL/Perl 布尔值之间进行双向转换
附加模块
增加扩展bool_plperl,以在 SQL 布尔值和 PL/Perl 布尔值之间进行双向转换(Ivan Panchenko)§
新功能使pg_stat_statements将 SELECT ... FOR UPDATE 命令与不带 FOR UPDATE 的命令分别处理
附加模块
使pg_stat_statements将 SELECT ... FOR UPDATE 命令与不带 FOR UPDATE 的命令分别处理(Andrew Gierth,Vik Fearing)§
新功能允许 pg_stat_statements 选择性地跟踪语句的规划时间
新功能全面修改ltree的 lquery 语法,使其对 NOT(!)的处理更符合逻辑
新功能增加ltree、lquery 和 ltxtquery 类型的二进制 I/O 支持
新功能增加adminpack函数 pg_file_sync(),以允许对文件执行 fsync
新功能增加pageinspect函数,以人类可读的格式输出 t_infomask/t_infomask2 值
附加模块
增加pageinspect函数,以人类可读的格式输出 t_infomask/t_infomask2 值(Craig Ringer,Sawada Masahiko,Michael Paquier)§ §
新功能向 pageinspect 输出添加 B-树索引去重处理相关列
附加模块
向 pageinspect 输出添加 B-树索引去重处理相关列(Peter Geoghegan)§
没有匹配的变化
尝试其他关键词,或 .
如何生成比较结果?
比较依据起始版本之后至目标版本的 PostgreSQL 发布说明。经核实的回补重复项会谨慎合并,保留每条原始说明;相关提交可能涉及独立变化,仍作为不同记录保留。
发布快照: 2026-09-26 · 安全快照: 2026-09-26
内容来自 PostgreSQL 发布说明。交互方式参考 pgversions.com 与 pgversionreport.