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)

Reply via email to