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 输出

回滚

PostgreSQL 链接

博客、播客、新闻通讯等

公告

新 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 提交日志 查看完整的提交列表。

最后...

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