发布日期:2024-09-26
PostgreSQL 17 包含许多新功能和增强功能,包括
用于VACUUM
的新内存管理系统,可减少内存消耗并提高整体真空性能。
新的SQL/JSON功能,包括构造函数、标识函数和JSON_TABLE()
函数,该函数将 JSON 数据转换为表格表示形式。
各种查询性能改进,包括使用流式 I/O 的顺序读取、高并发下的写入吞吐量以及在btree索引中搜索多个值。
逻辑复制增强功能,包括
故障转移控制
pg_createsubscriber,一个从物理备用创建逻辑副本的实用程序
pg_upgrade现在保留发布者上的逻辑复制槽和订阅者上的完整订阅状态。这将允许升级到未来的主要版本继续逻辑复制,而无需复制即可重新同步。
新的客户端连接选项sslnegotiation=direct
,它执行直接 TLS 握手以避免往返协商。
pg_basebackup现在支持增量备份。
COPY
添加了一个新选项ON_ERROR ignore
,该选项允许复制操作在发生错误时继续。
以上项目以及PostgreSQL 17 的其他新功能将在下面的部分中详细解释。
对于希望从任何先前版本迁移数据的人员,需要使用pg_dumpall进行转储/恢复,或使用pg_upgrade或逻辑复制。有关迁移到新主要版本的常规信息,请参阅第 18.6 节。
版本 17 包含一些可能会影响与先前版本兼容性的更改。请注意以下不兼容性
更改函数以在维护操作期间使用安全的search_path(Jeff Davis)§ §
这可以防止维护操作(ANALYZE
、CLUSTER
、CREATE INDEX
、CREATE MATERIALIZED VIEW
、REFRESH MATERIALIZED VIEW
、REINDEX
或VACUUM
)执行不安全的访问。表达式索引和物化视图使用的需要引用非默认模式的函数必须在函数创建期间指定搜索路径。
将ago
限制为仅在interval
值中以结尾出现(Joseph Koshakow)§ §
此外,防止空间隔单位多次出现。
删除服务器变量 old_snapshot_threshold(Thomas Munro)§
此变量允许 vacuum 删除可能仍对正在运行的事务可见的行,如果以后访问,则会导致“快照过旧”错误。如果找到改进的实现,此功能可能会在以后重新添加到PostgreSQL中。
更改SET SESSION AUTHORIZATION
对初始会话用户的超级用户状态的处理(Joseph Koshakow)§
新行为基于发出SET SESSION AUTHORIZATION
命令时会话用户的超级用户状态,而不是他们连接时的超级用户状态。
删除模拟每个数据库用户的特性(Nathan Bossart)§
此特性db_user_namespace
很少使用。
删除adminpack contrib 扩展(Daniel Gustafsson)§
这被现已终止支持的pgAdmin III使用。
删除wal_sync_method值fsync_writethrough
在Windows上(Thomas Munro)§
此值在Windows上与fsync
相同。
更改两个的 文件边界处理WAL文件名函数(Kyotaro Horiguchi、Andres Freund、Bruce Momjian)§
函数pg_walfile_name()
和pg_walfile_name_offset()
用于报告先前的LSN段号,当时LSN位于文件段边界;它现在返回当前LSN段。
删除服务器变量trace_recovery_messages
,因为它不再需要(Bharath Rupireddy)§
更改pgrowlocks锁定模式输出标签(Bruce Momjian)§
从pg_stat_bgwriter
中删除buffers_backend
和buffers_backend_fsync
(Bharath Rupireddy)§
这些字段被认为与pg_stat_io
中类似的列冗余。
重命名pg_stat_statements的 I/O 块读取/写入时间统计列(Nazir Bilal Yavuz)§
这将blk_read_time
重命名为shared_blk_read_time
,并将blk_write_time
重命名为shared_blk_write_time
。
更改pg_attribute
.attstattarget
和pg_statistic_ext
.stxstattarget
以将默认统计目标表示为NULL
(Peter Eisentraut)§ §
将pg_collation
.colliculocale
重命名为colllocale
,并将pg_database
.daticulocale
重命名为datlocale
(Jeff Davis)§
将pg_stat_progress_vacuum
列max_dead_tuples
重命名为max_dead_tuple_bytes
,将num_dead_tuples
重命名为num_dead_item_ids
,并添加dead_tuple_bytes
(Masahiko Sawada)§ §
重命名SLRU系统视图pg_stat_slru
中的列(Alvaro Herrera)§
pg_stat_reset_slru()
接受的列名也已更改。
您将在下面找到PostgreSQL 17 与上一个主要版本之间更改的详细说明。
允许优化器通过考虑先前行输出子句中引用的列的统计信息和排序顺序来改进CTE计划(Jian Guo、Richard Guo、Tom Lane)§ §
改进IS NOT NULL
和IS NULL
查询限制的优化(David Rowley、Richard Guo、Andy Fan)§ §
从NOT NULL
列上的查询中删除IS NOT NULL
限制,如果指定了IS NULL
,则消除对NOT NULL
列的扫描。
允许在IS [NOT] UNKNOWN
条件下对布尔列进行分区修剪(David Rowley)§
改进使用包含运算符<@和@>时范围值的优化(Kim Johan Andersson、Jian He)§
允许将关联的IN
子查询转换为连接(Andy Fan、Tom Lane)§
改进分区表、继承父项和UNION ALL
查询上LIMIT
子句的优化(Andy Fan、David Rowley)§
允许在更多情况下并行运行查询节点(Tom Lane)§
允许GROUP BY
列在内部排序以匹配ORDER BY
(Andrei Lepikhov、Teodor Sigaev)§
这可以使用服务器变量enable_group_by_reordering禁用。
允许 UNION
(不带 ALL
)使用 MergeAppend(David Rowley) §
修复 MergeAppend 计划,以更准确地计算需要排序的行数(Alexander Kuzmenkov) §
允许 GiST 和 SP-GiST 索引成为增量排序的一部分(Miroslav Bendik) §
这对于 ORDER BY
子句特别有用,其中第一列具有 GiST 和 SP-GiST 索引,而其他列没有。
向 pg_stats
添加列以报告范围类型直方图信息(Egor Rogov,Soumyadeep Chakraborty) §
允许 vacuum 更有效地删除和冻结元组(Melanie Plageman,Heikki Linnakangas) §
WALvacuum 造成的流量也更加紧凑。
允许 vacuum 更有效地存储元组引用(Masahiko Sawada,John Naylor) § § § §
此外,当 maintenance_work_mem 或 autovacuum_work_mem 更高时,vacuum 不再静默地限制为 1GB 内存。
优化没有索引的关系的 vacuum 操作(Melanie Plageman) §
将默认 vacuum_buffer_usage_limit 提高到 2MB(Thomas Munro) §
提高检查具有多个成员资格的角色时的性能(Nathan Bossart) §
提高竞争激烈的WAL写入的性能(Bharath Rupireddy) §
提高将大量数据块传输到客户端时的性能(Melih Mutlu) §
使用新的系统变量 io_combine_limit 允许对文件系统读取进行分组(Thomas Munro,Andres Freund,Melanie Plageman,Nazir Bilal Yavuz) § § §
创建系统视图 pg_stat_checkpointer
(Bharath Rupireddy,Anton A. Melnikov,Alexander Korotkov) § § §
相关列已从 pg_stat_bgwriter
中删除并添加到此新系统视图中。
改进对重置统计信息的控制(Atsushi Torikoshi,Bharath Rupireddy) § § §
允许 pg_stat_reset_shared()
(不带参数)和 pg_stat_reset_shared(NULL
) 重置所有共享统计信息。允许 pg_stat_reset_shared('slru') 和 pg_stat_reset_slru()
(不带参数)重置SLRU统计信息,这在使用 pg_stat_reset_slru(NULL) 时就已经可以实现了。
添加与WAL备份恢复相关的日志消息(Andres Freund) §
为 trust
连接添加 log_connections 日志行(Jacob Champion) §
添加日志消息以报告 walsender 获取和释放复制槽(Bharath Rupireddy) §
这是由服务器变量 log_replication_commands 启用的。
添加系统视图 pg_wait_events
,用于报告等待事件类型(Bertrand Drouvot) §
这对于在 pg_stat_activity
中报告的等待事件中添加描述很有用。
允许 vacuum 报告索引处理的进度(Sami Imseih) §
这显示在系统视图 pg_stat_progress_vacuum
的列 indexes_total
和 indexes_processed
中。
允许授予执行维护操作的权限(Nathan Bossart) §
可以使用 MAINTAIN
权限在每个表的基础上授予此权限,并通过 pg_maintain
预定义角色在每个角色的基础上授予此权限。允许的操作为 VACUUM
、ANALYZE
、REINDEX
、REFRESH MATERIALIZED VIEW
、CLUSTER
和 LOCK TABLE
。
允许具有 pg_monitor
成员资格的角色执行 pg_current_logfile()
(Pavlo Golub,Nathan Bossart) §
添加系统变量 allow_alter_system 以不允许 ALTER SYSTEM
(Jelte Fennema-Nio,Gabriele Bartolini) §
允许 ALTER SYSTEM
设置无法识别的自定义服务器变量(Tom Lane) §
这也可以使用 GRANT ON PARAMETER
实现。
添加服务器变量 transaction_timeout 以限制事务的持续时间(Andrey Borodin,Japin Li,Junwang Zhao,Alexander Korotkov) § § §
添加内置的平台无关的排序规则提供程序(Jeff Davis) § § § §
这支持 C
和 C.UTF-8
排序规则。
添加服务器变量 huge_pages_status 以报告 Postgres 使用大页面的情况(Justin Pryzby) §
当 huge_pages 设置为 try
时,这很有用。
添加服务器变量以禁用事件触发器(Daniel Gustafsson) §
该设置 event_triggers 允许临时禁用事件触发器以进行调试。
允许配置 SLRU 缓存大小(Andrey Borodin,Dilip Kumar,Alvaro Herrera) §
新的服务器变量为 commit_timestamp_buffers、multixact_member_buffers、multixact_offset_buffers、notify_buffers、serializable_buffers、subtransaction_buffers 和 transaction_buffers。 commit_timestamp_buffers、transaction_buffers 和 subtransaction_buffers 会随着 shared_buffers 自动扩展。
添加对增量文件系统备份的支持(Robert Haas,Jakub Wartak,Tomas Vondra) § §
可以使用 pg_basebackup 的新选项 --incremental
创建增量备份。新应用程序 pg_combinebackup 允许操作基本和增量文件系统备份。
允许创建WAL汇总文件(Robert Haas,Nathan Bossart,Hubert Depesz Lubaczewski) § § § §
这些文件记录在 LSN 范围内发生更改的块号,对增量文件系统备份很有用。这由服务器变量 summarize_wal 和 wal_summary_keep_time 控制,并通过 pg_available_wal_summaries()
、pg_wal_summary_contents()
和 pg_get_wal_summarizer_state()
进行内省。
将系统标识符添加到文件系统 备份清单 文件(Amul Sul) §
这有助于检测无效的WAL用法。
当 pg_basebackup 将连接信息写入 postgresql.auto.conf
时,允许写入连接字符串值 dbname
(Vignesh C,Hayato Kuroda) §
添加列 pg_replication_slots
.invalidation_reason
以报告无效槽的原因(Shveta Malik,Bharath Rupireddy) § §
添加列 pg_replication_slots
.inactive_since
用于报告槽位空闲时长(Bharath Rupireddy) § § §
添加函数 pg_sync_replication_slots()
用于同步逻辑复制槽位(Hou Zhijie,Shveta Malik,Ajin Cherian,Peter Eisentraut) § §
添加应用程序 pg_createsubscriber 用于从物理备用服务器创建逻辑副本(Euler Taveira) §
使 pg_upgrade 迁移有效的逻辑槽位和订阅(Hayato Kuroda,Hou Zhijie,Vignesh C,Julien Rouhaud,Shlok Kyal) § §
这允许在升级后快速继续逻辑复制。这仅适用于版本 17 或更高版本的旧 PostgreSQL 集群。
启用 逻辑槽位 的故障转移(Hou Zhijie,Shveta Malik,Ajin Cherian) §
这由 pg_create_logical_replication_slot()
的可选第五个参数控制。
添加服务器变量 sync_replication_slots 以启用故障转移逻辑槽位同步(Shveta Malik,Hou Zhijie,Peter Smith) § §
将逻辑复制故障转移控制添加到 CREATE/ALTER SUBSCRIPTION
(Shveta Malik,Hou Zhijie,Ajin Cherian) § §
允许逻辑复制更改的应用使用订阅者上的 哈希 索引(Hayato Kuroda) §
以前只能为此目的使用 B树 索引。
如果订阅所有者的超级用户权限被撤销,则重新启动应用工作程序(Vignesh C) §
这会强制重新进行身份验证。
将 flush
选项添加到 pg_logical_emit_message()
(Michael Paquier) §
这使消息持久化。
允许指定必须在对订阅者可见之前同步的物理备用服务器(Hou Zhijie,Shveta Malik) § §
新的服务器变量是 synchronized_standby_slots。
将工作程序类型列添加到 pg_stat_subscription
(Peter Smith) §
添加新的 COPY
选项 ON_ERROR ignore
以丢弃错误行(Damir Belyalov,Atsushi Torikoshi,Alex Shulgin,Jian He,Yugo Nagata) § § § §
默认行为是 ON_ERROR stop
。
添加新的 COPY
选项 LOG_VERBOSITY
,它报告 COPY FROM
忽略的错误行(Bharath Rupireddy) §
允许 COPY FROM
在处理期间报告跳过的行数(Atsushi Torikoshi) §
这显示在系统视图列 pg_stat_progress_copy
.tuples_skipped
中。
在 COPY FROM
中,允许轻松指定所有列都应强制为 null 或非 null(张明丽) §
允许分区表具有标识列(Ashutosh Bapat) §
允许在分区表上使用 排除约束(Paul A. Jungwirth) §
只要排除约束将分区键列进行相等比较,其他列就可以使用排除约束特定的比较。
添加更清晰的 ALTER TABLE
方法来将列设置为默认统计目标(Peter Eisentraut) §
新的语法是 ALTER TABLE ... SET STATISTICS DEFAULT
;仍然支持使用 SET STATISTICS -1
。
允许 ALTER TABLE
更改列的生成表达式(Amul Sul) §
语法是 ALTER TABLE ... ALTER COLUMN ... SET EXPRESSION
。
允许在分区表上指定 表访问方法(Justin Pryzby,Soumyadeep Chakraborty,Michael Paquier) § §
为 ALTER TABLE .. SET ACCESS METHOD
添加 DEFAULT
设置(Michael Paquier) §
允许 EXPLAIN
报告优化器内存使用情况(Ashutosh Bapat) §
该选项称为 MEMORY
。
添加 EXPLAIN
选项 SERIALIZE
以报告将数据转换为网络传输的成本(Stepan Rutz,Matthias van de Meent) §
将本地 I/O 块读/写计时统计信息添加到 EXPLAIN
的 BUFFERS
输出中(Nazir Bilal Yavuz) §
改进 EXPLAIN
对 SubPlan 节点和输出参数的显示(Tom Lane,Dean Rasheed) §
添加JIT deform_counter
详细信息到 EXPLAIN
(Dmitry Dolgov) §
允许 interval
数据类型支持 +/-infinity
值(Joseph Koshakow,Jian He,Ashutosh Bapat) §
如果类型是在同一事务中创建的,则允许使用通过 ALTER TYPE
添加的 ENUM
(Tom Lane) §
以前不允许这样做。
添加函数 JSON_TABLE()
以将 JSON
数据转换为表表示形式(Nikita Glukhov,Teodor Sigaev,Oleg Bartunov,Alexander Korotkov,Andrew Dunstan,Amit Langote,Jian He) § §
此函数可以在 SELECT
查询的 FROM
子句中用作元组源。
添加SQL/JSON构造函数 JSON()
、JSON_SCALAR()
和 JSON_SERIALIZE()
(Nikita Glukhov,Teodor Sigaev,Oleg Bartunov,Alexander Korotkov,Andrew Dunstan,Amit Langote) §
添加SQL/JSON查询函数 JSON_EXISTS()
、JSON_QUERY()
和 JSON_VALUE()
(Nikita Glukhov,Teodor Sigaev,Oleg Bartunov,Alexander Korotkov,Andrew Dunstan,Amit Langote,Peter Eisentraut,Jian He) § § § § §
将 jsonpath 方法添加到将 JSON
值转换为其他 JSON
数据类型(Jeevan Chalke) §
jsonpath 方法为 .bigint()
、.boolean()
、.date()
、.decimal([precision [, scale]])
、.integer()
、.number()
、.string()
、.time()
、.time_tz()
、.timestamp()
和 .timestamp_tz()
。
添加 to_timestamp()
时区格式说明符(Tom Lane) §
TZ
接受时区缩写或数字偏移量,而 OF
仅接受数字偏移量。
允许通过 AT LOCAL
指定会话 时区(Vik Fearing) §
在转换时间戳值时添加和删除时区时,这很有用,而不是指定字面意义上的会话时区。
添加函数 uuid_extract_timestamp()
和 uuid_extract_version()
以返回UUID信息 (Andrey Borodin) §
添加函数以在指定范围内生成随机数 (Dean Rasheed) §
这些函数是 random(min, max)
,它们接受类型为 integer
、bigint
和 numeric
的值。
添加函数以将整数转换为二进制和八进制字符串 (Eric Radman, Nathan Bossart) §
这些函数是 to_bin()
和 to_oct()
。
添加 Unicode 信息函数 (Jeff Davis) §
函数 unicode_version()
返回 Unicode 版本,icu_unicode_version()
返回ICU版本,并且 unicode_assigned()
返回字符是否已分配 Unicode 代码点。
添加函数 to_regtypemod()
以返回类型规范的类型修饰符 (David Wheeler, Erik Wienhold) §
添加 pg_basetype()
函数以返回域的基本类型 (Steve Chavez) §
添加函数 pg_column_toast_chunk_id()
以返回值的 TOAST 标识符 (Yugo Nagata) §
如果该值未存储在TOAST.
添加 libpq 函数以更改角色密码 (Joe Conway) §
新函数 PQchangePassword()
在将新密码发送到服务器之前对其进行哈希处理。
添加 libpq 函数以关闭门户和预处理语句 (Jelte Fennema-Nio) §
这些函数是 PQclosePrepared()
、PQclosePortal()
、PQsendClosePrepared()
和 PQsendClosePortal()
。
添加 libpqAPI它允许阻塞和非阻塞 取消请求,如果已在使用则使用加密 (Jelte Fennema-Nio) §
以前只支持阻塞的、未加密的取消请求。
添加 libpq 函数 PQsocketPoll()
以允许轮询网络套接字 (Tristan Partin, Tom Lane) § §
添加 libpq 函数 PQsendPipelineSync()
以发送管道同步点 (Anton Kirilov) §
这类似于 PQpipelineSync()
,但它不会刷新到服务器,除非输出缓冲区的大小阈值已达到。
添加 libpq 函数 PQsetChunkedRowsMode()
以允许分块检索结果 (Daniel Vérité) §
允许TLS连接,无需网络往返协商 (Greg Stark, Heikki Linnakangas, Peter Eisentraut, Michael Paquier, Daniel Gustafsson) § § § § § § § §
这通过客户端选项 sslnegotiation=direct
启用,需要ALPN,并且仅在 PostgreSQL 17 及更高版本的服务器上有效。
改进 psql 对默认权限和空权限的显示 (Erik Wienhold, Laurenz Albe) §
命令 \dp
现在显示 (none)
以表示空权限;默认值仍显示为空。
反斜杠命令遵循 \pset null
(Erik Wienhold, Laurenz Albe) §
以前忽略了 \pset null
。
允许 psql 的 \watch
在返回最小行数后停止 (Greg Sabino Mullane) §
参数是 min_rows
。
允许使用 Control-C 取消 psql 的连接尝试 (Tristan Partin) §
允许 psql 遵循非 SELECT
查询的 FETCH_COUNT
(Daniel Vérité) §
改进 psql 的选项卡补全 (Dagfinn Ilmari Mannsåker, Gilles Darold, Christoph Heiss, Steve Chavez, Vignesh C, Pavel Borisov, Jian He) § § § § § § § §
添加应用程序 pg_walsummary 以转储WAL摘要文件 (Robert Haas) §
允许 pg_dump 的大对象分批恢复 (Tom Lane) §
这允许恢复许多大对象以避免事务限制并并行恢复。
添加 pg_dump 选项 --exclude-extension
(Ayush Vatsa) §
允许 pg_dump、pg_dumpall 和 pg_restore 指定文件中包含/排除的对象 (Pavel Stehule, Daniel Gustafsson) §
该选项称为 --filter
。
向多个客户端应用程序添加 --sync-method
参数 (Justin Pryzby, Nathan Bossart) §
这些应用程序是 initdb、pg_basebackup、pg_checksums、pg_dump、pg_rewind 和 pg_upgrade。
添加 pg_restore 选项 --transaction-size
以允许对象在事务批处理中恢复 (Tom Lane) §
这允许事务批处理的性能优势,而不会出现过大事务块的问题。
将 pgbench 调试模式选项从 -d
更改为 --debug
(Greg Sabino Mullane) §
选项 -d
现在用于数据库名称,并且新的 --dbname
选项也可以使用。
添加 pgbench 选项 --exit-on-abort
以在任何客户端中止后退出 (Yugo Nagata) §
添加 pgbench 命令 \syncpipeline
以允许发送同步消息 (Anthonin Bonnefoy) §
允许 pg_archivecleanup 删除备份历史文件 (Atsushi Torikoshi) §
该选项是 --clean-backup-history
。
向 pg_archivecleanup 添加一些长选项 (Atsushi Torikoshi) §
长选项是 --debug
、--dry-run
和 --strip-extension
。
允许 pg_basebackup 和 pg_receivewal 在其连接规范中使用 dbname (Jelte Fennema-Nio) §
这对于对数据库名称敏感的连接池很有用。
添加 pg_upgrade 选项 --copy-file-range
(Thomas Munro) §
这在 Linux 和 FreeBSD 上受支持。
允许 reindexdb --index
并行处理来自不同表的索引 (Maxim Orlov, Svetlana Derevyanko, Alexander Korotkov) §
允许 reindexdb、vacuumdb 和 clusterdb 处理与模式匹配的所有数据库中的对象 (Nathan Bossart) § § §
新的选项 --all
控制此行为。
删除对 OpenSSL 1.0.1 的支持 (Michael Paquier) §
允许测试通过 OpenSSLFIPS
模式 (Peter Eisentraut) § §使用CPU AVX- 512 位指令用于位计数 (Paul Amonson、Nathan Bossart、Ants Aasma) § §
需要 LLVM 版本 10 或更高版本 (Thomas Munro) §
使用原生CRC64 位 LoongArch CPU 上的指令 (杨旭东) §
移除 AIX 支持 (Heikki Linnakangas) §
移除特定于 Microsoft Visual Studio 的 PostgreSQL 构建选项 (Michael Paquier) §
Meson 现在是 Visual Studio 构建的唯一可用方法。
移除配置选项 --disable-thread-safety
(Thomas Munro、Heikki Linnakangas) § §
我们现在假设所有受支持的平台都具有足够的线程支持。
移除 configure 选项 --with-CC
(Heikki Linnakangas) §
设置 CC
环境变量现在是指定编译器的唯一受支持方法。
用户定义的数据类型接收函数将不再接收以 null 结尾的数据 (David Rowley) §
添加增量 JSON
解析器,用于处理大型 JSON
文档 (Andrew Dunstan) §
将顶级 README
文件转换为 Markdown (Nathan Bossart) §
移除不再需要的顶级 INSTALL
文件 (Tom Lane) §
移除 make 的 distprep
选项 (Peter Eisentraut) §
添加 make 对 Android 共享库的支持 (Peter Eisentraut) §
添加对注入点的后端支持 (Michael Paquier) § § § §
这用于服务器调试,并且必须在服务器编译时启用。
添加动态共享内存注册表 (Nathan Bossart) §
这允许在启动时未初始化的共享库协调动态共享内存访问。
修复 emit_log_hook
以使用与同一查询的其他日志记录相同的时间值 (Kambam Vinay、Michael Paquier) §
改进使用 jsonpath
进行谓词检查的文档 (David Wheeler) §
允许将具有非连接限定条件的连接下推到外部服务器和自定义扫描 (Richard Guo、藤田悦朗) §
需要修改外部数据包装器和自定义扫描以处理这些情况。
允许将 EXISTS
和 IN
子查询下推到 postgres_fdw 外部服务器 (Alexander Pyhalov) §
增加默认的外部数据包装器元组成本 (David Rowley、Umair Shahid) § §
此值由优化器使用。
允许在 ltree 列上创建哈希索引 (Tommy Pavlicek) §
这也启用了在 ltree 列上进行哈希连接和哈希聚合。
允许 unaccent 字符转换规则包含空格和引号 (Michael Paquier) §
unaccent.rules
文件的语法已更改。
允许 amcheck 使用新选项 --checkunique
检查唯一约束冲突 (Anastasia Lubennikova、Pavel Borisov、Maxim Orlov) §
允许 citext 测试在 OpenSSL 中通过FIPS
模式 (Peter Eisentraut) §允许 pgcrypto 测试在 OpenSSL 中通过FIPS
模式 (Peter Eisentraut) §允许 ALTER OPERATOR
设置更多优化属性 (Tommy Pavlicek) §
这对扩展很有用。
自定义等待事件已添加到 postgres_fdw 和 dblink 中。
添加 pg_buffercache 函数 pg_buffercache_evict()
以允许共享缓冲区逐出 (Palak Chaturvedi、Thomas Munro) §
这对于测试很有用。
用占位符替换存储在 pg_stat_statements
中的保存点名称 (Greg Sabino Mullane) §
这大大减少了记录 SAVEPOINT
、RELEASE SAVEPOINT
和 ROLLBACK TO SAVEPOINT
命令所需的条目数量。
替换两阶段提交GID存储在 pg_stat_statements
中的 s 用占位符替换 (Michael Paquier) §
这大大减少了记录 PREPARE TRANSACTION
、COMMIT PREPARED
和 ROLLBACK PREPARED
命令所需的条目数量。
跟踪 pg_stat_statements
中的 DEALLOCATE
(Dagfinn Ilmari Mannsåker、Michael Paquier) §
DEALLOCATE
名称作为占位符存储在 pg_stat_statements
中。
添加 pg_stat_statements
的本地 I/O 块读/写计时统计列 (Nazir Bilal Yavuz) § §
新列是 local_blk_read_time
和 local_blk_write_time
。
添加JIT将 deform_counter 详细信息添加到 pg_stat_statements
(Dmitry Dolgov) §
向 pg_stat_statements_reset()
添加可选的第四个参数 (minmax_only
),以允许仅重置最小/最大统计信息 (Andrei Zubkov) §
此参数默认为 false
。
添加 pg_stat_statements
列 stats_since
和 minmax_stats_since
以跟踪条目创建时间和上次最小/最大重置时间 (Andrei Zubkov) §
以下个人(按字母顺序排列)已作为补丁作者、提交者、审阅者、测试人员或问题报告者为本版本做出了贡献。
Abhijit Menon-Sen |
Adnan Dautovic |
Aidar Imamov |
Ajin Cherian |
Akash Shankaran |
Akshat Jaimini |
Alaa Attya |
Aleksander Alekseev |
Aleksej Orlov |
Alena Rybakina |
Alex Hsieh |
Alex Malek |
Alex Shulgin |
Alex Work |
Alexander Korotkov |
Alexander Kozhemyakin |
Alexander Kuzmenkov |
Alexander Lakhin |
Alexander Pyhalov |
Alexey Palazhchenko |
Alfons Kemper |
Álvaro Herrera |
Amadeo Gallardo |
Amit Kapila |
Amit Langote |
Amul Sul |
Anastasia Lubennikova |
Anatoly Zaretsky |
Andreas Karlsson |
Andreas Ulbrich |
Andrei Lepikhov |
Andrei Zubkov |
Andres Freund |
Andrew Alsup |
Andrew Atkinson |
Andrew Bille |
Andrew Dunstan |
Andrew Kane |
Andrey Borodin |
Andrey Rachitskiy |
Andrey Sokolov |
Andy Fan |
Anthonin Bonnefoy |
Anthony Hsu |
Anton Kirilov |
Anton Melnikov |
Anton Voloshin |
Antonin Houska |
Ants Aasma |
Antti Lampinen |
Aramaki Zyake |
Artem Anisimov |
Artur Zakirov |
Ashutosh Bapat |
Ashutosh Sharma |
Atsushi Torikoshi |
Attila Gulyás |
Ayush Tiwari |
Ayush Vatsa |
Bartosz Chrol |
Benoît Ryder |
Bernd Helmle |
Bertrand Drouvot |
Bharath Rupireddy |
Bo Andreson |
Boshomi Phenix |
石 Bowen |
杨 Boyu |
Bruce Momjian |
Cameron Vogt |
黄 Cary |
Cédric Villemain |
费 Changhong |
Chantal Keller |
Chapman Flack |
孙 Chengxi |
Chris Travers |
Christian Maurer |
Christian Stork |
Christoph Berg |
Christoph Heiss |
Christophe Courtois |
Christopher Kline |
Claudio Freire |
Colin Caine |
Corey Huinker |
Curt Kolovson |
Dag Lem |
Dagfinn Ilmari Mannsåker |
Damir Belyalov |
Daniel Fredouille |
Daniel Gustafsson |
Daniel Shelepanov |
Daniel Vérité |
Daniel Westermann |
Darren Rush |
Dave Cramer |
Dave Page |
David Christensen |
David Cook |
David G. Johnston |
David Geier |
David Hillman |
David Perez |
David Rowley |
David Steele |
David Wheeler |
张 David |
Dean Rasheed |
Denis Erokhin |
Denis Laxalde |
Devrim Gündüz |
Dilip Kumar |
Dimitrios Apostolou |
Dmitry Dolgov |
Dmitry Koval |
Dmitry Vasiliev |
Dominique Devienne |
李 Dong Wook |
林 Donghang |
刘 Dongming |
Drew Callahan |
Drew Kimball |
Dzmitry Jachnik |
Egor Chindyaskin |
Egor Rogov |
Ekaterina Kiryanova |
Elena Indrupskaya |
Elizabeth Christensen |
Emre Hasegeli |
Eric Cyr |
Eric Mutta |
Eric Radman |
Eric Ridge |
Erik Rijkers |
Erik Wienhold |
Erki Eessaar |
Ethan Mertz |
藤田 Etsuro |
Eugen Konkov |
Euler Taveira |
Evan Macbeth |
Evgeny Morozov |
Fabien Coelho |
Fabrízio de Royes Mello |
Farias de Oliveira |
Feliphe Pozzer |
Fire Emerald |
Flavien Guedez |
Floris Van Nee |
Francesco Degrassi |
Frank Streitzig |
Gabriele Bartolini |
Garrett Thornburg |
Gavin Flower |
Gavin Panella |
Gilles Darold |
Gilles Parc |
Grant Gryczan |
Greg Nancarrow |
Greg Sabino Mullane |
Greg Stark |
Gurjeet Singh |
唐 Haiying |
松永 Hajime |
Hal Takahara |
Hanefi Onaldi |
Hannu Krosing |
Hans Buschmann |
吴 Hao |
张 Hao |
黑田 Hayato |
Heikki Linnakangas |
Hemanth Sandrana |
Himanshu Upadhyaya |
铃木 Hironobu |
Holger Reise |
马 Hongxu |
宋 Hongyu |
Horst Reiterer |
Hubert Lubaczewski |
Hywel Carver |
Ian Barwick |
Ian Ilyasov |
Ilya Nenashev |
Isaac Morland |
Israel Barth Rubio |
Ivan Kartyshov |
Ivan Kolombet |
Ivan Lazarev |
Ivan Panchenko |
Ivan Trofimov |
Jacob Champion |
Jacob Speidel |
Jacques Combrink |
Jaime Casanova |
Jakub Wartak |
James Coleman |
James Pang |
Jani Rahkola |
李 Japin |
Jeevan Chalke |
Jeff Davis |
Jeff Janes |
Jelte Fennema-Nio |
Jeremy Schneider |
郭 Jian |
何 Jian |
Jim Jones |
Jim Keener |
Jim Nasby |
张 Jingtang |
李 Jingxian |
傅 Jingzhou |
Joe Conway |
Joel Jacobson |
John Ekins |
John Hsu |
John Morris |
John Naylor |
John Russell |
Jonathan Katz |
Jordi Gutiérrez |
Joseph Koshakow |
Josh Kupershmidt |
Joshua D. Drake |
Joshua Uyehara |
Jubilee Young |
Julien Rouhaud |
赵 Junwang |
Justin Pryzby |
Kaido Vaikla |
Kambam Vinay |
Karen Talarico |
Karina Litskevich |
Karl O. Pinc |
Kashif Zeeshan |
Kim Johan Andersson |
Kirill Reshke |
Kirk Parker |
Kirk Wolak |
权 Kisoon |
Koen De Groote |
甲斐 Kohei |
孔 Man |
Konstantin Knizhnik |
菅藤 Kouhei |
Krishnakumar R |
Kuntal Ghosh |
Kurt Roeckx |
堀口 Kyotaro |
刘 Lang |
Lars Kanis |
Laurenz Albe |
Lauri Laanmets |
Legs Mansion |
Lukas Fittl |
Magnus Hagander |
Mahendrakar Srinivasarao |
Maiquel Grassi |
Manos Emmanouilidis |
Marcel Hofstetter |
Marcos Pegoraro |
Marian Krucina |
Marina Polyakova |
Mark Dilger |
Mark Guertin |
Mark Sloan |
Markus Winand |
Marlene Reiterer |
Martín Marqués |
Martin Nash |
Martin Schlossarek |
沢田 Masahiko |
池田 Masahiro |
桑村 Masaki |
藤井 Masao |
Mason Sharp |
Matheus Alcantara |
Mats Kindahl |
Matthias Kuhn |
Matthias van de Meent |
Maxim Boguk |
Maxim Orlov |
Maxim Yablokov |
Maxime Boyer |
Melanie Plageman |
Melih Mutlu |
Merlin Moncure |
Micah Gate |
Michael Banck |
Michael Bondarenko |
Michael Paquier |
王 Michael |
Michael Zhilin |
Michail Nikolaev |
Michal Bartak |
Michal Kleczek |
Mikhail Gribkov |
张 Mingli |
Miroslav Bendik |
日向 Mitsuru |
Moaaz Assali |
Muralikrishna Bandaru |
Nathan Bossart |
Nazir Bilal Yavuz |
Neil Tiffin |
Ngigi Waithaka |
Nikhil Benesch |
Nikhil Raj |
Nikita Glukhov |
Nikita Kalinin |
Nikita Malakhov |
Nikolay Samokhvalov |
Nikolay Shaplov |
Nisha Moond |
Nishant Sharma |
Nitin Jadhav |
Noah Misch |
篠田 Noriyoshi |
Ole Peder Brandtzæg |
Oleg Bartunov |
Oleg Sibiryakov |
Oleg Tselebrovskiy |
Olleg Samoylov |
Onder Kalaci |
Ondrej Navratil |
Pablo Kharo |
Palak Chaturvedi |
Pantelis Theodosiou |
Paul Amonson |
Paul Jungwirth |
Pavel Borisov |
Pavel Kulakov |
Pavel Luzanov |
Pavel Stehule |
Pavlo Golub |
Pedro Gallegos |
Pete Storer |
Peter Eisentraut |
Peter Geoghegan |
Peter Smith |
Philip Warner |
Philipp Salvisberg |
Pierre Ducroquet |
Pierre Fortin |
Przemyslaw Sztoch |
Quynh Tran |
Raghuveer Devulapalli |
Ranier Vilela |
Reid Thompson |
Rian McGuire |
郭 Richard |
Richard Vesely |
Ridvan Korkmaz |
Robert Haas |
Robert Scott |
Robert Treat |
Roberto Mello |
Robins Tharakan |
Roman Lozko |
Ronan Dunklau |
赵 Rui |
松村 Ryo |
吉田 Ryoga |
Sameer Kumar |
Sami Imseih |
Samuel Dussault |
Sanjay Minni |
小泉 Satoru |
Sebastian Skalacki |
Sergei Glukhov |
Sergei Kornilov |
Sergey Prokhorenko |
Sergey Sargsyan |
Sergey Shinderuk |
史 Shaozhong |
Shaun Thomas |
Shay Rojansky |
钟 Shihao |
加藤 Shinya |
Shlok Kyal |
Shruthi Gowda |
Shubham Khanna |
周 Shulin |
Shveta Malik |
Simon Riggs |
Soumyadeep Chakraborty |
Sravan Velagandula |
胡 Stan |
Stepan Neretin |
Stepan Rutz |
Stéphane Schildknecht |
Stephane Tachoires |
Stephen Frost |
Steve Atkins |
Steve Chavez |
Suraj Khamkar |
Suraj Kharage |
Svante Richter |
Svetlana Derevyanko |
Sylvain Frandaz |
綱川 Takayuki |
石井 Tatsuo |
山田 Tatsurou |
王 Tender |
Teodor Sigaev |
Thom Brown |
Thomas Munro |
Tim Carey-Smith |
Tim Needham |
Tim Palmer |
Tobias Bussmann |
Tom Lane |
Tomas Vondra |
Tommy Pavlicek |
葛俣 Tomonari |
Tristan Partin |
Tristen Raab |
阮 Tung |
Umair Shahid |
Uwe Binder |
Valerie Woolard |
Vallimaharajan G |
瓦西里 Boytsov |
Victor Wagner |
Victor Yegorov |
Victoria Shepard |
Vidushi Gupta |
Vignesh C |
Vik Fearing |
Viktor Leis |
Vinayak Pokale |
Vitaly Burovoy |
Vojtech Benes |
孙 Wei |
王 Wei |
张 Wenjiang |
Will Mortensen |
Willi Mann |
Wolfgang Walther |
刘 Xiang |
王 Xiaoran |
郭 Xing |
杨 Xudong |
Yahor Yuzefovich |
胡 Yajun |
Yaroslav Saburov |
李 Yong |
黄 Yongtao |
永田 Yugo |
邱 Yuhang |
清野 Yuki |
索科洛夫 Yura |
Yurii Rashkovskii |
藤井 Yuuki |
渡边 Yuya |
Yves Colin |
于 Zhihong |
侯 Zhijie |
全 Zongliang |
Zubeyr Eryilmaz |
姜 Zuming |