PgPedia 周报,2024-12-22
虽然一年临近尾声,但 PostgreSQL 的开发仍在如火如荼地进行。pgPedia 的小精灵们也一直在忙碌,为各种 advisory locking 系统函数添加了许多条目。
本周 PostgreSQL 18 的更改
libpq
- 添加了
PQservice()
函数
- 添加了
psql
- 添加了变量
SERVICE
- 添加了提示符配置选项
%s
- 各种标签补全改进
- 添加了变量
pg_stat_reset_backend_stats()
pg_stat_get_backend_io()
本周的重点功能是增加了每个后端 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 条目
已添加以下新条目
pg_advisory_lock()
pg_advisory_lock_shared()
pg_advisory_unlock()
pg_advisory_unlock_all()
pg_advisory_unlock_shared()
pg_advisory_xact_lock()
pg_advisory_xact_lock_shared()
pg_stat_get_backend_io()
pg_stat_reset_backend_stats()
pg_try_advisory_lock()
pg_try_advisory_lock_shared()
pg_try_advisory_xact_lock()
pg_try_advisory_xact_lock_shared()
更新
以下文章已更新,增加了额外信息或更正
CREATE USER
- 移除了关于从 PostgreSQL 14 开始接受
CURRENT_ROLE
代替用户名这一不正确的陈述
- 移除了关于从 PostgreSQL 14 开始接受
最后...
如果您遗漏了任何内容,或者有任何(建设性的)想法,请留下您的 反馈 和/或 购买一杯咖啡。