pg_ivm 1.4 released

Posted on 2022-12-20 by IVM Development Group
Related Open Source

IVM Development Group is pleased to announce the release of pg_ivm 1.4.

Changes since the v1.3 release include:

Bug fixes

  • Prohibit to create IMMVs including other IMMV (Takuma Hoshiai)

    IMMVs that contain other IMMV or materialized view cannot be maintained for now when a table underlying inner IMMV or materialized view is modified.

  • Fix segmentation fault when non-SELECT query is specified in create_immv (Takuma Hoshiai)

  • Fix a bug that a unique index could be created improperly (Yugo Nagata)

    It is intended that a unique index is created only if all primary keys of tables in FROM clause appear in the target list. But, due to this bug, an index could be created even when there were pkey attributes from just one of relations in FROM clause.

  • Fix bugs that occur when column names are specified in an aggregate view (Yugo Nagata)

    When the number of specified column names and the length of the target list of the view definition query didn't match, segmentation fault occurred or incremental maintenance of the view failed.

  • Use exclusive lock for view maintenance caused by UPDATE or DELETE (Yugo Nagata)

    When a table was modified by DELETE or UPDATE in concurrent transactions, incremental view maintenance could end in wrong results, which is avoided by using the lock for now. Note that affected IMMVs are those that contain only one table and do not use aggregate or DISTINCT, because IMMVs with more than one table, or using aggregate or DISTINCT, are already maintained in exclusive manner.

Full Changelog:

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: