pg_dbms_job 1.0.1,一个用于创建、管理和使用 Oracle 风格的 DBMS_JOB 计划作业的扩展,已发布。
dbMigration .NET v14.4,一个数据库迁移和同步工具,已发布。
WAL-G 1.1,一个用 Go 编写的 PostgreSQL 和其他数据库的备份管理系统,已发布。
pglogical 2.4.0,一个基于逻辑 WAL 的 PostgreSQL 复制系统,已发布。
Crunchy PostgreSQL Operator 5.0.0,一个用于在 Kubernetes 上部署和管理开源 PostgreSQL 集群的系统,已发布。
set_user
2.0.1,一个允许使用增强的日志记录和控制进行特权提升的扩展,已发布
AGE 0.5.0,一个提供图数据库功能的 PostgreSQL 扩展,已发布
pg_msvc_generator 1.0.0 beta,一个用于制作扩展的 Windows 版本的工具,已发布。
https://archives.postgresql.org/pgsql-jobs/2021-08/
Planet PostgreSQL:https://planet.postgresql.org/
本周的 PostgreSQL 每周新闻由 David Fetter 为您带来
请在太平洋标准时间下午 3:00 前(PST8PDT)将新闻和公告提交至 david@fetter.org。
Michaël Paquier 推送了
修复备份清单以在时间线之间生成正确的 WAL 范围。在备份清单中,WAL 范围存储备份有效所需的 WAL 范围。然后,pg_verifybackup 将在内部使用 pg_waldump 基于此数据进行检查。当备份开始的时间线大于 1,并且查看历史文件以生成清单数据时,要检查的第一个时间线的 WAL 范围计算不正确。先前的逻辑使用第一个时间线的起始位置作为起始 LSN,但它需要使用备份的起始 LSN。这会导致 pg_verifybackup 或任何使用备份清单的工具失败。此提交添加了一个基于使用自我提升节点的逻辑的测试,使其相当廉价。作者:Kyotaro Horiguchi 讨论:https://postgr.es/m/20210818.143031.1867083699202617521.horikyota.ntt@gmail.com 向后移植:13 https://git.postgresql.org/pg/commitdiff/a3fcbcda7505e9079cec95e7209cde4f5d5c8bd8
在 psql 中为 EXPLAIN .. EXECUTE 添加 Tab 补全。作者:Dagfinn Ilmari Mannsåker 讨论:https://posgr.es/m/871r75gd0i.fsf@wibble.ilmari.org https://git.postgresql.org/pg/commitdiff/34651131348dfb60be124b3c1dfe92d09a94494f
修复 ECPG 代码中 DECLARE 的不正确合并。在比较现有声明的语句使用的连接与来自新的 DECLARE 语句的连接时,重复了两次相同的条件。这没有造成任何后果,但让我们保持代码的整洁。f576de1 中的疏忽。作者:Shenhao Wang 讨论:https://postgr.es/m/OSBPR01MB42149653BC0AB0A49D23C1B8F2C69@OSBPR01MB4214.jpnprd01.prod.outlook.com 向后移植:14 https://git.postgresql.org/pg/commitdiff/1387925a488eb002b59f3b7f58855a4b711b6415
Bruce Momjian 推送了
Álvaro Herrera 推送了
避免过早创建存档状态“.ready”文件。WAL 记录可能跨越多个段,但 XLogWrite() 在将整个记录写入磁盘之前不会等待。相反,一旦写入了段的最后一个 WAL 页,就会创建存档状态文件,并且存档器可能会对其进行处理。如果 PostgreSQL 在能够写入和刷新记录的其余部分(在下一个 WAL 段中)之前崩溃,则第一个段文件的错误版本会保留在存档中,这会导致诸如时间点还原之类的操作失败。为了解决这个问题,请跟踪跨段的记录,并确保只有在将此类记录完全写入磁盘后,才将段标记为准备好进行存档。这始终是错误的,所以请全部向后移植。作者:Nathan Bossart bossartn@amazon.com 审阅人:Kyotaro Horiguchi horikyota.ntt@gmail.com 审阅人:Ryo Matsumura matsumura.ryo@fujitsu.com 审阅人:Andrey Borodin x4mmm@yandex-team.ru 讨论:https://postgr.es/m/CBDDFA01-6E40-46BB-9F98-9340F4379505@amazon.com https://git.postgresql.org/pg/commitdiff/515e3d84a0b58b58eb30194209d2bc47ed349f5b
psql \dP:使用“pg_catalog.”前缀引用 regclass。严格来说,这不是一个错误,但由于对目录对象的所有引用都限定了架构,我们不妨保持一致。此省略首次出现在提交 1c5d9270e339 中,因此向后移植到 12。作者:Justin Pryzby pryzbyj@telsasoft.com 讨论:https://postgr.es/m/20210827193151.GN26465@telsasoft.com https://git.postgresql.org/pg/commitdiff/fc40ba1296a7d4aee7bd975be9925c74c8073dfe
psql \dX:使用“pg_catalog.”前缀引用 regclass。提交 fc40ba1296a7 的既视感,用于另一个反斜杠命令。严格来说,这不是一个错误,但由于对目录对象的所有引用都限定了架构,我们不妨保持一致。此省略首次出现在提交 ad600bba0422 中,并在 a4d75c86bf15 中复制;向后移植到 14。作者:Justin Pryzby pryzbyj@telsasoft.com 讨论:https://postgr.es/m/20210827193151.GN26465@telsasoft.com https://git.postgresql.org/pg/commitdiff/1f092a309eeecd097938bacc201c779574ced3b6
保持分区表的统计信息最新。在对分区表进行分析的长期过程中,我在还原 0827e8af70f4 时错过了一件事,即维护分区表的分析计数和上次分析时间。这是一个非常小的更改,使用户可以评估是否需要在分区表上手动调用 ANALYZE。此补丁由 Justin 发布,并由我(Álvaro)进行了一些修改,主要可以追溯到 Hosoya-san,尽管使用剪刀引入的任何问题都是我的。向后移植到 14,与 6f8127b73901 一致。共同作者:Yuzuko Hosoya yuzukohosoya@gmail.com 共同作者:Justin Pryzby pryzby@telsasoft.com 共同作者:Álvaro Herrera alvherre@alvh.no-ip.org 报告人:Justin Pryzby pryzby@telsasoft.com 讨论:https://postgr.es/m/20210816222810.GE10479@telsasoft.com https://git.postgresql.org/pg/commitdiff/375aed36ad83f0e021e9bdd3a0034c0c992c66dc
Tom Lane 推送了
防止正则表达式反向引用有时在不应该匹配时匹配。cdissect() 中的递归在拒绝部分匹配后,对清除捕获括号的匹配数据不小心。这可能允许稍后的反向引用在按理应因缺乏定义的引用而失败时成功。要修复此问题,请更严格地考虑 cdissect 的不同递归级别之间的协定应该是什么。有了正确的规范,我们可以通过减少而不是更多次重置匹配数据来解决此问题;关键的决定是,失败的子匹配现在明确负责清除它可能设置的任何匹配。代码中存在足够多的其他交叉检查和优化,因此不容易展示此问题;通常,匹配将按预期失败。此外,即使是潜在易受攻击的正则表达式也最可能是用户错误,因为编写一个并非总是有引用的反向引用毫无意义。这些事实或许可以解释为什么没有检测到该问题,尽管它几乎可以肯定有几十年历史了。讨论:https://postgr.es/m/151435.1629733387@sss.pgh.pa.us https://git.postgresql.org/pg/commitdiff/9bbf6f7341f2b5a8ce41d838154380faa7346101
修复正则表达式在 "{0}" 内使用捕获括号时的错误行为。像 "(.){0}...\1" 这样的正则表达式会引发“无效的后向引用编号”错误。从表面上看,这并非不合理,因为如果捕获组迭代零次,它将永远不会被匹配。然而,像 Perl 这样的其他引擎并不会对此报错,并且对于相关情况(例如 "(.)|\1")我们也不会抛出错误,即使该后向引用也永远无法成功匹配。此外,如果零次迭代的情况发生在运行时而不是编译时 --- 例如,当没有找到 "x"
时的 "(x)*...\1"
--- 这也不是一个错误,我们只是认为后向引用不匹配。更令人难以辩解的是,对于嵌套的情况(例如 "((.)){0}...\2")没有抛出错误;更糟糕的是,这些情况可能会导致断言失败。(似乎在非断言构建中没有发生特别糟糕的情况。)让我们修复它,使其不抛出错误,而是认为后向引用永远不匹配,从而使编译时检测到的零次迭代行为与运行时检测到的行为相同。根据 Mark Dilger 的报告。这似乎是 Spencer 库中一个原始错误,因此需要向所有支持的版本进行回溯修复。对于 v14 之前的版本,事实证明还需要回溯修复提交 cb76fbd7e/00116dee5 的一个方面,即使用其子表达式的开始/结束状态创建捕获节点子正则表达式,而不是外部 parseqatom 调用的当前 lp/rp。否则 delsub 会抱怨我们试图将一个状态从自身断开。这有点可怕,但是代码检查表明它是安全的:在 v14 之前的代码中,如果我们想在子表达式周围包装迭代,我们做的第一件事是用新状态覆盖原子结构的开始/结束字段。因此,这些伪造的值没有存活足够长的时间来用于任何用途,除非不需要迭代,在这种情况下,它无关紧要。讨论:https://postgr.es/m/A099E4A8-4377-4C64-A98C-3DEDDC075502@enterprisedb.com https://git.postgresql.org/pg/commitdiff/65dc30ced64cd17f3800ff1b73ab1d358e92efd8
移除冗余的测试。条件 “context_start < context_end” 严格弱于 “context_end - context_start >= 50”,因此我们不需要同时使用这两个条件。这是提交 ffd3944ab 中的疏忽,由 tanghy.fnst 指出。顺便说一下,对附近的测试进行换行以使其更具可读性。讨论:https://postgr.es/m/OS0PR01MB61137C4054774F44E3A9DC89FBC69@OS0PR01MB6113.jpnprd01.prod.outlook.com https://git.postgresql.org/pg/commitdiff/373e08a9f771e724efd3bd29f78c39515792dcf3
更诚实地处理正则表达式的 makesearch 和 MATCHALL 之间的交互。对提交 824bf7190 的重新思考:在确定它是否为 MATCHALL 模式后,我们将 makesearch() 应用于 NFA。前置 ".*"
不会使其成为非 MATCHALL 模式,但它会更改最大可能的匹配长度,而 makesearch() 未能更新该长度。考虑到搜索 NFA 的程式化用法,这不会产生不良影响,但保持数据结构的一致性似乎更好。特别是,修复此问题可以更诚实地处理 matchuntil() 中的 MATCHALL 检查:我们现在可以断言 maxmatchall 是无穷大,而不是草率地假设它应该以这种方式工作。顺便说一下,改进 dump[c]nfa 中的代码,以便将无限的 maxmatchall 打印为 "inf" 而不是幻数。https://git.postgresql.org/pg/commitdiff/8f72becd6b9484fbb429651d8859faa36532a35a
在 pg_stat 统计信息中计算 SP-GiST 索引扫描。不知何故,spgist 忽略了调用 pgstat_count_index_scan() 的需要。因此,pg_stat_all_indexes.idx_scan 和等效列对于 SP-GiST 索引永远不会变为非零值,尽管相关的每个元组计数器工作正常。此修复的工作方式与其他索引 AM 略有不同,即计数器增量发生在 spgrescan 而不是 spggettuple/spggetbitmap 中。看起来这不会使用户可见的语义产生明显的差异,因此我不会费力引入一个 is-this-the-first-call 标志来使计数器增长发生在相同的位置。根据 Christian Quest 的错误 #17163。回溯修复到所有支持的版本。讨论:https://postgr.es/m/17163-b8c5cc88322a5e92@postgresql.org https://git.postgresql.org/pg/commitdiff/3778bcb39a94a3b6a821fd60fcd9919a95725e78
文档:在 src/backend/regex/README 中添加一些关于 LACON 执行的内容。我在考虑可能的优化时编写了此内容,但无论是否最终进行优化,它都是对现有代码的有用描述。因此单独推送它。https://git.postgresql.org/pg/commitdiff/10d58228bb1c824c5124ecd1b6c5e46a3c157a39
Amit Kapila 推送
修复 Alter Subscription 的 Add/Drop Publication 行为。当前的刷新行为尝试仅刷新添加/删除的发布,但这会导致从订阅中删除错误的表。我们不能仅刷新已删除的发布,因为很可能此时某些表已从发布中删除,而这些表现在仍将作为订阅的一部分保留。此外,属于正在删除的发布的表也有可能属于另一个发布,因此我们不能删除这些表。因此,我们决定默认情况下,添加/删除命令也将像 REFRESH PUBLICATION 一样工作,这意味着它们将刷新所有发布。我们可以保留 “添加发布” 的旧行为,但最好与 “删除发布” 保持一致。作者:Hou Zhijie 审阅人:Masahiko Sawada, Amit Kapila 回溯修复到:14,该行为是在 14 版本中引入的。讨论:https://postgr.es/m/OS0PR01MB5716935D4C2CC85A6143073F94EF9@OS0PR01MB5716.jpnprd01.prod.outlook.com https://git.postgresql.org/pg/commitdiff/1046a69b3087a6417e85cae9b6bc76caa22f913b
修复逻辑解码中的 TOAST 重写。提交 325f2ec555 引入了 pg_class.relwrite,以跳过在 DDL 期间作为堆重写一部分创建的表上的操作。它通过 pg_class 中的这个新字段将这种瞬态堆链接到原始关系 OID,但忘记对 TOAST 表进行任何处理。因此,逻辑解码无法跳过在内部创建的 TOAST 表上的操作。当我们尝试解码下一个操作的 WAL 时,这会导致错误,因为该操作似乎有一个 TOAST 数据,而实际上它没有任何 TOAST 数据。为了解决这个问题,我们还为内部创建的 TOAST 表设置了 pg_class.relwrite,这允许在逻辑解码期间跳过对它们的操作。作者:Bertrand Drouvot 审阅人:David Zhang, Amit Kapila 回溯修复到:11,该行为是在 11 版本中引入的。讨论:https://postgr.es/m/b5146fb1-ad9e-7d6e-f980-98ed68744a7c@amazon.com https://git.postgresql.org/pg/commitdiff/29b5905470285bf730f6fe7cc5ddb3513d0e6945
向逻辑复制工作器的错误上下文添加逻辑更改详细信息。之前,在订阅端,我们为元组数据转换失败设置了错误上下文回调。此提交将现有的错误上下文回调替换为全面的回调,以便它不仅显示数据转换失败的详细信息,还显示应用工作器或表同步工作器正在应用的逻辑更改的详细信息。显示的附加信息将是命令、事务 ID 和时间戳。只有在应用更改时才会将错误上下文添加到错误中,而不会在执行接收数据等其他工作时添加。这将帮助用户诊断逻辑复制期间出现的问题。它还可以用于将来允许在订阅端跳过特定事务的工作。作者:Masahiko Sawada 审阅人:Hou Zhijie, Greg Nancarrow, Haiying Tang, Amit Kapila 测试人:Haiying Tang 讨论:https://postgr.es/m/CAD21AoDeScrsHhLyEPYqN3sydg6PxAPVBboK=30xJfUVihNZDA@mail.gmail.com https://git.postgresql.org/pg/commitdiff/abc0910e2e0adfc5a17e035465ee31242e32c4fc
藤井正雄推送
ecpg:从错误消息中删除尾随句点。此提交改进了提交 f576de1db1 更新的 ecpg 的错误消息,使其删除尾随句点并在错误消息中将命令名称大写。作者:Kyotaro Horiguchi 审阅人:Fujii Masao 讨论:https://postgr.es/m/20210819.170315.1413060634876301811.horikyota.ntt@gmail.com https://git.postgresql.org/pg/commitdiff/71fee6cfaca35208d266c172e63b76d37df88b77
改进关于短语运算符中距离的有效值的错误消息。短语运算符中的距离必须是介于零和 MAXENTRYPOS(包括)之间的整数值。但是,以前关于其有效值的错误消息仅包含关于其上限的信息,而不包含下限(即零)。此提交改进了错误消息,使其也包含关于其下限的信息。回溯修复到支持全文短语搜索的 v9.6。作者:Kyotaro Horiguchi 审阅人:Fujii Masao 讨论:https://postgr.es/m/20210819.170315.1413060634876301811.horikyota.ntt@gmail.com https://git.postgresql.org/pg/commitdiff/085400fee9d58d7a97976755ae0627ef072e3776
避免在错误消息中使用模棱两可的词 “positive”。在 PostgreSQL 源代码中,关于哈希分区模数的有效值有两条相同的错误消息。提交 0e1275fb07 仅改进了其中一条错误消息,以避免使用模棱两可的词 “positive”,而忘记改进另一条。此提交改进了另一条错误消息,这将减少翻译人员的负担。回溯修复到存在此错误消息的 v11。作者:Kyotaro Horiguchi 审阅人:Fujii Masao 讨论:https://postgr.es/m/20210819.170315.1413060634876301811.horikyota.ntt@gmail.com https://git.postgresql.org/pg/commitdiff/170aec63cd7139b453c52ad52bbeb83993faa31d
Etsuro Fujita 推送
Peter Eisentraut 推送
修复拼写错误。https://git.postgresql.org/pg/commitdiff/bb9ff46bc4e659a865deaeb1b9aeac8d1ff4d36f
psql:使取消测试在时间上更健壮。之前的代码依赖于 PID 文件的出现和查询 “足够快” 地启动,这在较慢的机器上可能会失败。此外,报警和 IPC::Run 之间可能存在未记录的干扰。此新代码不依赖于任何这些并发机制。相反,我们先等待 PID 文件完成,然后再等待服务器注册休眠查询。讨论:https://postgresql.ac.cn/message-id/flat/E1mH14Q-0002gh-HS%40gemulon.postgresql.org https://git.postgresql.org/pg/commitdiff/43d4dd87977d5ed66961605649d61973caf80f40
修复 RelationGetNumberOfBlocksInFork() 中对分区索引的处理。由于分区索引没有存储,从中获取块的数量不会给出有意义的结果。现有的调用者已经检查过他们不会以这种方式调用它,所以似乎没有实际的问题。但是为了正确性,将 RELKIND_PARTITIONED_INDEX 与其他非存储 relkinds 一起处理。审核人:Michael Paquier michael@paquier.xyz 审核人:Alvaro Herrera alvherre@alvh.no-ip.org 讨论: https://postgresql.ac.cn/message-id/1d3a5fbe-f48b-8bea-80da-9a5c4244aef9@enterprisedb.com https://git.postgresql.org/pg/commitdiff/0d906b2c0b1f0d625ff63d9ace906556b1c66a68
将 Texinfo 输出更改为 UTF-8。由于整个文档工具链现在是 UTF-8,并且文本中越来越多的非 ISO-8859-1 字符,因此将 Texinfo 输出保持为 ISO 8859-1 只会造成不必要的复杂性。根据平台的不同,会出现转换失败,从而导致构建失败,或者出现奇怪的转换字符。通过将输出更改为 UTF-8,可以避开整个编码转换过程。https://git.postgresql.org/pg/commitdiff/e2799528d4f232f8d5fcbddb04629d73f7b342c9
Robert Haas 推送了
John Naylor 推送了
将 unicode_combining_table 重命名为 unicode_width_table。没有功能上的变化。未来的提交会将此表用于组合字符以外的其他目的。https://git.postgresql.org/pg/commitdiff/eb0d0d2c7300c9c5c22b35975c11265aa4becc84
更改 mbbisearch 以返回字符范围。向 mbinterval 添加一个 width 字段,并让 mbbisearch 返回指向找到的范围的指针,而不仅仅是成功时的布尔值。未来的提交将添加另一个非零的宽度,这将允许它使用相同的搜索。审核人:Jacob Champion 讨论:https://postgresql.ac.cn/message-id/CAFBsxsGOCpzV7c-f3a8ADsA1n4uZ%3D8puCctQp%2Bx7W0vgkv%3Dw%2Bg%40mail.gmail.com https://git.postgresql.org/pg/commitdiff/78ab944cd4b9977732becd9d0bc83223b88af9a2
还原“更改 mbbisearch 以返回字符范围”。这将还原提交 78ab944cd4b9977732becd9d0bc83223b88af9a2。在我提交 eb0d0d2c7 和 78ab944cd 之后,我决定为“不可能发生”的情况添加一个健全性检查,以保持谨慎。结果发现,它已经发生在官方 Unicode 源数据中,即一个字符既可以是宽字符又可以是组合字符。这一事实使得上述提交变得不必要,因此将它们都还原。讨论:https://postgresql.ac.cn/message-id/CAFBsxsH5ejH4-1xaTLpSK8vWoK1m6fA1JBtTM6jmBsLfmDki1g%40mail.gmail.com https://git.postgresql.org/pg/commitdiff/f8c8a8bccc23f6ca38f7a92c9a614e73fa1fcfb6
还原“将 unicode_combining_table 重命名为 unicode_width_table”。这将还原提交 eb0d0d2c7300c9c5c22b35975c11265aa4becc84。在我提交 eb0d0d2c7 和 78ab944cd 之后,我决定为“不可能发生”的情况添加一个健全性检查,以保持谨慎。结果发现,它已经发生在官方 Unicode 源数据中,即一个字符既可以是宽字符又可以是组合字符。这一事实使得上述提交变得不必要,因此将它们都还原。讨论:https://postgresql.ac.cn/message-id/CAFBsxsH5ejH4-1xaTLpSK8vWoK1m6fA1JBtTM6jmBsLfmDki1g%40mail.gmail.com https://git.postgresql.org/pg/commitdiff/1563ecbc1be8b8e5c57651cf5c87f90dea9aea8f
更新显示宽度作为更新 Unicode 的一部分。ucs_wcwidth() 中硬编码的“宽字符”集最后一次更新大约在 Unicode 5.0 时代。这导致在打印表情符号和其他此后被指定为宽字符或全宽字符的代码点时出现错位。为了修复并保持最新状态,扩展 update-unicode 以从官方来源下载宽字符和全宽字符代码点列表。顺便说一句,删除了一些关于非间距字符的注释,因为自从我们删除了以前的硬编码逻辑以来,这些注释就不再准确了。Jacob Champion 报告和审核人:Pavel Stehule 讨论:https://postgresql.ac.cn/message-id/flat/CAFj8pRCeX21O69YHxmykYySYyprZAqrKWWg0KoGKdjgqcGyygg@mail.gmail.com https://git.postgresql.org/pg/commitdiff/bab982161e0590746a2fd2a03043b27108b23ac6
将 Unicode 组合字符的集合扩展到 BMP 之外。以前的限制可能是从较旧的手工编码表中继承下来的。自从提交 bab982161 以来,我们在 mbinterval 中有足够的空间来存储更大的代码点,因此收集所有组合字符。讨论:https://postgresql.ac.cn/message-id/49ad1fa0-174e-c901-b14c-c484b60907f1%40enterprisedb.com https://git.postgresql.org/pg/commitdiff/5bc429aacb3722e55638a776332eebfa88dd60e5
Peter Geoghegan 推送了
contrib/amcheck:添加 heapam CHECK_FOR_INTERRUPTS()。添加一个 CHECK_FOR_INTERRUPTS() 调用,使堆关系验证能够响应查询取消。作者:Mark Dilger mark.dilger@enterprisedb.com 讨论:https://postgr.es/m/CAH2-Wzk-9RtQgb2QiuLv8j2O0j9tSFKPmmch5nWSZhguUxvbrw%40mail.gmail.com 向后移植:14-,其中引入了 amcheck 堆验证。https://git.postgresql.org/pg/commitdiff/191dce109be3870f5800003bbee1484c8a92c9dd
vacuumlazy.c:删除不必要的括号。这可以说是提交 b4af70cb 中的一个小疏忽,该提交清理了修改 IndexBulkDeleteResult 变量的函数的函数签名。https://git.postgresql.org/pg/commitdiff/de5dcb0796e281fae0ee25ea33b915240de319f6
重新排序 log_autovacuum_min_duration 日志输出。这种顺序似乎更自然。它从特定于堆和索引数据结构的详细信息开始,并以自动清理工作进程的 VACUUM/ANALYZE 操作期间产生的系统级成本结束。作者:Peter Geoghegan pg@bowt.ie 讨论:https://postgr.es/m/CAH2-WzkzxK6ahA9xxsOftRtBX_R0swuHZsvo4QUbak1Bz7hb7Q@mail.gmail.com 向后移植:14-,它以各种方式增强了日志输出。https://git.postgresql.org/pg/commitdiff/fdfbfa24fa6ae50d9e78dd70f835146f4b40e2fb
track_io_timing 日志记录:不要特殊处理 0 毫秒。调整提交 94d13d474d 添加的与 track_io_timing 相关的日志代码。通过删除抑制零毫秒输出的逻辑,使其与其他附近的自动清理和自动分析日志代码保持一致。现在,log_autovacuum_min_duration 日志输出在其报告中可靠地显示基于毫秒的“读取:”和“写入:”值(当启用 track_io_timing 时)。作者:Peter Geoghegan pg@bowt.ie 审核人:Stephen Frost sfrost@snowman.net 讨论:https://postgr.es/m/CAH2-WznW0FNxSVQMSRazAMYNfZ6DR_gr5WE78hc6E1CBkkJpzw@mail.gmail.com 向后移植:14-,其中引入了 track_io_timing 日志记录。https://git.postgresql.org/pg/commitdiff/bda822554b96c6564911df95fcb898d6c30efe46
Daniel Gustafsson 推送了
避免在循环结构中调用 PQfnumber。在循环遍历 SQL 查询的结果集时,在循环体之前提取字段号以避免重复调用 PQfnumber 是一种既定的模式。在非常宽的表上,这可能会对性能产生影响,但在常见情况下不会很明显。这修复了一些在循环体中提取字段号的查询。作者:Hou Zhijie houzj.fnst@fujitsu.com 审核人:Nathan Bossart bossartn@amazon.com 讨论:https://postgr.es/m/OS0PR01MB57164C392783F29F6D0ECA0B94139@OS0PR01MB5716.jpnprd01.prod.outlook.com https://git.postgresql.org/pg/commitdiff/d782d5987e1022ba70171bcf3507cd87564ef23c
docs:澄清 bgw_restart_time 文档。作者:Dave Cramer davecramer@gmail.com 审核人:Tom Lane tgl@sss.pgh.pa.us 讨论:https://postgr.es/m/CADK3HHLZmqAQZ2ByPDQQ9yhGqax36kksq6sDkV0yYzsxw6ipvQ@mail.gmail.com https://git.postgresql.org/pg/commitdiff/10d2695b0cbad0ef64367d9c900ca59b9abcc80f
Stephen Frost 推送了
docs:为 SQL 命令添加命令标签。提交 6c3ffd6 添加了几个新的预定义角色,但没有使用命令标签正确包装这些角色描述中提到的 SQL 命令,因此现在添加它们。向后移植:14 报告人:Michael Banck 讨论:https://postgr.es/m/606d8b1c.1c69fb81.3df04.1a99@mx.google.com https://git.postgresql.org/pg/commitdiff/f01727290fe0c7fdf7bb5a0c2526a15db8c2c52f
对 ANALYZE 预取使用 maintenance_io_concurrency。当预取 ANALYZE 的页面时,我们应该使用 maintenance_io_concurrenty(通过调用 get_tablespace_maintenance_io_concurrency(),而不是 get_tablespace_io_concurrency())。ANALYZE 预取是在 c6fc50c 中引入的,因此向后移植到 14。向后移植:14 报告人:Egor Rogov 讨论:https://postgr.es/m/9beada99-34ce-8c95-fadb-451768d08c64%40postgrespro.ru https://git.postgresql.org/pg/commitdiff/ce42efaa2696fa74dffcbaa7d25c4ef00e93e1c0
Noah Misch 推送了