Lanzamiento de pg_ivm 1.16
El Grupo de Desarrollo de IVM se complace en anunciar el lanzamiento de pg_ivm 1.16.
Los cambios desde la versión 1.15 incluyen:
Cambios realizados
Nuevas características
- Se añade soporte para PostgreSQL 19 ( Devrim Gündüz )
Corrección de errores
- Se corrige un fallo de segmentación que se producía cuando una IMMV era mantenida y eliminada dentro de una misma transacción (Yugo Nagata)
- Se corrige el mantenimiento de IVM para tablas que carecen de operadores de igualdad predeterminados (Yugo Nagata)
Cuando una tabla base contenía un tipo que no disponía de un operador de igualdad predeterminado, el mantenimiento de las vistas fallaba al actualizar la tabla, incluso cuando dicha columna no era utilizada en la definición de la vista.
- Se corrige el manejo de los OID cuando su valor excede INT_MAX (Artur Aleksander Kanošin)
El mantenimiento de las vistas fallaba cuando el contador global de OID superaba INT_MAX.
- Prevención de fallos espurios de transacciones durante el mantenimiento incremental (Dzmitry Levankou)
Durante el mantenimiento incremental, se bloquea la vista materializada para evitar anomalías provocadas por operaciones de mantenimiento concurrentes. Debido a la forma en que se gestionaba anteriormente la liberación de estos bloqueos durante el commit, una transacción podía fallar innecesariamente con un error de bloqueo, incluso cuando no se estaba realizando ningún mantenimiento incremental de forma concurrente. Este problema también podía ocasionar fallos intermitentes en las pruebas de aislamiento cuando el sistema estaba bajo carga.
Sobre pg_ivm
Cuando una tabla base contenía un tipo que no disponía de un operador de igualdad predeterminado, el mantenimiento de las vistas fallaba al actualizar la tabla, incluso cuando dicha columna no era utilizada en la definición de la vista.
El mantenimiento de las vistas fallaba cuando el contador global de OID superaba INT_MAX.
Durante el mantenimiento incremental, se bloquea la vista materializada para evitar anomalías provocadas por operaciones de mantenimiento concurrentes. Debido a la forma en que se gestionaba anteriormente la liberación de estos bloqueos durante el commit, una transacción podía fallar innecesariamente con un error de bloqueo, incluso cuando no se estaba realizando ningún mantenimiento incremental de forma concurrente. Este problema también podía ocasionar fallos intermitentes en las pruebas de aislamiento cuando el sistema estaba bajo carga.
pg_ivm es un módulo de extensión que proporciona funciones para el Mantenimiento de Vistas Incrementales (IVM).
El Mantenimiento de Vistas Incrementales (IVM) es un método para actualizar las vistas materializadas en el que sólo se calculan y aplican cambios incrementales en las vistas en lugar de reprocesarlas. pg_ivm proporciona un tipo de mantenimiento inmediato, en el que las vistas materializadas se actualizan inmediatamente tras la modificación de una tabla base.
Repositorio fuente https://github.com/sraoss/pg_ivm
Haz clic aquí para leer la noticia original en inglés en la página web oficial de PostgreSQL.

