IVM Development Group is pleased to announce the release of [pg_ivm 1.10](
https://github.com/sraoss/pg_ivm/releases/tag/v1.10 ).
Changes since the v1.9 release include:
### Bug Fixes
* 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.
### About pg_ivm
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](https://github.com/sraoss/pg_ivm)