PostgreSQL 资讯
保留原始来源与发布日期的新闻、博客和活动。
改为 UNLOGGED 的表将自动移出发布
xl_heap_visible 削减提交引发回归测试不稳定
RI 触发器快速路径补丁存在常量正确性问题
Postgres 性能三角:内存、磁盘与并发互相牵制
Richard Yen 类比摄影曝光三角,主张先看清代价当前落在哪里,再决定要把它挪到何处。
查询提示系列开篇:除 PostgreSQL 外各家都有 hints
Oracle 的百余个内联提示最典型,SQL Server 与 Db2 则走计划向导和 XML 配置的带外路线。
COPY TO FORMAT JSON 将真正实现 ENCODING 转换
Tom Lane 否决了直接拒绝该选项的做法,要求用 pg_server_to_any() 与 text、CSV 行为对齐。
跨会话访问临时表的修复补丁通过审查
Alexander Korotkov 建议把沿用多年、已被翻译成多语的错误信息改写单独拆成一个补丁。
REPACK CONCURRENTLY 不再要求 REPLICATION 权限
Antonin Houska 的补丁又暴露出误要求 LOGIN 权限,以及 wal_level=minimal 下回归测试失败。
WAIT FOR LSN 补丁集完成重设计并补齐测试
Alexander Korotkov 合入了内存屏障读写与唤醒机制的修补,并补上跨时间线场景的测试与说明。
Vercel 确认客户数据经 Context AI 被窃取
Vercel 披露了一起客户数据被窃取的安全事件,并把源头指向 AI 编码助手服务 Context AI 此前遭到的攻击。攻击者利用 Context AI 的漏洞劫持了一名 Vercel 员工的账号,进而未授权访问 Vercel 的系统与客户信息,事件期间有敏感客户数据外泄,公司已通知受影响客户并着手加固。这是一条典型的第三方服务横向渗透链路:开发者平台接入的 AI 助手、CI 集成和 OAuth 应用都是攻击面。
TigerData 测算每次写入的 3 到 4 倍写放大
写入密集负载下,PostgreSQL 落盘的字节数远多于应用提交的逻辑数据。Matty Stratton 按 1KB 一行测算,堆元组的 MVCC 头、索引维护和 WAL 记录合计产生约 2.5KB 实际写入,每秒 50MB 应用数据会变成 150 到 190MB 磁盘写入。结构性来源是 WAL 二次写入和检查点后的整页写,索引数量再线性叠加,每多一个约增 0.3 倍。调整检查点与精简索引能压到 2.5 倍左右,但消不掉底线。
pg_dbms_job v2.0 把 Perl 调度器重写为 C 后台进程
pg_dbms_job 让 PostgreSQL 以 Oracle DBMS_JOB 的方式创建和调度定时任务,任务体可以是 SQL、plpgsql 代码块或已有存储过程。HexaCluster 发布的 v2.0 把原先独立运行的 Perl 调度守护进程重写成 C 写的 background worker,不再需要额外进程;休眠间隔与任务队列间隔改为可配置,run_duration 列换成 interval 类型。
credcheck v4.7 新增超级用户豁免与禁止改密开关
credcheck 在建用户、改口令和改名时执行凭证策略,可限定口令字符集、有效期、重用策略与认证失败次数。HexaCluster 发布的 v4.7 新增两个 GUC,一个让超级用户的变更跳过口令策略,另一个禁止修改密码;同时修复了 plpgsql 代码块中执行 CREATE ROLE 时口令有效期的行为。升级后需重启 PostgreSQL 重新加载该库。
pg_pathcheck 扩展揪出规划器里的隐形悬垂指针
PostgreSQL 规划器生成路径时会淘汰下层关系里的 Path,上层结构却可能仍持有指向它的指针。查询结束前没人解引用这些悬垂指针,Valgrind 很难发现;分配器按 2 的幂划分尺寸类,被释放的 Path 转眼被回收成别的节点。Andrei Lepikhov 从一次 postgres_fdw 分片方案的间歇崩溃查起,写了约 600 行 C 的 pg_pathcheck,遍历可达路径校验 NodeTag 与父关系归属两条不变式。
HighGo 逐段拆解 PostgreSQL 19 的 REPACK 实现
REPACK 是 PostgreSQL 19 新增的表压缩命令,靠重写存储回收空间,同时保持表的 OID 与目录身份不变。Chao Li 顺着 repack.c 梳理了两种模式:非并发模式全程持排他锁,重写完再建索引;并发模式先在较弱的锁下建好新索引,由后台工作进程从临时复制槽解码 WAL,把拷贝期间的增量重放到新堆,最后才短暂升级排他锁完成切换。并发模式要求表上有副本标识索引或非延迟主键,否则无法定位待重放的更新与删除。
并行 Apply 补丁继续讨论提交顺序
REPACK 注释仍引用已删除的 bgworker_die()
Bitmapset 测试模块的五处问题已修复推送
PGConf.EU 2026 征集社区活动日提案
大会 10 月 20 至 23 日在西班牙瓦伦西亚举行,活动日提案 4 月 27 日截止。
PGDay Armenia 2026 公布日程并开售早鸟票
4 月 30 日在埃里温举行,是亚美尼亚首届 PostgreSQL 大会。
WAL 削减提交后 btree_gist 测试变得不稳定
提交 378a21618 让 ANALYZE 也扩大可见性映射覆盖,计划从位图扫描转为仅索引扫描。
REPACK 死锁预防出现两套方案
Antonin Houska 想在 LOCK 里标记升级中的锁,Mihail Nikalayeu 主张在 PGPROC 里预先声明未来锁。
沙箱不可信代码的方案撞上困惑代理问题
Robert Haas 发现自己提的两条沙箱规则都挡不住诱导可信用户执行危险函数的攻击。