本周人物:https://postgresql.life/post/corey_huinker/
pgstats.dev 上的可观测性图已更新。https://pgstats.dev/
https://archives.postgresql.org/pgsql-jobs/2021-05/
Planet PostgreSQL:https://planet.postgresql.org/
本周 PostgreSQL 周报由 David Fetter 提供。
请在太平洋标准时间(PST8PDT)周日晚上3:00之前将新闻和公告发送至 david@fetter.org。
Tom Lane 提交
更新 rewriteTargetListIU() 的注释。该函数在触发器可更新视图上执行 UPDATE 时的行为,之前是类比 preptlist.c 对普通表执行 UPDATE 时所做的操作来证明其合理性的。由于 preptlist.c 自 86dc90056 以来不再执行此操作,因此该论证已不再合理,更不用说令人信服了。我认为我们仍然需要它以这种方式工作,因此更新注释以解释原因。https://git.postgresql.org/pg/commitdiff/08a986966524e522914b96e4398a4bebf942b298
文档:记录 EXTRACT(JULIAN ...),改进儒略日数解释。出于某种原因,“julian”选项 for extract()/date_part() 从未在手册中列出。另外,虽然附录 B 顺带提及我们不符合儒略日数从中午 UTC 开始的通常天文定义,但它对我们实际操作是什么却相当含糊。对此进行澄清,并添加一个示例,说明如果您想要天文定义,如何获得它。这种情况已经存在很久了,所以回溯到所有受支持的分支。讨论:https://postgr.es/m/1197050.1619123213@sss.pgh.pa.us https://git.postgresql.org/pg/commitdiff/79a5928ebcb726b7061bf265b5c6990e835e8c4f
删除 rewriteTargetListIU() 对 UPDATE 中视图目标列表的展开。添加视图触发器的提交 2ec993a7c 修改了重写器,为用户在 UPDATE 视图时实际未更新的任何列添加了虚拟条目,例如“SET x = x”。当时需要这样做,以便生成一个完整的“NEW”行传递给触发器。后来发现这对普通可更新视图造成了问题,因此提交 cab5dc5da 将其限制为仅在触发器可更新视图上发生。但在 86dc90056 之后,我们实际上根本不需要它了。nodeModifyTable.c 从为视图生成的整行变量中填充触发器的“OLD”行,然后使用该旧行和 UPDATE 目标列表计算“NEW”行。因此,UPDATE 目标列表不需要虚拟条目,就像普通表或其他类型视图不需要虚拟条目一样。(rewriteTargetListIU() 的注释表明我们必须这样做才能正确展开规则中的 NEW 引用,但我现在认为这只是 2ec993a7c 中懒惰的注释编辑。如果我们之前在没有触发器的情况下对视图的规则不需要这样做,那么之后也不需要。)这基本上将 86dc90056 关于我们不需要虚拟列更新的决定推广到了视图情况。除了使不同情况更加统一,从而可能避免未来的错误外,它应该可以节省一些重写器/规划器的工作。讨论:https://postgr.es/m/2181213.1619397634@sss.pgh.pa.us https://git.postgresql.org/pg/commitdiff/04942bffd0aa9bd0d143d99b473342eb9ecee88b
文档:修正关于如何获取真实儒略日期的讨论。不知何故,我曾认为旋转到 UTC-12 是获取真实儒略日期的正确方法,但在进一步审阅后,我确定是 UTC+12。讨论:https://postgr.es/m/1197050.1619123213@sss.pgh.pa.us https://git.postgresql.org/pg/commitdiff/c93f8f3b8d3bc780892e2bf11192fbdd136fddfe
在服务器中添加启发式入站消息大小限制。我们收到过一个报告,称客户端的一个 bug 发送了垃圾数据到服务器,导致服务器行为混乱:服务器认为垃圾数据是很大的消息长度,然后耐心等待从未到达的数据。通过不那么信任消息长度,我们可以降低风险。很长一段时间以来,libpq 一直有一个启发式规则,它不会相信很大的消息大小字,除了少数预期(可能)很长的消息类型。这提供了一些防御措施,以应对消息边界同步丢失和其他损坏数据的情况。服务器也做类似的事情,只是到目前为止,它只限制了连接认证阶段接收的消息长度。让我们采取与 libpq 相同的做法,并对所有消息的允许长度进行限制,同时区分预期很长的消息类型和不长的消息类型。我为非长消息设置了 10000 字节的限制。(libpq 对应的限制是 30000 字节,但考虑到 FE/BE 协议的非对称性,数字相同没有好理由。)实验表明,这至少是实际需要的 10 倍,可能 100 倍;但充足的余量似乎是可取的,以避免误报。无论如何,我们可以根据 beta 测试结果调整限制。对于长消息,将限制设置为 MaxAllocSize - 1,这是我们能吸收进消息收集所在的 StringInfo 缓冲区中的最大值。这仅仅是为了确保错误的消息大小被报告为错误,而不是关于无法扩展字符串缓冲区的令人困惑的抱怨。在进行此操作时,请确保非主线代码路径(例如 COPY FROM STDIN)像 SocketBackend 一样多疑,并在相信消息长度之前验证消息类型代码。这提供了额外的保护,以防止因损坏的输入而卡住。讨论:https://postgr.es/m/2003757.1619373089@sss.pgh.pa.us https://git.postgresql.org/pg/commitdiff/9626325da5e8e23ff90091bc96535495d350f06e
修复 pg_upgrade 测试中关于不可升级类型的更多遗漏。提交 29aeda6e4 等修复了一些疏忽,包括未检查容器类型(如数组和范围)内的不可升级类型。然而,我只查看了 version.c,未能注意到 check.c 中存在实质上等效的测试。(这些文件之间的职责划分不是很清晰…)此外,由于 genbki.pl 不能保证自动生成的行类型 OID 在版本之间保持稳定,因此我们需要考虑系统目录或视图关联的复合类型是不可升级的。用户列不太可能声明为这样,但如果他们这样做了,尝试在另一个 PG 版本中读取它可能会由于复合 Datums 中嵌入的类型 OID 而导致“no such pg_type OID”失败。为了支持复合类型和 reg* 类型的情况,扩展递归查询以允许任何返回 pg_type OID 列的基本查询,而不是将其限制为只有一个起始类型。与之前一样,回溯到所有支持的分支。讨论:https://postgr.es/m/2798740.1619622555@sss.pgh.pa.us https://git.postgresql.org/pg/commitdiff/57c081de0afcd01bf47c46f015bf8886b01c2c21
改进 pg_upgrade 失败报告的措辞。不要主张删除整个表,而删除列就足够了。在进行此操作时,尝试使这些消息的布局更清晰、更一致。根据 Daniel Gustafsson 的建议。不回溯,因为我们通常不喜欢在已发布的版本分支中更改可翻译的消息。讨论:https://postgr.es/m/2798740.1619622555@sss.pgh.pa.us https://git.postgresql.org/pg/commitdiff/c9c37ae03fea0c8ad467392ddf03940b61974935
禁止通过 fastpath API 调用除普通函数外的任何函数。拒绝聚合函数、窗口函数和过程。聚合函数无论如何都会失败,尽管错误消息有些晦涩。窗口函数会触发一个断言或空指针解引用。过程似乎可以工作,只要你不尝试进行事务控制,但是(a)事务控制是过程的目的之一,并且(b)不完全清楚该路径上没有隐藏的错误。考虑到该区域的测试不足,最好保守地支持我们支持的范围。还拒绝 proretset 函数,因为 fastpath 协议不支持返回集合。还删除了一个容易触发的断言,即给定的 OID 不是 0;后续查找可以自行处理这种情况。根据 Theodor-Arsenij Larionov-Trichkin 的报告。回溯到所有支持的分支。(过程角度仅适用于 v11+。)讨论:https://postgr.es/m/2039442.1615317309@sss.pgh.pa.us https://git.postgresql.org/pg/commitdiff/2efcd502e56a528f75ec8e88c02a287ad3457d77
文档:更新 libpq 的 PQfn() 文档。特别提到不能通过此方式调用聚合函数、窗口函数或过程(SRF 的不可调用性已提及)。此外,关于 PQfn 不支持 NULL 参数或结果的说法自从我们发明协议 3.0 以来就是谎言。不知道为什么这段文字从未更新,但现在进行更新。讨论:https://postgr.es/m/2039442.1615317309@sss.pgh.pa.us https://git.postgresql.org/pg/commitdiff/386e64ea5abf346d887c21ea8869317838ba19b5
文档:在 ddl.sgml 中添加一个自引用外键的示例。虽然我们一直允许这种情况,但文档中并未说明可以这样做。讨论:https://postgr.es/m/161969805833.690.13680986983883602407@wrigleys.postgresql.org https://git.postgresql.org/pg/commitdiff/e6f9539dc32473793c03cbe95bc099ee0a199c73
Amit Kapila 提交
修复 reorderbuffer.c 中的拼写错误。作者:Peter Smith 讨论:https://postgr.es/m/CAHut+PtvzuYY0zu=dVRK_WVz5WGos1+otZWgEWqjha1ncoSRag@mail.gmail.com https://git.postgresql.org/pg/commitdiff/6d2e87a077b3c2394e4adb8eb226b3dcfe3f3346
避免在解码时多次发送 prepare。我们为并发中止的事务发送 prepare,以便稍后当 rollback prepared 被解码并发送时,下游应该能够回滚该事务。对于“流式传输”情况(当我们在进行中的事务中发送更改时),当检测到并发中止时,我们会发送两次 prepare。作者:Peter Smith 审阅者:Amit Kapila 讨论:https://postgr.es/m/f82133c6-6055-b400-7922-97dae9f2b50b@enterprisedb.com https://git.postgresql.org/pg/commitdiff/f25a4584c6f56f3407f8f8734c78f2a87e4b77e8
修复同步提交模式下 TRUNCATE 的逻辑复制。TRUNCATE 操作会获取目标关系和索引的独占锁。然后它等待操作的逻辑复制在提交时完成。现在,由于我们在 pgoutput 中获取目标索引的共享锁以获取索引属性,而此时我们正在发送 TRUNCATE 操作的更改,这会导致死锁。实际上,我们在构建索引缓存条目时使用历史快照,并且所有后续更改都会在解码 WAL 时被吸收,因此我们不需要获取目标索引的锁。所以,我们编写了一个用于逻辑复制的专用函数,以获取副本标识属性编号的位图,从而在不锁定目标索引的情况下获取该信息。我们决定不回溯此更改,因为自 v11 中的提交 5dfd1e5a 引入以来,似乎没有用户抱怨此问题。报告者:Tang Haiying 作者:Osumi Takamichi,测试用例由 Li Japin 提供 审阅者:Amit Kapila,Ajin Cherian 讨论:https://postgr.es/m/OS0PR01MB6113C2499C7DC70EE55ADB82FB759@OS0PR01MB6113.jpnprd01.prod.outlook.com https://git.postgresql.org/pg/commitdiff/e7eea52b2d61917fbbdac7f3f895e4ef636e935b
使用 HTAB 进行复制槽统计信息。之前,我们使用大小为 max_replication_slots 的数组来存储复制槽的统计信息。但在删除槽的消息丢失的情况下,这有两个问题:1) 如果数组已满,则新槽的统计信息不会被记录,2) 如果用户减小 max_replication_slots,则写入数组末尾之外。此提交使用 HTAB 进行复制槽统计信息,解决了这两个问题。现在,pgstat_vacuum_stat() 在统计信息哈希表中搜索所有已删除的复制槽,并通知收集器删除它们。为了避免显示已删除槽的统计信息,pg_stat_replication_slots 视图通过来自 pg_replication_slots 的槽名称来搜索槽统计信息。此外,我们在槽创建时发送一个创建槽的消息,初始化统计信息。这减少了在槽删除的消息丢失时,统计信息累积到旧槽统计信息的可能性。报告者:Andres Freund 作者:Sawada Masahiko,测试用例由 Vignesh C 提供 审阅者:Amit Kapila,Vignesh C,Dilip Kumar 讨论:https://postgr.es/m/20210319185247.ldebgpdaxsowiflw@alap3.anarazel.de https://git.postgresql.org/pg/commitdiff/3fa17d37716f978f80dfcdab4e7c73f3a24e7a48
再次尝试修复提交 f5fc2f5b23 添加的测试用例。根据分析,之前的测试中的“drop slot”消息和新测试中的“create slot”消息要么丢失,要么尚未传递给统计信息收集器,因此我们仍然会看到旧槽的统计信息。这种情况可能很少发生,这可能是我们在 buildfarm 中随机出现一些失败的原因。为了避免这种情况,我们在 test_decoding/sql/stats.sql 中为测试使用了不同的槽名称。报告者:Tom Lane(基于 buildfarm 报告) 作者:Sawada Masahiko 审阅者:Amit Kapila,Vignesh C 讨论:https://postgr.es/m/20210319185247.ldebgpdaxsowiflw@alap3.anarazel.de https://git.postgresql.org/pg/commitdiff/51ef9173030cc196c6633ae82b7b32f404b0f768
修复流式传输事务选择中的错误。存在两个问题:a. 我们总是选择下一个可用的事务,而不是在它大于前一个事务时选择它。b. 我们选择未对数据库进行任何更改的事务(未设置基快照)。之后,由于我们不解码此类事务,而事务中的更改保持不变,因此会触发一个断言。最好一开始就不要选择此类事务进行流式传输。报告者:Tang Haiying 作者:Dilip Kumar 审阅者:Amit Kapila 讨论:https://postgr.es/m/OS0PR01MB61133B94E63177040F7ECDA1FB429@OS0PR01MB6113.jpnprd01.prod.outlook.com https://git.postgresql.org/pg/commitdiff/ee4ba01dbbc31daa083f434ecd603a80bbe50501
Peter Eisentraut 提交
删除未使用的函数参数。该参数在初始提交 257836a75585934cc05ed7a80bccf8190d41e056 中已经未使用。显然,它在早期提出的补丁版本中使用过。https://git.postgresql.org/pg/commitdiff/3cbea581c76e86d51b8f2babf116e643847e7712
修复 Cygwin 上的 pg_upgrade 测试。权限验证在 Cygwin 上不成功,因为目前未为 Cygwin 实现所需的功能。因此,跳过此测试部分,就像 MinGW 已经做的那样。https://git.postgresql.org/pg/commitdiff/38c9a5938ac5e1409b42677fee970a12632852ee
pg_hba.conf.sample:改写连接类型部分。稍微改进 pg_hba.conf.sample 中连接类型部分措辞。在添加了 hostgssenc 部分之后,整个内容变得有些冗长,而且有些不准确,例如当前关于“host”的措辞似乎表明它不适用于 GSS 加密连接。讨论:https://postgresql.ac.cn/message-id/flat/fc06dcc5-513f-e944-cd07-ba51dd7c6916%40enterprisedb.com https://git.postgresql.org/pg/commitdiff/3a948ea0a2ced719f26e725b030558f2e4ab1d8e
psql:修复不平衡括号的行延续提示。这被 e717a9a18b2e34c9c40e5259ad4d31cd7e420750 中的一个低级错误破坏了。报告者:Jeff Janes jeff.janes@gmail.com 作者:Justin Pryzby pryzby@telsasoft.com 讨论:https://postgresql.ac.cn/message-id/CAMkU=1zKGWEJdBbYKw7Tn7cJmYR_UjgdcXTPDqJj=dNwCETBCQ@mail.gmail.com https://git.postgresql.org/pg/commitdiff/d9a9f4b4b92ad39e3c4e6600dc61d5603ddd6e24
Michaël Paquier 提交
为逻辑复制的分区添加更多带有触发器的测试。逻辑复制工作程序使用的元组路由逻辑可以触发属于分区树的关联上的触发器,但该领域没有测试覆盖。现有的脚本 003_constraints.pl 包含了一些内容,但当元组应用于订阅服务器上的分区表时,则没有。作者:Amit Langote 讨论:https://postgr.es/m/OS0PR01MB611383FA0FE92EB9DE21946AFB769@OS0PR01MB6113.jpnprd01.prod.outlook.com https://git.postgresql.org/pg/commitdiff/2ecfeda3e916f2a1123f818018d9d35908a499ac
修复 pg_identify_object_as_address() 与事件触发器配合使用的问题。尝试使用此函数与事件触发器配合使用时会失败,因为自 a676201 引入以来,此代码从未将对象名称与事件触发器关联。通过将事件触发器的名称添加到定义其对象地址的集合中,可以解决此问题。请注意,回归测试是在 event_trigger 中添加的,而不是 object_address,以避免在并行计划中出现并发连接问题。作者:Joel Jacobson 讨论:https://postgr.es/m/3c905e77-a026-46ae-8835-c3f6cd1d24c8@www.fastmail.com 回溯到:9.6 https://git.postgresql.org/pg/commitdiff/f7aab36d61fd2fdbd949d5880247e8cae9ee4be0
修复 pg_identify_object_as_address() 的使用后释放问题。由 buildfarm 成员 prion 和 -DRELCACHE_FORCE_RELEASE 发现。f7aab36 引入。讨论:https://postgr.es/m/2759018.1619577848@sss.pgh.pa.us 回溯到:9.6 https://git.postgresql.org/pg/commitdiff/f93f0b5b25068807051edb2f3510614b69bb79ff
文档:修正 target_session_attrs=prefer-standby 的描述。如果在提供的连接点集中找不到备用服务器,则回退行为是“any”,而不是不存在的“all”。作者:Greg Nancarrow 审阅者:Laurenz Albe 讨论:https://postgr.es/m/CAJcOf-fDaCv8qCpWH7k5Yh6zFxZeUwZowu4sCWQ2zFx4CdkHpA@mail.gmail.com https://git.postgresql.org/pg/commitdiff/2977f244bc7e64e046364122be3fef08aa6efef9
Álvaro Herrera 提交
psql:为 ALTER ... DETACH CONCURRENTLY / FINALIZE 添加 tab 补全。根据 71f4c8c6f74b 添加了新关键字。讨论:https://postgr.es/m/20210422204035.GA25929@alvherre.pgsql https://git.postgresql.org/pg/commitdiff/6dd1042eda0acdabaab352c19b783288de62b587
允许缓存省略分区的 partdesc。这使得在分区正在分离的过程中,获取分区描述符的速度更快。它还增加了一个限制,即一个分区表只能有一个处于待分离状态的分区。同时,将 find_inheritance_children() API 恢复到 71f4c8c6f74b 之前的状态,并创建一个单独的 find_inheritance_children_extended(),返回关于已分离分区的详细信息。(这顺带修复了 8aba9322511 中的一个 bug,其中保存瞬时 partdesc 的内存上下文被重新父化到 NULL PortalContext,导致该内存永久泄漏。修复方法是不再依赖将上下文重新父化到 PortalContext。由 Amit Langote 报告。)根据 Amit Langote 的意见讨论:https://postgr.es/m/CA+HiwqFgpP1LxJZOBYGt9rpvTjXXkg5qG2+Xch2Z1Q7KrqZR1A@mail.gmail.com https://git.postgresql.org/pg/commitdiff/d6b8d29419df0efad57f95c80b871745d1b55da6
改进关于分区表 default_tablespace 的文档。回溯到 12 版本,其中 87259588d0ab 引入了当前行为。根据 Justin Pryzby 的说明。合著:Justin Pryzby pryzby@telsasoft.com 讨论:https://postgr.es/m/20210416143135.GI3315@telsasoft.com https://git.postgresql.org/pg/commitdiff/94b9cb722552c37da78c8320bac1d5b55e34def6
Fujii Masao 提交
不要将 TRUNCATE 中指定的“ONLY”选项传递给外部数据包装器。提交 8ff1c94649 允许 TRUNCATE 命令截断外部表。以前,TRUNCATE 命令中指定的“ONLY”选项的信息会被传递给外部数据包装器。然后 postgres_fdw 会构造一个 TRUNCATE 命令来在远程服务器上执行,并根据传递的信息包含“ONLY”选项。另一方面,“ONLY”选项在 SELECT、UPDATE 或 DELETE 中访问或修改远程表时无效,即不传递给外部数据包装器。因此,仅让 TRUNCATE 命令将“ONLY”选项传递给外部数据包装器是不一致的。因此,此提交更改 TRUNCATE 命令,使其不将“ONLY”选项传递给外部数据包装器,以与其他语句保持一致。此提交还更改了 postgres_fdw,使其在构造 TRUNCATE 命令时始终不包含“ONLY”选项。作者:Fujii Masao 审阅者:Bharath Rupireddy, Kyotaro Horiguchi, Justin Pryzby, Zhihong Yu 讨论:https://postgr.es/m/551ed8c1-f531-818b-664a-2cecdab99cd8@oss.nttdata.com https://git.postgresql.org/pg/commitdiff/8e9ea08bae93a754d5075b7bc9c0b2bc71958bfd
文档:审查“允许 TRUNCATE 命令截断外部表”。文档中的拼写错误、修正和语言改进。作者:Justin Pryzby, Fujii Masao 审阅者:Bharath Rupireddy, Justin Pryzby, Fujii Masao 讨论:https://postgr.es/m/20210411041658.GB14564@telsasoft.com https://git.postgresql.org/pg/commitdiff/0c8f40863acb94963df9fd6a4369eb71efe9a93b
Andrew Dunstan 推送
perldoc overload:第三个参数设置为 TRUE,当且仅当两个操作数被交换时。Perl 这样做是为了确保第一个参数($self)是一个实现重载操作的对象,符合一般的对象调用约定。https://git.postgresql.org/pg/commitdiff/fa26eba221a9e837493df47d0255ce615129e9a8David Rowley 提交
Bruce Momjian 已推送
Bharath Rupireddy 提交了一个补丁,将 BLCKSZ 而不是 pageSize 传递给 gistinitpage,使其与对等项 BloomInitPage、brin_page_init 和 SpGistInitPage 对齐。
Yugo Nagata 提交了该补丁的另外两个修订版,用于实现增量视图维护。
Peter Eisentraut 提交了该补丁的又一个修订版,用于修复 ALTER TABLE / INHERIT 与生成列的问题。
Tang 提交了该补丁的又一个修订版,用于在 psql 中支持大写字符输入的查询结果 tab 补全。
Tom Lane 提交了一个补丁,用于删除重写器中一些无用的工作。
Andrey V. Lepikhov 提交了一个补丁,用于在不扫描外部分区时避免不必要的工作。
Masahiro Ikeda 提交了该补丁的又一个修订版,用于在不引入新变量的情况下加快 WAL 统计信息的报告速度,并将 XXXUsage 的数据类型从 long 改为 int64。
Michaël Paquier 提交了一个补丁,用于在 pg_stat_activity 中跟踪已认证的身份,现在已具备日志记录功能。
Mark Dilger 和 Robert Haas 交换了补丁,用于修改 toast 并测试 pg_amcheck,以及修改 toast 损坏测试的预期输出。
Vigneshwaran C 和 Bharath Rupireddy 交换了补丁,用于增强错误消息,为冗余选项错误添加提示信息。
Ajin Cherian 发送了另一个修订版的补丁,用于跳过逻辑复制的空事务。
Bharath Rupireddy 提交了一个补丁,用于检查 CREATE COLLATION 命令中的重复选项并报错。
Andrey V. Lepikhov 提交了该补丁的又一个修订版,用于修复执行器和异步追加节点之间的一个不协调之处。
Andres Freund 提交了一个补丁,用于修复 REFRESH MATERIALIZED VIEW 的性能下降问题。
David Fetter 和 Aleksander Alekseev 交换了补丁,以确保 ALTER TABLE ... VALIDATE CONSTRAINT ... 的 tab 补全仅能补全尚未验证的约束。
Joel Jacobson 和 Michaël Paquier 交换了补丁,以确保 pg_identify_object_as_address() 支持 pg_event_trigger oids。
Vigneshwaran C、Masahiko Sawada 和 Amit Kapila 交换了补丁,用于修复 'total_bytes' 槽统计信息的计算,该计算可能因使用事务解码更改的大小来计算而导致重复计数。通过使用事务解码的更改大小来计算。
Hou Zhijie 提交了该补丁的又一个修订版,用于实现 { CREATE | ALTER } TABLE ... PARALLEL DML { UNSAFE | RESTRICTED | SAFE };
Kyotaro HORIGUCHI 提交了该补丁的又一个修订版,用于修复一些可疑的错误消息和注释。
David Christensen 提交了该补丁的又一个修订版,用于扩展 pg_size_bytes 支持的单位,以覆盖所有单位。
Tom Lane 提交了一个补丁,旨在修复一个 bug,该 bug 表现为 pg_upgrade 无法检测到不支持的数组和范围,通过检查复合类型的用法。
Hou Zhijie 提交了该补丁的又一个修订版,用于修复一些并行安全检查。
Peter Geoghegan 提交了一个补丁,旨在修复一个 bug,该 bug 在使用 lazy_scan_heap() 时报告了“FailedAssertion”,这是在运行逻辑复制时发生的,方法是在 lazy_scan_heap 中将 all_visible_according_to_vm 设置为 false。
Amul Sul 提交了一个补丁,用于隐藏 EXPLAIN 中的内部临时模式名称,并更改相同的表描述。
Peter Smith 提交了该补丁的又一个修订版,用于为内置逻辑复制添加对准备好的事务的支持,并为流式传输事务添加 prepare API 支持。
Vaibhav Dalvi 提交了一个补丁,用于删除 pg_upgrade 中 quote_identifier 函数中一个不必要的后置增量。
Richard Yen 提交了该补丁的三个修订版,用于使 pg_filedump 能够读取 pg_filenode.map。
Vigneshwaran C 提交了一个补丁,用于在从磁盘恢复 reorder buffer 更改时包含 xid。
Álvaro Herrera 提交了该补丁的又一个修订版,用于修复一个 bug,该 bug 表现为 InvalidateObsoleteReplicationSlots() 中的竞态条件。
Peter Eisentraut 提交了该补丁的又一个修订版,用于防止 lwlock dtrace 探针进行不必要的工作。
Álvaro Herrera 提交了该补丁的又一个修订版,用于从 transformCreateStmt 中删除一个冗余变量。
Thomas Munro 提交了一个补丁,用于为套接字关闭事件添加 WL_SOCKET_CLOSED,并为 client_connection_check_interval 使用 WL_SOCKET_CLOSED。
Amit Kapila 提交了一个补丁,用于在解码过程中收紧并发中止检查,涵盖了检测 ERRCODE_TRANSACTION_ROLLBACK 未能覆盖的情况。
Andres Freund 提交了一个补丁,以帮助即将到来的 WAL 预取补丁正常工作。
David Rowley 提交了该补丁的又一个修订版,用于在 SMgr 中使用 simplehash.h 哈希表。
Justin Pryzby 提交了该补丁的又一个修订版,用于添加允许测试从 v9.5-v13 升级到 v14dev 所需的更改,添加更多允许升级测试所需的更改,添加一个测试来运行二进制兼容性,并将 pg_upgrade 的临时解决方案移到一个 SQL 脚本中。
Julien Rouhaud 提交了一个补丁,用于为可扩展解析添加钩子。
Tom Lane 提交了该补丁的两个修订版,用于修复由新的全匹配代码引起的正则表达式性能回归。
Vigneshwaran C 提交了该补丁的另外两个修订版,用于在 CREATE/ALTER SUBSCRIPTION 时识别发布者中丢失的出版物。
Alexander Korotkov 提交了该补丁的四个修订版,用于使 websearch_to_tsquery() 将引号中的文本解析为单个标记。
Noah Misch 提交了该补丁的又一个修订版,用于转储 public 模式的所有权和安全标签,并转储 COMMENT ON SCHEMA public。