↑↓ 选择 ↵ 打开 ⌫ 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

PostgreSQL 博览 RSS 订阅

当天收录 26 条。

PostgreSQL 修复字符索引去重导致的错误结果

Peter Geoghegan、Shihao ZhongPostgreSQL Git

PostgreSQL 已提交 B-tree 去重修复:bpchar 比较会忽略尾随空格,某些等值数据却有不同的存储表示;去重把它们合并后,仅索引扫描可能返回错误值。补丁为相关操作符类禁用去重,并在主线与 19 分支处理 oidvector 的类似问题。维护者明确要求重建受影响的 bpchar 索引,单纯更新程序无法修正已有索引。补丁注明回补至 14;这是已提交修复,尚不能等同于正式小版本已发布。

事务清理遗漏可能让逻辑解码丢失后续变更

Sergei Patiakin、Masahiko SawadaPostgreSQL Git

PostgreSQL 已合入一项逻辑解码修复。事务进入失败状态后仍可能持有事务 ID,逻辑日志模式的更新必须延后;旧处理却只在事务中止路径检查,最终清理没有重新应用变更。连接随后开始的新事务便可能缺少逻辑解码所需的信息,订阅端因此静默跳过数据变化。补丁把状态更新移到事务 ID 清除之后,覆盖显式事务失败后再回滚的边界,并注明回补至 19。依赖逻辑复制或 CDC 的团队应关注后续正式版本收录情况。

pgBackRest 2.59.3 修复弱加密子密钥问题

pgBackRest 项目组pgBackRest

pgBackRest 2.59.3 修复了未检查随机数生成结果的问题:若系统熵不足导致调用失败,旧版本可能以残留内存生成加密子密钥或盐,使备份加密强度不足。问题只涉及加密仓库,但升级程序本身不会轮换已经写入仓库元数据的子密钥,后续备份也会继续沿用它们。项目提供了检查方法;确认存在弱子密钥时,需要按公告建立新的仓库与备份链。运维团队应同时核对程序版本和已有密钥,不能把升级完成视为历史风险已经消除。

用逻辑复制汇总多库,先处理模式与变更边界

Dimitri FontaineTapoueh

将商店、客户管理和账单库汇总到一个分析库,逻辑复制能够搬运数据,却不会自动改写模式名或同步表结构。Dimitri Fontaine 用 PostgreSQL 18 的可复现实验,说明发布端应预先划分模式,新增列与删除列也需要安排两端执行顺序。调整行过滤和列清单不会清掉订阅端已有数据;汇总库再输出 CDC 时,还须明确是否包含复制来源的变更。文章把过滤、二次解码和结构演进放在同一流程中,便于在上线前验证数据边界。

179 项索引建议实测,32 项反而拖慢查询

Prateek AroraPrateek Arora

索引顾问常用 HypoPG 比较优化器成本,但成本下降不代表查询一定加速。Prateek Arora 在 PostgreSQL 16 上使用约 7 GB 的 IMDB 数据,实际创建建议索引并执行查询:179 项可测建议中,128 项至少快 15%,32 项至少慢 5%,其中 7 项耗时超过原来的两倍。行数估算错误会让新索引诱导优化器选择更差的连接计划,而假想索引仍依赖同一套估算。评估工具输出时,应在可控副本上验证真实执行时间与计划。

Spanner 为 Iceberg 目录提供原子元数据提交

Vinod Ramachandran、Mina MikhailGoogle Cloud

多个计算引擎共享 Iceberg 表时,目录必须协调元数据指针更新,避免并发写入覆盖彼此的结果。Google Cloud 介绍了其湖仓运行目录的实现:以 Spanner 的可串行化事务支撑乐观并发控制,通过 Iceberg REST 接口提供一致的表发现与提交路径,并在区域内提供高可用。目录还可按访问请求发放临时存储凭据,让引擎读取同一份数据而不必长期保管云存储密钥。文章说明的是现有目录的架构与权限边界,可用于评估多引擎湖仓的控制层。