PostgreSQL 19 Beta 2 发布
PostgreSQL 全球开发组发布了 PostgreSQL 19 的第二个 Beta。相比 Beta 1,这一版修掉了 vacuumdb --analyze-in-stages 在分区表上的回归、虚拟生成列的元组解构优化、FATAL 退出时 REPACK worker 未清理、逻辑解码激活时的竞态,以及 autovacuum 多事务年龄评分可能趋于无穷等问题。正式版预计 9 到 10 月发布。
pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
当天收录 37 条。
PostgreSQL 全球开发组发布了 PostgreSQL 19 的第二个 Beta。相比 Beta 1,这一版修掉了 vacuumdb --analyze-in-stages 在分区表上的回归、虚拟生成列的元组解构优化、FATAL 退出时 REPACK worker 未清理、逻辑解码激活时的竞态,以及 autovacuum 多事务年龄评分可能趋于无穷等问题。正式版预计 9 到 10 月发布。
CYBERTEC 发布 pg_hardstorage v1.0,Apache 2.0 授权,没有企业版分层,也不要求签 CLA。它通过原生复制协议流式接收 WAL,不需要配置 archive_command,可以直接用于 RDS、Cloud SQL、Aiven、Supabase 这类托管服务。特性包括 Patroni 感知的故障切换、内容寻址去重、五种 KMS 与存储后端、按租户的加密擦除和哈希链式审计日志。
目前 wal_compression = 'on' 固定映射到 pglz,那是 PostgreSQL 15 之前唯一支持的算法。提案要把 'on' 改成按 zstd、lz4、pglz 的优先级自动选择,默认值仍保持 'off'。Tomas Vondra、Andres Freund 和 Michael Paquier 都支持,Fujii Masao 反对。WAL 压缩数据不跨 pg_upgrade 保留,兼容风险比 TOAST 压缩低。
Henson Choi 用 Oracle 23ai 和 Trino 471 作参照,对约 1000 条 PATTERN 语句做了系统交叉验证。匹配器的优先级逻辑里查出三个正确性缺陷:循环守卫误判重复变量状态、空迭代停止规则处理不当、固定计数分组的快进顺序错误。上下文吸收优化里还发现两个错误结果和一处可能的规划期死循环。PostgreSQL 相比 Oracle 在解析阶段拒绝的 11 条查询都有记录在案的设计依据。
PostgreSQL 19 Beta 1 有个由提交 999dec9ec6a 引入的崩溃:并行 worker 退出时 pgstat_bktype_io_stats_valid() 断言失败。复现条件是 track_io_timing=on,当 WaitReadBuffers() 等待别的 backend 发起的外部 IO 时,会以 cnt=0 调用计时函数,写入非零读取时间却不增加读取计数。目前的主要候选方案是跳过这段外部等待时间。
Masahiko Sawada 审查在线修改 wal_level 的提交时发现两个问题。一是崩溃恢复期间的断言失败:实例在 wal_level='replica' 下建了逻辑槽,checkpointer 还没停用逻辑解码就崩溃,随后以 'minimal' 重启即触发。修复去掉了恢复结束时针对 minimal 的特殊处理,改为统一重算状态。二是 pg_controldata 没显示检查点记录里的逻辑解码状态。两个补丁都已提交。
Ilia Evdokimov 在测试 join MCV 统计的 v8 补丁时发现严重性能问题:给一张 50 万行和一张 2 万行的表建立 join MCV 统计之后,ANALYZE 的执行时间从约 36 秒涨到九分钟以上。性能剖析显示瓶颈在索引扫描期间取堆元组的阶段,绝大部分时间花在为每条索引项申请和释放缓冲区锁上,真正的 btree 遍历只占极小比例。他暂时没有明显的优化方案。
对无法重新压缩已有数据的系统来说,提升解压速度比换算法更现实。
改成 Assert 之后,非断言构建里传错缓冲区会静默改掉错误的 VM 页。
面向 DBA,按步骤覆盖认证强化、权限管理、网络访问控制与审计日志。
新函数与视图暴露 pg_hosts.conf 的解析规则,面向 PostgreSQL 20 开发版。
此前 --analyze-only 与 --analyze-in-stages 会把子分区重复分析一遍。
ESU 只提供安全更新,第一到第三年分别延续到 2027、2028 和 2029 年。
首方代码是 Apache-2.0,但仓库只是内部 monorepo 的定期同步,不收外部贡献。
预览功能,结果不阻塞合并,需要 CodeQL 默认配置并会消耗 AI credits。
576.0.0 起要保留旧行为得显式加 --do-not-decompress,同步脚本需回归。