本周人物: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 为您带来
请在太平洋标准时间/太平洋夏令时周日下午 3:00 前将新闻和公告提交至 david@fetter.org。
Tom Lane 推送了
更新 rewriteTargetListIU() 的注释。该函数对于触发器可更新视图的 UPDATE 的行为,是类比 preptlist.c 过去对常规表的 UPDATE 所做的行为来解释的。由于 preptlist.c 自 86dc90056 以来就没有这样做过,因此该论点不再合理,更不用说具有说服力了。我认为我们仍然需要它以这种方式运行,因此更新注释以解释原因。https://git.postgresql.org/pg/commitdiff/08a986966524e522914b96e4398a4bebf942b298
文档:记录 EXTRACT(JULIAN ...),改进儒略日期解释。出于某种原因,extract()/date_part() 的“julian”选项从未在手册中列出。此外,虽然附录 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 tlist 不需要虚拟条目,就像它不需要它们用于常规表或其他类型的视图一样。(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
在服务器中添加启发式入站消息大小限制。我们收到了一份关于客户端错误导致令人困惑的服务器行为的报告:服务器认为垃圾数据是非常长的消息长度,并耐心等待永远不会出现的数据。我们可以通过减少对消息长度的信任来降低这种风险。长期以来,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 不保证自动生成的 rowtype OID 在不同版本之间保持不变,我们需要考虑与系统目录或视图关联的复合类型是不可升级的。似乎不太可能有人声明用户列是这样的,但如果他们这样做了,由于嵌入在复合 Datum 中的类型 OID,尝试在另一个 PG 版本中读取它可能会出现“没有这样的 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)。此外,自我们发明协议 3.0 以来,PQfn 不支持 NULL 参数或结果的说法一直是一个谎言。不确定为什么这段文字从未对此进行更新,但现在就更新它。讨论: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。我们为并发中止的 xact 发送 prepare,以便稍后当回滚 prepare 被解码和发送时,下游应该能够回滚这样的 xact。对于“流式”情况(当我们发送正在进行的事务的更改时),当检测到并发中止时,我们会发送两次 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 提交引入此问题以来,似乎没有任何关于此问题的字段投诉。报告者:Haiying Tang 作者:Takamichi Osumi,测试用例由 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
再次尝试修复 commit f5fc2f5b23 添加的测试用例。根据分析,之前的测试中的“删除槽”消息和新测试中的“创建槽”消息要么丢失,要么尚未传递给统计信息收集器,因此我们仍然会看到来自旧槽的统计信息。这种情况可能很少发生,这可能是我们在构建场中随机看到一些故障的原因。为了避免这种情况,我们在 test_decoding/sql/stats.sql 中的测试中使用不同的槽名称。报告者:Tom Lane,基于构建场报告。作者:Sawada Masahiko。审核者:Amit Kapila,Vignesh C。讨论:https://postgr.es/m/20210319185247.ldebgpdaxsowiflw@alap3.anarazel.de https://git.postgresql.org/pg/commitdiff/51ef9173030cc196c6633ae82b7b32f404b0f768
修复选择用于流式传输的事务中的错误。存在两个问题:a. 我们总是选择下一个可用的事务,而不是在它大于前一个事务时选择它。b. 我们选择没有对数据库进行任何更改的事务(未设置基本快照)。之后,它会触发断言,因为我们不解码此类事务,并且事务中的更改保持不变。最好不要首先选择此类事务进行流式传输。报告者:Haiying Tang。作者: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() 中的释放后使用问题。由构建场成员 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。每个 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 中的一个错误,其中持有瞬态 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”选项传递给外部数据包装器。Commit 8ff1c94649 允许 TRUNCATE 命令截断外部表。以前,有关 TRUNCATE 命令中指定的“ONLY”选项的信息会传递给外部数据包装器。然后,postgres_fdw 根据传递的信息构造 TRUNCATE 命令以发出远程服务器,并在其中包含“ONLY”选项。另一方面,在访问或修改远程表时,SELECT、UPDATE 或 DELETE 中指定的“ONLY”选项不起作用,即不传递给外部数据包装器。因此,仅让 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,藤井正雄。审阅人:Bharath Rupireddy,Justin Pryzby,藤井正雄。讨论: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 中使用查询结果对大写字符输入进行制表符补全。
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 ... 的制表符补全仅补全尚未有效的约束。
Joel Jacobson 和 Michaël Paquier 交换了补丁,以确保 pg_identify_object_as_address() 支持 pg_event_trigger oids。
Vigneshwaran C,Masahiko Sawada 和 Amit Kapila 交换了补丁,以修复“total_bytes”的槽统计信息的计算,该计算可能会多次计算内容,方法是使用为事务解码的更改大小来计算它。
侯志杰发送了另一个修订版的补丁,以实现 { CREATE | ALTER } TABLE ... PARALLEL DML { UNSAFE | RESTRICTED | SAFE };
Kyotaro HORIGUCHI 发送了另一个修订版的补丁,以修复一些可疑的错误消息和注释。
David Christensen 发送了另一个修订版的补丁,以扩展 pg_size_bytes 中支持的单位以覆盖所有单位。
Tom Lane 发送了一个补丁,旨在修复一个错误,该错误表现为 pg_upgrade 未能通过检查复合类型的使用来检测不受支持的数组和范围。
侯志杰发送了另一个修订版的补丁,以修复一些并行安全检查。
Peter Geoghegan 发送了一个补丁,旨在修复一个错误,该错误表现为在运行逻辑复制时通过在 lazy_scan_heap 中将 all_visible_according_to_vm 设置为 false 而在 lazy_scan_heap() 中报告“FailedAssertion”。
Amul Sul 发送了一个补丁,以隐藏 EXPLAIN 中的内部临时模式名称,并更改相同模式的表描述。
Peter Smith 发送了另一个修订版的补丁,以添加对内置逻辑复制的预处理事务的支持,并添加对流事务的准备 API 支持。
Vaibhav Dalvi 发送了一个补丁,以删除 pg_upgrade 的函数 quote_identifier 中不需要的后增量。
Richard Yen 发送了三个修订版的补丁,以使 pg_filedump 可以读取 pg_filenode.map。
Vigneshwaran C 发送了一个补丁,以在从磁盘还原重新排序缓冲区更改时包含 xid。
Álvaro Herrera 发送了另一个修订版的补丁,以修复一个错误,该错误表现为 InvalidateObsoleteReplicationSlots() 中的竞争条件。
Peter Eisentraut 发送了另一个修订版的补丁,以防止 lwlock dtrace 探针进行不必要的工作。
Álvaro Herrera 发送了另一个修订版的补丁,以从 transformCreateStmt 中删除一个冗余变量。
Thomas Munro 发送了一个补丁,为套接字关闭事件添加 WL_SOCKET_CLOSED,并将 WL_SOCKET_CLOSED 用于 client_connection_check_interval。
Amit Kapila 发送了一个补丁,通过涵盖检测 ERRCODE_TRANSACTION_ROLLBACK 没有的情况,来加强解码期间的并发中止检查。
Andres Freund 发送了一个补丁,以帮助使即将到来的 WAL 预取补丁正常工作。
David Rowley 发送了另一个修订版的补丁,以在 SMgr 中使用 simplehash.h 哈希表。
Justin Pryzby 发送了另一个修订版的补丁,以添加允许从 v9.5-v13 测试升级到 v14dev 所需的更改,添加允许升级测试所需的更多更改,添加一个测试以进行二进制兼容性,并将 pg_upgrade kludge 移动到 SQL 脚本中。
Julien Rouhaud 发送了一个补丁,以添加可扩展解析的钩子。
Tom Lane 发送了两个修订版的补丁,以修复由新的匹配所有代码引起的正则表达式性能下降问题。
Vigneshwaran C 发送了另外两个修订版的补丁,以在 CREATE/ALTER SUBSCRIPTION 期间从发布者识别缺失的发布。
Alexander Korotkov 发送了四个修订版的补丁,以使 websearch_to_tsquery() 将引号中的文本解析为单个标记。
Noah Misch 发送了另一个修订版的补丁,以转储公共模式所有权和安全标签,并转储 COMMENT ON SCHEMA public。