↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

PostgreSQL 博览 RSS

保留原始来源与发布日期的新闻、博客和活动。

3 条内容

PostgreSQL JDBC 42.7.12 修复通道绑定静默降级

JDBC ProjectPostgreSQL 新闻

pgJDBC 42.7.12 修复 CVE-2026-54291。连接参数写了 channelBinding=require 时,握手仍可能从带通道绑定的 SCRAM-SHA-256-PLUS 静默降级为普通 SCRAM-SHA-256,中间人防护就此失效。成因有两处:内置 SCRAM 客户端库无法为某些证书推导通道绑定哈希时返回空字节数组而不报错,pgJDBC 的认证器又没强制执行该要求。受影响的是 42.7.4 到 42.7.11。

pg_dump 目录格式被指存在路径遍历风险

Daniel GustafssonPostgreSQL hackers

pg_dump 的目录格式存在路径遍历风险:攻击者构造恶意的 toc.dat 或 blobs_*.toc 条目,就能把写入路径指到任意位置,例如让 blob_16388.dat 落到上级目录的 /etc/passwd。Dilip Kumar 提出直接匹配 . 和 .. 两个字符串,Daniel Gustafsson 指出这盖不住嵌在路径中间的 .. 序列,主张改用更精确的模式匹配,并补上恶意 TOC 文件的测试。

Robert Haas 要求回退冲突日志表的预备补丁

Robert HaasPostgreSQL hackers

逻辑复制冲突日志历史表的预备补丁 a5918fd 刚进主干,Robert Haas 就提出两处设计问题。其一,在 try/catch 中途暂存错误再调用 AbortOutOfAnyTransaction(),若调用栈上还有未执行的 catch 块,行为不可预期。其二,往冲突日志表插入记录本身失败时,这张表会与被复制的表永久失去同步。他认为方案从根上就有缺陷,呼吁回退提交并重新设计。

20 条内容

PG19 外键快速路径的批处理修复被指不彻底

Noah MischPostgreSQL hackers

PostgreSQL 19 为外键检查加了快速路径,批量操作下暴露出越界写入和漏掉约束检查的问题,提交 4113873 的做法是把批处理限制在顶层事务。Noah Misch 反对这个修法:用到 SAVEPOINT 时会带来约 1.6 倍的性能回退,也偏离了按子事务跟踪资源的惯例,代码并未变简单。他主张改成按子事务跟踪批处理来源,并指出 AfterTriggerEndSubXact() 没有重置 firing_depth,捕获触发器错误后外键校验可能被错误路由。

页面级清理:VACUUM 之前先发生的那一步

Radim Marekboringsql.com

Radim Marek 拆解了堆页内部的清理过程。页面剪枝只在单个堆页里回收死元组占的字节并推进 pd_upper 做碎片整理,普通 SELECT 碰到 HOT 链时就会顺手做,VACUUM 的第一阶段也对每个页做一遍。有索引时行指针走 LP_NORMAL 到 LP_DEAD 再到 LP_UNUSED,无索引时一步到位;LP_DEAD 表示空间已回收但 TID 仍被索引引用。HOT 链的头指针会转成 LP_REDIRECT,索引顺着它找到当前版本,从而完全省掉索引更新。

PostGIS 3.7.0alpha1 发布,弃用 PG12 与 13

PostGIS 团队PostGIS

PostGIS 团队发布 3.7.0alpha1,要求 PostgreSQL 14 到 19beta1、GEOS 3.10 以上、Proj 6.1 以上。这一版丢掉了对 PostgreSQL 12 与 13 的支持,把 address_standardizer 和 tiger_geocoder 移出主仓库;拓扑函数把容差 0 当作字面零,按精度取容差要改写 -1。新增 ST_CoverageEdges、ST_MinimumSpanningTree 等函数。

credcheck 5.0 让密码历史支持复制感知

HexaClusterHexaCluster

credcheck 在创建用户、改密码和改名时执行统一的凭据规则,涵盖复杂度、历史复用、最短有效期、认证失败次数与首次登录强制改密。HexaCluster 发布的 5.0 是大版本更新,新增 PostgreSQL 19 兼容性,并让密码历史机制具备复制感知能力;打开 credcheck.superuser_nocheck 后超级用户的建角色与改角色会跳过检查。升级后需要重启 PostgreSQL 才能重新加载该库。

pg-cdc 把 WAL 直接写成 S3 上的 Iceberg 表

burnside projectPostgreSQL 新闻

burnside project 开源的 pg-cdc 读取 PostgreSQL 的 WAL,把变更以 Apache Iceberg 表的形式写入 AWS S3,并自动在 Glue Catalog 注册表,用 Lake Formation 的标签控制读取,消费方走 IAM 认证,不需要数据库账号密码。工具只有一个二进制,不依赖 JVM;数据流严格单向,架构上不存在回写生产库的路径。每次刷新生成一个 Iceberg 快照,可以对 CDC 历史做时间旅行查询。

sqlite-utils 4.0rc2 记录了一次真实的模型协作

Simon WillisonSimon Willison 博客

Simon Willison 发布 sqlite-utils 4.0rc2,其中大量工作由 Claude Fable 辅助完成,他估算未计补贴的成本约 149.25 美元,又让 GPT-5.5 做交叉审查,找出两个与事务和 RETURNING 相关的问题。这是一份高水平开发者用强模型做真实开源发布的完整账目:产出确实有,但审查成本同样真实。对数据库工具而言可借鉴的是,价值不在于让模型一口气写完,而在于让不同模型、测试与人工复核专门盯住事务、副作用和文档承诺。

1 条内容