PgPedia 周报,2024-12-22

虽然一年临近尾声,但 PostgreSQL 的开发仍在如火如荼地进行。pgPedia 的小精灵们也一直在忙碌,为各种 advisory locking 系统函数添加了许多条目。

本周 PostgreSQL 18 的更改

本周的重点功能是增加了每个后端 I/O 统计信息,可以通过函数 pg_stat_get_backend_io() 检索。还添加了 pg_stat_reset_backend_stats() 以便重置单个后端的统计信息。

psql 也获得了一些用户可见的改进,能够显示提示符中使用的 服务名称(如果已使用)。其他应用程序可以通过新添加的 libpq 函数 PQservice() 检索此信息。此外,还改进了各种命令的标签补全功能。

PostgreSQL 提交的值得关注的变更

  • 578a7fe7 (2024-12-21): 更新 MyProc->xmin 更新时更新 TransactionXmin 回溯至 ~ 13
  • db448ce5 (2024-12-21): 优化元组格式化/解格式化中的对齐计算
  • 1f81b48a (2024-12-19): 将 CatalogSnapshotData 标记为静态
  • 38c579b0 (2024-12-20): 修复关系截断失败时的损坏问题。 回溯至 ~ 13
  • 02a8d0c4 (2024-12-20): 移除 pg_attribute.attcacheoff 列
  • 5983a4cf (2024-12-20): 引入 TupleDesc 中的 CompactAttribute 数组,第二版
  • e0a2721f (2024-12-19): 废弃 BuildTupleHashTable() 的旧版本。
  • f0b90008 (2024-12-19): 在更多地方使用 ExecGetCommonSlotOps 基础设施。
  • 8d96f57d (2024-12-19): 改进规划器对 SetOp 计划的处理。
  • 27627929 (2024-12-19): 将 SetOp 转换为将其输入读取为 outerPlan 和 innerPlan。
  • 31b0a8f0 (2024-12-19): 避免 nbtree 索引扫描 SAOP 扫描反向(scanBehind)的混淆。
  • 3e4bacb1 (2024-12-19): 引导程序:纯解析器和可重入扫描器
  • 9aea73fc (2024-12-19): 向 pgstats 添加后端级统计信息
  • ff7c40d7 (2024-12-19): 将填充 pg_stat_get_io() 的 tuplestore 的逻辑提取到其自己的例程中
  • 08cdb079 (2024-12-19): 使用虚拟槽优化分组相等性检查
  • 8f4ee962 (2024-12-19): 修复 WITH RECURSIVE UNION 查询中的 Assert 失败 回溯至 ~ 13
  • b7493e1a (2024-12-18): 移除 XLOG_HEAP2_FREEZE_PAGE 记录的遗留提及
  • 1a0da347 (2024-12-18): 位图表扫描使用统一的 TBMIterator
  • 7f9d4187 (2024-12-18): 为 TBMIterator 添加通用接口
  • 28328ec8 (2024-12-18): 修复 SampleHeapTupleVisible() 中的溢出风险
  • 68d9662b (2024-12-18): 使 rs_cindex 和 rs_ntuples 无符号
  • 1f0de66e (2024-12-18): seg: 纯解析器和可重入扫描器
  • 802fe923 (2024-12-18): cube: 纯解析器和可重入扫描器
  • 477728b5 (2024-12-18): psql: 添加关于服务名称的更多信息
  • 4b99fed7 (2024-12-18): libpq: 将服务名称添加到 PGconn 和 PQservice()
  • 3f063247 (2024-12-17): 修复 pg_restore 在使用 zstd 压缩数据时出现的内存泄漏。 回溯至 ~ 16
  • d96d1d51 (2024-12-18): 修复 BuildTupleHashTableExt 中不正确的槽类型
  • 84f1b0b0 (2024-12-17): 适应非常大的 dshash 表。 回溯至 ~ 13
  • 7a80e381 (2024-12-17): 在 EXPLAIN 期间跳过连接 RTE 列名称的无用计算。
  • dc6acfd9 (2024-12-17): 在 vacuum 期间计算 VM 中的全可见和全冻结页面
  • 4b565a19 (2024-12-17): 使 visibilitymap_set() 返回 vmbits 的先前状态
  • f020baa0 (2024-12-17): 重命名 LVRelState->frozen_pages
  • 21fb39cb (2024-12-17): 在创建共享内存和信号量时设置 max_safe_fds。
  • c91963da (2024-12-17): 在 main() 中设置 stack_base_ptr,而不是在其他随机位置。
  • 957ba9ff (2024-12-17): 检测 brin_page_items 中的版本不匹配 回溯至 ~ 17
  • fb1a1881 (2024-12-17): 移除 ts_locale.c 中的 lowerstr()
  • d3aad4ac (2024-12-17): 移除 ts_locale.c 中的 t_isdigit(), t_isspace(), t_isprint()
  • 60be3f9f (2024-12-17): 避免更复杂表达式的不必要包装
  • 0f23dedc (2024-12-17): 为更多 DDL 打印错误位置
  • 3429145d (2024-12-16): psql: JOIN ... USING 列列表的标签补全
  • a01f6fa6 (2024-12-16): psql: JOIN ... ON/USING 的标签补全
  • 5dd5786b (2024-12-16): psql: LATERAL JOIN 的标签补全
  • 86a5d600 (2024-12-16): 将字符串大小写转换重构为特定提供商的文件。
  • de1e2988 (2024-12-16): psql: CREATE MATERIALIZED VIEW ... USING 的标签补全
  • 1e1f70c3 (2024-12-16): psql: CREATE TEMP TABLE ... USING 的标签补全
  • 8f11ef80 (2024-12-16): psql: ALTER TYPE ... CASCADE/RESTRICT 的标签补全
  • e0275c38 (2024-12-16): psql: ALTER TYPE ... ADD ATTRIBUTE 的标签补全
  • 39240bca (2024-12-16): 为 CREATE DOMAIN 打印错误位置

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

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

新 PgPedia 条目

已添加以下新条目

更新

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

最后...

如果您遗漏了任何内容,或者有任何(建设性的)想法,请留下您的 反馈 和/或 购买一杯咖啡