发布日期:. 2023-09-14
PostgreSQL 16 包含许多新功能和改进,包括:
允许并行化FULL
和内部右OUTER
哈希连接
允许从备用服务器进行逻辑复制
允许逻辑复制订阅者并行应用大型事务
允许通过新的pg_stat_io
视图监控I/O统计信息
添加SQL/JSON构造函数和标识函数
提高真空冻结的性能
在pg_hba.conf
中添加对用户和数据库名称的正则表达式匹配支持,
以及在pg_ident.conf
中对用户名的正则表达式匹配支持。
上述项目和其他PostgreSQL 16的新功能将在下面的章节中 进行更详细的解释。
需要使用pg_dumpall进行转储/恢复,或者使用 pg_upgrade或逻辑复制来迁移数据,以从任何先前版本迁移。 有关迁移到新主要版本的一般信息,请参阅第 19.6 节。
版本16包含许多可能影响与以前版本兼容性的更改。请注意以下不兼容之处:
更改分配规则以适用于PL/pgSQL 绑定的游标变量(Tom Lane) §
以前,这类变量的字符串值在游标赋值期间会设置为与变量名匹配;
现在将在OPEN
期间分配,并且不会与变量名匹配。要恢复以前的行为,请在
OPEN
之前将所需的门户名称分配给游标变量。
禁止NULLS NOT
DISTINCT
索引用于主键(Daniel
Gustafsson)
§
更改REINDEX
DATABASE
和reindexdb
以不处理系统目录上的索引(Simon Riggs)
§
§
处理这样的索引仍然可以通过使用REINDEX SYSTEM
和
reindexdb --system
来完成。
收紧继承和分区表上的GENERATED
表达式限制(Amit Langote,Tom Lane)
§
父/分区表和子/分区表的列必须具有相同的生成状态,尽管现在实际的生成 表达式可以不同。
移除pg_walinspect
函数
pg_get_wal_records_info_till_end_of_wal()
和pg_get_wal_stats_till_end_of_wal()
(Bharath Rupireddy)
§
将服务器变量force_parallel_mode
重命名为debug_parallel_query
(David Rowley)
§
§
移除服务器变量
vacuum_defer_cleanup_age
(Andres Freund)
§
移除服务器变量promote_trigger_file
(Simon Riggs)
§
这曾被用来将备用服务器提升为主服务器,但现在可以更轻松地通过
pg_ctl promote
或
pg_promote()
来完成。
移除只读服务器变量lc_collate
和lc_ctype
(Peter Eisentraut)
§
排序规则和区域设置可能因数据库而异,因此将它们作为只读服务器变量 是不方便的。
角色继承现在控制在 GRANT
期间添加的成员角色的默认
继承状态 (Robert Haas)
§
角色的默认继承行为可以通过新的GRANT ... WITH INHERIT
子句来覆盖。这允许继承某些角色而不继承其他角色,因为成员的继承
状态是在GRANT
时设置的。以前,成员角色的继承状态
仅由角色的继承状态控制,并且对角色继承状态的更改会影响所有先前
和未来的成员角色。
限制CREATEROLE
的权限及其修改其他角色的能力(Robert Haas)
§
§
以前,具有CREATEROLE
权限的角色可以更改任何非超级用户角色的
许多方面。此类更改(包括添加成员)现在要求请求更改的角色具有
ADMIN OPTION
权限。例如,他们现在只能更改
CREATEDB
、REPLICATION
和BYPASSRLS
属性,前提是他们也拥有这些权限。
删除postmaster二进制文件的符号链接 (Peter Eisentraut) §
以下是PostgreSQL 16与之前主要版本之间更改的详细说明。
在非冻结操作期间,在适当的地方执行页面 冻结 (Peter Geoghegan) § § §
这使得全表冻结清理变得不那么必要。
允许优化始终递增的窗口函数ntile()
、
cume_dist()
和
percent_rank()
(David Rowley)
§
允许聚合函数string_agg()
和array_agg()
进行并行化处理(David
Rowley)
§
通过缓存RANGE
和LIST
分区查找来提高性能(Amit Langote,
Hou Zhijie,David Rowley)
§
允许通过真空和分析控制共享缓冲区的使用 (Melanie Plageman) § § §
VACUUM
/ANALYZE
选项是BUFFER_USAGE_LIMIT
,而vacuumdb
选项是--buffer-usage-limit
。
默认值由服务器变量vacuum_buffer_usage_limit
设置,该变量也控制自动清理。
支持wal_sync_method=fdatasync
在Windows上 (Thomas Munro)
§
允许HOT
更新,如果仅更新BRIN
索引的列
(Matthias van de Meent, Josef Simanek, Tomas Vondra)
§
允许xid
/subxid
搜索和
ASCII字符串检测使用向量操作
(Nathan Bossart, John Naylor)
§
§
§
§
ASCII检测对于
COPY FROM
特别有用。
向量操作也用于某些C数组的搜索。
减少内存分配的开销(Andres Freund, David Rowley) §
记录表上最后一次顺序扫描和索引扫描的统计信息 (Dave Page) §
此信息显示在pg_stat_*_tables
和pg_stat_*_indexes
中。
记录更新行移动到新页面的统计信息(Corey Huinker) §
pg_stat_*_tables
列是n_tup_newpage_upd
。
将推测性锁信息添加到pg_locks
系统视图(Masahiko Sawada, Noriyoshi Shinoda)
§
事务ID显示在transactionid
列中,
推测插入令牌显示在objid
列中。
将预处理语句结果类型的显示添加到
pg_prepared_statements
视图中(Dagfinn Ilmari Mannsåker)
§
§
在创建订阅时创建订阅统计条目,以确保stats_reset
是准确的(Andres Freund)
§
之前只有在首次报告统计数据时才会创建条目。
修正I/O的统计,
考虑到在pg_stat_database
中显示的临时关系写入 (Melanie Plageman)
§
添加函数pg_stat_get_backend_subxact()
用于报告会话的子事务缓存 (Dilip Kumar)
§
让pg_stat_get_backend_idset()
、
pg_stat_get_backend_activity()
和相关函数使用不变的后端ID
(Nathan Bossart)
§
以前,索引值可能会在会话的生命周期内发生变化。
使用特殊的后端类型报告独立后端(Melanie Plageman) §
创建新的等待事件DSMAllocate
以指示正在等待动态共享内存分配(Thomas
Munro)
§
以前,这种类型的等待被报告为
DSMFillZeroWrite
,它也被
mmap()
分配使用。
将数据库名称添加到逻辑WAL发送器的 进程标题中 (Tatsuhiro Nakamori) §
物理WAL发送器不会显示数据库名称。
添加检查点和REDO LSN
信息到log_checkpoints
消息中(Bharath Rupireddy, Kyotaro Horiguchi)
§
在客户端证书失败时提供更多详细信息 (Jacob Champion) §
添加预定义角色pg_create_subscription
以获得创建订阅的权限(Robert Haas)
§
通过选项password_required=false
完成此操作。
简化 LOCK
TABLE
的权限 (Jeff Davis)
§
以前,用户在不同锁级别上执行LOCK TABLE
的能力仅限于他们有权
在表上执行的命令所需的锁级别。例如,拥有
UPDATE
权限的用户可以执行除ACCESS SHARE
之外的所有锁级别,即使它是一个更低的锁级别。现在,如果用户已经拥有更高锁级别的
权限,他们也可以发出更低锁级别的锁请求。
允许使用ALTER GROUP group_name
ADD USER user_name
与ADMIN OPTION
一起执行
(Robert Haas)
§
之前需要CREATEROLE
权限。
允许使用GRANT
来使用WITH ADMIN TRUE
/FALSE
语法(Robert Haas)
§
之前仅支持WITH ADMIN OPTION
语法。
允许创建其他角色的角色自动继承新角色的权限或
SET ROLE
到新角色的能力(Robert Haas, Shi Yu)
§
§
这由服务器变量createrole_self_grant
控制。
防止用户更改非继承角色的默认权限(Robert Haas) §
这现在仅适用于继承的角色。
在授予角色成员资格时,要求授予者角色是具有适当权限的角色 (Robert Haas) §
即使是非引导超级用户在授予角色成员资格时,这也是一个要求。
允许非超级用户使用非当前用户的授权用户授予权限 (Robert Haas) §
当前用户仍然必须具有由指定的授权用户授予的足够权限。
添加GRANT
以控制使用
SET ROLE
的权限
(Robert Haas)
§
这是由一个新的GRANT ... SET
选项控制的。
为已授予权限的角色添加依赖关系跟踪 (Robert Haas) §
例如,如果存在使用该选项的权限,移除ADMIN OPTION
将会失败;
必须使用CASCADE
来撤销依赖的权限。
添加对GRANT
记录的授予者依赖跟踪
(Robert Haas)
§
这保证了pg_auth_members
.grantor
的值始终是有效的。
之前,一个新的成员资格授予会移除之前匹配的成员资格授予, 即使授予的其他方面不匹配。
防止为引导用户(Robert Haas)移除超级用户权限 §
恢复此类用户可能会导致错误。
允许makeaclitem()
接受多个权限名称(Robins Tharakan)
§
以前只接受单个权限名称,例如SELECT
。
添加对Kerberos凭据委派的支持 (Stephen Frost) § § § §
通过服务器变量gss_accept_delegation
和libpq连接参数gssdelegation
启用。
允许通过服务器变量scram_iterations
设置SCRAM迭代次数
(Daniel Gustafsson)
§
收紧对可以重置的服务器变量的限制 (Masahiko Sawada) §
以前,某些变量,例如transaction_isolation
,
不会受到RESET
ALL
的影响,但它们可能在不适当的情况下被单独重置。
将各种postgresql.conf
项目移入新类别(Shinya Kato)
§
这也会影响在pg_settings
视图中显示的类别。
防止配置文件递归超过10级(Julien Rouhaud) §
允许 自动清理 更频繁地遵守延迟设置的更改 (Melanie Plageman) § §
与其仅在每个关系的开始处处理更改, 不如在每个块的开始处处理更改。
移除对存档文件必须被持久重命名的限制 (Nathan Bossart) § §
archive_command
命令现在更有可能在崩溃后被调用时处理已经归档的文件。
防止archive_library
和archive_command
同时被设置(Nathan Bossart)
§
之前archive_library
会覆盖
archive_command
。
允许邮局管理员通过中止信号终止子进程 (Tom Lane) §
这允许为卡住的子进程收集核心转储。这由send_abort_for_crash
和send_abort_for_kill
控制。主进程的-T
开关现在等同于设置
send_abort_for_crash
。
移除非功能性的postmaster -n
选项
(Tom Lane)
§
允许服务器为具有pg_use_reserved_connections
成员资格的角色保留后端插槽(Nathan Bossart)
§
保留的槽位数量由服务器变量reserved_connections
设置。
允许大页在较新版本的 Windows 10上工作 (Thomas Munro) §
这增加了在较新版本的Windows 10上启用大页面所需的特殊处理。
添加 debug_io_direct
设置以供开发者使用(Thomas Munro, Andres Freund,
Bharath Rupireddy)
§
§
虽然主要是为开发者设计的,wal_sync_method=open_sync
/
open_datasync
已被修改为不使用直接I/O
与wal_level=minimal
;现在可以通过
debug_io_direct=wal
启用。
添加函数pg_split_walfile_name()
用于报告WAL文件名的段和时间线值
(Bharath Rupireddy)
§
§
增加对在pg_hba.conf
中对数据库和角色条目进行正则表达式匹配
的支持 (Bertrand Drouvot)
§
正则表达式模式以斜杠作为前缀。以斜杠开头的数据库和角色名称在
pg_hba.conf
中引用时需要用双引号括起来。
改进用户列的处理,使其与pg_ident.conf
匹配pg_hba.conf
(Jelte Fennema)
§
具体来说,添加对all
的支持,角色成员资格使用
+
,以及以斜杠开头的正则表达式。任何匹配这些模式的
用户名都必须用双引号括起来。
允许在pg_hba.conf
和pg_ident.conf
中包含文件(Julien Rouhaud)
§
这些由include
、include_if_exists
和
include_dir
控制。系统视图pg_hba_file_rules
和pg_ident_file_mappings
现在显示文件名。
允许pg_hba.conf
令牌具有无限长度(Tom Lane)
§
添加规则并将数字映射到系统视图pg_hba_file_rules
(Julien Rouhaud)
§
从区域设置中确定默认编码,当使用 ICU时 (Jeff Davis) §
之前的默认值始终是UTF-8
。
使用 CREATE
DATABASE
和 CREATE
COLLATION
的 LOCALE
选项,以及
initdb
和 createdb
--locale
选项,控制非
libc 的排序规则提供程序 (Jeff
Davis)
之前他们只控制了libc提供者。
添加预定义的排序规则unicode
和
ucs_basic
(Peter Eisentraut)
§
这仅在启用了ICU支持时才有效。
允许创建自定义ICU排序规则 (Peter Eisentraut) §
这是通过使用CREATE
COLLATION
的新RULES
子句完成的,以及为CREATE
DATABASE
、createdb
和initdb
提供的新选项。
允许Windows自动导入系统区域设置 (Juan José Santamaría Flecha) §
以前,只有ICU语言环境可以在 Windows上导入。
允许备用服务器上的逻辑解码 (Bertrand Drouvot、Andres Freund、Amit Khandekar) § § §
快照WAL记录是逻辑槽创建所必需的,但无法在备用
节点上创建。为了避免延迟,新的函数pg_log_standby_snapshot()
允许创建此类记录。
允许逻辑复制初始表同步以二进制格式复制行 (Melih Mutlu) §
这仅适用于标记为二进制的订阅。
允许逻辑复制的并行应用(侯志杰,王伟,Amit Kapila) § § §
CREATE
SUBSCRIPTION
STREAMING
选项现在支持parallel
,以通过并行工作者应用大事务。
并行工作者的数量由新的服务器变量max_parallel_apply_workers_per_subscription
控制。新增了等待事件LogicalParallelApplyMain
、
LogicalParallelApplyStateChange
和
LogicalApplySendData
。系统视图pg_stat_subscription
新增了列leader_pid
,用于跟踪并行活动。
提高逻辑复制应用在没有主键情况下的性能 (逻辑复制架构) (Onder Kalaci, Amit Kapila) §
具体来说,REPLICA IDENTITY FULL
现在可以使用btree索引,
而不是顺序扫描表来找到匹配项。
允许逻辑复制订阅者仅处理没有来源的更改 (Vignesh C, Amit Kapila) § §
这可以用来避免复制循环。这由新的CREATE SUBSCRIPTION ... ORIGIN
选项控制。
以表所有者的身份执行逻辑复制SELECT
和
DML操作(Robert Haas)
§
§
这提高了安全性,现在要求订阅所有者必须是超级用户,或者对复制集
中所有拥有表的角色具有SET ROLE
权限。之前以订阅所有者身份执行所有操作的行为可以通过订阅
run_as_owner
选项启用。
让wal_retrieve_retry_interval
按每个订阅的基础进行操作(Nathan Bossart)
§
之前,重试时间是全局应用的。此更改还添加了等待事件>LogicalRepLauncherDSA
和LogicalRepLauncherHash
。
允许使用COPY
将数据批量插入到外部表中(Andrey Lepikhov,
Etsuro Fujita)
§
这由postgres_fdw
选项batch_size
控制。
允许通过CREATE TABLE
指定STORAGE
类型
(Teodor Sigaev,Aleksander Alekseev)
§
§
以前只有ALTER
TABLE
可以控制这一点。
允许VACUUM
和vacuumdb
仅处理TOAST
表
(Nathan Bossart)
§
这是通过让VACUUM
关闭PROCESS_MAIN
,或者通过vacuumdb
使用--no-process-main
选项来实现的。
添加VACUUM
选项以跳过或更新所有冻结统计信息(Tom Lane,
Nathan Bossart)
§
选项是SKIP_DATABASE_STATS
和
ONLY_DATABASE_STATS
。
将REINDEX
DATABASE
和REINDEX SYSTEM
修改为不再需要参数(Simon Riggs)
§
§
之前必须指定数据库名称。
允许CREATE
STATISTICS
在未指定名称时生成统计信息名称
(Simon Riggs)
§
允许非十进制的整数字面量 (Peter Eisentraut) §
例如,0x42F
、0o273
和
0b100101
。
允许NUMERIC
处理任意大小的十六进制、八进制和二进制整数
(Dean Rasheed)
§
以前,这些非十进制基数仅支持未加引号的八字节整数。
允许在整数和数字常量中使用下划线 (Peter Eisentraut, Dean Rasheed) §
这可以提高长数字串的可读性。
接受日期时间输入中的拼写+infinity
(Vik Fearing)
§
防止在日期时间字符串中同时指定epoch
和
infinity
以及其他字段(Joseph Koshakow)
§
移除以Y
形式输入日期的未记录支持
(Joseph Koshakow)
§
年
M月
D日
添加函数pg_input_is_valid()
和pg_input_error_info()
以检查类型转换错误(Tom Lane)
§
§
添加SQL/JSON构造函数(Nikita Glukhov, Teodor Sigaev,Oleg Bartunov,Alexander Korotkov,Amit Langote) §
新的函数JSON_ARRAY()
、
JSON_ARRAYAGG()
、
JSON_OBJECT()
和
JSON_OBJECTAGG()
是
SQL标准的一部分。
添加SQL/JSON对象检查(Nikita Glukhov、 Teodor Sigaev、Oleg Bartunov、Alexander Korotkov、Amit Langote、 Andrew Dunstan) §
IS
JSON
检查包括对值、数组、对象、标量和唯一键的检查。
允许JSON字符串解析使用向量操作 (John Naylor) §
改进全文高亮功能的处理 ts_headline()
对于OR
和NOT
表达式的支持
(Tom Lane)
§
添加函数以在指定的时区中添加、减去和生成
timestamptz
值(Przemyslaw
Sztoch,Gurjeet Singh)
§
这些函数是date_add()
、
date_subtract()
,以及generate_series()
。
将date_trunc(unit,
timestamptz, time_zone)
更改为不可变函数
(Przemyslaw Sztoch)
§
这允许使用此函数创建表达式索引。
添加服务器变量SYSTEM_USER
(Bertrand Drouvot)
§
这会报告认证方法及其认证的用户。
添加函数array_sample()
和array_shuffle()
(Martin Kalcher)
§
添加聚合函数ANY_VALUE()
,该函数从集合中返回任意值(Vik Fearing)
§
添加函数random_normal()
来提供正态分布的随机数(Paul Ramsey)
§
添加XMLSERIALIZE()
选项INDENT
以美化其输出
(Jim Jones)
§
更改pg_collation_actual_version()
以为默认排序规则返回一个合理的值(Jeff Davis)
§
之前它返回了NULL
。
允许pg_read_file()
和pg_read_binary_file()
忽略丢失的文件(Kyotaro Horiguchi)
§
添加字节规范(B
)到pg_size_bytes()
(Peter Eisentraut)
§
增加在PL/pgSQL中获取当前函数 OID的能力 (Pavel Stehule) §
添加libpq连接选项require_auth
以指定可接受的身份验证方法列表(Jacob Champion)
§
这也可以用来禁止某些身份验证方法。
允许随机选择多个由libpq指定的主机 (Jelte Fennema) § §
通过启用load_balance_hosts=random
可以实现负载均衡。
添加libpq选项sslcertmode
来控制客户端证书的传输(Jacob Champion)
§
选项值是disable
、allow
和require
。
允许libpq使用系统证书池进行证书验证 (Jacob Champion,Thomas Habets) §
通过使用sslrootcert=system
启用,这也启用了sslmode=verify-full
。
允许psql控制扩展格式中标题行的最大宽度 (Platon Pronko) §
这由xheader_width
控制。
添加psql命令\drg
以显示角色成员详细信息(Pavel Luzanov)
§
§
成员所属
输出列已从\du
和\dg
中移除,因为这个新命令以更详细的方式显示了这些信息。
防止\df+
显示函数源代码(Isaac Morland)
§
函数体可以更容易地通过\sf
查看。
允许psql使用扩展查询协议提交查询 (Peter Eisentraut) §
向此类查询传递参数是通过使用新的psql
\bind
命令完成的。
允许psql\watch
限制执行次数(Andrey Borodin)
§
现在可以在指定时为\watch
选项命名。
允许psql脚本获取外壳命令和查询的退出状态 (Corey Huinker,Tom Lane) § §
新的psql控制变量是SHELL_ERROR
和SHELL_EXIT_CODE
。
各种psql标签补全的改进 (Vignesh C, Aleksander Alekseev, Dagfinn Ilmari Mannsåker, Shi Yu, Michael Paquier, Ken Kato, Peter Smith) § § § § § § § § § § § §
添加pg_dump对转储子表和分区的控制 (Gilles Darold) §
新的选项是--table-and-children
、
--exclude-table-and-children
和
--exclude-table-data-and-children
。
添加LZ4和 Zstandard压缩到 pg_dump(Georgios Kokolatos,Justin Pryzby)
允许pg_dump和pg_basebackup
使用长
模式进行压缩 (Justin Pryzby)
§
§
§
§
改进pg_dump以接受更一致的压缩语法 (Georgios Kokolatos) §
像--compress=gzip:5
这样的选项。
添加initdb 选项以在initdb期间以及所有未来的服务器启动 过程中设置服务器变量(Tom Lane) §
该选项是-c name=value
。
为createuser 添加选项以控制更多用户选项(Shinya Kato) § §
具体来说,新选项控制有效期日期、绕过行级安全性和角色成员资格。
弃用createuser
选项--role
(Nathan Bossart)
§
§
此选项可能很容易与新的createuser角色成员选项混淆,
因此添加了具有相同功能的--member-of
选项。
--role
选项仍然可以使用。
允许控制vacuumdb 模式处理(Gilles Darold) §
这些由选项--schema
和--exclude-schema
控制。
使用pg_upgrade 设置新集群的区域设置和编码(Jeff Davis) §
这消除了新集群必须使用相同的区域设置和编码设置创建的要求。
添加pg_upgrade 选项以指定默认传输模式(Peter Eisentraut) §
该选项是--copy
。
改进pg_basebackup 以接受数字压缩选项(Georgios Kokolatos, Michael Paquier) §
现在支持类似--compress=server-5
的选项。
修复pg_basebackup
以处理存储在PGDATA
目录中的表空间
(Robert Haas)
§
添加pg_waldump
选项--save-fullpage
以转储完整页面图像
(David Christensen)
§
允许pg_waldump
选项-t
/--timeline
接受十六进制值
(Peter Eisentraut)
§
为pg_verifybackup 添加进度报告支持(Masahiko Sawada) §
允许pg_rewind 正确跟踪时间线的变化(Heikki Linnakangas) § §
之前,如果在时间线切换后但在检查点发出之前运行 pg_rewind,它可能会错误地判断不需要回滚。
让pg_receivewal
和pg_recvlogical
在接收到SIGTERM
信号时干净地退出 (Christoph Berg)
§
此信号通常由systemd使用。
默认构建ICU支持(Jeff Davis) §
这将移除构建标志
--with-icu
,并添加标志
--without-icu
。
添加对SSE2(流式SIMD扩展2)向量操作的支持, 适用于x86-64架构(John Naylor) §
添加对高级SIMD(单指令多数据) (NEON)指令在ARM架构上的支持 (Nathan Bossart) §
使用Windows
和MSVC构建的二进制文件会使用
随机基址
(地址空间布局随机化)
(Michael Paquier)
§
这已经在MinGW构建中启用了。
防止扩展库默认导出其符号 (Andres Freund,Tom Lane) § §
需要从核心后端或其他扩展中调用的函数现在必须明确标记为
PGDLLEXPORT
。
需要Windows 10或更高版本 (Michael Paquier, Juan José Santamaría Flecha) §
之前支持Windows Vista和 Windows XP。
需要 Perl 版本 5.14 或更高版本 (John Naylor) §
需要 Bison 版本 2.3 或更高版本 (John Naylor) §
需要 Flex 版本 2.5.35 或更高版本 (John Naylor) §
需要MIT Kerberos以支持 GSSAPI(Stephen Frost) §
移除对Visual Studio 2013的支持 (Michael Paquier) §
移除对HP-UX的支持 (Thomas Munro) §
移除对HP/Intel Itanium的支持 (Thomas Munro) §
移除libpq 对SCM凭证认证的支持 (Michael Paquier) §
后端对这种身份验证方法的支持已在 PostgresSQL 9.1 中移除。
添加meson 构建系统(Andres Freund, Nazir Bilal Yavuz, Peter Eisentraut) §
这最终将取代Autoconf和基于 Windows的 MSVC构建系统。
允许控制构建系统使用的openssl二进制文件的 位置(Peter Eisentraut) §
将查找openssl程序作为 configure或 meson选项
添加构建选项以允许测试小表段大小 (Andres Freund) §
构建选项是--with-segsize-blocks
和-Dsegsize_blocks
。
添加pgindent选项 (Andrew Dunstan) § § § § § § §
新的选项是--show-diff
、
--silent-diff
、--commit
和
--help
,并允许多个--exclude
选项。同时要求显式指定typedef文件。选项--code-base
和--build
也被移除了。
添加pg_bsd_indent 源代码到主树 (Tom Lane) §
改进make_ctags和 make_etags(Yugo Nagata) §
调整pg_attribute
列以提高效率(Peter Eisentraut)
§
改进了在布尔列上使用基于扩展的索引的性能(Zongliang Quan,Tom Lane) §
为fuzzystrmatch 添加对Daitch-Mokotoff Soundex的支持 (Dag Lem) §
允许auto_explain 记录传递给参数化语句的值(Dagfinn Ilmari Mannsåker) §
这会影响使用服务器端PREPARE
/EXECUTE
和客户端解析/绑定的查询。日志记录由auto_explain.log_parameter_max_length
控制;默认情况下,查询参数将被记录且没有长度限制。
让auto_explain的
log_verbose
模式遵循compute_query_id
的值(Atsushi Torikoshi)
§
以前,即使compute_query_id
已启用,log_verbose
也不会显示查询标识符。
让pg_stat_statements
标准化在实用程序命令中使用的常量(Michael Paquier)
§
以前常量会出现在占位符的位置,例如,
$1
。
添加pg_walinspect
函数pg_get_wal_block_info()
用于报告WAL块信息(Michael Paquier、
Melanie Plageman、Bharath Rupireddy)
§
§
§
§
更改pg_walinspect
的功能,pg_get_wal_records_info()
和pg_get_wal_stats()
如何解释结束的LSN(Bharath Rupireddy)
§
以前表示不存在的WAL位置的LSN会导致错误, 而现在它们将被解释为WAL的结束位置。
添加关于pg_walinspect 和pg_waldump 中WAL记录的详细描述 (Melanie Plageman,Peter Geoghegan) § § § §
添加pageinspect
函数bt_multi_page_stats()
用于报告多个页面的统计信息(Hamid Akhtar)
§
这类似于bt_page_stats()
,只是它可以报告一系列页面。
添加空范围输出列到pageinspect
函数brin_page_items()
(Tomas Vondra)
§
重新设计归档模块以使其更加灵活(Nathan Bossart) §
初始化更改将需要为旧版本的Postgres编写的模块进行更新。
修正不准确的pg_stat_statements 行跟踪扩展查询协议语句 (Sami Imseih) §
添加pg_buffercache
函数pg_buffercache_usage_counts()
以报告使用总计
(Nathan Bossart)
§
添加pg_buffercache
函数pg_buffercache_summary()
以报告汇总的缓冲区统计信息
(Melih Mutlu)
§
允许在扩展脚本中使用新语法
@extschema:referenced_extension_name@
引用所需扩展的模式
(Regina Obe)
§
允许将所需的扩展标记为不可重定位,使用no_relocate
(Regina Obe)
§
这允许@extschema:referenced_extension_name@
在扩展的生命周期内被视为常量。
允许postgres_fdw在并行中执行中止操作 (Etsuro Fujita) §
通过postgres_fdw选项parallel_abort
启用此功能。
使外部postgres_fdw表上的
ANALYZE
更高效 (Tomas Vondra)
§
postgres_fdw选项analyze_sampling
控制采样方法。
以下个人(按字母顺序)作为补丁作者、提交者、审阅者、测试者或问题报告者为这个版本的贡献者。
Abhijit Menon-Sen |
Adam Mackler |
Adrian Klaver |
Ahsan Hadi |
Ajin Cherian |
Ajit Awekar |
Alan Hodgson |
Aleksander Alekseev |
Alex Denman |
Alex Kozhemyakin |
Alexander Korolev |
Alexander Korotkov |
Alexander Lakhin |
Alexander Pyhalov |
Alexey Borzov |
Alexey Ermakov |
Alexey Makhmutov |
Álvaro Herrera |
Amit Kapila |
Amit Khandekar |
Amit Langote |
Amul Sul |
Anastasia Lubennikova |
Anban Company |
Andreas Dijkman |
Andreas Karlsson |
Andreas Scherbaum |
Andrei Zubkov |
Andres Freund |
Andrew Alsup |
Andrew Bille |
Andrew Dunstan |
Andrew Gierth |
Andrew Kesper |
Andrey Borodin |
Andrey Lepikhov |
Andrey Sokolov |
Ankit Kumar Pandey |
Ante Kresic |
Anton Melnikov |
Anton Sidyakin |
Anton Voloshin |
Antonin Houska |
Arne Roland |
Artem Anisimov |
Arthur Zakirov |
Ashutosh Bapat |
Ashutosh Sharma |
Asim Praveen |
Atsushi Torikoshi |
Ayaki Tachikake |
Balazs Szilfai |
Benoit Lobréau |
Bernd Helmle |
Bertrand Drouvot |
Bharath Rupireddy |
Bilva Sanaba |
Bob Krier |
Boris Zentner |
Brad Nicholson |
Brar Piening |
Bruce Momjian |
Bruno da Silva |
Carl Sopchak |
Cary Huang |
Changhong Fei |
Chris Travers |
Christoph Berg |
Christophe Pettus |
Corey Huinker |
Craig Ringer |
Curt Kolovson |
Dag Lem |
Dagfinn Ilmari Mannsåker |
Daniel Gustafsson |
Daniel Vérité |
Daniel Watzinger |
Daniel Westermann |
Daniele Varrazzo |
Daniil Anisimov |
Danny Shemesh |
Dave Page |
David Christensen |
David G. Johnston |
David Geier |
David Gilman |
David Kimura |
David Rowley |
David Steele |
David Turon |
David Zhang |
Davinder Singh |
Dean Rasheed |
Denis Laxalde |
Dilip Kumar |
Dimos Stamatakis |
Dmitriy Kuzmin |
Dmitry Astapov |
Dmitry Dolgov |
Dmitry Koval |
Dong Wook Lee |
Dongming Liu |
Drew DeVault |
Duncan Sands |
Ed Maste |
Egor Chindyaskin |
Ekaterina Kiryanova |
Elena Indrupskaya |
Emmanuel Quincerot |
Eric Mutta |
Erik Rijkers |
Erki Eessaar |
Erwin Brandstetter |
Etsuro Fujita |
Eugeny Zhuzhnev |
Euler Taveira |
Evan Jones |
Evgeny Morozov |
Fabrízio de Royes Mello |
Farias de Oliveira |
Florin Irion |
Franz-Josef Färber |
Garen Torikian |
Georgios Kokolatos |
Gilles Darold |
Greg Stark |
Guillaume Lelarge |
Gunnar Bluth |
Gunnar Morling |
Gurjeet Singh |
Haiyang Wang |
Haiying Tang |
Hamid Akhtar |
Hans Buschmann |
Hao Wu |
Hayato Kuroda |
Heath Lord |
Heikki Linnakangas |
Himanshu Upadhyaya |
Hisahiro Kauchi |
Hongyu Song |
Hubert Lubaczewski |
Hung Nguyen |
Ian Barwick |
Ibrar Ahmed |
Ilya Gladyshev |
Ilya Nenashev |
Isaac Morland |
Israel Barth Rubio |
Jacob Champion |
Jacob Speidel |
Jaime Casanova |
Jakub Wartak |
James Coleman |
James Inform |
James Vanns |
Jan Wieck |
Japin Li |
Jeevan Ladhe |
Jeff Davis |
Jeff Janes |
Jehan-Guillaume de Rorthais |
Jelte Fennema |
Jian He |
Jim Jones |
Jinbao Chen |
Joe Conway |
Joel Jacobson |
John Naylor |
Jonathan Katz |
Josef Simanek |
Joseph Koshakow |
Juan José Santamaría Flecha |
Julien Rouhaud |
Julien Roze |
Junwang Zhao |
Justin Pryzby |
Justin Zhang |
Karina Litskevich |
Karl O. Pinc |
Keisuke Kuroda |
Ken Kato |
Kevin McKibbin |
Kieran McCusker |
Kirk Wolak |
Konstantin Knizhnik |
Koshi Shibagaki |
Kotaro Kawamoto |
Kui Liu |
Kyotaro Horiguchi |
Lakshmi Narayanan Sreethar |
Laurence Parry |
Laurenz Albe |
Luca Ferrari |
Lukas Fittl |
Maciek Sakrejda |
Magnus Hagander |
Maja Zaloznik |
Marcel Hofstetter |
Marina Polyakova |
Mark Dilger |
Marko Tiikkaja |
Markus Winand |
Martijn van Oosterhout |
Martin Jurca |
Martin Kalcher |
Mary Xu |
Masahiko Sawada |
Masahiro Ikeda |
Masao Fujii |
Mason Sharp |
Matheus Alcantara |
Mats Kindahl |
Matthias van de Meent |
Matthijs van der Vleuten |
Maxim Orlov |
Maxim Yablokov |
Mehmet Emin Karakas |
Melanie Plageman |
Melih Mutlu |
Micah Gates |
Michael Banck |
Michael Paquier |
Michail Nikolaev |
Michel Pelletier |
Mike Oh |
Mikhail Gribkov |
Mingli Zhang |
Miroslav Bendik |
Mitsuru Hinata |
Myo Wai Thant |
Naeem Akhter |
Naoki Okano |
Nathan Bossart |
Nazir Bilal Yavuz |
Neha Sharma |
Nick Babadzhanian |
Nicola Contu |
Nikhil Shetty |
Nikita Glukhov |
Nikolay Samokhvalov |
Nikolay Shaplov |
Nishant Sharma |
Nitin Jadhav |
Noah Misch |
Noboru Saito |
Noriyoshi Shinoda |
Nuko Yokohama |
Oleg Bartunov |
Oleg Tselebrovskiy |
Olly Betts |
Onder Kalaci |
Onur Tirtir |
Pablo Federico |
Palle Girgensohn |
Paul Guo |
Paul Jungwirth |
Paul Ramsey |
Pavel Borisov |
Pavel Kulakov |
Pavel Luzanov |
Pavel Stehule |
Peifeng Qiu |
Peter Eisentraut |
Peter Geoghegan |
Peter Smith |
Phil Florent |
Philippe Godfrin |
Platon Pronko |
Przemyslaw Sztoch |
Rachel Heaton |
Ranier Vilela |
Regina Obe |
Reid Thompson |
Reiner Peterke |
Richard Guo |
Riivo Kolka |
Rishu Bagga |
Robert Haas |
Robert Sjöblom |
Robert Treat |
Roberto Mello |
Robins Tharakan |
Roman Zharkov |
Ronan Dunklau |
Rushabh Lathia |
Ryo Matsumura |
Samay Sharma |
Sami Imseih |
Sandeep Thakkar |
Sandro Santilli |
Sebastien Flaesch |
Sébastien Lardière |
Sehrope Sarkuni |
Sergey Belyashov |
Sergey Pankov |
Sergey Shinderuk |
Shi Yu |
Shinya Kato |
Sho Kato |
Shruthi Gowda |
Shveta Mallik |
Simon Riggs |
Sindy Senorita |
Sirisha Chamarthi |
Sravan Kumar |
Stéphane Tachoires |
Stephen Frost |
Steve Chavez |
Stone Tickle |
Sven Klemm |
Takamichi Osumi |
Takeshi Ideriha |
Tatsuhiro Nakamori |
Tatsuo Ishii |
Teja Mupparti |
Tender Wang |
Teodor Sigaev |
Thiago Nunes |
Thom Brown |
Thomas Habets |
Thomas Mc Kay |
Thomas Munro |
Tim Carey-Smith |
Tim Field |
Timo Stolz |
Tom Lane |
Tomas Vondra |
Tor Erik Linnerud |
Torsten Förtsch |
Tristan Partin |
Troy Frericks |
Tushar Ahuja |
Valerie Woolard |
Vibhor Kumar |
Victor Spirin |
Victoria Shepard |
Vignesh C |
Vik Fearing |
Vitaly Burovoy |
Vitaly Davydov |
Wang Wei |
Wenjing Zeng |
Whale Song |
Will Mortensen |
Wolfgang Walther |
Xin Wen |
Xing Guo |
Xingwang Xu |
XueJing Zhao |
Yanliang Lei |
Youmiu Mo |
Yugo Nagata |
Yura Sokolov |
Yuta Katsuragi |
Zhen Mingyang |
Zheng Li |
Zhihong Yu |
Zhijie Hou |
Zongliang Quan |
Zuming Jiang |