pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
IVM Development Group 很高兴宣布 pg_ivm 1.17 发布。相较于 1.16,主要变化如下。
允许 restore_immv() 替换已有 IMMV 元数据条目。pg_ivm_dump_metadata 新增 --pg-upgrade 选项,用于生成可配合 pg_upgrade 使用的恢复命令。此前,旧的 IMMV 条目会保留在 pg_ivm_immv 中,导致 pg_upgrade 后恢复 IMMV 失败。
restore_immv() 恢复 IMMV 后错误地将 ispopulated 留为 false。随后调用 refresh_immv() 可能重复添加一组 IVM 触发器,导致视图维护结果错误。
改为根据原始视图定义推导唯一键,而非使用重写后的查询。对于能够从原始查询结构判断唯一性的查询,例如含有 EXISTS 子句的查询,现在可以自动创建索引。
同时拒绝目标列表中包含集合返回函数的查询:即使包含了全部主键列,这类查询也无法具有唯一键。此外,忽略没有范围表条目的子查询,因为在不含集合返回函数时,它们至多产生一行。
自动创建索引失败时的 DETAIL 消息也改为更通用的描述,因为无法推导唯一键的原因可能较为复杂。
pg_ivm 是提供增量视图维护(IVM)能力的扩展模块。增量视图维护通过仅计算并应用变化量,使物化视图保持最新,无需重新计算整个视图。
pg_ivm 提供即时维护:基表发生修改后,物化视图立即更新。