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

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

pg_ivm 1.17 发布

发布于 2026-10-26,IVM Development Group
相关开源软件

IVM Development Group 很高兴宣布 pg_ivm 1.17 发布。相较于 1.16,主要变化如下。

新功能

为 restore_immv() 增加 replace 选项(Yugo Nagata)

允许 restore_immv() 替换已有 IMMV 元数据条目。pg_ivm_dump_metadata 新增 --pg-upgrade 选项,用于生成可配合 pg_upgrade 使用的恢复命令。此前,旧的 IMMV 条目会保留在 pg_ivm_immv 中,导致 pg_upgrade 后恢复 IMMV 失败。

缺陷修复

修复 restore_immv() 后 ispopulated 状态错误(Gori)

restore_immv() 恢复 IMMV 后错误地将 ispopulated 留为 false。随后调用 refresh_immv() 可能重复添加一组 IVM 触发器,导致视图维护结果错误。

改进自动创建索引时的唯一键推导(Yugo Nagata)

改为根据原始视图定义推导唯一键,而非使用重写后的查询。对于能够从原始查询结构判断唯一性的查询,例如含有 EXISTS 子句的查询,现在可以自动创建索引。

同时拒绝目标列表中包含集合返回函数的查询:即使包含了全部主键列,这类查询也无法具有唯一键。此外,忽略没有范围表条目的子查询,因为在不含集合返回函数时,它们至多产生一行。

自动创建索引失败时的 DETAIL 消息也改为更通用的描述,因为无法推导唯一键的原因可能较为复杂。

修复含 LATERAL 子查询时创建索引导致的崩溃(Yugo Nagata)

修复 check_immv_compatibility() 中的断言失败(Yugo Nagata)

关于 pg_ivm

pg_ivm 是提供增量视图维护(IVM)能力的扩展模块。增量视图维护通过仅计算并应用变化量,使物化视图保持最新,无需重新计算整个视图。

pg_ivm 提供即时维护:基表发生修改后,物化视图立即更新。

源代码仓库:https://github.com/sraoss/pg_ivm

原文