What's Changed
Bug Fixes
-
Fix a failure in DROP EXTENSION by @ibhaskar2 in #96
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 by @yugo-n in #106
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 by @yugo-n in #116
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 by @yugo-n in #117
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 by @yugo-n in #121
Previously, the view contents could become inconsistent with the base tables in the following scenarios:
-
A concurrent transaction modifies a base table and commits before the
incremental view maintenance starts in the current transaction. -
A concurrent transaction modifies a base table and commits before the
create_immv or refresh_immv command generates data. -
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.
-
Source Code Improvements
- Drop unused params from ExecCreateImmv function by @reshke in #102
- Create .gitignore file for excluding any binary/executable files by @reshke in #103
- Clean duplicated code and some typos by @hyongtao-db in #112
New Contributors
- @ibhaskar2 made their first contribution in #96
- @hyongtao-db made their first contribution in #111
Full Changelog: v1.9...v1.10