Lanzamiento de pg_ivm 1.10
El Grupo de Desarrollo de IVM se complace en anunciar el lanzamiento de pg_ivm 1.10.
Los cambios desde la versión 1.9 incluyen:
Corrección de errores
- Corregido un error en DROP EXTENSION (Ishant Bhaskar)
Anteriormente, la eliminación de pg_ivm provocaba el error «no se pudo abrir la relación con el OID …» debido a una función de enlace que permite que DROP TABLE en un IMMV elimine su entrada de pg_ivm_immv. Adicionalmente, la ejecución de DROP TABLE de forma concurrente con DROP EXTENSION pg_ivm podía provocar el mismo error. - Se impide la creación automática de índices al utilizar la función set-returning (Yugo Nagata)
Anteriormente un índice único era creado de forma automática incluso cuando aparecía una función set-returning en la cláusula FROM. Esto provocaba errores a causa de la duplicación de claves. - Cambio de esquema de pg_catalog a pgivm (Yugo Nagata)
Anteriormente, se producían fallos en pg_upgrade debido a problemas de permisos provocados por la creación del catálogo pg_ivm_immv en pg_catalog. Para solucionar este problema, todos los objetos creados por pg_ivm han sido movidos al esquema pgivm, que ahora es creado de forma automática por pg_ivm.
Cambio de última hora: Esta modificación es incompatible con versiones anteriores. Si se desea acceder a objetos como la función create_immv tal y como se hacía antes, es necesario calificarlos con el esquema pgivm o ajustar el search_path en consecuencia. - Solucionados los errores de mantenimiento de vistas al eliminar la columna de una tabla (Yugo Nagata)
Cuando una tabla contenía una columna eliminada, el mantenimiento incremental de la vista fallaba produciendo un error del tipo:
ERROR: could not find attribute 43 in subquery targetlist
- Solucionados posibles problemas de incoherencia de vistas (Yugo Nagata)
Anteriormente, el contenido de las vistas podía ser incoherente con las tablas base en los siguientes casos:
1) Una transacción concurrente modifica una tabla base y realiza el commit antes de que comience el mantenimiento incremental de la vista en la transacción corriente.
2) Una transacción concurrente modifica una tabla base y realiza el commit antes de que el comando create_immv o refresh_immv genere datos.
3) Las transacciones concurrentes actualizan de forma incremental una vista con un self-join o modifican varias tablas base simultáneamente.
Estos problemas han sido solucionados para garantizar la coherencia.
Información 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
Haz clic aquí para leer la noticia original en inglés en la página web oficial de PostgreSQL.