PostgreSQL 14 Beta 1 发布。 测试!
官方 IRC 频道已从 Freenode 迁移到 Libera。 详情 在此。
DBD::Pg 3.15.0,一个 PostgreSQL 的 Perl 驱动程序,已发布。
pg_back 2.0.1,一个可以将 PostgreSQL 数据库转储到文件的工具,已发布。
https://archives.postgresql.org/pgsql-jobs/2021-05/
Planet PostgreSQL:https://planet.postgresql.org/
本周 PostgreSQL 周报由 David Fetter 提供。
请在太平洋标准时间(PST8PDT)周日晚上3:00之前将新闻和公告发送至 david@fetter.org。
Bruce Momjian 已推送
文档:根据 Tom、Alvaro、Julien 的反馈更新 PG 14 发布说明。 https://git.postgresql.org/pg/commitdiff/07af57dbad589bbef9d7178d9b1cb354412e823f
文档:根据 Fujii Masao 的建议调整 PG 14 发布说明。 https://git.postgresql.org/pg/commitdiff/fe2fb9ebcae8445fdb3915ecf8402a3a887effc2
文档:为 PG 14 添加关于 vacuum_cleanup_index_scale_factor 的发布项。 https://git.postgresql.org/pg/commitdiff/2e7c17837064297f25c427d58154dce8d4287302
文档:PG 14 发布说明的 XML 标记部分完成。 https://git.postgresql.org/pg/commitdiff/6a5bde7d4f96ef153578eaeb624ae12e48b46e85
文档:为 libpq 章节添加 xreflabel,这是 PG 14 发布说明所必需的。 https://git.postgresql.org/pg/commitdiff/1e7d53bd019e9d86ef1013308715622a2e400d3b
文档:撤销 1e7d53bd01,以便可以访问 libpq 章节编号。修正 PG 14 发布说明,将 <xref> 替换为 <link>。这在提交消息 59fa7eb603 中已讨论。 https://git.postgresql.org/pg/commitdiff/4f7d1c30966cc02fd5eba2f0d51d1f53be07d457
文档:根据 Justin Pryzby 的建议修改 PG 14 发布说明。 https://git.postgresql.org/pg/commitdiff/4f586fe244a296d7c781de3f06c54755f2ae222b
文档:为 PG 14 发布说明添加更多 XML 标记。 https://git.postgresql.org/pg/commitdiff/55370f8db96c8416940ad0b05be7a00a9f059a9f
文档:完成 PG 14 发布说明的 XML 标记。 https://git.postgresql.org/pg/commitdiff/0cdaa05b40e9f28e5d6d58ccd06fe19f3cd920c9
更新 PG 14 发布说明中关于 vacuum_cost_page_miss 的内容。报告人:Peter Geoghegan 讨论:https://postgr.es/m/CAH2-WzmgSnDX9WVoxRZxuKeCy2MzLO9Dmo4+go0RzNW0VBdhmw@mail.gmail.com https://git.postgresql.org/pg/commitdiff/8dcae7f0a3d6aba1afad1599ab18d259c417b4ee
文档:PG 14 发布说明,调整 pg_{read|write}_all_data 条目。报告人:Stephen Frost 讨论:https://postgr.es/m/20210522232945.GO20766@tamriel.snowman.net https://git.postgresql.org/pg/commitdiff/7ce7d07e1c5fb33ee56bda235ae3d53f162f3bc0
文档:PG 14 发布说明的换行和缩进。 https://git.postgresql.org/pg/commitdiff/8f73ed6b659464274eb9cc8358588b569960d0be
Etsuro Fujita 推送
Magnus Hagander 已推送
修正 pg_stat_statements.toplevel 的描述措辞。在 7531fcb1fcf 中应用了错误的措辞。报告人:Fujii Masao 讨论:https://postgr.es/m/e5512912-eac9-b163-df2b-e2601ce06d27@oss.nttdata.com https://git.postgresql.org/pg/commitdiff/f9e6d00df029144fd8f4ec70c52b5a1d2444f895
移除过时的 winflex 下载引用。我们曾经在下载站点分发过 flex 的 Windows 二进制版本,但很多年都无法正常工作了。引用的“旧文档”也是针对许多年前已EOL的版本。因此,将其移除。讨论:https://postgr.es/m/CABUevEwXLJpVpab62f7AFXNWQ5=U0kvErCLq4VEsikidLyzSQg@mail.gmail.com https://git.postgresql.org/pg/commitdiff/cff8436f19e1c0c278f1ee96d450507fbd43f9ef
Peter Eisentraut 提交
翻译更新。来源 Git URL:git://git.postgresql.org/git/pgtranslation/messages.git 来源 Git 哈希:9bbd9c3714d0c76daaa806588b1fbf744aa60496 https://git.postgresql.org/pg/commitdiff/6292b83074243db94df89271842bda0877cbc4ce
将一些 psql 文档部分按字母顺序重新排列。 https://git.postgresql.org/pg/commitdiff/124966c1a35b950210e12048e64533963960febd
Tom Lane 提交
标记 14beta1。 https://git.postgresql.org/pg/commitdiff/e4f9737fac77a5cb03a84d1f4038d300ffd28afd
避免在不需要的地方创建 testtablespace 目录。最近我们重构了代码,使得 pg_regress 创建核心回归测试使用的 "testtablespace" 子目录,而不是在 makefiles 中进行。这产生了不良的副作用,即在每个包含 "input" 或 "output" 测试文件的目录中都创建了一个这样的子目录。由于这些子目录保持为空,git 不会抱怨它们,但它们仍然是杂乱的。为了解决这个问题,我们发明了一个显式的 --make-testtablespace-dir 开关,这样 pg_regress 只有在明确指示时才会创建子目录。讨论:https://postgr.es/m/2854388.1621284789@sss.pgh.pa.us https://git.postgresql.org/pg/commitdiff/413c1ef98e0c9c708c4a9a13a838a55b65b16a80
清理 cpluspluscheck 违规。 "typename" 是 C++ 的关键字,所以 pg_upgrade.h 在 C++ 中编译失败。幸运的是,似乎没有合理的理由让别人需要这样做。尽管如此,项目政策要求所有 .h 文件都应通过 cpluspluscheck,因此重命名参数以修复此问题。在 57c081de0 中疏忽;向后移植,因为那是(要求 pg_upgrade.h 通过 cpluspluscheck 的策略仅追溯到 v12,但最好让这段代码在所有分支中看起来都一样)。 https://git.postgresql.org/pg/commitdiff/6d59a218c38adf5b993200a804713df4982a0c75
避免在 plpgsql FOR 循环内的 COMMIT 后导致 detoasting 失败。 exec_for_query() 通常会尝试一次预取几行要迭代的查询,以减少执行器进入/退出的开销。不幸的是,如果在循环内有 COMMIT 或 ROLLBACK,这是不安全的,因为我们预取但尚未检查的数据中可能包含 TOAST 引用。在 COMMIT/ROLLBACK 之后,会话中没有快照,这意味着 VACUUM 可以自由删除最近删除的 TOAST 行。这最初被报告为触发 init_toast_snapshot() 中“无已知快照”错误的一个案例,但即使您没有命中该错误,也可能出现“丢失 toast 块”错误,如添加的隔离测试案例所示。为了解决这个问题,只需在非原子上下文中禁用预取。也许会有性能抱怨促使我们以后做更多工作,但目前还不清楚这是否真的有很大影响,而且我怀疑我们是否愿意回溯一个复杂的修复。顺便,调整 init_toast_snapshot() 中的错误消息,使其更清晰地说明问题的可能原因。由我根据 Konstantin Knizhnik 先前的调查进行修补。根据 Andreas Wicht 的 bug #15990。回溯到添加过程内 COMMIT 的 v11。讨论:https://postgr.es/m/15990-eee2ac466b11293d@postgresql.org https://git.postgresql.org/pg/commitdiff/f21fadafaf0fb5ea4c9622d915972651273d62ce
在过程 COMMIT/ROLLBACK 后恢复 portal 级别的快照。 COMMIT/ROLLBACK 必然会销毁会话中的所有快照。过程内事务的原始实现只是随意地这样做了,忽略了这使得我们在与正常情况截然不同的环境中执行。特别是,事实证明,toasted datum 的处理相当关键地取决于有一个外部 ActiveSnapshot:否则,当 SPI 或核心执行器弹出它们使用的快照并返回时,引用可能出现在查询结果中的 toasted datum 是不安全的。由于这种疏忽,可能导致“无已知快照”和“丢失 toast 值 N 块”错误。历史上,这个外部快照一直由 Portal 代码持有,这似乎是一个要保留的好计划。因此,在 pquery.c 中添加基础设施,允许在 Portal 拥有的快照不存在时重新建立它,并添加足够的簿记支持,以便我们能够判断它是否存在。但是,我们不能在 COMMIT/ROLLBACK 时简单地重新建立 Portal 快照。与正常事务开始一样,获取第一个快照应该等到 SET 和 LOCK 命令之后。因此,在此教 spi.c 在正确的时间执行此操作。(请注意,此修补程序无法解决不使用 SPI 执行 SQL 命令的过程内事务的 PL 问题。)这使得 SPI 的 no_snapshots 参数有些名不副实,因此在 HEAD 中,将其重命名为 allow_nonatomic。 replication/logical/worker.c 也需要一些修复,因为它在 AFTER 触发器执行周围没有小心地保持快照开放。该代码不使用 Portal,我怀疑有一天我们必须修复它。但目前,只需重新安排操作顺序。这包括回溯最近添加的 finish_estate() 以集中清理逻辑。这也回溯了 v13 中的提交 2ecfeda3e,以改进 worker.c 的测试覆盖率(是该测试暴露了 worker.c 的快照管理不正确)。根据 Andreas Wicht 的 bug #15990。回溯到添加过程内 COMMIT 的 v11。讨论:https://postgr.es/m/15990-eee2ac466b11293d@postgresql.org https://git.postgresql.org/pg/commitdiff/84f5c2908dad81e8622b0406beea580e40bb03ac
修正 GENERATED 表达式中 "tableoid" 的使用。我们认为这是支持的(尽管我对它是不是一个好主意表示怀疑,因为 tableoid 不是不可变的)。然而,几个代码路径未能及时填充该字段,导致这样的 GENERATED 表达式看到零值或错误的值。当 ALTER TABLE 向具有现有行的表添加新的 GENERATED 列时,以及在具有 GENERATED 列的外部表上进行常规 INSERT 或 UPDATE 时,都会发生这种情况。在调查 Vitaly Ustinov 的报告时发现。回溯到 GENERATED 引入的 v12。讨论:https://postgr.es/m/CAM_DEiWR2DPT6U4xb-Ehigozzd3n3G37ZB1+867zbsEVtYoJww@mail.gmail.com https://git.postgresql.org/pg/commitdiff/2b0ee126bbf01cbfd657bd53c94f9284ba903ca2
不允许在 GENERATED 表达式中使用整行变量。以前是允许的,但我认为那只是个疏忽。这明显违反了生成列不能依赖自身或其他生成列的规则。此外,由于代码依赖于不存在此类交叉引用的假设,因此很容易使 ALTER TABLE 和其他地方崩溃。即使您设法不崩溃,您也会得到非常不稳定、依赖于实现的(implementation-dependent)结果。根据 Vitaly Ustinov 的报告。回溯到 GENERATED 引入的 v12。讨论:https://postgr.es/m/CAM_DEiWR2DPT6U4xb-Ehigozzd3n3G37ZB1+867zbsEVtYoJww@mail.gmail.com https://git.postgresql.org/pg/commitdiff/4b10074453d182b5fc11a5667bab2ef8532ff3a6
移除 plpgsql 中 SET/RESET 的特殊处理代码路径。在 84f5c2908 之后,plpgsql 不再需要特殊处理 SET/RESET。这样做的目的是为了避免过早获取新的事务快照,而这现在通过 `_SPI_execute_plan()` 的常规代码路径就能很好地处理(实际上更好,因为它现在也能正确处理 LOCK)。因此,删除了几行代码,回到了将 SET/RESET 作为通用 SQL 命令处理的旧方式。这基本上回滚了 b981275b6 的所有测试用例(除了测试用例本身)。讨论:https://postgr.es/m/15990-eee2ac466b11293d@postgresql.org https://git.postgresql.org/pg/commitdiff/30168be8f75b95183abccf48f0da7a64a0cfbd9f
修复 logical-rep worker 中访问已关闭的 relcache 条目。如果我们即将复制的元组操作重定向到一个分区子表,然后尝试为该事件触发 AFTER 触发器,子表的 relation cache 条目已经被关闭。只要条目仍然存在且有效,这就不会有可见的不良影响,但一个不幸的缓存刷新可能会导致崩溃或其他错误行为。为了解决这个问题,将 ExecCleanupTupleRouting 调用(它关闭子表)推迟到触发触发器之后。这需要一些重构,以便清理函数可以访问必要的状态。在 HEAD 中,我借此机会简化了 worker.c 的一些函数 API,基于使用新的 ApplyExecutionData 结构。然而,回溯这个方面似乎不安全/不实用,至少在没有大量分析 a04daa97a 的可能交互的情况下。顺便,在 afterTriggerInvokeEvents 中添加一个 Assert 来捕获这种情况。这是值得的,因为我们已经以一些相当不结构化的方式调用 AfterTriggerEndQuery。回溯到 v13,worker.c 在那里获得了处理分区目标表的能力。讨论:https://postgr.es/m/3382681.1621381328@sss.pgh.pa.us https://git.postgresql.org/pg/commitdiff/b39630fd41f25b414d0ea9b30804f4105f2a0aff
当 postmaster 意外退出时,提供更详细的日志。当 postmaster 因启动过程失败而停止时,发出 LOG 消息。如果在 PM_STARTUP 阶段因该原因退出,已经有一条类似的日志消息,因此如果启动过程稍后失败,则没有日志消息是不一致的。当 postmaster 在崩溃后停止(因为 restart_after_crash 被禁用)时,也发出 LOG 消息。如果 DBA(或开发人员)忘记了设置,这似乎可能很有帮助。此外,这是 postmaster 在没有说明原因的情况下异常退出的唯一剩余地方。顺便,移除一个无法到达的 ExitPostmaster(0) 调用。讨论:https://postgr.es/m/194914.1621641288@sss.pgh.pa.us https://git.postgresql.org/pg/commitdiff/bc2a389efb3b52d259cefd53c16cfa00742116f2
重新排序 pg_attribute 列以消除一些填充空间。现在 attcompression 只是一个 char,它后面有很多浪费的填充空间。将其移入 char 宽度列组,以每个 pg_attribute 条目净节省 4 字节。同时,交换 attstorage 和 attalign 的顺序,以便更逻辑地分组这些列。还重新排序相关代码中的操作以匹配新的字段顺序。此修补程序还修复了一个明显的错误:equalTupleDescs() 未能比较 attcompression。例如,这可能导致 relcache 重新加载在更改后未能采用新值。Michael Paquier 和 Tom Lane,根据 Andres Freund 的抱怨。讨论:https://postgr.es/m/20210517204803.iyk5wwvwgtjcmc5w@alap3.anarazel.de https://git.postgresql.org/pg/commitdiff/f5024d8d7b04de2f5f4742ab433cc38160354861
David Rowley 提交
修正 README.barrier 中的拼写错误和过时信息。在添加原子操作时,README.barrier 似乎没有得到更新。修正此问题。作者:Tatsuo Ishii, David Rowley 讨论:https://postgr.es/m/20210516.211133.2159010194908437625.t-ishii%40sraoss.co.jp 回溯:9.6,最早支持的版本 https://git.postgresql.org/pg/commitdiff/2ded19fa3a4dafbae80245710fa371d5163bdad4
修正规划器对唯一连接(unique joins)使用结果缓存(Result Cache)的问题。当规划器考虑使用结果缓存节点来缓存嵌套循环连接(Nested Loop Join)内侧的结果时,它未能考虑到内侧路径的参数化可能不是整个连接条件。如果连接被标记为 inner_unique,那么我们可能会错误地将缓存置于 singlerow 模式。这意味着在缓存第一行后,条目将被标记为完成。这是错误的,因为如果只有部分连接条件被参数化,那么唯一连接的唯一性在结果缓存级别并不保证。唯一性只有在 Nested Loop 应用连接过滤器后才得到保证。如果找到后续行,这会导致:ERROR: cache entry already complete。这可以通过仅当整个连接条件被参数化时才将缓存置于 singlerow 模式来修复。然而,当连接是唯一的时,Nested Loop 只会读取其内侧直到第一个匹配行,所以这可能意味着我们永远没有机会将缓存条目标记为完成。由于非完成的缓存条目对后续查找无用,在这种情况下我们就不考虑结果缓存路径了。顺便,移除声称上述 ERROR 可能更适合作为 Assert 的 XXX 注释。在实际触发它的案例出现后,将其保留为 ERROR 似乎更好。报告人:David Christensen 讨论:https://postgr.es/m/CAOxo6X+dy-V58iEPFgst8ahPKEU+38NZzUuc+a7wDBZd4TrHMQ@mail.gmail.com https://git.postgresql.org/pg/commitdiff/9e215378d7fbb7d4615be917917c52f246cc6c61
Michaël Paquier 提交
Fujii Masao 提交
修复 pg_stat_wal 中的问题。1) 以前同时有 pgstat_send_wal() 和 pgstat_report_wal() 来将 WAL 活动发送到统计收集器。前者由 wal writer 使用,后者由大多数其他进程使用。它们有点冗余,因此本次提交将其合并到 pgstat_send_wal() 中以简化代码。2) 以前 WAL 全局统计计数器会被计算,然后与零填充缓冲区进行比较,以确定自上次提交以来是否发生了 WAL 活动。这些计算和比较并不便宜。即使在只读工作负载下,这也会经常执行。本次提交通过直接检查一些 WAL 活动计数器来确定是否有 WAL 活动统计信息可发送来解决此问题。3) 以前 pgstat_report_stat() 在“没有什么可做的就不进行时钟检查”的检查中,没有检查是否有 WAL 活动统计信息可发送。可能很少在没有也通过其他条件之一的情况下拥有待处理的 WAL 统计信息,但为了安全起见,本次提交修改了 pgstat_report_stats(),使其在顶部也检查一些 WAL 活动计数器。本次提交还添加了关于 WAL 统计设计的设计注释。报告人:Andres Freund 作者:Masahiro Ikeda 审查者:Kyotaro Horiguchi, Atsushi Torikoshi, Andres Freund, Fujii Masao 讨论:https://postgr.es/m/20210324232224.vrfiij2rxxwqqjjb@alap3.anarazel.de https://git.postgresql.org/pg/commitdiff/d8735b8b4651f5ed50afc472e236a8e6120f07f2
使 standby 提升重置恢复暂停状态为“未暂停”。如果一个提升触发在恢复暂停时发生,暂停状态结束,提升继续。但之前在这种情况下,pg_get_wal_replay_pause_state() 会错误地返回“paused”,而在提升进行中。本次提交修改了 standby 提升,使其在触发时将恢复暂停状态标记为“未暂停”,以解决该问题。作者:Fujii Masao 审查者:Dilip Kumar, Kyotaro Horiguchi 讨论:https://postgr.es/m/f706876c-4894-0ba5-6f4d-79803eeea21b@oss.nttdata.com https://git.postgresql.org/pg/commitdiff/167bd4804995afd654bd97ca9486acbece24377e
Amit Kapila 提交
修复 020_messages.pl 测试。在创建订阅后,我们没有等待发布者赶上订阅者。现在,apply worker 可能会在我们禁用测试中的订阅后开始复制。这将导致测试期望没有活动的槽,而实际上存在一个。通过允许发布者等待赶上订阅来修复此症状。通过检查 walsender 的存在来确保槽仍然处于活动状态不是一个好主意,因为我们在清理 walsender 相关内存后释放槽。通过检查 pg_replication_slots 中的槽状态来修复。此外,最好避免重复启用/禁用订阅。最后,我们将此测试的 autovacuum 关闭,以避免在消费更改时出现任何空事务。报告人:buildfarm 作者:Vignesh C 审查者:Amit Kapila, Michael Paquier 讨论:https://postgr.es/m/CAA4eK1+uW1UGDHDz-HWMHMen76mKP7NJebOTZN4uwbyMjaYVww@mail.gmail.com https://git.postgresql.org/pg/commitdiff/0a442a408b40d2c6710de7e5397cb2e769d8c630
修复同一表的多个复制 TRUNCATE 的死锁。在应用 TRUNCATE 更改时,逻辑应用 worker 会获取被 TRUNCATE 的关系上的 RowExclusiveLock。这允许两个应用 worker 同时在关系上执行 TRUNCATE,从而导致死锁。原因是其中一个 worker 在更新 pg_class 元组后尝试获取关系的 SHARE 锁,并开始等待第二个 worker(它已经获取了该关系的 RowExclusiveLock)。当第二个 worker 尝试更新 pg_class 元组时,它开始等待第一个 worker,从而导致死锁。通过在应用 TRUNCATE 更改之前获取关系上的 AccessExclusiveLock(就像正常 TRUNCATE 操作一样)来修复。作者:Peter Smith,测试用例由 Haiying Tang 提供 审查者:Dilip Kumar, Amit Kapila 回溯:11 讨论:https://postgr.es/m/CAHut+PsNm43p0jM+idTvWwiGZPcP0hGrHMPK9TOAkc+a4UpUqw@mail.gmail.com https://git.postgresql.org/pg/commitdiff/6d0eb38557155855539cd007f04736dc3b2ba16f
Dean Rasheed 已推送
Andrew Dunstan 推送
在 PostgresNode 中使用更可移植的方式获取版本字符串。旧版本的 Windows perl 不喜欢 pipe open 的列表形式,而 perlcritic 不喜欢 open 的字符串形式,因此我们通过更简单的 qx{} 配方来避免这两种情况。根据 Amit Kapila 的投诉。 https://git.postgresql.org/pg/commitdiff/8bdd6f563aa2456de602e78991e6a9f61b8ec86d
安装 PostgresVersion.pm。我的一个令人遗憾的疏忽意味着,当 PostgresVersion.pm 在提交 4c4eaf3d19 中添加时,Makefile 中没有添加安装它的 provision,因此它没有与其他 Perl 模块一起安装。 https://git.postgresql.org/pg/commitdiff/bdbb2ce7d51e93ca2ec68e25e2fafb271b34e72d
Yugo Nagata 发送了实现增量物化视图的补丁的另一修订版。
Amul Sul 发送了 WAL 写入代码与 StartupXLOG() 分离、使用全局屏障实现 WAL 禁止状态、在 START_CRIT_SECTION 之前进行 WAL 写入的错误或断言、以及对此进行文档化的补丁的另一修订版。这是用于 ALTER SYSTEM READ {ONLY | WRITE} 等的底层架构。
Pavel Stěhule 提交了另一个修订版的补丁,以实现模式变量。
Bharath Rupireddy 发送了修补 slot_store_error_callback 和 conversion_error_callback 中的目录访问的补丁的另一修订版。
Amit Langote 发送了一个补丁,用于重新措辞 pathnodes.h 中的一些注释以提高清晰度。
Ranier Vilela 发送了修复 zic 中可能发生的内存损坏的补丁的另一修订版。
Bharath Rupireddy 发送了三个补丁的修订版,用于收紧 PostgreSQL FDW 中 batch_size 和 fetch_size 选项 against 非数字值。
Masahiro Ikeda 发送了两个补丁的修订版,用于在不引入新变量的情况下提高报告 WAL 统计数据的性能。
Hou Zhijie 和 Amit Langote 交换了补丁,用于在分区键是常量时跳过分区元组路由。
Peter Smith 和 Ajin Cherian 交换了补丁,用于为内置逻辑复制添加对准备事务的支持、为流式事务添加 prepare API 支持,以及为逻辑复制跳过空事务。
Amit Langote 发送了 pgoutput 补丁的四个修订版,用于修复 RelationSyncEntry.map 的内存管理,通过在拥有它的同步条目失效时释放创建元组转换映射及其组件 TupleDescs 时分配的内存,以及在根本不认为需要映射时释放 TupleDescs。
Nitin Jadhav 发送了两个补丁的修订版,用于从 create_list_bounds() 中移除额外的 malloc、将 PartitionListValue 分配为一个块、在 create_hash_bounds 中也对 PartitionHashBound 执行相同操作、批量分配 datum 数组以避免 palloc 开销,并在 create_range_bounds() 中 pfree 中间结果。
Bertrand Drouvot 发送了在 pgupgrade 中保留 oldestxid 的补丁的另一修订版。
Andrew Dunstan 发送了实现 SQL/JSON 函数的补丁的另一修订版。
Andrew Dunstan 发送了实现 SQL/JSON JSON_TABLE 的补丁的另一修订版。
Matthias van de Meent 发送了改进 heapam 中行指针数组截断使用的补丁的另一修订版。
Heikki Linnakangas 发送了一个补丁,允许 pg_waldump --rmgr 选项指定多次。
Robert Haas, Dilip Kumar, 和 Kyotaro HORIGUCHI 交换了旨在修复在恢复中出现的竞态条件的补丁。
Takashi Menjo 提交了一个将 WAL 段文件映射到 PMEM 作为 WAL 缓冲区的补丁的又一次修订。
Justin Pryzby 发送了实现 FPI 不同压缩方法的补丁的另一修订版。
Takamichi Osumi 发送了一个补丁,用于禁止在 user_catalog_table 上执行 TRUNCATE。
Peter Eisentraut 和 Álvaro Herrera 交换了补丁,为 pgxs 添加了 NO_INSTALL 选项。
Bharath Rupireddy 发送了三个补丁的修订版,用于区分使用“非负”的错误消息。
Daniel Gustafsson 发送了两个补丁的修订版,用于扩展 configure_test_server_for_ssl 以添加扩展,并为 sslinfo 添加测试。
Mathis Rudolf 发送了一个旨在修复 REFRESH MATERIALIZED VIEW CONCURRENTLY 中别名冲突的 bug 的补丁,方法是在 'refresh_by_match_merge()' 中为 'mv' 和 'newdata' 等别名添加 `_pg_internal_` 前缀,这样不太可能与用户创建的 MV 发生冲突。
Yura Sokolov 发送了一个补丁,将 PortalDrop 调用添加到 exec_execute_message()。
Bharath Rupireddy 和 Peter Smith 交换了补丁,用于重构 parse_subscription_options 中“互斥选项”的错误报告代码。
Michaël Paquier 发送了将 pg_upgrade 的测试切换为使用 TAP 的补丁的另一修订版。
Greg Nancarrow 发送了一个修复并行 worker 失败断言和核心转储的补丁的另一修订版。
Kirill Reshke 发送了一个旨在修复慢速 standby 快照的 bug 的补丁,方法是在 KnownAssignedXids 中使用双向链表。
Paul Guo 发送了一个补丁,用于修复由于只读文件 open() 错误导致的 pg_rewind 失败,方法是使其可写。
Alexander Pyhalov 发送了一个补丁,使函数 RTE 的 joins 可以推送到 PostgreSQL 数据源。
Nitin Jadhav 发送了一个支持 tzh tzm 模式的补丁的另一修订版。
Michaël Paquier 发送了一个在服务器中强制禁用 SSL 重negotiation 的补丁。
Ivan Panchenko 发送了一个使在登录时触发操作成为可能的补丁的另一修订版。
Takayuki Tsunakawa 发送了一个在 rewriter 中传播 CTE 属性标志的补丁的另一修订版。
Ashutosh Bapat 发送了两个补丁的修订版,用于在 LogicalIncreaseXminForSlot() 中报告新的 catalog_xmin 候选。
Michaël Paquier 发送了一个向 pg_stat_activity 添加已认证数据的补丁的另一修订版。
Bharath Rupireddy 发送了一个重新措辞并行 vacuum 的错误消息和文档的补丁的另一修订版。
Hou Zhijie 发送了两个旨在修复 FDW 批量插入在 batch_size > 65535 时失败的 bug 的补丁。
Dmitry Dolgov 发送了一个实现索引跳过扫描的补丁的另一修订版。
Tomáš Vondra 发送了一个旨在修复 REFRESH MATERIALIZED VIEW 性能下降的 bug 的补丁。
Michaël Paquier 和 Tom Lane 交换了补丁,以减小 pg_attribute 结构体的内存占用。
David Rowley 发送了一个加速 NOT IN() 与一组 Consts 匹配的补丁的另一修订版。
Vigneshwaran C 发送了一个为 PUBLICATION 和 SUBSCRIPTION 命令中缺失的选项添加制表符补全的补丁的另一修订版。