PgPedia 周报, 2025-04-06

CommitFest 52 (2025-03) - PostgreSQL 18 开发周期的最后一个 CommitFest - 即将结束,一如既往地会延续到三月之后,直到 4 月 8 日的代码冻结

在这个冲刺的最后阶段,出现了很多有趣的变化,加上个人原因,使得追踪这些变化变得颇具挑战。一如既往,如果您觉得有什么遗漏,请通过 反馈 表格告知我。

本周 PostgreSQL 18 的更改

  • 优化器
    • 当适用时,将 x IN (VALUES ...) 转换为 x = ANY ...
  • 规划器
    • SQL 语言函数现在使用计划缓存
  • 索引
    • 为范围类型添加了 GiST 和 btree 的 sortsupport 例程
    • 添加了 btree 跳过扫描优化
    • 其他各种 btree 优化
  • ALTER DEFAULT PRIVILEGES
  • COPY
    • COPY TO 可以从物化视图复制行
  • pg_replication_slots
    • 添加了列 two_phase_at
  • array_sort()
    • 用于排序数组的函数
  • btree_gist
    • 添加了对已排序的 gist 索引构建的支持
  • pg_dump
    • 转储统计信息时的效率改进
  • pg_dumpall
    • 添加了选项 -F/--format
  • pg_recvlogical
    • 添加了选项 --failover
  • libpq
    • 添加了 min_protocol_versionmax_protocol_version 连接参数
    • 添加了 sslkeylogfile 连接参数

PostgreSQL 链接

博客、播客、新闻通讯等

公告

新 PgPedia 条目

已添加以下新条目

PostgreSQL 提交的值得关注的变更

  • f0d0083f (2025-04-04): pg_dump: 修复旧版本上收集属性统计信息的查询。
  • 43b8e6c4 (2025-04-04): 修复 FK SET 列列表中重复条目的错误行为。 回填 ~ 15
  • 0f43083d (2025-04-04): functions.c: 在解析分析等之前从 source_list 复制树。
  • 1495eff7 (2025-04-04): pg_dumpall 的非文本模式,相应地更改 pg_restore
  • 2b69afbe (2025-03-28): 向 fe-utils/simple_list 添加新的列表类型 simple_oid_string_list
  • c1da7281 (2025-04-04): 将与连接相关的常用 pg_dump 代码移动到新文件
  • ff3a7f0b (2025-04-04): 移除 pg_backup_archiver.c 中未使用的函数参数。
  • 9c02e3a9 (2025-04-04): pg_dump: 批量检索属性统计信息。
  • 7d5c83b4 (2025-04-04): pg_dump: 减少带统计信息的转储的内存使用量。
  • e3cc039a (2025-04-04): 对于不带数据的自定义格式转储,跳过第二次 WriteToc() 调用。
  • d9c7911e (2025-04-04): 在 autoprewarm 中使用流式读取 I/O
  • b3f1a13f (2025-04-04): 通过预处理避免额外的索引搜索。
  • 21a152b3 (2025-04-04): 改进 nbtree 跳过扫描原始扫描的调度。
  • cf2655a9 (2025-04-04): pg_recvlogical: 添加 --failover 选项。
  • 8a510275 (2025-04-04): 进一步优化 nbtree 搜索扫描键比较。
  • 92fe23d9 (2025-04-04): 添加 nbtree 跳过扫描优化。
  • 64e7fa43 (2025-04-04): 修复 autoprewarm 忽略表空间的问题
  • c0962a11 (2025-04-04): 当适用时,将 'x IN (VALUES ...)' 转换为 'x = ANY ...'
  • d48d2e2d (2025-04-04): 从 match_orclause_to_indexcol() 中提取 make_SAOP_expr() 函数
  • 534874fa (2025-04-04): 允许 "COPY table TO" 命令从物化视图复制行。
  • 9ef18516 (2025-04-04): 支持 get_actual_variable_range() 中的非 btree 索引
  • 0d6c4776 (2025-04-04): 扩展 ALTER DEFAULT PRIVILEGES 以定义大对象的默认权限。
  • 6e9c8183 (2025-04-04): 在 walreceiver 中使用标准的 die() 信号处理程序
  • 8123e91f (2025-04-04): 将 PathKey 转换为使用 CompareType
  • 898c131b (2025-04-04): pg_createsubscriber: 改进错误消息。
  • 1aff1dc8 (2025-04-04): 撤销 "改进对共享哈希表使用的内存的核算"
  • 88f55bc9 (2025-04-04): 使 EquivalenceClass 中的派生子句查找更有效率
  • 67be0935 (2025-04-03): 对位图堆扫描使用 AIO 批处理模式
  • 8ae0a379 (2025-04-03): oauth: 修复在没有 epoll/kqueue 的平台上构建的问题
  • 94512623 (2025-04-03): 修复 pg_upgrade. 中无意的 'NULL' 字符串字面量。
  • b81ffa13 (2025-04-03): pg_upgrade 检查依赖于 Unicode 的关系。
  • fd09c131 (2025-04-03): 限制复制无效复制槽的复制。 回填 ~ 16
  • b82e7edd (2025-04-03): pg_config.h.in 添加缺失的声明
  • 2da74d8d (2025-04-03): libpq: 添加将 SSL 密钥材料转储到文件的支持
  • e4309f73 (2025-04-03): btree_gist 添加对已排序的 gist 索引构建的支持
  • 82a46cca (2025-04-03): 将 Unicode 数据更新到 Unicode 16.0.0
  • 84fea854 (2025-04-03): 将 Unicode 数据更新到 CLDR 47
  • 4868c96b (2025-04-03): 修复启用了 two_phase 的复制槽的槽同步。
  • a7187c37 (2025-04-02): 移除 tsvectorrecv(). 中不必要的类型冲突。 回填 ~ 13
  • 459e7bf8 (2025-04-02): 移除 HeapBitmapScan 的 skip_fetch 优化 回填 ~ 13
  • 0dca5d68 (2025-04-02): 更改 SQL 语言函数以使用计划缓存。
  • e9e7b660 (2025-04-02): 为范围类型添加 GiST 和 btree sortsupport 例程
  • 46df9487 (2025-04-02): 改进对 PredXactList、RWConflictPool 和 PGPROC 的核算
  • f5930f9a (2025-04-02): 改进对共享哈希表使用的内存的核算
  • bd178960 (2025-04-02): StoreAttrMissingVal 之后需要执行 CommandCounterIncrement。 回填 ~ 13
  • a460251f (2025-04-02): 使取消请求密钥变长
  • 285613c6 (2025-04-02): libpq: 添加 min/max_protocol_version 连接选项
  • 50703491 (2025-04-02): libpq: 不同地处理 NegotiateProtocolVersion 消息
  • 09be3911 (2025-04-02): 添加 timingsafe_bcmp(),用于常量时间内存比较
  • eec0040c (2025-04-02): 外键 约束中添加对 NOT ENFORCED 的支持
  • bc22dc0e (2025-04-02): 移除 WALBufMappingLock
  • b3219c69 (2025-04-01): aio: 添加处理另一个后端 I/O 的 errcontext
  • b136db07 (2025-04-02): 修复规划器未能识别多个可哈希的 ScalarArrayOpExprs 回填 ~ 14
  • 6c12ae09 (2025-04-01): 引入一个可 SQL 调用函数 array_sort(anyarray)
  • 6da2ba1d (2025-04-01): 修复 macOS 15.4 的 strchrnul() 检测和处理。 回填 ~ 13
  • 60f566b4 (2025-04-01): aio: 添加 pg_aios 视图
  • 2904324a (2025-04-01): heapam: 在 pagemode 中每页仅设置一次 tuple 的 block

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

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

最后...

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