PgPedia 周报, 2025-03-16

CommitFest 52(2025 年 3 月)是 PostgreSQL 18 开发周期的最后一个 CommitFest,已过半程,本周已有多项新功能。

PostgreSQL 18 更改

改进和新功能

回滚

  • 对临时 RESTRICT 外键约束的支持已恢复
    • 这是作为 commit 89f908a6 添加的,该 commit 其余部分仍然有效

PostgreSQL 18 文章

PostgreSQL 链接

博客、播客、新闻通讯等

公告

新 PgPedia 条目

已添加以下新条目

已添加了指向外部文章的链接

PostgreSQL 提交的值得关注的变更

  • cd3c4512 (2025-03-16): pg_dump, pg_dumpall, pg_restore: 添加 --no-policies 选项。
  • 44890442 (2025-03-16): contrib/isn: 将弱模式设为 GUC 设置,并修复相关函数。
  • 682c5be2 (2025-03-16): reindexdb: 修复多作业时的索引级 REINDEX 回溯到 ~ 17
  • 83e5763d (2025-03-16): pg_createsubscriber: 删除 atexit() 回调中的一些代码冗余
  • 771ba902 (2025-03-15): localbuf: 引入 StartLocalBufferIO()
  • 4b4d33b9 (2025-03-15): localbuf: 引入 FlushLocalBuffer()
  • dd6f2618 (2025-03-15): localbuf: 引入 TerminateLocalBufferIO()
  • 0762a151 (2025-03-15): localbuf: 引入 InvalidateLocalBuffer()
  • fa6af9b2 (2025-03-15): localbuf: 修复 GetLocalVictimBuffer() 中的危险编码模式
  • 27bdec06 (2025-03-15): lower()upper()casefold() 函数进行优化。
  • c3953226 (2025-03-15): 移除表 AM 回调 scan_bitmap_next_block
  • 2b73a8cd (2025-03-15): BitmapHeapScan 使用 read stream API
  • 944e81bf (2025-03-15): 分离 TBM[Shared|Private]Iterator 和 TBMIterateResult
  • 799959dc (2025-03-16): 简化 read_stream.c 中的距离启发式。
  • 7ea8cd15 (2025-03-15): 改进 read_stream.c 对密集流的建议。
  • 6d376c3b (2025-03-14): 添加 GUC 选项以记录锁获取失败。
  • e80171d5 (2025-03-14): 优化 PGPROC 的迭代以实现快速路径锁搜索。
  • a359d370 (2025-03-14): 简化和通用化 PrepareSortSupportFromIndexRel()
  • 1548c3a3 (2025-03-14): 移除 TOAST 表的直接 reloptions 处理
  • 92fc6856 (2025-03-14): read_stream.c 中尊重不断变化的 pin 限制。
  • 0793ab81 (2025-03-14): PL/Python 中激活 Python "Limited API"
  • 05cbd6cb (2025-03-14): 交换 extern/static 和 pg_nodiscard 的顺序
  • 01261fb0 (2025-03-14): 改进后端 pin 限制的缓冲区管理器 API。
  • 7c99dc58 (2025-03-14): 修复 ALTER SUBSCRIPTION ... SET PUBLICATION ... 命令。
  • 4618045b (2025-03-13): 修复 ARRAY_SUBLINK 和 ARRAY[] 的 int2vector 和 oidvector 输入。 回溯到 ~ 13
  • c7fc8808 (2025-03-13): ATExecSetRelOptions: 缩小 'isnull' 变量的作用域
  • 0697b239 (2025-03-13): 添加 reverse(bytea)
  • 3691edfa (2025-03-13): pg_noreturn 代替 pg_attribute_noreturn()
  • cc5d9852 (2025-03-13): 修复子查询提升处理不当的问题
  • 4c496117 (2025-03-13): 移除将 UNION ALL 子查询的 wrap_non_vars 设置为 true 的代码
  • d3b2e5e1 (2025-03-12): 重构 convert_case() 以便进行优化。
  • 3abe9dc1 (2025-03-13): 避免在重命名 publication 时使所有 RelationSyncCache 条目失效。
  • 75da2bec (2025-03-13): 修复 read_stream.c 在 io_combine_limit 改变时的行为。 回溯到 ~ 17
  • 4ecdd411 (2025-03-12): pg_rewind: 使用 --write-recovery-conf 时将 dbname 添加到 primary_conninfo。
  • ac449464 (2025-03-12): 重命名 reorderbuffer.c 中的 alloc/free 函数
  • 025e7e1e (2025-03-12): acl.c 中移除 count_one_bits()。
  • ff79b5b2 (2025-03-12): effective_io_concurrency 的默认值增加到 16
  • af717317 (2025-03-12): 处理 Append 的异步子计划等待时的中断 回溯到 ~ 14
  • f4e7756e (2025-03-12): 在解析和规划期间以相同方式构建整个行 Vars。
  • 18cd15e7 (2025-03-12): 添加连接建立持续时间日志记录
  • 9219093c (2025-03-12): 模块化 log_connections 输出
  • f554a953 (2025-03-12): 从 PendingBackendStats 中移除初始化
  • 72a3d046 (2025-03-12): 为 PL/Python 的 Python "Limited API" 做准备]|]
  • 8076c005 (2025-03-11): 断言快照在使用前已被激活或注册
  • bd65cb3c (2025-03-11): pg_logicalinspect: 修复传入目录路径时可能发生的崩溃。
  • 8b1b3425 (2025-03-11): 改进 EXPLAIN 对窗口函数的显示。
  • 426ea611 (2025-03-11): nbtree: 将 BTMaxItemSize 改为面向对象的宏。
  • 0fbceae8 (2025-03-11): EXPLAIN ANALYZE 中显示索引搜索计数,第二版。
  • 17ce344f (2025-03-11): BRIN: 对必需的支持 proc 更加严格 回溯到 ~ 13
  • d35d32d7 (2025-03-11): 添加严格函数的特殊情况快速路径
  • 8dd7c7cd (2025-03-11): 用返回/无返回的特殊步骤替换 EEOP_DONE
  • dabccf45 (2025-03-11): 将 RemoveInheritedConstraint() 的调用提前一点
  • 1d26c2d2 (2025-03-11): 重构:拆分 tryAttachPartitionForeignKey()
  • 64224a83 (2025-03-11): 重构:重新添加 ATExecAlterChildConstr()
  • 76def4cd (2025-03-11): 将 WAL 数据添加到后端统计信息
  • 29d6808e (2025-03-10): CREATE INDEX:当 autovacuum=off 时更新索引统计信息。
  • f7c566a1 (2025-03-10): 修复了更多 GetLatestSnapshot() 的冗余调用 回溯到 ~ 13
  • 23675031 (2025-03-10): 修复逻辑复制索引查找中使用的快照 回溯到 ~ 13
  • 6bb6a62f (2025-03-10): 使用扩展统计信息来精确估算哈希连接的桶大小
  • fae535da (2025-03-10): 教导 Append 考虑 tuple_fraction 来累积子路径。
  • b83e8a2c (2025-03-10): 移除对临时 RESTRICT 外键的支持

请注意,提交按其在提交日志中的出现顺序显示,这可能不反映单个提交的创建日期。

请参阅 PostgreSQL GIT 提交日志 查看完整的提交列表。

已更新条目

以下文章已更新,增加了额外信息或更正

  • PostgreSQL 18
    • 不正确地提到已恢复对临时外键约束的支持;实际上,恢复只适用于临时 RESTRICT 外键(参见 commit b83e8a2c

最后...

如果有什么遗漏,或者您有什么(有建设性的)想法,请留下一些 反馈 和/或 买杯咖啡