¿Utilizas PostgreSQL? Deberías actualizar a la brevedad a la nueva versión correctiva
Recientemente los desarrolladores de PostgreSQL dieron a conocer la liberación de las versiones correctivas de las versiones 9 a 12 siendo las nuevas versiones las 12.2, 11.7, 10.12, 9.6.17, 9.5.21 y 9.4.26. De las cuales esta última (la 9.4.26) es la última actualización que se prepara para las ramas 9.4. Mientras que las actualizaciones para la versión 9.5 se formarán hasta febrero de 2021, 9.6 hasta noviembre de 2021, PostgreSQL 10 hasta noviembre de 2022, PostgreSQL 11 hasta noviembre de 2023 y PostgreSQL 12 hasta noviembre de 2024.
Con la liberación de las nuevas versiones correctivas los desarrolladores mencionan que se corrigieron 75 errores y se corrigió la vulnerabilidad (CVE-2020-1720) debido a la falta de verificación de autorización al ejecutar el comando “ALTER … DEPENDS ON EXTENSION”.
Sobre la vulnerabilidad
En determinadas circunstancias, la vulnerabilidad permite que un usuario sin privilegios elimine cualquier función, procedimiento, vista materializada, índice o desencadenante. Un ataque es posible si el administrador ha instalado alguna extensión y el usuario puede ejecutar el comando CREATE o el propietario de la extensión puede ser persuadido para ejecutar el comando DROP EXTENSION.
Además, se puede notar la aparición de una nueva aplicación pgcat, que permite replicar datos entre múltiples servidores PostgreSQL. El programa admite la replicación lógica a través de la traducción y reproducción en otro host de una secuencia de comandos SQL ejecutados en el servidor principal que conducen a cambios en los datos.
Otros cambios
Tambien se destacan algunos cambios que afectan solo a la versión 12:
- Soporte para cualquier tipo de tablas de destino (vistas, fdw (Foreign Data Wrapper), tablas segmentadas, tablas de citus distribuidas).
- Capacidad para redefinir nombres de tablas (replicación de una tabla a otra).
- Soporte para la replicación bidireccional a través de la transferencia de solo cambios locales, ignorando las réplicas provenientes del exterior.
- La presencia de un sistema de resolución de conflictos basado en el algoritmo LWW (last-writer-win).
- La capacidad de guardar información sobre el progreso de la replicación y las réplicas no aplicadas en una tabla separada, que se puede usar para restaurar después de la reanudación del nodo receptor temporalmente inaccesible.
Y de las correcciones se destacan las siguientes, de las cuales la mayoria afectan a la versión 12 pero tambien estan presentes en algunas versiones anteriores:
- Se corrigió el error al agregar restricciones de clave externa a la tabla con subparticiones (también conocida como una tabla particionada de varios niveles). Si ya se ha utilizado esta funcionalidad, puede ser solucionada separando y volviendo a adjuntar la partición afectada, o soltando y volviendo a agregar la restricción de clave externa a la tabla primaria. Puede encontrar más información sobre cómo realizar estos pasos en la documentación ALTER TABLE.
- Se corrigió el problema de rendimiento para las tablas particionadas introducidas por la corrección para CVE-2017-7484 que ahora permite al planificador usar estadísticas en una tabla secundaria para una columna a la que el usuario tiene acceso en la tabla primaria cuando la consulta contiene un operador con fugas.
- Varias otras correcciones y cambios de tablas con particiones, entre ellos se desestime expresiones clave de partición que devuelven pseudo-tipos, tales como RECORD.
- Arreglo para los suscriptores de replicación lógica para ejecutar UPDATE disparadores por columna.
- Arreglo para varios bloqueos y fallas para suscriptores y publicadores de replicación lógica.
- Se mejoro la eficiencia de la replicación lógica con REPLICA IDENTITY FULL.
- Varias correcciones para los procesos de walsender.
- Se mejore el rendimiento de las uniones hash con relaciones internas muy grandes.
- Varias correcciones para planes de consultas paralelas.
- Varias correcciones para los errores del planificador de consultas, incluido uno que afecta a las uniones de subconsultas de una sola fila.
- Incluidas varias correcciones para MCV extienden estadísticas, incluida una para la estimación incorrecta de las cláusulas OR.
- Se mejoro la eficiencia de la unión hash paralela en CPU con muchos núcleos.
Si quieres conocer más al respecto sobre la liberación de estas versiones correctivas, puedes consultar los detalles en el siguiente enlace.
En cuanto la actualización a la nueva versión correctiva correspondiente a la versión sobre la que estas, no hace falta que ejecutes un pg_upgrade, solo basta con que actualices los binarios de tu instalación.