发布日期: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
、REFRESH MATERIALIZED VIEW
、REINDEX
或 VACUUM
)执行不安全的访问。表达式索引和物化视图使用的函数需要引用非默认模式,必须在函数创建期间指定搜索路径。
限制 ago
仅在 interval
值的末尾出现(Joseph Koshakow) § §
此外,防止空间隔单位多次出现。
删除服务器变量 old_snapshot_threshold(Thomas Munro) §
此变量允许清理程序删除可能对正在运行的事务仍然可见的行,如果稍后访问这些行,则会导致“快照过旧”错误。如果找到改进的实现,此功能可能会在以后重新添加到 PostgreSQL 中。
更改 SET SESSION AUTHORIZATION
对初始会话用户的超级用户状态的处理(Joseph Koshakow) §
新行为基于发出 SET SESSION AUTHORIZATION
命令时的会话用户的超级用户状态,而不是连接时的超级用户状态。
删除模拟每个数据库用户的特性(Nathan Bossart) §
此特性 db_user_namespace
很少使用。
删除 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) §
删除 buffers_backend
和 buffers_backend_fsync
来自 pg_stat_bgwriter
(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 不再默默地限制为一个千兆字节的内存。
优化没有索引的关系的 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) §
添加 log_connections 日志行以用于 trust
连接 (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()
来同步逻辑复制槽(侯志杰,Shveta Malik,Ajin Cherian,Peter Eisentraut) § §
添加应用程序 pg_createsubscriber 以从物理备用服务器创建逻辑副本(Euler Taveira) §
让 pg_upgrade 迁移有效的逻辑槽和订阅(Hayato Kuroda,侯志杰,Vignesh C,Julien Rouhaud,Shlok Kyal) § §
这允许逻辑复制在升级后快速继续。这仅适用于版本 17 或更高版本的旧 PostgreSQL 集群。
启用 逻辑槽 的故障转移(侯志杰,Shveta Malik,Ajin Cherian) §
这由 pg_create_logical_replication_slot()
的可选第五个参数控制。
添加服务器变量 sync_replication_slots 以启用故障转移逻辑槽同步(Shveta Malik,侯志杰,Peter Smith) § §
在 CREATE/ALTER SUBSCRIPTION
中添加逻辑复制故障转移控制(Shveta Malik,侯志杰,Ajin Cherian) § §
允许将逻辑复制更改应用于订阅者上的 哈希 索引(Hayato Kuroda) §
以前只有 B树 索引可用于此目的。
如果订阅所有者的超级用户权限被撤销,则重新启动应用工作者(Vignesh C) §
这将强制重新身份验证。
在 pg_logical_emit_message()
中添加 flush
选项(Michael Paquier) §
这将使消息持久化。
允许指定必须在对订阅者可见之前同步的物理备用服务器(侯志杰,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) §
在 EXPLAIN
的 BUFFERS
输出中添加本地 I/O 块读写计时统计信息(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
仅接受数字偏移量。
允许使用 AS 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.
NULL
。%TYPE
规范引用复合列 (Tom Lane) §添加 libpq 函数以更改角色密码 (Joe Conway) §
新函数 PQchangePassword()
在将新密码发送到服务器之前对其进行哈希处理。
添加 libpq 函数以关闭门户和预备语句 (Jelte Fennema-Nio) §
这些函数是 PQclosePrepared()
、PQclosePortal()
、PQsendClosePrepared()
和 PQsendClosePortal()
。添加 libpqAPI
以前只支持阻塞的、未加密的取消请求。
添加 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
改进 psql 对默认和空权限的显示 (Erik Wienhold, Laurenz Albe) §
命令 \dp
现在对空权限显示 (none)
;默认值仍显示为空。
反斜杠命令现在遵守 \pset null
(Erik Wienhold, Laurenz Albe) §
以前忽略 \pset null
。
允许 psql 的 \watch
在返回最少数量的行后停止 (Greg Sabino Mullane) §
参数是 min_rows
。
允许使用 Ctrl-C 取消 psql 连接尝试 (Tristan Partin) §
允许 psql 对非 SELECT
查询遵守 FETCH_COUNT
(Daniel Vérité) §
E.1.3.9. 服务器应用程序 #WAL添加应用程序 pg_walsummary 以转储
摘要文件 (Robert Haas) §
这允许恢复许多大对象,以避免事务限制并并行恢复。
添加 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) §
这允许在不出现过大的事务块问题的情况下获得事务批次的性能优势。
选项 -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) §
使用CPU AVX-512 指令进行位计数 (Paul Amonson, Nathan Bossart, Ants Aasma) § §
要求 LLVM 版本 10 或更高版本 (Thomas Munro) §
使用原生CRC指令在 64 位 LoongArch CPU 上 (Xudong Yang) §
移除 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
环境变量现在是指定编译器的唯一支持方法。
用户定义的数据类型接收函数将不再接收以空字符结尾的数据 (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, Etsuro Fujita) §
外部数据包装器和自定义扫描需要进行修改才能处理这些情况。
允许将 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) §
移除 adminpack contrib 扩展 (Daniel Gustafsson) §
这被现在已停止支持的 pgAdmin III 使用。
允许 ALTER OPERATOR
设置更多优化属性 (Tommy Pavlicek) §
这对扩展很有用。
允许扩展定义 自定义等待事件 (Masahiro Ikeda) § § § §
自定义等待事件已添加到 postgres_fdw 和 dblink。
添加 pg_buffercache 函数 pg_buffercache_evict()
以允许共享缓冲区驱逐 (Palak Chaturvedi, Thomas Munro) §
这对测试很有用。
用占位符替换存储在 pg_stat_statements
中的保存点名称 (Greg Sabino Mullane) §
这大大减少了记录 SAVEPOINT
、RELEASE SAVEPOINT
和 ROLLBACK TO SAVEPOINT
命令所需的条目数。
替换存储在 pg_stat_statements
中的两阶段提交GIDs 用占位符替换 (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
。
添加JITdeform_counter 详细信息到 pg_stat_statements
(Dmitry Dolgov) §
添加可选的第四个参数 (minmax_only
) 到 pg_stat_statements_reset()
以允许仅重置最小/最大统计信息 (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 Shi |
Boyu Yang |
Bruce Momjian |
Cameron Vogt |
Cary Huang |
Cédric Villemain |
Changhong Fei |
Chantal Keller |
Chapman Flack |
Chengxi Sun |
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 Zhang |
Dean Rasheed |
Denis Erokhin |
Denis Laxalde |
Devrim Gündüz |
Dilip Kumar |
Dimitrios Apostolou |
Dmitry Dolgov |
Dmitry Koval |
Dmitry Vasiliev |
Dominique Devienne |
Dong Wook Lee |
Donghang Lin |
Dongming Liu |
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 Fujita |
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 Tang |
Hajime Matsunaga |
Hal Takahara |
Hanefi Onaldi |
Hannu Krosing |
Hans Buschmann |
Hao Wu |
Hao Zhang |
Hayato Kuroda |
Heikki Linnakangas |
Hemanth Sandrana |
Himanshu Upadhyaya |
Hironobu Suzuki |
Holger Reise |
Hongxu Ma |
Hongyu Song |
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 Li |
Jeevan Chalke |
Jeff Davis |
Jeff Janes |
Jelte Fennema-Nio |
Jeremy Schneider |
Jian Guo |
Jian He |
Jim Jones |
Jim Keener |
Jim Nasby |
Jingtang Zhang |
Jingxian Li |
Jingzhou Fu |
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 Zhao |
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 Kwon |
Koen De Groote |
Kohei KaiGai |
Kong Man |
Konstantin Knizhnik |
Kouhei Sutou |
Krishnakumar R |
Kuntal Ghosh |
Kurt Roeckx |
Kyotaro Horiguchi |
Lang Liu |
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 Sawada |
Masahiro Ikeda |
Masaki Kuwamura |
Masao Fujii |
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 Wang |
Michael Zhilin |
Michail Nikolaev |
Michal Bartak |
Michal Kleczek |
Mikhail Gribkov |
Mingli Zhang |
Miroslav Bendik |
Mitsuru Hinata |
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 Shinoda |
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 Guo |
Richard Vesely |
Ridvan Korkmaz |
Robert Haas |
Robert Scott |
Robert Treat |
Roberto Mello |
Robins Tharakan |
Roman Lozko |
Ronan Dunklau |
Rui Zhao |
Ryo Matsumura |
Ryoga Yoshida |
Sameer Kumar |
Sami Imseih |
Samuel Dussault |
Sanjay Minni |
Satoru Koizumi |
Sebastian Skalacki |
Sergei Glukhov |
Sergei Kornilov |
Sergey Prokhorenko |
Sergey Sargsyan |
Sergey Shinderuk |
Shaozhong Shi |
Shaun Thomas |
Shay Rojansky |
Shihao Zhong |
Shinya Kato |
Shlok Kyal |
Shruthi Gowda |
Shubham Khanna |
Shulin Zhou |
Shveta Malik |
Simon Riggs |
Soumyadeep Chakraborty |
Sravan Velagandula |
Stan Hu |
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 Tsunakawa |
Tatsuo Ishii |
Tatsuro Yamada |
Tender Wang |
Teodor Sigaev |
Thom Brown |
Thomas Munro |
Tim Carey-Smith |
Tim Needham |
Tim Palmer |
Tobias Bussmann |
Tom Lane |
Tomas Vondra |
Tommy Pavlicek |
Tomonari Katsumata |
Tristan Partin |
Tristen Raab |
Tung Nguyen |
Umair Shahid |
Uwe Binder |
Valerie Woolard |
Vallimaharajan G |
Vasya Boytsov |
Victor Wagner |
Victor Yegorov |
Victoria Shepard |
Vidushi Gupta |
Vignesh C |
Vik Fearing |
Viktor Leis |
Vinayak Pokale |
Vitaly Burovoy |
Vojtech Benes |
Wei Sun |
Wei Wang |
Wenjiang Zhang |
Will Mortensen |
Willi Mann |
Wolfgang Walther |
Xiang Liu |
Xiaoran Wang |
Xing Guo |
Xudong Yang |
Yahor Yuzefovich |
Yajun Hu |
Yaroslav Saburov |
Yong Li |
Yongtao Huang |
Yugo Nagata |
Yuhang Qiu |
Yuki Seino |
Yura Sokolov |
Yurii Rashkovskii |
Yuuki Fujii |
Yuya Watari |
Yves Colin |
Zhihong Yu |
Zhijie Hou |
Zongliang Quan |
Zubeyr Eryilmaz |
Zuming Jiang |
如果您在文档中发现任何不正确的内容,与您对特定功能的体验不符,或者需要进一步澄清,请使用 此表格 报告文档问题。