2025年9月25日: PostgreSQL 18 发布!

PostgreSQL 周报 - 2021年3月7日

发布于 2021-03-08,作者:PWN
PWN

PostgreSQL 周报 - 2021年3月7日

PostgreSQL 产品新闻

发布了 parquet_s3_fdw 0.1,一个用于 S3 上 parquet 文件的外部数据包装器。 https://github.com/pgspider/parquet_s3_fdw/releases/tag/v0.1

三月 PostgreSQL 工作职位

https://archives.postgresql.org/pgsql-jobs/2021-03/

PostgreSQL 相关新闻

Planet PostgreSQL:https://planet.postgresql.org/

本周 PostgreSQL 周报由 David Fetter 提供。

请在太平洋标准时间(PST8PDT)周日晚上3:00之前将新闻和公告发送至 david@fetter.org。

已应用补丁

Thomas Munro 推送

Amit Kapila 提交

Andres Freund 提交

  • 修复 Windows 上的 021_row_visibility.pl 恢复测试挂起问题。psql 进程没有被显式杀死(但最终会因为 PostgreSQL 关闭而退出)。出于某种原因,Windows 上的 perl 不喜欢这样,导致出现类似“Warning: unable to close filehandle GEN20 properly: Bad file descriptor during global destruction.”的错误。该测试在 d6734a897e3 中引入,因此无需向后移植。 https://git.postgresql.org/pg/commitdiff/1e6e40447115ca7b4749d7d117b81b016ee5e2c2

Tom Lane 提交

Michaël Paquier 提交

Álvaro Herrera 提交

Peter Geoghegan 提交

  • 修复 nbtree 页删除错误消息。调整一些“不可能发生”的错误消息,这些消息假设页删除目标页必须是半死页。在内部目标页的情况下,这个假设是错误的。只需将这些页称为目标页即可。内部页从不被标记为半死页。对于每个正在删除的子树,恰好有一个半死页。半死页也是目标子树的叶级别页。自 commit efada2b8 以来一直如此,该提交完全重写了 nbtree 页删除。 https://git.postgresql.org/pg/commitdiff/3d8d5787a358156edaa7782f0c88e231af974a01

  • nbtree 页删除:添加 leaftopparent 断言。添加文档断言。这使得更容易理解我们如何在目标子树的半死/叶级别页面中维护顶部父链接。 https://git.postgresql.org/pg/commitdiff/5b2f2af3d9d57626b9052a05337e32ad1399093d

Peter Eisentraut 提交

Heikki Linnakangas 提交

Fujii Masao 提交

Andrew Dunstan 推送

Magnus Hagander 已推送

待处理补丁

Pavel Stěhule 提交了另一个修订版的补丁,以实现模式变量。

Maxim Orlov 发送了一个补丁,以修复 libpq 连接字符串中 TLS 和多个主机之间的一个不匹配问题。

Thomas Munro 发送了两个后续的补丁修订版,以向 walreceiver 状态添加条件变量,另一个用于恢复暂停/恢复,并在恢复时更不频繁地轮询 postmaster。

Ajin Cherian 和 Amit Kapila 交换了补丁,以添加一个选项,通过 pg_create_logical_replication_slot 启用两阶段提交。

Michael Banck 发送了一个补丁,向 pg_dump/pg_dumpall 添加了一个 --create-only 选项。

Michaël Paquier 发送了另一个补丁修订版,以澄清 archiver 中信号处理的文档。

Etsuro Fujita 提交了另一个补丁修订版,用于在 postgres_fdw 节点上实现异步追加。

Peter Eisentraut 发送了另一个补丁修订版,以处理构建中的 macOS SIP 问题。

Laurenz Albe 和 Amit Langote 交换了补丁,以允许在分区表上设置 parallel_workers。

Joel Jacobson 发送了三个补丁修订版,以实现 regexp_positions(),它返回每个匹配的开始和结束位置。

Thomas Munro 发送了两个后续的补丁修订版,提供了一个新的可选 GUC,该 GUC 可用于在执行非常长的查询时定期检查客户端连接是否已断开。

Paul Förster 发送了另一个补丁修订版,以在 psql --help 的输出中提及 URIs 和 services。

Peter Smith 和 Ajin Cherian 交换了补丁,以实现两阶段事务的逻辑解码。

Greg Nancarrow 和 Amit Kapila 交换了补丁,以启用 "INSERT INTO ... SELECT ..." 的并行 SELECT,添加了一个新的布尔 GUC enable_parallel_dml,以及一个类似的表选项 parallel_dml_enabled。

Dian M Fay 发送了两个补丁修订版,以在 postgres_fdw 中抑制文本常量的显式转换,当二元 OpExpr 的另一侧也是文本时。

Dilip Kumar 发送了三个后续的补丁修订版,为表添加了压缩方法选项。

Julien Rouhaud 发送了另一个补丁修订版,以将查询打乱从 pg_stat_statements 移至核心,在 pg_stat_activity 和 log_line_prefix 中暴露 queryid,并在 EXPLAIN ... VERBOSE 中暴露查询标识符。

Bruce Momjian 发送了一个补丁,以修复一些 GiST 代码注释。

Vik Fearing 发送了另一个补丁修订版,以实现 GROUP BY DISTINCT,它会消除重复的 GROUPING SETs。

Mark Dilger 发送了另一个补丁修订版,以添加一个 contrib 扩展 pg_amcheck。

Pavel Borisov 发送了另一个补丁修订版,以使 amcheck 检查 btree 索引的 UNIQUE 约束。

Jacob Champion 发送了另一个补丁修订版,以向表 AM 添加一个 API,该 API 接受一个列投影列表。

Joel Jacobson 发送了两个补丁修订版,以支持带有边界信息的空范围。

Tomáš Vondra 发送了三个后续的补丁修订版,以实现 BRIN 多范围索引。

Peter Eisentraut 发送了另一个补丁修订版,以实现 SQL 标准的函数体。

Thomas Munro 发送了两个后续的补丁修订版,以实现并行全哈希连接。

Magnus Hagander 发送了五个补丁修订版,以添加 PROXY 协议支持。

Vigneshwaran C 发送了一个补丁,以通过分离 Perl 代码中的声明和赋值来修复 crake 中的 Buildfarm 故障。

Michaël Paquier 发送了另一个补丁修订版,以在检查 SSL 是否需要进行之前启用 libcrypto 回调。

Daniel Gustafsson 发送了另一个版本的补丁,以支持 NSS 作为 libpq TLS 后端。

Gilles Darold 发送了一个补丁,以实现 regexp_count、regexp_instr、regexp_substr 和 regexp_replace。

David Rowley 发送了另一个补丁修订版,以减少在 Windows 上构建 contrib 模块的特殊情况数量。

Amit Langote 发送了另一个补丁修订版,以使 UPDATE 和 DELETE 在继承树上具有更好的扩展性。

John Naylor 发送了一个补丁,以审查当前 popcount 实现的一些替代方案。

Mark Rofail 发送了另一个补丁修订版,用于实现外键数组。

Pavel Stěhule 发送了三个后续的补丁修订版,以使 psql 能够为 \watch 使用分页器。

Tom Lane 发送了另一个补丁修订版,以移除协议版本 2 中对 COPY FROM STDIN 的支持。

Mark Dilger 发送了两个补丁修订版,以添加一个 pg_amcheck contrib 应用程序。

Soumyadeep Chakraborty 和 Kyotaro HORIGUCHI 交换了补丁,以防止检查器写入旧时间线。

Amit Kapila 发送了另一个补丁修订版,以跟踪回滚的复制 origin 进度。

Masahiro Ikeda 和 Fujii Masao 交换了补丁,向 pg_stat_wal 添加了 WAL 写入/fsync 统计信息。

Justin Pryzby 和 Takayuki Tsunakawa 交换了补丁,以加速具有外部分区的表的 COPY FROM 操作。

Álvaro Herrera 和 Justin Pryzby 交换了补丁,为 libpq 添加了批量/流水线支持。

Daniel Gustafsson 发送了三个后续的补丁修订版,以禁止 SSL 压缩。

Andrey V. Lepikhov 和 Tom Lane 交换了补丁,以移除 64K 的 rangetable 限制。

Robins Tharakan 发送了一个补丁,以修复 pg_upgrade 在处理大量大对象时的错误。

Jacob Champion 发送了一个补丁,以重构 sslfiles 的 Makefile 目标。

Kyotaro HORIGUCHI 发送了另一个补丁修订版,以将回调调用从 ReadPageInternal 移动到 XLogReadRecord,将页读取器移出 XLogReadRecord,移除全局变量 readOff、readLen 和 readSegNo,并允许 xlogreader 使用不同的 xlog 块大小。

Andy Fan 发送了一个补丁,以调整分区裁剪情况的成本模型。

Kyotaro HORIGUCHI 发送了另一个补丁修订版,以使 End-Of-Recovery 错误不那么吓人。

Heikki Linnakangas 发送了另一个补丁修订版,以强制在 COPY FROM 解析中进行前瞻。

Daniel Gustafsson 发送了另一个补丁修订版,以移除 libpq 中已弃用的参数 authtype 和 pqtty。

Amul Sul 发送了另一个补丁修订版,以使用全局屏障实现 wal 禁止状态,并在 WAL 写入的 START_CRIT_SECTION 之前进行错误处理或断言。

Thomas Munro 发送了一个补丁,使 relfile tombstone 文件依赖于 WAL 级别。

Amit Langote 发送了另一个补丁修订版,以对分区裁剪步骤生成代码进行一些美学改进。

Thomas Munro 发送了另一个补丁修订版,以用条件变量替换缓冲区 I/O 锁。

Thomas Munro 发送了两个后续的补丁修订版,以添加缺失的 pthread_barrier_t,重构 pgbench 中线程可移植性的处理方式,改进 pgbench 的时间测量代码,并同步其客户端线程。

Julien Rouhaud 发送了另一个补丁修订版,以修复各种共享内存估计。

Laurenz Albe 发送了两个后续的补丁修订版,以改进 \e、\ef 和 \ev,如果编辑器在未保存的情况下退出,则保留当前查询缓冲区而不是执行之前的查询。

Masahiko Sawada 发送了两个补丁修订版,以确保在 TRUNCATE 时重置 pg_stat_xxx_tables.n_mod_since_analyze。

Tomáš Vondra 发送了两个后续的补丁修订版,以使收集表达式的扩展统计信息成为可能。

Hayato Kuroda 发送了另一个补丁修订版,以重构 ECPGconnect 并允许在其中进行 IPv6 连接。

Kyotaro HORIGUCHI 发送了另一个补丁修订版,以在 truncate 成功后延迟 checkpoint 完成。

Kota Miyake 发送了一个补丁,以移除 pgbench 的 \sleep 元命令中的一些瑕疵。

Hou Zhijie 发送了一个补丁,以避免在 INSERT FK 关系时 RI 触发器中的 CCI。

Ibrar Ahmed 发送了另一个补丁修订版,以修复了由于早期将 GROUP BY 优化得更高效的补丁而导致的测试失败。

Kirk Jamison 发送了另一个补丁修订版,以在 libpq 中实现跟踪。

Kyotaro HORIGUCHI 发送了另一个补丁修订版,以将统计信息收集器从使用文件进行临时存储更改为使用共享内存。

Andres Freund 发送了另一个补丁修订版,以确保在 Windows 上,只有在 stderr 无效时,PostgreSQL 才被视为正在作为服务运行。

Thomas Munro 发送了另一个补丁修订版,以注入故障时序,并修复了并行哈希连接批处理清理中的竞争条件。

Andrew Dunstan 发送了一个补丁,以允许匹配客户端证书中的整个 DN。

KaiGai Kohei 和 Tom Lane 交换了补丁,为 contrib/cube 添加了二进制输入/输出处理器。

Bharath Rupireddy 发送了两个后续的补丁修订版,以将刷新物化视图的代码重构为一组函数,并实现 EXPLAIN/EXPLAIN ANALYZE REFRESH MATERIALIZED VIEW。

Justin Pryzby 发送了一个补丁,用于引导,使将 Typ 转换为 List* 成为可能,并使用它允许在引导中使用复合类型。

Kyotaro HORIGUCHI 发送了一个补丁,以通过添加 CHECKPOINT 来修复 011_crash_recovery.pl 中的间歇性故障。

Joel Jacobson 发送了一个补丁,以创建 pg_permissions 视图。

Joel Jacobson 发送了一个补丁,以创建 pg_ownerships 视图。

Justin Pryzby 发送了另一个补丁修订版,以使 CLUSTER 可以在分区索引上运行。

Bharath Rupireddy 发送了另一个补丁修订版,以添加另一种形式的 pg_terminate_backend,允许用户指定等待和超时。

Bharath Rupireddy 发送了另一个补丁修订版,以改进 "PID XXXX is not a PostgreSQL server process" 消息,方法是分离不允许发送信号的情况。

Li Japin 提交了另一版补丁,用于实现 ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION。

Joe Conway 发送了一个补丁,以修复 has_column_privilege()" 中的一个 bug,该 bug 错误地处理了 attnums 和不存在的列。

Justin Pryzby 发送了另一个补丁修订版,以实现 ALTER TABLE SET ACCESS METHOD,允许指定分区表的表访问方法由分区继承,并实现 lsyscache get_rel_relam(),因为现在表 AM 已经生效。