October 15, 2026: PostgreSQL 19 RC 1 Released!

pg_ivm 1.17 released

Posted on 2026-10-26 by IVM Development Group
Related Open Source

IVM Development Group is pleased to announce the release of pg_ivm 1.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