PgPedia 周报, 2025-03-16
CommitFest 52(2025 年 3 月)是 PostgreSQL 18 开发周期的最后一个 CommitFest,已过半程,本周已有多项新功能。
PostgreSQL 18 更改
改进和新功能
EXPLAIN
- 改进了窗口函数的显示
- 现在报告索引搜索计数
log_lock_failure
新的 GUC 用于记录锁获取失败
effective_io_concurrency
- 默认值增加到
16
- 默认值增加到
log_connections
- 现在接受一系列选项以提供更精细化的连接日志记录
lower()
、upper()
、casefold()
- 性能改进
pg_stat_get_backend_wal()
- 新增函数以检索每个后端的 WAL 统计信息
reverse()
- 添加了对
bytea
数据类型的支持
- 添加了对
pg_dump
、pg_dumpall
、pg_restore
- 添加了
--no-policies
选项
- 添加了
PL/Python
- 启用了 Python "Limited API"
isn
- 添加了 GUC
isn.weak
,取代了isn_weak()
函数
- 添加了 GUC
回滚
PostgreSQL 18 文章
- 等待 PostgreSQL 18 – 允许 json{b}_strip_nulls 删除 null 数组元素 (2025-03-13) - Hubert 'depesz' Lubaczewski
- 等待 PostgreSQL 18 – 允许 GIN 索引的并行 CREATE INDEX (2025-03-11) - Hubert 'depesz' Lubaczewski
PostgreSQL 链接
博客、播客、新闻通讯等
- Scaling Postgres 357 - Postgres 最佳实践? (2025-03-16) - 对最近 PostgreSQL 文章等的视频评论,约 10 分钟
- 2025-03-03 期间(第 9 周)的贡献 (2025-03-14)
- Postgres Weekly Issue 592 (2025-03-13)
- EDB Engineering Newsletter #4 (2025-03-11)
公告
- pg_ivm 1.10 发布 (2025-03-14)
- pg_ivm 是一个提供增量视图维护 (IVM) 的扩展
- Postgres Extensions Day 2025:注册和发言征集 (2025-03-10)
其他
- PostgreSQL 本周人物:采访:Doug Ortiz (2025-03-10)
新 PgPedia 条目
已添加以下新条目
外部链接
已添加了指向外部文章的链接
stats_fetch_consistency
- stats_fetch_consistency:缓存 PostgreSQL 监控统计信息? - Laurenz Albe 于 2025 年 3 月 的博客文章
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)
- 不正确地提到已恢复对临时外键约束的支持;实际上,恢复只适用于临时
最后...
如果有什么遗漏,或者您有什么(有建设性的)想法,请留下一些 反馈 和/或 买杯咖啡。