IVM Development Group 荣幸地宣布发布 pg_ivm 1.4。
自 v1.3 版本以来的更改包括:
禁止创建包含其他 IMMV 的 IMMV(Takuma Hoshiai)
目前,当内部 IMMV 或物化视图所依赖的表被修改时,包含其他 IMMV 或物化视图的 IMMV 无法进行维护。
修复在 create_immv 中指定非 SELECT 查询时发生的段错误(Takuma Hoshiai)
修复了可能不正确创建唯一索引的错误(Yugo Nagata)
本意是仅当 FROM 子句中表的全部主键出现在目标列表中时才创建唯一索引。但是,由于此错误,即使 FROM 子句中只有一个关系的主键属性出现在目标列表中,也可能创建索引。
修复了在聚合视图中指定列名时发生的错误(Yugo Nagata)
当指定的列名数量与视图定义查询的目标列表长度不匹配时,会发生段错误或视图的增量维护失败。
对因 UPDATE 或 DELETE 引起的视图维护使用排他锁(Yugo Nagata)
当表在并发事务中通过 DELETE 或 UPDATE 修改时,增量视图维护可能导致错误结果,目前通过使用锁来避免这种情况。请注意,受影响的 IMMV 是那些仅包含一个表且不使用聚合或 DISTINCT 的 IMMV,因为包含多个表或使用聚合或 DISTINCT 的 IMMV 已经以排他方式进行维护。
完整更改日志:https://github.com/sraoss/pg_ivm/compare/1.3...v1.4
pg_ivm 是一个扩展模块,提供增量视图维护 (IVM) 功能。
增量视图维护 (IVM) 是一种使物化视图保持最新的方法,其中只计算和应用对视图的增量更改,而不是重新计算。pg_ivm 提供了一种即时维护方式,物化视图在基础表被修改后会立即更新。