IVM Development Group is pleased to announce the release of [pg_ivm 1.17](
https://github.com/sraoss/pg_ivm/releases/tag/v1.17 ).
Changes since the v1.16 release include:
## What's Changed
### New features
* Add replace option to restore_immv() (Yugo Nagata)
Allow restore_immv() to replace existing IMMV metadata entries. Add a
--pg-upgrade option to pg_ivm_dump_metadata to generate restore commands that
can be used with pg_upgrade. Previously, restoring IMMVs after pg_upgrade
failed because old IMMV entries remained in pg_ivm_immv.
### Bug fixes
* Fix incorrect ispopulated state after restore_immv() (Gori)
restore_immv() incorrectly left ispopulated = false after restoring an
IMMV. As a result, a later refresh_immv() could add a duplicate set of IVM
triggers, causing incorrect view maintenance.
* Improve unique key derivation for automatic index creation (Yugo Nagata)
Derive unique keys from the original view definition instead of the
rewritten query. This enables automatic index creation for queries where
uniqueness can be determined from the original query shape, such as queries
containing EXISTS clauses.
Also reject target lists containing set-returning functions, since such
queries cannot have a unique key even when all primary key columns are present.
In addition, ignore subqueries without range table entries, since they produce
at most one row when they do not contain set-returning functions.
Replace the DETAIL message reported when automatic index creation fails
with a more general description, since the reasons preventing unique-key
derivation can be complex.
* Fix crash during index creation with LATERAL subqueries (Yugo Nagata)
* Fix assertion failure in check_immv_compatibility() (Yugo Nagata)
### 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)