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

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

文档版本对比

POSTGRESQL · VERSION COMPARE

PostgreSQL 14.0 的版本变更

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

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

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

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

本次发布的全部变更

14.0

2021-09-30

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

14.0 受支持版本维护截止 2026-11-12

PostgreSQL 14.0

升级与兼容性说明

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

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

兼容性变化引用某些内置数组函数及其参数类型的用户定义对象必须重新创建

兼容性

引用某些内置数组函数及其参数类型的用户定义对象必须重新创建(Tom Lane)§

具体来说,array_append()、array_prepend()、array_cat()、array_position()、array_positions()、array_remove()、array_replace() 和 width_bucket() 以前接受 anyarray 参数,但现在接受 anycompatiblearray。因此,引用这些数组函数签名的用户定义对象(如聚合和操作符)必须在升级前删除,并在升级完成后重新创建。

关联记录(1)

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

兼容性变化移除内置几何数据类型和 contrib 模块cube、hstore、intarray和seg中已弃用的包含操作符 @ 和 ~

兼容性

移除内置几何数据类型和 contrib 模块cube、hstore、intarray和seg中已弃用的包含操作符 @ 和 ~(Justin Pryzby)§ §

更一致命名的 <@ 和 @> 已被推荐使用多年。

兼容性变化修复 to_tsquery() 和 websearch_to_tsquery() 以正确解析包含丢弃标记的查询文本

兼容性

修复 to_tsquery() 和 websearch_to_tsquery() 以正确解析包含丢弃标记的查询文本(Alexander Korotkov)§

某些丢弃标记(如下划线)会导致这些函数产生不正确的 tsquery 输出,例如,websearch_to_tsquery('"pg_class pg"') 和 to_tsquery('pg_class <-> pg') 以前都输出 ( 'pg' & 'class' ) <-> 'pg',但现在都输出 'pg' <-> 'class' <-> 'pg'。

兼容性变化修复 websearch_to_tsquery() 以正确解析引号中多个相邻丢弃标记

兼容性

修复 websearch_to_tsquery() 以正确解析引号中多个相邻丢弃标记(Alexander Korotkov)§

以前,包含多个相邻丢弃标记的引号文本被视为多个标记,导致不正确的 tsquery 输出,例如,websearch_to_tsquery('"aaa: bbb"') 以前输出 'aaa' <2> 'bbb',但现在输出 'aaa' <-> 'bbb'。

兼容性变化将 EXTRACT() 的返回类型从 float8 改为 numeric

兼容性

将 EXTRACT() 的返回类型从 float8 改为 numeric(Peter Eisentraut)§

这避免了某些用法中的精度损失问题。旧的行为仍可通过使用底层函数 date_part() 获得。

此外,EXTRACT(date) 现在对不属于 date 数据类型的单位会抛出错误。

兼容性变化当输入为单个 NaN 值时,将带有 numeric 参数的 var_samp() 和 stddev_samp() 改为返回 NULL

兼容性

当输入为单个 NaN 值时,将带有 numeric 参数的 var_samp() 和 stddev_samp() 改为返回 NULL(Tom Lane)§

以前返回 NaN。

兼容性变化当使用属性编号检查不存在或已删除的列时,has_column_privilege() 返回 false

兼容性

当使用属性编号检查不存在或已删除的列时,has_column_privilege() 返回 false(Joe Conway)§

以前这样的属性编号会返回无效列错误。

兼容性变化修复无限窗口函数范围的处理

兼容性

修复无限窗口函数范围的处理(Tom Lane)§

以前像 'inf' PRECEDING AND 'inf' FOLLOWING 这样的窗口帧子句会返回不正确的结果。

兼容性变化移除阶乘操作符 ! 和 !!,以及函数 numeric_fac()

兼容性

移除阶乘操作符 ! 和 !!,以及函数 numeric_fac()(Mark Dilger)§

factorial() 函数仍然受支持。

兼容性变化禁止对负数使用 factorial()

兼容性

禁止对负数使用 factorial()(Peter Eisentraut)§

以前这种情况返回 1。

兼容性变化移除对后缀(右一元)操作符的支持

兼容性

移除对后缀(右一元)操作符的支持(Mark Dilger)§

pg_dump 和 pg_upgrade 在导出后缀操作符时会发出警告。

兼容性变化在正则表达式换行敏感模式下,允许 \D 和 \W 简写匹配换行符

兼容性

在正则表达式换行敏感模式下,允许 \D 和 \W 简写匹配换行符(Tom Lane)§

以前它们在此模式下不匹配换行符,但这与其他常见正则表达式引擎的行为不一致。可以使用 [^[:digit:]] 或 [^[:word:]] 获得旧的行为。

兼容性变化在匹配正则表达式反向引用时忽略约束

兼容性

在匹配正则表达式反向引用时忽略约束(Tom Lane)§

例如,在 (^\d+).*\1 中,^ 约束应在字符串开头应用,但在匹配 \1 时不应应用。

兼容性变化禁止在正则表达式字符类中使用 \w 作为范围起点或终点

兼容性

禁止在正则表达式字符类中使用 \w 作为范围起点或终点(Tom Lane)§

以前这是允许的,但产生了意外的结果。

关联记录(2)

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

兼容性变化要求自定义服务器参数名称仅使用在未加引号的 SQL 标识符中有效的字符

兼容性

要求自定义服务器参数名称仅使用在未加引号的 SQL 标识符中有效的字符(Tom Lane)§ §

兼容性变化将password_encryption服务器参数的默认值改为 scram-sha-256

兼容性

将password_encryption服务器参数的默认值改为 scram-sha-256(Peter Eisentraut)§

以前默认值为 md5。除非更改此服务器设置或密码以 MD5 格式指定,否则所有新密码将以 SHA256 存储。此外,以前作为 md5 同义词的旧式(未记录的)布尔型值不再被接受。

兼容性变化移除服务器参数 vacuum_cleanup_index_scale_factor

兼容性

移除服务器参数 vacuum_cleanup_index_scale_factor(Peter Geoghegan)§ §

此设置从 PostgreSQL 版本 13.3 起就被忽略了。

关联记录(1)

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

兼容性变化移除服务器参数 operator_precedence_warning

兼容性

移除服务器参数 operator_precedence_warning(Tom Lane)§

此设置用于警告应用程序关于 PostgreSQL 9.5 的变更。

兼容性变化改进 pg_hba.conf 中 clientcert 的规范

兼容性

改进 pg_hba.conf 中 clientcert 的规范(Kyotaro Horiguchi)§

不再支持值 1/0/no-verify;只能使用字符串 verify-ca 和 verify-full。此外,如果启用了 cert 认证,则禁止使用 verify-ca,因为 cert 要求 verify-full 检查。

兼容性变化移除对 SSL 压缩的支持

兼容性

移除对 SSL 压缩的支持(Daniel Gustafsson,Michael Paquier)§ §

在之前的 PostgreSQL 版本中这已默认禁用,而且大多数现代 OpenSSL 和 TLS 版本不再支持它。

兼容性变化移除服务器和 libpq 对版本 2 线路协议的支持

兼容性

移除服务器和 libpq 对版本 2 线路协议的支持(Heikki Linnakangas)§

这最后一次作为默认值是在 PostgreSQL 7.3(2002 年发布)中。

兼容性变化禁止在 CREATE/DROP LANGUAGE 命令中对语言名称使用单引号

兼容性

禁止在 CREATE/DROP LANGUAGE 命令中对语言名称使用单引号(Peter Eisentraut)§

兼容性变化移除以前为序列和 TOAST 表创建的复合类型

兼容性

移除以前为序列和 TOAST 表创建的复合类型(Tom Lane)§

兼容性变化正确处理 ecpg SQL 命令字符串中的双引号标记

兼容性

正确处理 ecpg SQL 命令字符串中的双引号标记(Tom Lane)§ §

以前 'abc''def' 会被传递给服务器为 'abc'def',而 "abc""def" 会被传递为 "abc"def",导致语法错误。

兼容性变化防止intarray的包含操作符(<@ 和 @>)使用 GiST 索引

兼容性

防止intarray的包含操作符(<@ 和 @>)使用 GiST 索引(Tom Lane)§

以前需要完整的 GiST 索引扫描,所以改为直接扫描堆,这样更快。为此目的创建的索引应被移除。

兼容性变化移除 contrib 程序 pg_standby

兼容性

移除 contrib 程序 pg_standby(Justin Pryzby)§

兼容性变化防止tablefunc中的函数 normal_rand() 接受负值

兼容性

防止tablefunc中的函数 normal_rand() 接受负值(Ashutosh Bapat)§

负值会产生不良结果。

新功能增加预定义角色 pg_read_all_data 和 pg_write_all_data

服务器

增加预定义角色 pg_read_all_data 和 pg_write_all_data(Stephen Frost)§

这些非登录角色可用于授予对所有表、视图和序列的读或写权限。

新功能增加预定义角色 pg_database_owner,其仅包含当前数据库的所有者

服务器

增加预定义角色 pg_database_owner,其仅包含当前数据库的所有者(Noah Misch)§

这在模板数据库中特别有用。

新功能在后端崩溃后删除临时文件

服务器

在后端崩溃后删除临时文件(Euler Taveira)§

以前,此类文件为调试目的而被保留。如有必要,可通过新的服务器参数remove_temp_files_after_crash禁用删除。

新功能允许在客户端断开连接时取消长时间运行的查询

服务器

允许在客户端断开连接时取消长时间运行的查询(Sergey Cherkashin,Thomas Munro)§

服务器参数client_connection_check_interval允许控制是否在查询执行期间检查连接丢失。(这在 Linux 和少数其他操作系统上受支持。)

新功能为 pg_terminate_backend() 增加可选的超时参数

服务器

为 pg_terminate_backend() 增加可选的超时参数(Magnus Hagander)§

新功能允许宽元组始终被添加到几乎为空的堆页面中

服务器

允许宽元组始终被添加到几乎为空的堆页面中(John Naylor,Floris van Nee)§

以前,插入会超过页面填充因子的元组会被添加到新页面中。

新功能在 SSL 连接数据包中增加服务器名称指示(SNI)

服务器

在 SSL 连接数据包中增加服务器名称指示(SNI)(Peter Eisentraut)§

可通过关闭客户端连接选项 sslsni 来禁用此功能。

新功能允许 vacuum 在可移除的索引条目数量不显著时跳过索引清理

服务器 / 清理

允许 vacuum 在可移除的索引条目数量不显著时跳过索引清理(Masahiko Sawada,Peter Geoghegan)§ §

vacuum 参数 INDEX_CLEANUP 有一个新的默认值 auto 来启用此优化。

新功能允许 vacuum 更积极地将已删除的 B-树页面添加到空闲空间映射中

服务器 / 清理

允许 vacuum 更积极地将已删除的 B-树页面添加到空闲空间映射中(Peter Geoghegan)§

以前的清理只能将此前清理标记为已删除的页面添加到空闲空间映射中。

新功能允许 vacuum 回收未使用的尾部堆行指针所占用的空间

服务器 / 清理

允许 vacuum 回收未使用的尾部堆行指针所占用的空间(Matthias van de Meent,Peter Geoghegan)§

新功能允许 vacuum 在最小锁定索引操作期间更积极地删除死行

服务器 / 清理

允许 vacuum 在最小锁定索引操作期间更积极地删除死行(Álvaro Herrera)§ § §

具体来说,CREATE INDEX CONCURRENTLY 和 REINDEX CONCURRENTLY 不再限制其他关系的死行移除。

关联记录(1)

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

性能改进加速具有许多关系的数据库的清理

服务器 / 清理

加速具有许多关系的数据库的清理(Tatsuhito Kasahara)§

新功能降低vacuum_cost_page_miss的默认值以更好地反映当前硬件能力

服务器 / 清理

降低vacuum_cost_page_miss的默认值以更好地反映当前硬件能力(Peter Geoghegan)§

新功能增加跳过 TOAST 表清理的能力

服务器 / 清理

增加跳过 TOAST 表清理的能力(Nathan Bossart)§

VACUUM 现在有一个 PROCESS_TOAST 选项,可设置为 false 以禁用 TOAST 处理,而vacuumdb有一个 --no-process-toast 选项。

新功能使 COPY FREEZE 适当地更新页面可见性位

服务器 / 清理

使 COPY FREEZE 适当地更新页面可见性位(Anastasia Lubennikova,Pavan Deolasee,Jeff Janes)§

新功能当表接近 xid 或 multixact 回卷时,使 vacuum 操作更加积极

服务器 / 清理

当表接近 xid 或 multixact 回卷时,使 vacuum 操作更加积极(Masahiko Sawada,Peter Geoghegan)§

这由vacuum_failsafe_age和vacuum_multixact_failsafe_age控制。

新功能增加事务 ID 和多事务回卷之前的警告时间和硬限制

服务器 / 清理

增加事务 ID 和多事务回卷之前的警告时间和硬限制(Noah Misch)§

这应该减少在未发出回卷警告的情况下发生故障的可能性。

新功能在autovacuum 日志输出中增加每索引信息

服务器 / 清理

在autovacuum 日志输出中增加每索引信息(Masahiko Sawada)§

性能改进改进具有许多分区的分区表上更新和删除操作的性能

服务器 / 分区

改进具有许多分区的分区表上更新和删除操作的性能(Amit Langote,Tom Lane)§ § §

此更改大大减少了此类情况下规划器的开销,并且还允许分区表上的更新/删除使用执行时分区剪枝。

新功能允许以非阻塞方式分离分区

服务器 / 分区

允许以非阻塞方式分离分区(Álvaro Herrera)§

语法为 ALTER TABLE ... DETACH PARTITION ... CONCURRENTLY,和 FINALIZE。

新功能忽略分区边界值中的 COLLATE 子句

服务器 / 分区

忽略分区边界值中的 COLLATE 子句(Tom Lane)§

以前任何此类子句必须匹配分区键的排序规则;但更一致的做法是认为它会自动被强制转换为分区键的排序规则。

新功能允许 B-树索引添加操作移除过期索引条目以防止页面分裂

服务器 / 索引

允许 B-树索引添加操作移除过期索引条目以防止页面分裂(Peter Geoghegan)§ §

这对于减少索引列频繁更新的表的索引膨胀特别有用。

新功能允许 BRIN 索引为每个范围记录多个最小/最大值

服务器 / 索引

允许 BRIN 索引为每个范围记录多个最小/最大值(Tomas Vondra)§

如果每个页面范围中有多组值,这会很有用。

新功能允许 BRIN 索引使用布隆过滤器

服务器 / 索引

允许 BRIN 索引使用布隆过滤器(Tomas Vondra)§

这允许 BRIN 索引在数据在堆中不太集中的情况下有效使用。

新功能允许某些 GiST 索引通过预排序数据来构建

服务器 / 索引

允许某些 GiST 索引通过预排序数据来构建(Andrey Borodin)§

预排序自动进行,允许更快的索引创建和更小的索引。

新功能允许 SP-GiST 索引包含 INCLUDE 列

服务器 / 索引

允许 SP-GiST 索引包含 INCLUDE 列(Pavel Borisov)§

新功能允许对包含许多常量的 IN 子句使用 hash 查找

服务器 / 优化器

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

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

新功能增加扩展统计信息可用于 OR 子句估计的场景数量

服务器 / 优化器

增加扩展统计信息可用于 OR 子句估计的场景数量(Tomas Vondra,Dean Rasheed)§ § §

新功能允许对表达式创建扩展统计信息

服务器 / 优化器

允许对表达式创建扩展统计信息(Tomas Vondra)§

这允许对一组表达式和列创建统计信息,而不是像以前那样只能针对列。系统视图 pg_stats_ext_exprs 报告此类统计信息。

新功能允许对 TID 范围进行高效的堆扫描

服务器 / 优化器

允许对 TID 范围进行高效的堆扫描(Edmund Horner,David Rowley)§

以前非等值 TID 规范需要顺序扫描。

BUG 修复修复 EXPLAIN CREATE TABLE AS 和 EXPLAIN CREATE MATERIALIZED VIEW 以遵守 IF NOT EXISTS

服务器 / 优化器

修复 EXPLAIN CREATE TABLE AS 和 EXPLAIN CREATE MATERIALIZED VIEW 以遵守 IF NOT EXISTS(Bharath Rupireddy)§

以前,如果对象已存在,EXPLAIN 会失败。

性能改进在具有许多 CPU 和高会话数的系统上提高计算 MVCC 可见性快照的速度

服务器 / 一般性能

在具有许多 CPU 和高会话数的系统上提高计算 MVCC 可见性快照的速度(Andres Freund)§ § § § § §

这也提高了有许多空闲会话时的性能。

性能改进增加执行器方法以缓存嵌套循环连接内侧的结果

服务器 / 一般性能

增加执行器方法以缓存嵌套循环连接内侧的结果(David Rowley)§

如果仅检查内侧的一小部分行,这很有用。可通过服务器参数enable_memoize禁用。

性能改进允许窗口函数执行增量排序

服务器 / 一般性能

允许窗口函数执行增量排序(David Rowley)§

性能改进改进并行顺序扫描的 I/O 性能

服务器 / 一般性能

改进并行顺序扫描的 I/O 性能(Thomas Munro,David Rowley)§

这通过将块分组分配给并行工作进程来实现。

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

服务器 / 一般性能

允许引用多个外部表的查询并行执行外部表扫描(Robert Haas,Kyotaro Horiguchi,Thomas Munro,Etsuro Fujita)§

如果设置了 async_capable,postgres_fdw支持这种类型的扫描。

性能改进允许分析进行页面预取

服务器 / 一般性能

允许分析进行页面预取(Stephen Frost)§

这由maintenance_io_concurrency控制。

性能改进改进正则表达式搜索的性能

服务器 / 一般性能

改进正则表达式搜索的性能(Tom Lane)§ § § § § § § § § § §

性能改进大幅提高 Unicode 规范化性能

服务器 / 一般性能

大幅提高 Unicode 规范化性能(John Naylor)§ §

这加快了 normalize() 和 IS NORMALIZED 的速度。

性能改进增加对 TOAST 数据使用 LZ4 压缩的能力

服务器 / 一般性能

增加对 TOAST 数据使用 LZ4 压缩的能力(Dilip Kumar)§

这可以在列级别设置,或通过服务器参数default_toast_compression设为默认值。服务器必须使用 --with-lz4 编译才能支持此功能。默认设置仍为 pglz。

新功能如果启用了服务器参数compute_query_id,在 pg_stat_activity、EXPLAIN VERBOSE、csvlog 中显示查询 ID,以及可选地在log_line_prefix中显示

服务器 / 监控

如果启用了服务器参数compute_query_id,在 pg_stat_activity、EXPLAIN VERBOSE、csvlog 中显示查询 ID,以及可选地在log_line_prefix中显示(Julien Rouhaud)§ § § § §

由扩展计算的查询 ID 也将被显示。

新功能改进自动清理和自动分析的日志记录

服务器 / 监控

改进自动清理和自动分析的日志记录(Stephen Frost,Jakub Wartak)§

如果启用了track_io_timing,则报告自动清理和自动分析的 I/O 时间。同时报告自动分析的缓冲区读取和脏化速率。

新功能在log_connections的输出中增加客户端提供的原始用户名信息

服务器 / 监控

在log_connections的输出中增加客户端提供的原始用户名信息(Jacob Champion)§

新功能增加系统视图 pg_stat_progress_copy 以报告 COPY 进度

服务器 / 系统视图

增加系统视图 pg_stat_progress_copy 以报告 COPY 进度(Josef Šimánek,Matthias van de Meent)§ §

新功能增加系统视图 pg_stat_wal 以报告 WAL 活动

服务器 / 系统视图

增加系统视图 pg_stat_wal 以报告 WAL 活动(Masahiro Ikeda)§ § §

新功能增加系统视图 pg_stat_replication_slots 以报告复制槽活动

服务器 / 系统视图

增加系统视图 pg_stat_replication_slots 以报告复制槽活动(Masahiko Sawada,Amit Kapila,Vignesh C)§ § § §

函数 pg_stat_reset_replication_slot() 可重置槽统计信息。

新功能增加系统视图 pg_backend_memory_contexts 以报告会话内存使用情况

服务器 / 系统视图

增加系统视图 pg_backend_memory_contexts 以报告会话内存使用情况(Atsushi Torikoshi,Fujii Masao)§ §

新功能增加函数 pg_log_backend_memory_contexts() 以输出任意后端的内存上下文

服务器 / 系统视图

增加函数 pg_log_backend_memory_contexts() 以输出任意后端的内存上下文(Atsushi Torikoshi)§

新功能在 pg_stat_database 系统视图中增加会话统计信息

服务器 / 系统视图

在 pg_stat_database 系统视图中增加会话统计信息(Laurenz Albe)§

新功能在 pg_prepared_statements 中增加报告通用和自定义计划计数的列

服务器 / 系统视图

在 pg_prepared_statements 中增加报告通用和自定义计划计数的列(Atsushi Torikoshi,Kyotaro Horiguchi)§

新功能在 pg_locks 中增加锁等待开始时间

服务器 / 系统视图

在 pg_locks 中增加锁等待开始时间(Atsushi Torikoshi)§

新功能使归档进程在 pg_stat_activity 中可见

服务器 / 系统视图

使归档进程在 pg_stat_activity 中可见(Kyotaro Horiguchi)§

新功能增加等待事件 WalReceiverExit 以报告 WAL 接收器退出等待时间

服务器 / 系统视图

增加等待事件 WalReceiverExit 以报告 WAL 接收器退出等待时间(Fujii Masao)§

新功能实现信息模式视图 routine_column_usage 以跟踪函数和过程默认表达式引用的列

服务器 / 系统视图

实现信息模式视图 routine_column_usage 以跟踪函数和过程默认表达式引用的列(Peter Eisentraut)§

新功能允许匹配 SSL 证书的专有名称(DN)用于客户端证书认证

服务器 / 认证

允许匹配 SSL 证书的专有名称(DN)用于客户端证书认证(Andrew Dunstan)§

新的 pg_hba.conf 选项 clientname=DN 允许与 CN 以外的证书属性进行比较,并可与 ident 映射组合使用。

新功能允许 pg_hba.conf 和 pg_ident.conf 记录跨越多行

服务器 / 认证

允许 pg_hba.conf 和 pg_ident.conf 记录跨越多行(Fabien Coelho)§

行末的反斜杠允许记录内容续到下一行。

新功能允许指定证书吊销列表(CRL)目录

服务器 / 认证

允许指定证书吊销列表(CRL)目录(Kyotaro Horiguchi)§

这由服务器参数ssl_crl_dir和 libpq 连接选项sslcrldir控制。以前只能指定单个 CRL 文件。

新功能允许任意长度的密码

服务器 / 认证

允许任意长度的密码(Tom Lane,Nathan Bossart)§

新功能增加服务器参数idle_session_timeout以关闭空闲会话

服务器 / 服务器配置

增加服务器参数idle_session_timeout以关闭空闲会话(Li Japin)§

这类似于idle_in_transaction_session_timeout。

新功能将checkpoint_completion_target的默认值改为 0.9

服务器 / 服务器配置

将checkpoint_completion_target的默认值改为 0.9(Stephen Frost)§

之前的默认值为 0.5。

新功能允许在log_line_prefix中使用 %P 来报告并行工作进程的并行组领导者 PID

服务器 / 服务器配置

允许在log_line_prefix中使用 %P 来报告并行工作进程的并行组领导者 PID(Justin Pryzby)§

新功能允许unix_socket_directories以单独的、逗号分隔的引号字符串指定路径

服务器 / 服务器配置

允许unix_socket_directories以单独的、逗号分隔的引号字符串指定路径(Ian Lawrence Barwick)§

以前所有路径必须在一个引号字符串中。

新功能允许在启动时分配动态共享内存

服务器 / 服务器配置

允许在启动时分配动态共享内存(Thomas Munro)§

这由min_dynamic_shared_memory控制。这允许更多地使用大页面。

新功能增加服务器参数huge_page_size以控制 Linux 上使用的大页面大小

服务器 / 服务器配置

增加服务器参数huge_page_size以控制 Linux 上使用的大页面大小(Odin Ugedal)§

新功能允许通过pg_rewind回退备库

流复制与恢复

允许通过pg_rewind回退备库(Heikki Linnakangas)§

新功能允许在服务器重载时更改restore_command设置

流复制与恢复

允许在服务器重载时更改restore_command设置(Sergei Kornilov)§

你也可以将 restore_command 设置为空字符串并重载,以强制恢复仅从 pg_wal 目录读取。

新功能增加服务器参数log_recovery_conflict_waits以报告长时间的恢复冲突等待

流复制与恢复

增加服务器参数log_recovery_conflict_waits以报告长时间的恢复冲突等待(Bertrand Drouvot,Masahiko Sawada)§ §

新功能当主库以阻止备库重放的方式更改参数时,暂停热备库上的恢复

流复制与恢复

当主库以阻止备库重放的方式更改参数时,暂停热备库上的恢复(Peter Eisentraut)§

以前备库会立即关闭。

新功能增加函数 pg_get_wal_replay_pause_state() 以报告恢复状态

流复制与恢复

增加函数 pg_get_wal_replay_pause_state() 以报告恢复状态(Dilip Kumar)§

它比 pg_is_wal_replay_paused() 提供更详细的信息,后者仍然存在。

新功能增加新的只读服务器参数in_hot_standby

流复制与恢复

增加新的只读服务器参数in_hot_standby(Haribabu Kommi,Greg Nancarrow,Tom Lane)§

这允许客户端轻松检测是否连接到热备库。

新功能在具有大量共享缓冲区的集簇上加速恢复期间小表的截断

流复制与恢复

在具有大量共享缓冲区的集簇上加速恢复期间小表的截断(Kirk Jamison)§

新功能允许在 Linux 上崩溃恢复开始时进行文件系统同步

流复制与恢复

允许在 Linux 上崩溃恢复开始时进行文件系统同步(Thomas Munro)§

默认情况下,PostgreSQL 在崩溃恢复开始时打开并 fsync 数据库集簇中的每个数据文件。新设置recovery_init_sync_method=syncfs 改为同步集簇使用的每个文件系统。这允许在具有许多数据库文件的系统上更快地恢复。

新功能增加函数 pg_xact_commit_timestamp_origin() 以返回指定事务的提交时间戳和复制来源

流复制与恢复

增加函数 pg_xact_commit_timestamp_origin() 以返回指定事务的提交时间戳和复制来源(Movead Li)§

关联记录(1)

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

新功能在 pg_last_committed_xact() 返回的记录中增加复制来源

流复制与恢复

在 pg_last_committed_xact() 返回的记录中增加复制来源(Movead Li)§

关联记录(1)

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

新功能允许使用标准函数权限控制来控制复制来源函数

流复制与恢复

允许使用标准函数权限控制来控制复制来源函数(Martín Marqués)§

以前这些函数只能由超级用户执行,这仍然是默认值。

新功能允许逻辑复制将长时间进行中的事务流式传输给订阅者

流复制与恢复 / 逻辑复制

允许逻辑复制将长时间进行中的事务流式传输给订阅者(Dilip Kumar,Amit Kapila,Ajin Cherian,Tomas Vondra,Nikhil Sontakke,Stas Kelvich)§ § § §

以前超过logical_decoding_work_mem的事务会被写入磁盘直到事务完成。

关联记录(1)

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

新功能增强逻辑复制 API 以允许流式传输大型进行中事务

流复制与恢复 / 逻辑复制

增强逻辑复制 API 以允许流式传输大型进行中事务(Tomas Vondra,Dilip Kumar,Amit Kapila)§

输出函数以 stream 开头。 test_decoding 也支持这些。

新功能允许逻辑复制中表同步期间的多个事务

流复制与恢复 / 逻辑复制

允许逻辑复制中表同步期间的多个事务(Peter Smith,Amit Kapila,Takamichi Osumi)§

新功能立即将子事务和顶层 XID 关联写入 WAL 日志

流复制与恢复 / 逻辑复制

立即将子事务和顶层 XID 关联写入 WAL 日志(Tomas Vondra,Dilip Kumar,Amit Kapila)§

这对逻辑解码有用。

新功能增强逻辑解码 API 以处理两阶段提交

流复制与恢复 / 逻辑复制

增强逻辑解码 API 以处理两阶段提交(Ajin Cherian,Amit Kapila,Nikhil Sontakke,Stas Kelvich)§ § §

这通过 pg_create_logical_replication_slot() 控制。

关联记录(1)

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

新功能在使用逻辑复制时,在命令完成时向 WAL 添加缓存失效消息

流复制与恢复 / 逻辑复制

在使用逻辑复制时,在命令完成时向 WAL 添加缓存失效消息(Dilip Kumar,Tomas Vondra,Amit Kapila)§

这允许逻辑流式传输进行中的事务。当逻辑复制被禁用时,失效消息仅在事务完成时生成。

新功能允许逻辑解码更高效地处理缓存失效消息

流复制与恢复 / 逻辑复制

允许逻辑解码更高效地处理缓存失效消息(Dilip Kumar)§

这允许逻辑解码在存在大量 DDL 的情况下高效工作。

新功能允许控制逻辑解码消息是否发送到复制流

流复制与恢复 / 逻辑复制

允许控制逻辑解码消息是否发送到复制流(David Pirotte,Euler Taveira)§

新功能允许逻辑复制订阅使用二进制传输模式

流复制与恢复 / 逻辑复制

允许逻辑复制订阅使用二进制传输模式(Dave Cramer)§

这比文本模式更快,但略微不那么健壮。

新功能允许逻辑解码按 xid 过滤

流复制与恢复 / 逻辑复制

允许逻辑解码按 xid 过滤(Markus Wanner)§

新功能减少不使用 AS 就不能用作列标签的关键字数量

SELECT、INSERT

减少不使用 AS 就不能用作列标签的关键字数量(Mark Dilger)§

现在受限关键字减少了 90%。

新功能允许为 JOIN 的 USING 子句指定别名

SELECT、INSERT

允许为 JOIN 的 USING 子句指定别名(Peter Eisentraut)§

别名通过在 USING 子句后写 AS 来创建。它可用作合并的 USING 列的表限定。

新功能允许将 DISTINCT 添加到 GROUP BY 以移除重复的 GROUPING SET 组合

SELECT、INSERT

允许将 DISTINCT 添加到 GROUP BY 以移除重复的 GROUPING SET 组合(Vik Fearing)§

例如,GROUP BY CUBE (a,b), CUBE (b,c) 在没有 DISTINCT 的情况下会生成重复的分组组合。

新功能正确处理 INSERT 中多行 VALUES 列表中的 DEFAULT 条目

SELECT、INSERT

正确处理 INSERT 中多行 VALUES 列表中的 DEFAULT 条目(Dean Rasheed)§

此类情况以前会抛出错误。

新功能为公共表表达式增加 SQL 标准的 SEARCH 和 CYCLE 子句

SELECT、INSERT

为公共表表达式增加 SQL 标准的 SEARCH 和 CYCLE 子句(Peter Eisentraut)§ §

使用现有语法也可以达到相同的结果,但远没有这么方便。

新功能允许 ON CONFLICT 的 WHERE 子句中的列名使用表限定

SELECT、INSERT

允许 ON CONFLICT 的 WHERE 子句中的列名使用表限定(Tom Lane)§

但是,只能引用目标表。

新功能允许 REFRESH MATERIALIZED VIEW 使用并行执行

工具命令

允许 REFRESH MATERIALIZED VIEW 使用并行执行(Bharath Rupireddy)§

新功能允许 REINDEX 更改新索引的表空间

工具命令

允许 REINDEX 更改新索引的表空间(Alexey Kondratov,Michael Paquier,Justin Pryzby)§ §

这通过指定 TABLESPACE 子句来完成。reindexdb也增加了 --tablespace 选项来控制此功能。

新功能允许 REINDEX 处理分区关系的所有子表或索引

工具命令

允许 REINDEX 处理分区关系的所有子表或索引(Justin Pryzby,Michael Paquier)§

新功能允许使用 CONCURRENTLY 的索引命令避免等待其他使用 CONCURRENTLY 的操作完成

工具命令

允许使用 CONCURRENTLY 的索引命令避免等待其他使用 CONCURRENTLY 的操作完成(Álvaro Herrera)§ § §

关联记录(1)

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

性能改进改进二进制模式下 COPY FROM 的性能

工具命令

改进二进制模式下 COPY FROM 的性能(Bharath Rupireddy,Amit Langote)§

新功能在视图定义中保留 SQL 定义函数的 SQL 标准语法

工具命令

在视图定义中保留 SQL 定义函数的 SQL 标准语法(Tom Lane)§

以前,对 SQL 标准函数(如 EXTRACT())的调用以普通函数调用语法显示。现在显示视图或规则时会保留原始语法。

新功能为 GRANT 和 REVOKE 增加 SQL 标准的 GRANTED BY 子句

工具命令

为 GRANT 和 REVOKE 增加 SQL 标准的 GRANTED BY 子句(Peter Eisentraut)§

新功能为 CREATE TRIGGER 增加 OR REPLACE 选项

工具命令

为 CREATE TRIGGER 增加 OR REPLACE 选项(Takamichi Osumi)§

这允许有条件地替换已存在的触发器。

新功能允许 TRUNCATE 操作外部表

工具命令

允许 TRUNCATE 操作外部表(Kazutaka Onishi,Kohei KaiGai)§

postgres_fdw 模块现在也支持此功能。

新功能允许更方便地向订阅中添加和从中移除发布

工具命令

允许更方便地向订阅中添加和从中移除发布(Japin Li)§

新语法为 ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION。这避免了需要指定所有发布来添加/移除条目。

新功能为系统目录增加主键、唯一约束和外键

工具命令

为系统目录增加主键、唯一约束和外键(Peter Eisentraut)§ §

这些更改帮助 GUI 工具分析系统目录。目录现有的唯一索引现在具有关联的 UNIQUE 或 PRIMARY KEY 约束。外键关系实际上并未作为约束存储或实现,但可通过函数 pg_get_catalog_foreign_keys() 获取以供显示。

新功能在接受 CURRENT_USER 的每个地方都允许 CURRENT_ROLE

工具命令

在接受 CURRENT_USER 的每个地方都允许 CURRENT_ROLE(Peter Eisentraut)§

新功能允许扩展和内置数据类型实现下标运算

数据类型

允许扩展和内置数据类型实现下标运算(Dmitry Dolgov)§

以前下标处理是在服务器中硬编码的,因此下标运算只能应用于数组类型。此更改允许对任何有意义的类型使用下标记法来提取或赋值部分值。

新功能允许对 JSONB 使用下标运算

数据类型

允许对 JSONB 使用下标运算(Dmitry Dolgov)§ § §

JSONB 下标运算可用于提取和赋值 JSONB 文档的部分内容。

新功能增加对多范围数据类型的支持

数据类型

增加对多范围数据类型的支持(Paul Jungwirth,Alexander Korotkov)§ § § §

这类似于范围数据类型,但允许指定多个有序、不重叠的范围。每个范围类型都会自动创建一个关联的多范围类型。

新功能增加对亚美尼亚语、巴斯克语、加泰罗尼亚语、印地语、塞尔维亚语和意第绪语的词干化支持

数据类型

增加对亚美尼亚语、巴斯克语、加泰罗尼亚语、印地语、塞尔维亚语和意第绪语的词干化支持(Peter Eisentraut)§ § §

新功能允许 tsearch 数据文件具有无限行长度

数据类型

允许 tsearch 数据文件具有无限行长度(Tom Lane)§

之前的限制为 4K 字节。同时移除函数 t_readline()。

新功能增加对 numeric 数据类型中 Infinity 和 -Infinity 值的支持

数据类型

增加对 numeric 数据类型中 Infinity 和 -Infinity 值的支持(Tom Lane)§

浮点数据类型已经支持这些值。

新功能增加点操作符 <<| 和 |>> 表示严格在上方/下方测试

数据类型

增加点操作符 <<| 和 |>> 表示严格在上方/下方测试(Emre Hasegeli)§

以前这些叫做 >^ 和 <^,但该命名与其他几何数据类型不一致。旧名称仍然可用,但将来可能被移除。

新功能增加 LSN 和 numeric(字节)值的加减操作符

数据类型

增加 LSN 和 numeric(字节)值的加减操作符(Fujii Masao)§

新功能允许二进制数据传输对数组和记录的 OID 不匹配更加宽容

数据类型

允许二进制数据传输对数组和记录的 OID 不匹配更加宽容(Tom Lane)§

新功能为系统目录创建复合数组类型

数据类型

为系统目录创建复合数组类型(Wenjing Zeng)§

用户定义的关系长期以来就有关联的复合类型,也有这些复合类型上的数组类型。系统目录现在也是如此。此更改还修复了在单用户模式下创建用户定义表时无法创建复合数组类型的不一致性。

新功能允许 SQL 语言函数和过程使用 SQL 标准函数体

函数

允许 SQL 语言函数和过程使用 SQL 标准函数体(Peter Eisentraut)§

以前仅支持字符串字面量函数体。以 SQL 标准语法编写函数或过程时,函数体会被立即解析并存储为解析树。这允许更好地跟踪函数依赖关系,并具有安全优势。

新功能允许过程具有 OUT 参数

函数

允许过程具有 OUT 参数(Peter Eisentraut)§ §

新功能允许某些数组函数在兼容数据类型的组合上操作

函数

允许某些数组函数在兼容数据类型的组合上操作(Tom Lane)§

函数 array_append()、array_prepend()、array_cat()、array_position()、array_positions()、array_remove()、array_replace() 和 width_bucket() 现在接受 anycompatiblearray 而不是 anyarray 参数。这使它们对参数类型的精确匹配要求更低。

关联记录(1)

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

新功能增加 SQL 标准的 trim_array() 函数

函数

增加 SQL 标准的 trim_array() 函数(Vik Fearing)§

使用数组切片也可以实现此功能,但不那么方便。

新功能增加 bytea 版本的 ltrim() 和 rtrim()

函数

增加 bytea 版本的 ltrim() 和 rtrim()(Joel Jacobson)§

新功能在 split_part() 中支持负索引

函数

在 split_part() 中支持负索引(Nikhil Benesch)§

负值从最后一个字段开始向前计数。

新功能增加 string_to_table() 函数以按分隔符拆分字符串

函数

增加 string_to_table() 函数以按分隔符拆分字符串(Pavel Stehule)§

这类似于 regexp_split_to_table() 函数。

新功能增加 unistr() 函数以允许在字符串中以反斜杠十六进制转义形式指定 Unicode 字符

函数

增加 unistr() 函数以允许在字符串中以反斜杠十六进制转义形式指定 Unicode 字符(Pavel Stehule)§

这类似于在字面量字符串中指定 Unicode 的方式。

新功能增加 bit_xor() XOR 聚合函数

函数

增加 bit_xor() XOR 聚合函数(Alexey Bashtanov)§

新功能增加函数 bit_count() 以返回位或字节字符串中设置的位数

函数

增加函数 bit_count() 以返回位或字节字符串中设置的位数(David Fetter)§

新功能增加 date_bin() 函数

函数

增加 date_bin() 函数(John Naylor)§ §

此函数将输入时间戳进行“分箱”,将它们分组到与指定原点对齐的均匀长度的区间中。

新功能允许 make_timestamp()/make_timestamptz() 接受负年份

函数

允许 make_timestamp()/make_timestamptz() 接受负年份(Peter Eisentraut)§

负值被解释为 BC 年。

新功能增加更新的正则表达式 substring() 语法

函数

增加更新的正则表达式 substring() 语法(Peter Eisentraut)§

新的 SQL 标准语法为 SUBSTRING(text SIMILAR pattern ESCAPE escapechar)。之前的标准语法 SUBSTRING(text FROM pattern FOR escapechar) 仍被 PostgreSQL 接受。

新功能允许在正则表达式方括号内使用补充字符类转义 \D、\S 和 \W

函数

允许在正则表达式方括号内使用补充字符类转义 \D、\S 和 \W(Tom Lane)§

关联记录(2)

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

新功能增加 [[:word:]] 作为正则表达式字符类,等同于 \w

函数

增加 [[:word:]] 作为正则表达式字符类,等同于 \w(Tom Lane)§

关联记录(2)

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

新功能允许 lead() 和 lag() 窗口函数的默认值使用更灵活的数据类型

函数

允许 lead() 和 lag() 窗口函数的默认值使用更灵活的数据类型(Vik Fearing)§

新功能使非零浮点值除以无穷大返回零

函数

使非零浮点值除以无穷大返回零(Kyotaro Horiguchi)§

以前此类操作产生下溢错误。

新功能使浮点 NaN 除以零返回 NaN

函数

使浮点 NaN 除以零返回 NaN(Tom Lane)§

以前这返回一个错误。

新功能使 exp() 和 power() 在负无穷大指数时返回零

函数

使 exp() 和 power() 在负无穷大指数时返回零(Tom Lane)§ § §

以前它们经常返回下溢错误。

新功能改进涉及无穷大的几何计算的精度

函数

改进涉及无穷大的几何计算的精度(Tom Lane)§

新功能尽可能将内置类型转换函数标记为防泄漏

函数

尽可能将内置类型转换函数标记为防泄漏(Tom Lane)§

这允许在安全敏感情况下更多地使用需要类型转换的函数。

新功能改变 pg_describe_object()、pg_identify_object() 和 pg_identify_object_as_address(),使其始终为不存在的对象报告有用的错误消息

函数

改变 pg_describe_object()、pg_identify_object() 和 pg_identify_object_as_address(),使其始终为不存在的对象报告有用的错误消息(Michael Paquier)§

新功能改进 PL/pgSQL 的表达式和赋值解析

PL/pgSQL

改进 PL/pgSQL 的表达式和赋值解析(Tom Lane)§

此更改允许赋值到数组切片和嵌套记录字段。

新功能允许 plpgsql 的 RETURN QUERY 使用并行执行其查询

PL/pgSQL

允许 plpgsql 的 RETURN QUERY 使用并行执行其查询(Tom Lane)§

性能改进改进 plpgsql 过程中重复 CALL 的性能

PL/pgSQL

改进 plpgsql 过程中重复 CALL 的性能(Pavel Stehule,Tom Lane)§

新功能为 libpq 增加管道模式

客户端接口

为 libpq 增加管道模式(Craig Ringer,Matthieu Garrigues,Álvaro Herrera)§

这允许发送多个查询,仅在发送特定同步消息时等待完成。

新功能增强 libpq 的 target_session_attrs 参数选项

客户端接口

增强 libpq 的 target_session_attrs 参数选项(Haribabu Kommi,Greg Nancarrow,Vignesh C,Tom Lane)§ §

新选项为 read-only、primary、standby 和 prefer-standby。

新功能改进 libpq 的 PQtrace() 输出格式

客户端接口

改进 libpq 的 PQtrace() 输出格式(Aya Iwata,Álvaro Herrera)§

新功能允许将 ECPG SQL 标识符链接到特定连接

客户端接口

允许将 ECPG SQL 标识符链接到特定连接(Hayato Kuroda)§

这通过 DECLARE ... STATEMENT 完成。

新功能允许vacuumdb跳过索引清理和截断

客户端应用

允许vacuumdb跳过索引清理和截断(Nathan Bossart)§

选项为 --no-index-cleanup 和 --no-truncate。

新功能允许pg_dump仅导出特定扩展

客户端应用

允许pg_dump仅导出特定扩展(Guillaume Lelarge)§

这由选项 --extension 控制。

新功能增加pgbench的 permute() 函数以随机打乱值

客户端应用

增加pgbench的 permute() 函数以随机打乱值(Fabien Coelho,Hironobu Suzuki,Dean Rasheed)§

新功能在 pgbench 使用 -C 选项测量的重连开销中包含断开连接时间

客户端应用

在 pgbench 使用 -C 选项测量的重连开销中包含断开连接时间(Yugo Nagata)§

新功能允许多次指定详细选项(-v)以增加日志详细程度

客户端应用

允许多次指定详细选项(-v)以增加日志详细程度(Tom Lane)§

pg_dump、pg_dumpall和pg_restore支持此行为。

新功能允许 psql 的 \df 和 \do 命令指定函数和操作符参数类型

客户端应用 / psql

允许 psql 的 \df 和 \do 命令指定函数和操作符参数类型(Greg Sabino Mullane,Tom Lane)§

这有助于减少重载名称打印的匹配数。

关联记录(1)

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

新功能在 psql 的 \d[i|m|t]+ 输出中增加访问方法列

客户端应用 / psql

在 psql 的 \d[i|m|t]+ 输出中增加访问方法列(Georgios Kokolatos)§

新功能允许 psql 的 \dt 和 \di 显示 TOAST 表及其索引

客户端应用 / psql

允许 psql 的 \dt 和 \di 显示 TOAST 表及其索引(Justin Pryzby)§

新功能增加 psql 命令 \dX 以列出扩展统计对象

客户端应用 / psql

增加 psql 命令 \dX 以列出扩展统计对象(Tatsuro Yamada)§

BUG 修复修复 psql 的 \dT 以理解数组语法和后端语法别名,如 int 代替 integer

客户端应用 / psql

修复 psql 的 \dT 以理解数组语法和后端语法别名,如 int 代替 integer(Greg Sabino Mullane,Tom Lane)§

关联记录(1)

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

新功能当使用 psql 的 \e 编辑之前的查询或文件,或使用 \ef 和 \ev 时,如果编辑器未保存就退出则忽略结果

客户端应用 / psql

当使用 psql 的 \e 编辑之前的查询或文件,或使用 \ef 和 \ev 时,如果编辑器未保存就退出则忽略结果(Laurenz Albe)§

以前,这种编辑会将之前的查询加载到查询缓冲区中,并且通常会立即执行。这被认为可能不是用户想要的。

新功能改进 Tab 补全

客户端应用 / psql

改进 Tab 补全(Vignesh C,Michael Paquier,Justin Pryzby,Georgios Kokolatos,Julien Rouhaud)§ § § § § § § § § § § § § § § § § §

新功能增加命令行工具pg_amcheck以简化在多个关系上运行 contrib/amcheck 测试

服务器应用

增加命令行工具pg_amcheck以简化在多个关系上运行 contrib/amcheck 测试(Mark Dilger)§

新功能为initdb增加 --no-instructions 选项

服务器应用

为initdb增加 --no-instructions 选项(Magnus Hagander)§

这会抑制通常打印的服务器启动说明。

新功能停止pg_upgrade创建 analyze_new_cluster 脚本

服务器应用

停止pg_upgrade创建 analyze_new_cluster 脚本(Magnus Hagander)§

取而代之的是给出类似的vacuumdb说明。

新功能移除对 postmaster -o 选项的支持

服务器应用

移除对 postmaster -o 选项的支持(Magnus Hagander)§

此选项是不必要的,因为所有传递的选项都已经可以直接指定。

新功能将"默认角色"重命名为"预定义角色"

文档

将"默认角色"重命名为"预定义角色"(Bruce Momjian,Stephen Frost)§

新功能增加 factorial() 函数的文档

文档

增加 factorial() 函数的文档(Peter Eisentraut)§

随着此版本移除了 ! 操作符,factorial() 是计算阶乘的唯一内置方式。

新功能增加 configure 选项 --with-ssl={openssl} 以允许将来选择要使用的 SSL 库

源代码

增加 configure 选项 --with-ssl={openssl} 以允许将来选择要使用的 SSL 库(Daniel Gustafsson,Michael Paquier)§

保留 --with-openssl 拼写以兼容。

新功能增加对抽象 Unix 域套接字的支持

源代码

增加对抽象 Unix 域套接字的支持(Peter Eisentraut)§

目前在 Linux 和 Windows 上受支持。

新功能允许 Windows 正确处理大于 4GB 的文件

源代码

允许 Windows 正确处理大于 4GB 的文件(Juan José Santamaría Flecha)§

例如,这允许 COPY、WAL 文件和关系段文件大于 4GB。

新功能增加服务器参数debug_discard_caches以控制用于测试目的的缓存刷新

源代码

增加服务器参数debug_discard_caches以控制用于测试目的的缓存刷新(Craig Ringer)§ § §

以前此行为只能在编译时设置。要在 initdb 期间调用它,使用新选项 --discard-caches。

新功能valgrind 错误检测能力的各种改进

源代码

valgrind 错误检测能力的各种改进(Álvaro Herrera,Peter Geoghegan)§ § §

新功能增加正则表达式包的测试模块

源代码

增加正则表达式包的测试模块(Tom Lane)§

新功能增加对 LLVM 版本 12 的支持

源代码

增加对 LLVM 版本 12 的支持(Andres Freund)§

关联记录(3)

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

新功能将 SHA1、SHA2 和 MD5 hash 计算改为使用 OpenSSL EVP API

源代码

将 SHA1、SHA2 和 MD5 hash 计算改为使用 OpenSSL EVP API(Michael Paquier)§ § § §

这更加现代并支持 FIPS 模式。

新功能移除对随机数生成器选择的单独构建时控制

源代码

移除对随机数生成器选择的单独构建时控制(Daniel Gustafsson)§

现在始终由 SSL 库的选择决定。

新功能增加 EUC_TW 和 Big5 编码之间的直接转换例程

源代码

增加 EUC_TW 和 Big5 编码之间的直接转换例程(Heikki Linnakangas)§

新功能增加 FreeBSD 的排序规则版本支持

源代码

增加 FreeBSD 的排序规则版本支持(Thomas Munro)§

新功能在索引访问方法 API 中增加 amadjustmembers

源代码

在索引访问方法 API 中增加 amadjustmembers(Tom Lane)§

这允许索引访问方法在创建新操作符类或族时提供有效性检查。

新功能在 libpq-fe.h 中提供最近添加的 libpq 功能的特性测试宏

源代码

在 libpq-fe.h 中提供最近添加的 libpq 功能的特性测试宏(Tom Lane,Álvaro Herrera)§

历史上,应用程序通常使用 PG_VERSION_NUM 的编译时检查来测试功能是否可用。但那通常是服务器版本,可能不能很好地指导 libpq 的版本。libpq-fe.h 现在提供 #define 符号表示 v14 中添加的应用程序可见功能;意图是在将来的版本中继续为此类功能添加符号。

新功能允许对hstore值使用下标运算

附加模块

允许对hstore值使用下标运算(Tom Lane,Dmitry Dolgov)§

新功能允许 GiST/GIN pg_trgm 索引进行等值查找

附加模块

允许 GiST/GIN pg_trgm 索引进行等值查找(Julien Rouhaud)§

这类似于 LIKE,只是不识别通配符。

新功能允许cube数据类型以二进制模式传输

附加模块

允许cube数据类型以二进制模式传输(KaiGai Kohei)§

新功能允许 pgstattuple_approx() 报告 TOAST 表

附加模块

允许 pgstattuple_approx() 报告 TOAST 表(Peter Eisentraut)§

新功能增加 contrib 模块pg_surgery以允许更改行可见性

附加模块

增加 contrib 模块pg_surgery以允许更改行可见性(Ashutosh Sharma)§

这对于修复数据库损坏很有用。

新功能增加 contrib 模块old_snapshot,用于报告活动的old_snapshot_threshold所使用的 XID/时间映射

附加模块

增加 contrib 模块old_snapshot,用于报告活动的old_snapshot_threshold所使用的 XID/时间映射(Robert Haas)§

新功能允许amcheck也检查堆页面

附加模块

允许amcheck也检查堆页面(Mark Dilger)§

以前它只检查 B-树索引页面。

新功能允许pageinspect检查 GiST 索引

附加模块

允许pageinspect检查 GiST 索引(Andrey Borodin,Heikki Linnakangas)§ §

新功能将 pageinspect 块号改为 bigint

附加模块

将 pageinspect 块号改为 bigint(Peter Eisentraut)§

新功能将btree_gist函数标记为并行安全

附加模块

将btree_gist函数标记为并行安全(Steven Winfield)§

新功能将查询 hash 计算从 pg_stat_statements 移至核心服务器

附加模块 / pg_stat_statements

将查询 hash 计算从 pg_stat_statements 移至核心服务器(Julien Rouhaud)§

新服务器参数compute_query_id的默认值 auto 将在加载此扩展时自动启用查询 ID 计算。

新功能使 pg_stat_statements 分别跟踪顶层和嵌套语句

附加模块 / pg_stat_statements

使 pg_stat_statements 分别跟踪顶层和嵌套语句(Julien Rohaud)§

以前,在跟踪所有语句时,相同的顶层和嵌套语句被作为单个条目跟踪;但分开此类用法似乎更有用。

新功能为 pg_stat_statements 增加工具命令的行计数

附加模块 / pg_stat_statements

为 pg_stat_statements 增加工具命令的行计数(Fujii Masao,Katsuragi Yuta,Seino Yuki)§ §

新功能增加 pg_stat_statements_info 系统视图以显示 pg_stat_statements 活动

附加模块 / pg_stat_statements

增加 pg_stat_statements_info 系统视图以显示 pg_stat_statements 活动(Katsuragi Yuta,Yuki Seino,Naoki Nakamichi)§ §

新功能允许 postgres_fdw 批量 INSERT 行

附加模块 / postgres_fdw

允许 postgres_fdw 批量 INSERT 行(Takayuki Tsunakawa,Tomas Vondra,Amit Langote)§ §

新功能允许 postgres_fdw 在 IMPORT FOREIGN SCHEMA ... LIMIT TO 指定时导入表分区

附加模块 / postgres_fdw

允许 postgres_fdw 在 IMPORT FOREIGN SCHEMA ... LIMIT TO 指定时导入表分区(Matthias van de Meent)§

默认情况下,仅导入分区表的根表。

新功能增加 postgres_fdw 函数 postgres_fdw_get_connections() 以报告打开的外部服务器连接

附加模块 / postgres_fdw

增加 postgres_fdw 函数 postgres_fdw_get_connections() 以报告打开的外部服务器连接(Bharath Rupireddy)§

新功能允许控制外部服务器在事务完成后是否保持连接打开

附加模块 / postgres_fdw

允许控制外部服务器在事务完成后是否保持连接打开(Bharath Rupireddy)§

这由 keep_connections 控制,默认为开启。

新功能允许 postgres_fdw 在必要时重新连接到外部服务器

附加模块 / postgres_fdw

允许 postgres_fdw 在必要时重新连接到外部服务器(Bharath Rupireddy)§ §

以前外部服务器重启可能导致外部表访问错误。

新功能增加 postgres_fdw 函数以丢弃缓存的连接

附加模块 / postgres_fdw

增加 postgres_fdw 函数以丢弃缓存的连接(Bharath Rupireddy)§

这份对比如何生成?

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

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

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

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

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