pg_ivm 1.10 released

Posted on 2025-03-14 by IVM Development Group
Related Open Source

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