PgPedia 周报, 2025-03-30
本周(确切说是上周,由于个人原因,本期 PgPedia 周刊不幸延迟发布)有很多事情发生,因为 CommitFest 52(2025-03)—— PostgreSQL 18 开发周期的最后一个 CommitFest——即将结束。尽管通常会一直持续到 4 月 8 日的代码冻结。
PostgreSQL 18 更改
新特性
- 可动态加载的共享库可提供用户可查询的元数据
- 支持在虚拟 生成列 上添加
NOT NULL
约束 - 新增冲突类型
multiple_unique_conflicts
gamma()
、lgamma()
- 新增数学函数
pg_get_loaded_modules()
- 报告有关已加载模块的信息
max_files_per_process
- 现在控制额外打开的文件
pg_recvlogical
- 选项
--drop-slot
不再需要提供--dbname
- 选项
initdb
- 新增选项
--no-sync-data-files
- 新增选项
psql
\dx
现在显示默认扩展版本\watch
的默认间隔现在可配置
pg_createsubscriber
- 新增选项
--all
- 新增选项
pg_dump
- 新增选项
--sequence-data
- 新增选项
--with-data
/--with-schema
/--with-statistics
- 新增选项
pg_upgrade
- 新增选项
--swap
- 新增选项
amcheck
- 新增函数
gin_index_check()
- 新增函数
dblink
- SCRAM 认证直通
pg_overexplain
- contrib 模块,用于扩展
EXPLAIN
输出
- contrib 模块,用于扩展
回滚
PostgreSQL 链接
博客、播客、新闻通讯等
- Scaling Postgres 359 - Trillions of Rows & Metrics(2025-03-30)—— 对近期 PostgreSQL 文章等的视频回顾,时长约 18 分钟
- 2025-03-10 这一周(第 10 周)的贡献 (2025-03-27)
- Postgres Weekly Issue 594 (2025-03-27)
公告
- Autobase 2.2.0 发布 (2025-03-27)
- powa-collector 1.3.1 发布! (2025-03-25)
- 宣布 E-Maj 4.6.0 发布。 (2025-03-24)
- E-Maj 是一个 扩展,支持对数据库子集的精细化写入日志记录和时间旅行
其他
- PostgreSQL 本周人物:Shruthi K C (2025-03-24)
新 PgPedia 条目
已添加以下新条目
PostgreSQL 提交的值得关注的变更
- d6d8054d(2025-03-29):
localbuf: 也在 BufferDesc 中跟踪 pincount
- 08ccd56a(2025-03-29):
aio, bufmgr: 注释修复/改进
- 50cb7505(2025-03-29):
aio: 实现 smgr/md/fd 中的读取支持
- dee80024(2025-03-29):
修复将校验和失败统计信息错误归因于错误的数据库
- 14ffaece(2025-03-29):
amcheck: 添加 gin_index_check() 来验证 GIN 索引
- 53a2a156(2025-03-29):
pgbench: 使 set_random_seed() 在所有地方都成为 64 位。
- 8b6a0e23(2025-03-29):
修复 MERGE 和 DO NOTHING 操作到分区表。
向后移植约 15 - a0ed19e0(2025-03-29):
在格式字符串中使用 PRI?64 而不是 "ll?"(续)。
- a0a46017(2025-03-28):
物化视图统计信息依赖于物化视图数据。
- 775a06d4(2025-03-28):
使 group_similar_or_args() 尽可能少地重新排序子句列表
- 519338ac(2025-03-28):
使用 ARM SVE 内建函数优化 popcount 函数。
- 3c8e463b(2025-03-28):
撤销 "Tidy up locale thread safety in ECPG library."
- 6be53c27(2025-03-28):
使用 ARM Neon 内建函数优化 popcount 函数。
- 51a0382e(2025-03-28):
修复 LockErrorCleanup() 被调用两次时的崩溃
- 9ac6f7e7(2025-03-28):
重命名 TRY_POPCNT_FAST 为 TRY_POPCNT_X86_64。
- a5419bc7(2025-03-28):
修复 UUIDv7 实现中的时间戳溢出。
- 8e993bff(2025-03-28):
Tidy up locale thread safety in ECPG library.
- 83ccc858(2025-03-28):
pg_overexplain 使用 PG_MODULE_MAGIC_EXT。
- 9f0c36ae(2025-03-28):
pg_overexplain: 适当地调用之前的钩子。
- cdc168ad(2025-03-28):
添加对虚拟 生成列 的 not-null 约束的支持
- 747ddd38(2025-03-28):
现代化一些代码
- 9a9ead11(2025-03-28):
重命名节点字段以提高清晰度
- fb2ea12f(2025-03-28):
pg_createsubscriber: 添加 '--all' 选项。
- 890fc826(2025-03-28):
使用线程安全的 strftime_l() 而不是 strftime()。
- 058b5152(2025-03-27):
修复 GUC malloc 调用以保持一致性并进行 OOM 检查
向后移植约 16 - 043799fa(2025-03-27):
在 heap amcheck 中使用流式读取 I/O
- 4623d714(2025-03-27):
防止 contrib/[pg_freespacemap|]]. 中的断言失败。
向后移植约 13 - 9fbd53de(2025-03-27):
移除 GUC query_id_squash_values
- b98be8a2(2025-03-27):
提供线程安全的 pg_localeconv_r()。
- 4a02af8b(2025-03-27):
简化 ALTER TABLE ALTER CONSTRAINT NO INHERIT 的语法
- ad9a23bc(2025-03-27):
优化查询混乱
- f31aad9b(2025-03-27):
修复查询混乱以考虑 NULL 节点
- c325a763(2025-03-18):
aio: 添加 io_method=io_uring
- 8eadd5c7(2025-03-18):
aio: 添加 liburing 依赖
- 9469d7fd(2025-03-26):
aio: 将 pgaio_io_prep_* 重命名为 pgaio_io_start_*
- f321ec23(2025-03-26):
aio: 将本地回调的结果传递给 ->report_return
- 96da9050(2025-03-26):
aio: 对中断更加警惕
- 8d5ceb11(2025-03-26):
pg_overexplain: 用于调试的其他 EXPLAIN 选项。
- 81824550(2025-03-26):
在 brin_bloom_union 中保留解压缩的过滤器
向后移植约 14 - 55527368(2025-03-26):
在可安装的共享库中使用 PG_MODULE_MAGIC_EXT。
- 9324c8c5(2025-03-26):
引入 PG_MODULE_MAGIC_EXT 宏。
- 3642df26(2025-03-26):
dblink: SCRAM 身份验证直通
- a3b6dfd4(2025-03-26):
添加对 gamma() 和 lgamma() 函数的支持。
- 7c82b4f7(2025-03-26):
修复 scram_SaltedPassword() 中的整数溢出问题
向后移植约 16 - 787514b3(2025-03-26):
在 RangeTblEntry 的查询混乱中使用关系名称而不是 OID
- bde2fb79(2025-03-25):
添加 pg_dump --with-{schema|data|statistics} 选项。
- 626d7236(2025-03-25):
pg_upgrade: 添加 --swap 以加快文件传输。
- 9c49f0e8(2025-03-25):
pg_dump: 添加 --sequence-data。
- cf131fa9(2025-03-25):
initdb: 添加 --no-sync-data-files。
- 650ab8aa(2025-03-25):
Stats: 使用 schemaname/relname 而不是 regclass。
- 1a759c83(2025-03-25):
psql: 使默认的 \watch 间隔可配置
- ef7a5af7(2025-03-25):
重构: 将关系 OID 而不是 Relation 传递给 createForeignKeyCheckTriggers()
- 639238b9(2025-03-25):
重构: 分割 ATExecAlterConstraintInternal()
- a3280e2a(2025-03-25):
重构: 将一些更新 pg_constraint 的代码移到一个单独的函数
- f4b2a62a(2025-03-25):
为 Add ALTER TABLE ... ALTER CONSTRAINT ... SET [NO] INHERIT 进行的小修复
- 62f36d69(2025-03-25):
postgres_fdw: 在 semijoin_target_ok() 中移除冗余检查
向后移植约 17 - 3c86223c(2025-03-25):
libpq: 弃用 pg_int64。
- be1cc9aa(2025-03-25):
泛化网络支持函数中的索引支持
- 5ac462e2(2025-03-25):
添加对 custom_query_jumble 作为节点字段属性的支持
- 626df47a(2025-03-24):
从 TupleHashEntryData 中移除 'additional' 指针。
- a0942f44(2025-03-24):
添加 ExecCopySlotMinimalTupleExtra()。
- 4d143509(2025-03-24):
创建 TupleHashEntry 的访问器函数。
- cc721c45(2025-03-24):
HashAgg: 为 hash TupleHashTable 条目使用 Bump 分配器。
- 023fb512(2025-03-25):
postgres_fdw: 避免从子查询中上提 restrict infos
向后移植约 17 - adb5f85f(2025-03-24):
将 max_files_per_process 定义为控制额外打开的文件
- aea916fe(2025-03-24):
修复 bitmapheapscan 对 NULL 元组的错误重检查
- c68100aa(2025-03-25):
允许 pg_recvlogical 的 --drop-slot 在没有 --dbname 的情况下工作。
- 76563f88(2025-03-24):
postgres_fdw: 改进安全检查
- d696406a(2025-03-24):
psql: 在 \dx 输出中显示默认扩展版本
- 73eba500(2025-03-24):
检测并记录 multiple_unique_conflicts 类型冲突。
- 2a0cd38d(2025-03-24):
允许插件在 PlannedStmt 中设置 64 位计划标识符
请注意,提交按其在提交日志中的出现顺序显示,这可能不反映单个提交的创建日期。
请参阅 PostgreSQL GIT 提交日志 查看完整的提交列表。
最后...
如果有什么遗漏,或者您有一些(建设性的)想法,请留下您的 反馈 和/或 买杯咖啡。