Pgpool-II 4.2.1 发布,这是一个 PostgreSQL 的连接池和语句复制系统。 https://www.pgpool.net/docs/42/en/html/release-4-2-1.html
Postgres Operator v1.6.0 发布。 https://github.com/zalando/postgres-operator
https://archives.postgresql.org/pgsql-jobs/2020-12/
Planet PostgreSQL: http://planet.postgresql.org/
本周 PostgreSQL 周报由 David Fetter 提供。
请在太平洋标准时间(PST8PDT)周日晚上3:00之前将新闻和公告发送至 david@fetter.org。
Tom Lane 提交
文档:修复使用 src/tutorial 文件的描述。在 ed1939332 commit 中添加的“cd”命令在调用 psql 之前是有意义的(至少我是这么认为的)。但 4e3a61635 移除了解释何时使用它的支持性文本,使其变得令人困惑。因此将其删除。另外,将四点填充改为三点填充,以表示路径中未提供的部分,因为至少有一个人将四点填充视为 typo 而不是“../..”。并修复这些/那些不一致之处。讨论:https://postgr.es/m/160837647714.673.5195186835607800484@wrigleys.postgresql.org https://git.postgresql.org/pg/commitdiff/eea1e08cfc95bb7e1b7e9f515e73cf75adf147e3
移除“jsonb 对象无效连接”错误情况。jsonb || jsonb 操作符任意拒绝标量和非标量输入的某些组合,但又能连接其他组合。这当然是未被充分记录的。与其尝试记录它,不如移除这个限制,建立一个统一的规则:除非我们处理的是对象到对象的连接,否则非数组输入将被转换为单元素数组,从而进行数组到数组的连接。(这不会改变之前没有抛出错误的情况的行为。)根据 Joel Jacobson 的投诉。向所有支持的分支回溯。讨论:https://postgr.es/m/163099.1608312033@sss.pgh.pa.us https://git.postgresql.org/pg/commitdiff/ff5d5611c01f60525c30b2c3ebc16d05edb7956d
增加 021_row_visibility.pl 的超时时间。Commit 7b28913bc 认为 30 秒足够长,但在 valgrind 运行等上下文中,不一定够。 https://git.postgresql.org/pg/commitdiff/08dde1b3dc78e90e01f3af8e89ab27ed37cd8963
改进 autoprewarm 对早期关闭场景的处理。如果 DBA 在 autoprewarm 完成加载要预热的块列表之前发出“pg_ctl stop -m fast”,则会发生错误。当前的 worker 进程会成功提前终止,但(如果这不是最后一个要预热块的数据库)leader 进程只会尝试为下一个数据库启动另一个 worker。由于 postmaster 现在处于 PM_WAIT_BACKENDS 状态,它会忽略启动请求,而 leader 则一直等待直到被手动杀死。这主要是我们用于启动后台 worker 的不完善设计造成的,但对其进行适当修复可能会过于侵入性而无法回溯。为了改善这种情况,让 apw_load_buffers() 在尝试启动另一个 worker 之前检查是否收到了 SIGTERM 信号。这样,在每个 worker 启动过程中,只有在请求启动和 worker 成功启动之间存在一个非常狭窄的窗口可能发生 SIGTERM。另一个问题是,如果 leader 进程确实退出,它将无条件地用当前共享缓冲区中的块重写 autoprewarm.blocks,从而忘记了我们在预热时尚未处理的任何块。这似乎很不方便,因为下一次数据库启动将不会有预期的预热效果。修复使其在初始加载尝试完成之前关闭时,不修改文件。根据 John Thompson 的 bug #16784。回溯到引入 autoprewarm 代码的 v11 版本。讨论:https://postgr.es/m/16785-c0207d8c67fb5f25@postgresql.org https://git.postgresql.org/pg/commitdiff/ff769831e081a4e69147019128a849ced43ec802
改进客户端关于立即停止情况的错误消息。到目前为止,如果 DBA 发出“pg_ctl stop -m immediate”,发送给客户端的消息与崩溃-重启情况的消息相同。这是令人困惑的,尤其是因为消息声称数据库很快就会再次启动,而这是我们无法预测的。改进此事,以便我们能为这两种情况生成不同的消息(并识别临时 SIGQUIT,以防有人尝试)。为此,向 pmsignal.c 的共享内存数据结构添加一个字段,postmaster 在向其子进程广播 SIGQUIT 之前设置该字段。似乎不需要互斥锁;中间的信号发送和接收足以序列化对该字段的访问。因此,这并不比现有的 pmsignal.c 用法更危险。将来我们可能会将此想法扩展到改进其他 postmaster-to-children 信号场景,尽管目前没有一个场景像 SIGQUIT 那样被严重过度使用。讨论:https://postgr.es/m/559291.1608587013@sss.pgh.pa.us https://git.postgresql.org/pg/commitdiff/7e784d1dc191be24480a6b31a4ddc8e0e52be24d
修复关闭和未启动的后台 worker 之间的竞态条件。如果在一个进程决定请求一个新的后台 worker 和 postmaster 能够启动该 worker 之间发出了数据库关闭(智能或快速)命令,那么什么都不会发生,因为 postmaster 在退出 PM_RUN 状态后不会启动任何 bgworker。这没关系……除非请求进程正在等待该 worker 完成(甚至只是等待它启动);在这种情况下,请求者将卡住,并且只有手动干预才能使我们能够关闭。为了修复,在 postmaster 发送关闭(SIGTERM)信号时取消待处理的 worker 请求,并在之后收到的任何新请求点取消。 (我们可以通过仅对有等待者的 worker 进行取消来稍微优化一下。)为了符合现有的 bgworker API,将“取消”处理为 worker 已启动并立即停止,从而取消 bgworker 条目的注册。等待进程无论如何都需要处理过早的 worker 退出,所以这不应该引入比之前更糟糕的 bug。我们确实有一个副作用,即可重启 bgworker 的注册记录可能会在理论上应该保留到位的情况下消失;但由于我们正在关闭,这应该无关紧要。回溯到 v10。将其也放入 9.6 可能有价值,但那里的 bgworker 管理方式略有不同(特别是参见 8ff518699),我不敢肯定验证该分支的补丁是否值得。讨论:https://postgr.es/m/661570.1608673226@sss.pgh.pa.us https://git.postgresql.org/pg/commitdiff/7519bd16d1a2a2007b3604f6740611c0b75a6cd0
避免日志轮转测试中与时间相关的失败。Buildfarm 成员 pogona 和 petalura 在 pg_ctl/t/004_logrotate.pl 在本地午夜前启动时出现失败。默认的午夜轮转行为发生在 Perl 脚本检查 current_logfiles 之前,因此它认为它已请求的轮转已经发生……但实际上,该轮转发生在它检查之后,因此预期的日志数据进入的文件与它正在检查的文件不同。在 HEAD 中,src/test/kerberos/t/001_auth.pl 获得了类似的代码,显然有相关的失败模式。除了相当新之外,很少有 buildfarm 机器运行该测试,因此我们尚未在那里看到失败也并不奇怪。通过将 log_rotation_age = 0 来修复这两种情况,这样就不会发生基于时间的轮转。还将 004_logrotate.pl 设置 lc_messages = 'C' 的决定合并到 kerberos 测试中,希望它能在非英语的当前区域设置中工作。报告:https://buildfarm.postgresql.org/cgi-bin/show_log.pl?nm=pogona&dt=2020-12-24%2022%3A10%3A04 报告:https://buildfarm.postgresql.org/cgi-bin/show_log.pl?nm=petalura&dt=2020-02-01%2022%3A20%3A04 https://git.postgresql.org/pg/commitdiff/5c31afc49d0b62b357218b6f8b01782509ef8acd
真正修复 cipher.c 中的 dummy 实现。945083b2f 不足以消除编译器警告。 https://git.postgresql.org/pg/commitdiff/0848cf4f553bda5a9f044c56b3bec19929ee24e6
Alexander Korotkov 提交了
修复 rangetypes 统计信息中的 typalign。6df7a9698b 引入了 multirange 类型,其 typanalyze 函数与 range 类型 typanalyze 函数共享基础设施。自从 6df7a9698b 以来,统计信息中收集的类型信息是从 typcache 中填充的。但是 typalign 被错误地始终设置为 double。此 commit 修复了这个疏忽。 https://git.postgresql.org/pg/commitdiff/4e1ee79e3182256d9c8ddbc1ce9c4e8419c611ff
修复 multirange_constructor0() 中的编译器警告。讨论:https://postgr.es/m/X%2BBP8XE0UpIB6Yvh%40paquier.xyz 作者:Michael Paquier https://git.postgresql.org/pg/commitdiff/29f8f546767ebb4253f6dc37815e2d95fff9acd0
Michaël Paquier 提交
重构用于检查字符串中仅 ASCII 字符的逻辑。相同逻辑存在于 collation 命令、SASLprep 和 pgcrypto 中,因此这减少了一些代码。作者:Michael Paquier 审阅者:Stephen Frost, Heikki Linnakangas 讨论:https://postgr.es/m/X9womIn6rne6Gud2@paquier.xyz https://git.postgresql.org/pg/commitdiff/93e8ff8701a65a70ea8826bdde7fdbbd9c285477
修复 recovery_target_xid 解析的可移植性问题。该参数的解析使用了 strtoul(),这在不同平台之间不可移植。在大多数 Unix 平台,unsigned long 的大小是 64 位,而在 Windows 上是 32 位。在恢复场景中,通常依赖 txid_current() 甚至更新的 pg_current_xact_id() 的输出来获取事务 ID 以设置 recovery_target_xid。这些函数返回的值包含结果中的 epoch,一旦 epoch 递增,strtoul() 就会在 unsigned long 大小为 32 位的平台上失败。WAL 记录和 2PC 数据仅包含 32 位 XID 的信息,并且不可能有跨越一个 epoch 的 XID,因此在 epoch 递增时丢弃事务 ID 设置的高位不会影响恢复。相反,strtoul() 的使用导致平台行为不一致,具体取决于 unsigned long 的大小。此 commit 将 recovery_target_xid 的解析更改为使用 pg_strtouint64(),该函数可向下支持到 9.6。有一个 TAP 测试使用 recovery_target_xid 来测试恢复,其中添加了一个基于 pg_reset{xlog,wal} 的调整来提高 XID epoch,以便测试此更改,如 Alexander Lakhin 的想法。报告者:Alexander Lakhin 讨论:https://postgr.es/m/16780-107fd0c0385b1035@postgresql.org 回溯到:9.6 https://git.postgresql.org/pg/commitdiff/6db27037b99358018353b8748719cfa9de484988
修复文档和注释中的拼写和语法错误。这修复了文档中的几个区域以及样式、语法或格式方面的一些注释。作者:Justin Pryzby 讨论:https://postgr.es/m/20201222041153.GK30237@telsasoft.com https://git.postgresql.org/pg/commitdiff/90fbf7c57df601c7e0b43ae7cf71f0f69908a7cc
Tomáš Vondra 提交了
考虑 generate_useful_gather_paths 中的未排序路径。generate_useful_gather_paths 过去会跳过未排序的路径(没有 pathkeys),但这并不必要——后来的代码实际上可以通过添加 Sort 节点来很好地处理这些路径。这显然是一个思考错误,阻止了有用计划的构建。回溯到 13 版本,其中引入了 Incremental Sort。作者:James Coleman 审阅者:Tomas Vondra 回溯到:13 讨论:https://postgr.es/m/CAAaqYe8cK3g5CfLC4w7bs=hC0mSksZC=H5M8LSchj5e5OxpTAg@mail.gmail.com https://git.postgresql.org/pg/commitdiff/f4a3c0b06250ddc8ae09b59b87cf68e9bc0d7ca1
检查 generate_useful_gather_paths 中的并行安全性。Commit ebb7ae839d 确保我们在考虑在 Gather Merge 下添加 sort 时忽略具有易变表达式的 pathkeys。事实证明,我们还需要关心 pathkeys 的并行安全性,否则我们可能会尝试排序,例如,基于相关子查询的结果(正如 Luis Roberto 的报告所演示的)。Tom Lane 的初步调查,James Coleman 的补丁。回溯到 13 版本,引入了这段代码(作为 Incremental Sort 的一部分)。报告者:Luis Roberto 作者:James Coleman 审阅者:Tomas Vondra 回溯到:13 讨论:https://postgr.es/m/622580997.37108180.1604080457319.JavaMail.zimbra%40siscobra.com.br 讨论:https://postgr.es/m/CAAaqYe8cK3g5CfLC4w7bs=hC0mSksZC=H5M8LSchj5e5OxpTAg@mail.gmail.com https://git.postgresql.org/pg/commitdiff/86b7cca72d4d0a4e043fac0a2cdd56218ff2f258
在考虑 Gather Merge 下的排序时,禁止使用 SRFs。虽然我们允许在 ORDER BY 中使用 SRFs,但扫描/连接处理不应考虑这种情况——这种排序只应发生在 ProjectSet 之上的最终 Sort 中。所以要确保我们不尝试在 Gather Merge 下添加此类排序,就像我们对易变和/或非并行安全的表达式所做的那样。回溯到 PostgreSQL 13 版本,其中此代码作为 Incremental Sort 补丁的一部分被引入。作者:James Coleman 审阅者:Tomas Vondra 回溯到:13 讨论:https://postgr.es/m/CAAaqYe8cK3g5CfLC4w7bs=hC0mSksZC=H5M8LSchj5e5OxpTAg@mail.gmail.com 讨论:https://postgr.es/m/295524.1606246314%40sss.pgh.pa.us https://git.postgresql.org/pg/commitdiff/fac1b470a9f7e846534620b78ea4cf122ed432b2
在 find_em_expr_usable_for_sorting_rel 中不要搜索易变表达式。虽然 prepare_sort_from_pathkeys 必须关心将易变表达式与正确的 tlist 条目匹配,但我们在 find_em_expr_usable_for_sorting_rel 中不需要这样做,因为这样的排序无论如何都必须推迟。作者:James Coleman 审阅者:Tomas Vondra 回溯到:13 讨论:https://postgr.es/m/CAAaqYe8cK3g5CfLC4w7bs%3DhC0mSksZC%3DH5M8LSchj5e5OxpTAg%40mail.gmail.com https://git.postgresql.org/pg/commitdiff/9aff4dc01fbb9e126efafd839ae8541362328f1a
改进 find_em_expr_usable_for_sorting_rel 的注释。澄清 find_em_expr_usable_for_sorting_rel 和 prepare_sort_from_pathkeys 之间的关系,即,在那些地方需要共享哪些限制。作者:James Coleman 审阅者:Tomas Vondra 回溯到:13 讨论:https://postgr.es/m/CAAaqYe8cK3g5CfLC4w7bs%3DhC0mSksZC%3DH5M8LSchj5e5OxpTAg%40mail.gmail.com https://git.postgresql.org/pg/commitdiff/1ca2eb103113d64930cf1120ba2beaaebd1076f4
Bruce Momjian 已推送
dummy commit。 https://git.postgresql.org/pg/commitdiff/6ecf488d91ceb93a8be907a24c5d8a90358534ed
将 hex_decode() 移动到 /common,以便从前端调用。这允许移除 ecpg 中 hex_decode() 的副本,并将用于即将添加的 pg_alterckey 命令。回溯到:master https://git.postgresql.org/pg/commitdiff/c3826f831e6e63e13a749fd3ab9fd7106707b549
撤销 c3826f831e commit 中从 ecpg 移除 hex_decode() 的操作。ecpglib 在某些平台上无法处理来自库的 pg_log_fatal 调用。这是由 buildfarm 报告的。如果以后移除,它需要重构并更改返回值。回溯到:master https://git.postgresql.org/pg/commitdiff/558a6e8e21367dae9a294291337be10a8a4afd0a
添加密钥管理系统。这添加了一个密钥管理系统,该系统存储(目前)两个长度为 128、192 或 256 位的数据加密密钥。数据密钥使用密钥加密密钥进行 AES256 加密,并通过 GCM 密码模式进行验证。在 initdb 时必须指定一个用于获取密钥加密密钥的命令,并且该命令将在每次数据库服务器启动时运行。新参数允许传递一个已打开终端的文件描述符。还添加了 pg_upgrade 支持。讨论:https://postgr.es/m/CA+fd4k7q5o6Nc_AaX6BcYM9yqTbC6_pnH-6nSD=54Zp6NBQTCQ@mail.gmail.com 讨论:https://postgr.es/m/20201202213814.GG20285@momjian.us 作者:Masahiko Sawada, me, Stephen Frost https://git.postgresql.org/pg/commitdiff/978f869b992f9fca343e99d6fdb71073c76e869a
修复 commit 978f869b99 的返回类型和 const 声明。这修复了非 OpenSSL 编译的情况。报告者:buildfarm member sifaka 回溯到:master https://git.postgresql.org/pg/commitdiff/945083b2f7e6c19c8921c655cac6778acb1e3e03
从补丁 978f869b99 (CFE) 中移除 uint128 要求。改用 char[16]。报告者:buildfarm member florican 回溯到:master https://git.postgresql.org/pg/commitdiff/e35b2bad1a10a8eef9c1ffb563847b9c9df0cfce
修复 commit 978f869b99 的文档和 initdb 缺失的帮助选项。报告者:Erik Rijkers 讨论:https://postgr.es/m/a27e7bb60fc4c4a1fe960f7b055ba822@xs4all.nl 回溯到:master https://git.postgresql.org/pg/commitdiff/26d60f2a6c1c93838a49ac4d685652b1bc92f547
修复 commit 978f869b99 在 cipher.c 中未返回的函数调用。报告者:buildfarm member sifaka 回溯到:master https://git.postgresql.org/pg/commitdiff/8e59813e2287db90044537b1093c0869020ffa4a
从补丁 978f869b99 中移除对 crypto 测试的无效引用。报告者:Tom Lane 讨论:https://postgr.es/m/1205031.1608925990@sss.pgh.pa.us 回溯到:master https://git.postgresql.org/pg/commitdiff/f234899353f8998bdbd265125ce4a505a312d910
添加 pg_alterckey 工具以更改集群密钥。这可以更改用于加密集群文件加密的数据加密密钥。讨论:https://postgr.es/m/20201202213814.GG20285@momjian.us 回溯到:master https://git.postgresql.org/pg/commitdiff/62afb42a7f9f533efc6c19f462c3a848fa4ddb63
允许 ssl_passphrase_command 提示终端。以前该命令无法访问终端以获取密码。回溯到:master https://git.postgresql.org/pg/commitdiff/300e430c76644b483f70bc833d6251a6a7fb84a6
修复 commit 978f869b99 在前端 Win32 代码中的函数调用拼写错误。报告者:buildfarm member walleye 回溯到:master https://git.postgresql.org/pg/commitdiff/7705f8ca03713457bf7cde0b859a1ab45e4f268b
pg_alterckey:调整文档构建和 Win32 sleep/open 构建失败。修复 commit 62afb42a7f。报告者:Tom Lane 讨论:https://postgr.es/m/1252111.1608953815@sss.pgh.pa.us 回溯到:master https://git.postgresql.org/pg/commitdiff/82f8c45be551a2940e3cbaf08aa7a521bdac8331
doc:修复 commit 62afb42a7f 的 pg_alterckey 的 SGML 标记。回溯到:master https://git.postgresql.org/pg/commitdiff/3d4843babce087ae8dc734aeec36db084001a0e4
添加用于检索集群文件加密密钥的脚本。脚本包括 passphrase、direct、AWS 以及两个 Yubikey 脚本。回溯到:master https://git.postgresql.org/pg/commitdiff/d7602afa2ef6d8b2018103dccd89e75b4985ac06
pg_alterckey:从 Makefile 中移除 TAP 检查规则。报告者:Pavel Stehule, Michael Paquier 讨论:https://postgr.es/m/CAFj8pRBRNo4co5bqCx4BLx1ZZ45Z_T-opPxA+u7SLp7gAtBpNA@mail.gmail.com 回溯到:master https://git.postgresql.org/pg/commitdiff/e174a6f1937248886e124cdb68408e727aeea278
auth 命令:在 Makefile 中列出要安装的特定命令。以前我使用 Makefile 函数。回溯到:master https://git.postgresql.org/pg/commitdiff/ba6725df364cd30e068ccd962fa426d9b7b44066
initdb:文档说明 -K 需要参数。报告者:"Shinoda, Noriyoshi" 讨论:https://postgr.es/m/TU4PR8401MB1152E92B4D44C81E496D6032EEDB0@TU4PR8401MB1152.NAMPRD84.PROD.OUTLOOK.COM 作者:"Shinoda, Noriyoshi" 回溯到:msater https://git.postgresql.org/pg/commitdiff/ccbe34139b7d9059f4af3405b2411f653cc2ce7c
Noah Misch 推送
Jeff Davis 推送
修复 Disk-based Hash Aggregation 中的 bug #16784。在处理元组之前,agg_refill_hash_table() 将所有 pergroup 指针设置为 NULL,以向 advance_aggregates() 发出信号,表明它不应尝试推进已溢出的组。问题是它还将 sorted grouping sets 的 pergroups 设置为 NULL,这导致重新扫描失败。改为,让 agg_refill_hash_table() 只将 hashed grouping sets 的 pergroups 设置为 NULL;并在编译表达式时,传递 doSort=false。报告者:Alexander Lakhin 讨论:https://postgr.es/m/16784-7ff169bf2c3d1588%40postgresql.org 回溯到:13 https://git.postgresql.org/pg/commitdiff/05c0258966b502fae1bd63dcbe74d52f5c6f6948
根据 buildfarm 稳定 05c02589 中引入的测试。顺便,使大小写与文件其余部分匹配。报告者:Tom Lane https://git.postgresql.org/pg/commitdiff/fa0fdf0510df1a21f42ac9f232f77a79b8577152
Kyotaro HORIGUCHI 提交了统计信息收集器使用共享内存而不是文件进行中间存储的补丁的另一个版本。
Kyotaro HORIGUCHI 提交了修复几何数据类型 NaN 处理的补丁的另一个版本。
Masahiko Sawada 提交了一个补丁,以确保在创建扩展时创建的模式在扩展被删除时也被删除。
Justin Pryzby 提交了两个补丁版本,用于向 pg_dump 添加 zstd 压缩。
Peter Smith 提交了五个补丁版本,允许表同步 worker 使用多个事务。
Bharath Rupireddy 和 Michaël Paquier 交换了补丁,以便在 CTAS/CMV 中,如果关系已存在,则快速失败。
Konstantin Knizhnik 和 Pavel Stěhule 交换了补丁,添加了一个可用于事件触发器的登录事件。
Bharath Rupireddy 提交了四个补丁版本,用于在 CTAS 中使用并行插入。
Zeng Wenjing 发送了另一个版本的补丁,用于实现全局临时表。
Amit Langote 提交了另一个补丁版本,用于创建分区表的外键触发器,并使用它们在跨分区更新期间正确强制执行外键。
Amit Langote 提交了另一个补丁版本,用于延迟初始化结果关系信息。
Thomas Munro 提交了另一个补丁版本,提供同步 scatter/gather I/O 例程,pg_preadv() 和 pg_pwritev(),它们对应于有这些功能的系统的 preadv() 和 pwritev(),并使用向量 I/O 来清零 WAL 段。
Peter Geoghegan 提交了一个用于 instrument heap_compute_xid_horizon_for_tuples() 的补丁。
David Rowley 提交了另一个补丁版本,以减少 Windows 上 contrib 的构建特殊情况。
Yugo Nagata 发送了另一个补丁修订版,用于实现物化视图的增量维护。
Michaël Paquier 和 Justin Pryzby 交换了补丁,允许 CLUSTER、VACUUM FULL 和 REINDEX 动态更改表空间。
Masahiko Sawada 提交了一个补丁,用于添加一个新的 IndexAM API 来控制索引 vacuum 策略。
Fujii Masao 提交了两个补丁版本,用于修复 recovery_conflict_lock 死锁。
Amit Kapila 和 Kirk Jamison 交换了补丁,使用 dlist 更高效地删除 relation buffers。
Pavel Stěhule 发送了两个额外版本的补丁,用于实现模式变量。
Dmitry Dolgov 提交了两个补丁版本,用于 JSONB 的新下标基础设施。
Michaël Paquier 提交了一个补丁,用于清理 makefiles 中的一些 -I$(libpq_srcdir)。
Craig Ringer 提交了一个补丁,为 PostgresNode 实例添加了一个 $node->gdb_backends() 方法。
Andrey V. Lepikhov 提交了另一个补丁版本,通过在 FDW API 中实现一些新方法:BeginForeignCopy、EndForeignCopy 和 ExecForeignCopy,来加速带有外国分区的表的 COPY FROM。
Justin Pryzby 提交了另一个补丁版本,用于让 pg_ls_*() 显示目录和共享文件集。
Simon Riggs 提交了一个补丁,添加了一个布尔值 GUC transaction_cleanup,默认为 off,它旨在替换连接池等中的 DISCARD ALL 用法。
Ajin Cherian 提交了另一个补丁版本,用于实现两阶段事务的逻辑解码。
Fujii Masao 和 Bharath Rupireddy 交换了补丁,旨在修复一个 bug,该 bug 表现为 postgres_fdw 在关联的用户映射被删除时出现连接泄漏,方法是关闭无效连接(要么在它们不在事务中时在 pgfdw_inval_callback() 中,要么在 pgfdw_xact_callback() 中,该回调在每个事务结束时被调用,一旦注册,在当前会话中)。
Li Japin 提交了一个补丁,以更好地记录流复制协议。
Thomas Munro 提交了另一个补丁版本,用于实现 WAL 的预取。
Bharath Rupireddy 提交了另一个补丁版本,用于为多重插入和单次插入添加新的表 AM。
Kyotaro HORIGUCHI 提交了另一个补丁版本,使得在不重写堆的情况下更改表持久性成为可能,并添加了一个新命令:ALTER TABLE ALL IN TABLESPACE SET LOGGED/UNLOGGED。
Kyotaro HORIGUCHI 提交了一个 pg_waldump 的补丁,该补丁限制了开头显示的行数。
Masahiro Ikeda 提交了另一个补丁版本,用于向 pg_stat_wal 视图添加 WAL 写入/fsync 统计信息。
Nikita Glukhov 提交了另一个补丁版本,用于添加 SQL/JSON 函数。
Nikita Glukhov 提交了另一个补丁版本,用于实现 JSON_TABLE。
Dilip Kumar 和 Andrey Borodin 交换了补丁,用于实现自定义表压缩方法。
Dmitry Dolgov 提交了另一个补丁版本,用于防止 ArrayExpr 中所有元素的乱序。
Andrey Borodin 提交了另一个补丁版本,用于重新组织 pglz 压缩代码以提高效率。这获得了约 1.4 倍的速度提升。
Julien Rouhaud 提交了另一个补丁版本,用于向 pg_stat_statements 添加一个布尔列 toplevel。
Fabien COELHO 提交了一个补丁,将表访问方法作为选项添加到 pgbench。
Justin Pryzby 提交了另一个补丁版本,用于添加一个 pg_upgrade 测试,以检查核心数据类型的二进制兼容性。
Alexander Korotkov 提交了一个补丁,用于修复 multirange_bsearch_match() 的比较函数中的 bug,实现检查范围是否包含 multirange 的运算符,通过添加 const 限定词(如果适用)并用 range typecache 参数替换 multirange typecache 参数来改进内部 multirange 函数的签名,为 multiranges 添加 GiST 索引,并为现有的 range GiST 索引添加对 multirange 匹配的支持。
Justin Pryzby 提交了另一个补丁版本,用于修复最新文档中的拼写错误和进行一些文字润色。