IVM Development Group 荣幸地宣布发布 pg_ivm 1.10。
自 v1.9 版本以来,主要变更包括:
修复 DROP EXTENSION 失败问题 (Ishant Bhaskar)
之前,删除 pg_ivm 会因为一个钩子函数(该函数允许在 IMMV 上执行 DROP TABLE 来移除其在 pg_ivm_immv 中的条目)而导致错误“无法打开 OID ... 的关系”。此外,在执行 DROP EXTENSION pg_ivm 的同时执行 DROP TABLE 也可能导致同样的错误。
使用返回集合的函数时防止自动创建索引 (Yugo Nagata)
之前,即使在 FROM 子句中出现了返回集合的函数,也会自动创建一个唯一索引,这会导致因键重复而产生的错误。
将模式从 pg_catalog 更改为 pgivm (Yugo Nagata)
之前,由于权限问题导致 pg_upgrade 失败,因为 pg_ivm_immv 目录是在 pg_catalog 中创建的。为了解决这个问题,pg_ivm 创建的所有对象都已移动到 pgivm 模式,该模式现在由 pg_ivm 自动创建。
重大变更:这会影响与先前版本的兼容性。如果您想像以前一样访问 create_immv 函数等对象,则必须使用 pgivm 模式限定它们,或相应地调整您的 search_path。
修复了从表中删除列时的视图维护失败问题 (Yugo Nagata)
当表中包含已删除的列时,增量视图维护会因类似以下错误而失败:
错误:在子查询的目标列表中找不到属性 43
修复潜在的视图不一致问题 (Yugo Nagata)
之前,在以下场景下,视图内容可能与基表不一致:
1) 并发事务修改了基表,并在当前事务的增量视图维护开始之前提交。
2) 并发事务修改了基表,并在 create_immv 或 refresh_immv 命令生成数据之前提交。
3) 并发事务以自连接的方式增量更新视图,或同时修改多个基表。
这些问题现已得到解决,以确保一致性。
pg_ivm 是一个扩展模块,提供增量视图维护 (IVM) 功能。
增量视图维护 (IVM) 是一种使物化视图保持最新的方法,其中只计算和应用对视图的增量更改,而不是重新计算。pg_ivm 提供了一种即时维护方式,物化视图在基础表被修改后会立即更新。