IVM Development Group is pleased to announce the release of pg_ivm 1.10.
Changes since the v1.9 release include:
Fix a failure in DROP EXTENSION (Ishant Bhaskar )
Previously, dropping pg_ivm caused the error "could not open relation with OID ..." due to a hook function that allows DROP TABLE on an IMMV to remove its entry from pg_ivm_immv. Additionally, issuing DROP TABLE concurrently with DROP EXTENSION pg_ivm could result in the same error.
Prevent automatic index creation when using set-returning function (Yugo Nagata)
A unique index was previously created automatically even when a set-returning function appeared in the FROM clause, which led to errors due to key duplication.
Change schema from pg_catalog to pgivm (Yugo Nagata)
Previously, pg_upgrade failed due to permission issues because the pg_ivm_immv catalog was created in pg_catalog. To resolve this, all objects created by pg_ivm have been moved to the pgivm schema, which is now created automatically by pg_ivm.
Breaking Change: This affects compatibility with previous releases. If you want to access objects like the create_immv function as before, you must either qualify them with the pgivm schema or adjust your search_path accordingly.
Fixed view maintenance failures when a column is dropped from a table (Yugo Nagata)
When a table contained a dropped column, incremental view maintenance failed with an error like:
ERROR: could not find attribute 43 in subquery targetlist
Fix potential view inconsistency issues (Yugo Nagata)
Previously, the view contents could become inconsistent with the base tables in the following scenarios:
1) A concurrent transaction modifies a base table and commits before the incremental view maintenance starts in the current transaction.
2) A concurrent transaction modifies a base table and commits before the create_immv or refresh_immv command generates data.
3) Concurrent transactions incrementally update a view with a self-join or modify multiple base tables simultaneously.
These issues have now been resolved to ensure consistency.
pg_ivm is an extension module that provides Incremental View Maintenance (IVM) feature.
Incremental View Maintenance (IVM) is a way to make materialized views up-to-date in which only incremental changes are computed and applied on views rather than recomputing. pg_ivm provides a kind of immediate maintenance, in which materialized views are updated immediately after a base table is modified.
Source repository: https://github.com/sraoss/pg_ivm