Lanzamiento de pg_ivm 1.17
El Grupo de Desarrollo de IVM se complace en anunciar el lanzamiento de pg_ivm 1.17.
Los cambios desde la versión 1.16 incluyen:
Cambios realizados
Nuevas características
- Se añade la opción replace en restore_immv() (Yugo Nagata)
Ahora, restore_immv() permite reemplazar las entradas existentes de metadatos de las IMMV. Además, se incorpora la opción –pg-upgrade a pg_ivm_dump_metadata, que permite generar comandos de restauración compatibles con pg_upgrade. Anteriormente, la restauración de las IMMV después de una actualización mediante pg_upgrade fallaba debido a que las entradas antiguas seguían presentes en pg_ivm_immv.
Corrección de errores
- Corrección del estado incorrecto de ispopulated tras restaurar una IMMV con restore_immv() (Gori)
Se ha corregido un problema por el cual la función restore_immv() mantenía incorrectamente el estado ispopulated = false tras la restauración de una vista materializada incremental (IMMV). Esta situación podría ocasionar que una ejecución posterior de refresh_immv() incorporara un conjunto duplicado de triggers IVM, lo que comprometía el mantenimiento adecuado de la vista.
- Mejoras en la derivación de claves únicas para la creación automática de índices (Yugo Nagata)
Se modifica el procedimiento de derivación de claves únicas para que estas se determinen a partir de la definición original de la vista, en lugar de utilizar la consulta reescrita. Esta modificación posibilita la creación automática de índices en aquellas consultas cuya unicidad puede establecerse mediante el análisis de su estructura original, incluidas las que incorporan cláusulas EXISTS.
Asimismo, se establece el rechazo de las listas de selección que contengan funciones que devuelven conjuntos de resultados, puesto que dichas consultas no pueden disponer de una clave única, aun cuando incluyan todas las columnas correspondientes a la clave primaria. Adicionalmente, se excluyen del análisis las subconsultas que carezcan de entradas en la tabla de rangos, debido a que, en ausencia de funciones que devuelvan conjuntos, estas generan como máximo un registro.
Finalmente, se sustituye el mensaje DETAIL presentado cuando se produce un error durante la creación automática de índices por una descripción de carácter más general, considerando que los factores que imposibilitan la derivación de claves únicas pueden presentar una complejidad considerable. - Se corrigió un error que provocaba un cierre inesperado durante la creación de índices con subconsultas LATERAL (Yugo Nagata)
- Se solucionó un fallo de aserción en la función check_immv_compatibility() (Yugo Nagata)
Sobre pg_ivm
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

