Lanzamiento de PostgreSQL 19 Beta 1
El Grupo Global de Desarrollo de PostgreSQL anuncia que ya puede descargarse la primera versión beta de PostgreSQL 19. Esta versión ofrece avances de todas las características que contendrá PostgreSQL 19 antes de su disponibilidad general, aunque algunos detalles de la versión podrían cambiar durante el periodo beta.
La información sobre todas las características y cambios introducidos en PostgreSQL 19 se encuentra en las notas de la versión:
https://www.postgresql.org/docs/19/release-19.html
De acuerdo con el espíritu de la comunidad de código abierto de PostgreSQL, recomendamos encarecidamente que prueben las nuevas características de PostgreSQL 19 en sus sistemas. Esto nos ayudará a eliminar errores u otros posibles problemas. Aunque no recomendamos usar PostgreSQL 19 Beta 1 en un entorno de producción, les invitamos a encontrar formas de ejecutar esta versión beta con cargas de trabajo típicas de sus aplicaciones.
Sus pruebas y comentarios ayudarán a la comunidad a asegurar que PostgreSQL 19 cumpla con nuestros estándares de entrega de una versión estable y confiable de la base de datos relacional de código abierto más avanzada del mundo. Por favor, lean más sobre nuestro proceso de pruebas beta y cómo pueden contribuir:
https://www.postgresql.org/developer/beta/
Características destacadas de PostgreSQL 19
A continuación se presentan algunas de las características más destacadas que están previstas para PostgreSQL 19. Esta lista no es exhaustiva. Para consultar la lista completa de características planificadas, vean las notas de la versión.
Rendimiento
PostgreSQL 19 amplía las capacidades del subsistema de E/S asíncrona incorporado en PostgreSQL 18. En esta versión, io_method=worker ajusta de forma automática el número de procesos de E/S en función de los nuevos parámetros io_min_workers e io_max_workers.
También se incorpora la extensión pg_plan_advice diseñada para ayudar a estabilizar y controlar las decisiones del optimizador de consultas, junto con pg_stash_advice, que permite aplicar dichas recomendaciones automáticamente mediante identificadores de consultas.
Esta versión incluye importantes mejoras en las tareas de mantenimiento y vacuum. Ahora autovacuum puede aprovechar procesos paralelos, configurables mediante el nuevo parámetro autovacuum_max_parallel_workers , mientras que un nuevo sistema de evaluación permite priorizar las tablas que requieren procesamiento. PostgreSQL 19 también optimiza las operaciones de vacuum mediante una estrategia capaz de reducir automáticamente el trabajo futuro de vacuum al marcar páginas como visibles durante su acceso por consultas. Además, se incorpora el nuevo comando REPACK y su opción no bloqueante CONCURRENTLY, que permite reconstruir tablas con una menor sobrecarga operativa.
PostgreSQL 19 ofrece un rendimiento de hasta el doble en operaciones de inserción cuando intervienen validaciones de claves foráneas. Esta versión también introduce mejoras en distintas áreas del planificador y del ejecutor de consultas, entre ellas nuevas optimizaciones para anti-joins, una utilización más extensa de los ordenamientos incrementales, agregación temprana que acelera el procesamiento de registros, lecturas más rápidas desde el almacenamiento durante los escaneos secuenciales paralelos y la simplificación de las expresiones IS DISTINCT FROM e IS NOT DISTINCT FROM a los operadores estándar <> y = cuando los valores de entrada no pueden ser nulos. Además, se ha mejorado la escalabilidad de LISTEN/NOTIFY, lo que beneficia las cargas de trabajo que operan con múltiples canales.
Experiencia para los desarrolladores
PostgreSQL 19 añade compatibilidad con SQL/PGQ, lo que permite ejecutar consultas sobre grafos de propiedades utilizando la sintaxis estándar de SQL. Esta versión también mejora las capacidades de consulta temporal al incorporar soporte para las operaciones UPDATE y DELETE dentro de la cláusula FOR PORTION OF, complementando las restricciones temporales introducidas en PostgreSQL 18. Asimismo, se incorporan los comandos ALTER TABLE ... MERGE PARTITIONS y ALTER TABLE ... SPLIT PARTITIONS, que simplifican la reorganización de tablas particionadas en el mismo lugar. Además, ahora es posible devolver los registros que entran en conflicto durante una operación de upsert mediante la sentencia INSERT ... ON CONFLICT DO SELECT ... RETURNING.
PostgreSQL 19 incorpora la nueva sintaxis GROUP BY ALL, facilitando la inclusión de todas las columnas de salida que no sean agregadas ni de ventana como parte de la agrupación. Esta versión amplía las capacidades de procesamiento de cadenas en jsonpath con la incorporación de las funciones lower(), upper(), initcap(), replace(), split_part()y la familia de funciones trim().
PostgreSQL 19 simplifica la implementación de patrones de consulta del tipo «leer tus propias escrituras» (read-your-writes) al trabajar con réplicas gracias al nuevo comando WAIT FOR LSN. Este comando permite que una sesión espere hasta que los cambios asociados a una posición específica del registro de transacciones (LSN) se hayan aplicado en la réplica antes de ejecutar una consulta SELECT.
Asimismo, PostgreSQL 19 incorpora nuevas funciones SQL que permiten obtener las sentencias DDL necesarias para recrear roles, espacios de tablas (tablespaces) y bases de datos, lo que facilita las tareas de automatización y migración. Además, la función random() ahora admite tipos date y timestamp, y PL/Python añade soporte para triggers de eventos.
Características de Seguridad
PostgreSQL 19 introduce soporte en el lado del servidor para SNI (Server Name Indication) a través de un nuevo archivo llamado pg_hosts.conf, permitiendo que un único servidor PostgreSQL presente distintos certificados TLS dependiendo del nombre de host que solicite el cliente. También incluye una nueva opción de configuración, password_expiration_warning_threshold (cuyo valor por defecto es 7 días), para avisar a los usuarios con tiempo suficiente antes de que su contraseña caduque.
Además, siguiendo con la eliminación gradual de la autenticación md5, esta versión muestra una advertencia al cliente cuando se realiza una autenticación md5 correctamente. Este comportamiento se puede ajustar con el nuevo parámetro md5_password_warnings.
Monitoreo y observabilidad
PostgreSQL 19 incorpora la vista pg_stat_lock, que muestra estadísticas por tipo de bloqueo, y pg_stat_recovery, que ofrece una visión detallada del estado de las operaciones de recuperación. En muchas vistas de estadísticas ahora aparece una columna llamada stats_reset que indica cuándo se reiniciaron los contadores por última vez. Las vistas pg_stat_progress_vacuum y pg_stat_progress_analyze incluyen ahora una columna started_by que informa quién inició la operación; además, pg_stat_progress_vacuum añade una columna mode que indica cómo se está ejecutando el VACUUM.
En esta versión, ahora se pueden definir los niveles de log_min_messages por tipo de proceso, lo que da a los operadores un control más preciso sobre lo que registra cada componente del sistema. También se incluye en la salida de los logs de VACUUM y ANALYZE el recuento de bytes correspondiente a páginas completas escritas en el WAL, lo que facilita identificar tareas de mantenimiento que generan volúmenes significativos de WAL. Por otro lado, EXPLAIN ANALYZE ahora permite mostrar estadísticas de E/S asíncrona (AIO) a través de su opción IO, dando una mejor idea de cómo las consultas aprovechan el subsistema AIO.
Replicación lógica y federación de consultas
En PostgreSQL 19, la replicación lógica ya incluye la replicación de los valores de las secuencias, lo que facilita tareas como las actualizaciones en línea. Además, la nueva sintaxis CREATE PUBLICATION ... EXCEPT permite publicar la totalidad de las tablas de una base de datos con excepción de un conjunto determinado, mientras que CREATE SUBSCRIPTION ... SERVER define suscripciones usando un servidor foráneo, simplificando así la gestión de credenciales.
PostgreSQL 19 hace posible habilitar la replicación lógica sin necesidad de reiniciar el servidor. Dicha replicación puede activarse bajo demanda incluso cuando wal_level está configurado como replica, y el nuevo parámetro de solo lectura effective_wal_level informa el nivel de WAL actualmente activo. Esto reduce la necesidad de comprometerse de antemano con un nivel de WAL más alto para clústeres que solo pueden necesitarlo ocasionalmente, y evita interrumpir una carga de trabajo activa.
El conector de datos externos de PostgreSQL, postgres_fdw, que se usa para la federación de consultas, incorpora varias optimizaciones de rendimiento, como enviar las operaciones con arrays al servidor remoto y obtener estadísticas de las tablas foráneas para luego usarlas y mejorar la planificación de las consultas locales.
Otros aspectos destacados
Durante la fase beta de PostgreSQL 19 se incluye un modo temporal llamado «grease mode«, cuyo objetivo es detectar posibles problemas de compatibilidad del protocolo en el ecosistema en general. En esta página wiki se explica cómo funciona la campaña:
https://wiki.postgresql.org/wiki/Grease
PostgreSQL 19 permite activar o desactivar los checksums de datos en línea, sin necesidad de reiniciar el clúster ni de realizar una reinicialización del mismo.
Hay varios cambios importantes que conviene conocer en PostgreSQL 19. La compilación just-in-time (JIT) ahora viene desactivada por defecto, y la opción default_toast_compression pasa a ser lz4 por defecto, lo que mejora el rendimiento predeterminado de compresión y descompresión. Se ha eliminado el soporte para autenticación RADIUS. Además, el comando vacuumdb --analyze-only ahora analiza las tablas particionadas de manera predeterminada.
Características adicionales
Muchas otras nuevas características y mejoras han sido añadidas a PostgreSQL 19. Varias de ellas también pueden ser útiles para sus casos de uso. Para una lista completa de las características nuevas y de las modificadas, consulten las notas de la versión:
https://www.postgresql.org/docs/19/release-19.html
Pruebas de errores y compatibilidad
La estabilidad de cada versión de PostgreSQL depende en gran medida de que ustedes, la comunidad, prueben la próxima versión con sus cargas de trabajo y herramientas de prueba para detectar errores y regresiones antes del lanzamiento oficial de PostgreSQL 19. Dado que se trata de una versión beta, es posible que se produzcan pequeños cambios en los comportamientos de la base de datos, los detalles de las funciones y las API. Sus impresiones y pruebas ayudarán a determinar los ajustes finales de las nuevas funciones, así que les pedimos de favor que la prueben lo antes posible. La calidad de las pruebas de los usuarios contribuirá a definir el momento en el que lanzaremos la versión final.
Una lista de los problemas abiertos está disponible al público en la wiki de PostgreSQL. Pueden reportar errores usando el siguiente formulario en el sitio web de PostgreSQL:
https://www.postgresql.org/account/submitbug/
Calendario de la versión beta
Este es el primer lanzamiento beta de la versión 19. Según lo requieran las pruebas, el Proyecto PostgreSQL publicará betas adicionales. Serán seguidas por una o más versiones candidatas, hasta el lanzamiento final en septiembre u octubre de 2026. Para más información, consulten la página de Pruebas Beta.

