发布日期:. 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或逻辑复制来迁移数据,以从任何先前版本迁移。 有关迁移到新主要版本的一般信息,请参阅Section 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 扩展模块 (Daniel Gustafsson) §
这曾被现已停止维护的pgAdmin III使用。
移除 wal_sync_method 值
fsync_writethrough
在 Windows 上(Thomas Munro)
§
该值与fsync
在Windows上的值相同。
更改两个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) §
WAL traffic caused by vacuum is also more compact.
允许真空更高效地存储元组引用(Masahiko Sawada,John Naylor) § § § §
此外,当maintenance_work_mem或autovacuum_work_mem设置较高时,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日志行(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使用。
允许在连接字符串值
dbname
中写入,当 pg_basebackup
将连接信息写入
postgresql.auto.conf
(Vignesh C,黑田隼人)
§
添加列 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 迁移有效的逻辑槽和订阅(黑田隼人、侯志杰、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,
Hou Zhijie, Ajin Cherian)
§
§
允许将逻辑复制更改应用于订阅者上的 哈希索引 (黑田隼人) §
以前只有btree索引可以用于此目的。
如果订阅所有者的超级用户权限被撤销,则重新启动应用工作进程(Vignesh C) §
这会强制重新认证。
添加flush
选项到pg_logical_emit_message()
(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
报告处理过程中跳过的行数(鸟越敦史)
§
这出现在系统视图列 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)
§
增加对事件触发器的支持, 这些触发器在连接时触发(Konstantin Knizhnik,Mikhail Gribkov) §
允许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)
§
§
此函数可用作FROM
子句中SELECT
查询的元组来源。
添加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 标识符
(永田裕吾)
§
这将返回NULL
,如果该值未存储在TOAST中。
添加 libpq 函数以更改角色密码(Joe Conway) §
新函数,PQchangePassword()
,
会在发送到服务器之前对新密码进行哈希处理。
添加 libpq 函数以关闭门户和预处理语句 (Jelte Fennema-Nio) §
这些函数是 PQclosePrepared()
、
PQclosePortal()
、
PQsendClosePrepared()
,
以及 PQsendClosePortal()
。
添加了 libpq API,支持阻塞和非阻塞的 取消请求,如果已在使用则支持加密(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
,以便在任何客户端中止后退出(永田雄吾)
§
添加了 pgbench 命令 \syncpipeline
,以允许发送同步消息(Anthonin Bonnefoy)
§
允许 pg_archivecleanup 删除备份历史文件(鸟越敦史) §
该选项是 --clean-backup-history
。
添加一些长选项到 pg_archivecleanup (鸟越敦) §
长选项是 --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) §
在64位LoongArch CPU上使用本地CRC指令(杨旭东) §
移除 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)
§
允许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
命令所需的条目数量。
替换存储在pg_stat_statements
中的两阶段提交
GID为占位符(Michael Paquier)
§
这大大减少了记录
PREPARE
TRANSACTION
、COMMIT
PREPARED
和ROLLBACK
PREPARED
所需的条目数量。
跟踪 DEALLOCATE
在 pg_stat_statements
(Dagfinn Ilmari
Mannsåker,Michael Paquier)
§
DEALLOCATE
names are stored in
pg_stat_statements
as placeholders.
添加了本地I/O块读写时序统计列到
pg_stat_statements
(Nazir Bilal Yavuz)
§
§
新的列是 local_blk_read_time
和 local_blk_write_time
。
添加JIT deform_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 |