Aperçu exécutif et importance architecturale
Le PostgreSQL Global Development Group a officiellement publié la première version candidate de PostgreSQL 19 (postgresql-19-rc-1-released). Étape majeure sur la feuille de route vers la disponibilité générale (GA), PostgreSQL 19 RC 1 constitue un plan architectural presque exact de la prochaine version de production. Le déploiement d'une version candidate permet aux architectes d'entreprise, aux administrateurs de bases de données et aux équipes d'infrastructure de base d'exécuter des tests d'intégration robustes sur des charges de travail de niveau production avant la date de sortie officielle du 19 novembre 2026.
Un ajustement logistique notable dans ce cycle de publication concerne l'alignement des mises à jour planifiées avec le calendrier de disponibilité générale. Étant donné que la prochaine mise à jour planifiée pour les versions prises en charge tombe le 12 novembre 2026 — et intégrera un grand nombre de correctifs de stabilité fondamentaux —, l'équipe de publication de PostgreSQL a stratégiquement choisi de fusionner ces correctifs directement dans la base de code de PostgreSQL 19 avant la disponibilité générale. Par conséquent, une deuxième version candidate, PostgreSQL 19 RC 2, arrivera en même temps que la mise à jour de novembre, garantissant que la version finale de disponibilité générale offre une fiabilité et une robustesse maximales dès son installation.
Améliorations principales et ergonomie pour les développeurs
S'appuyant sur les progrès substantiels réalisés tout au long de la phase Beta 4, PostgreSQL 19 RC 1 introduit plusieurs corrections de bugs critiques et des améliorations localisées du moteur d'exécution. Parmi les plus importantes figurent les améliorations de la fiabilité structurelle ciblant les opérations REPACK (CONCURRENTLY) et la nouvelle interface pg_plan_advice. Ces fonctionnalités sont essentielles pour les environnements d'entreprise à haute disponibilité où la réorganisation du catalogue en ligne et le pilotage explicite du plan d'exécution sont obligatoires pour maintenir des accords de niveau de service (SLA) cohérents sous des modèles de transactions volatils.
Sur le plan de l'optimisation des requêtes et de l'échange de données, la RC 1 propose des optimisations plus intelligentes du planificateur de requêtes qui s'appuient fortement sur les expressions de nullabilité (sensibilité à la valeur NULL), réduisant considérablement la surcharge d'exécution pour les branches conditionnelles complexes. De plus, l'ergonomie des développeurs a été considérablement améliorée dans les flux de travail d'exportation de données : COPY (query) TO ... (FORMAT json) a été refactorisé pour respecter correctement les noms de colonnes définis de la requête et les alias explicites en tant que clés JSON, plutôt que de retomber sur les noms de colonnes de la table physique sous-jacente. D'autres améliorations du moteur d'exécution incluent des importations de statistiques postgres_fdw plus sûres s'exécutant sous les privilèges de propriété de la table distante plutôt que sous ceux de l'utilisateur exécutant, ainsi que des correctifs de stabilité critiques pour la distribution des processus d'autovacuum parallèles.
Matrice de comparaison architecturale
| Performance et métrique API | Référence précédente (Phase Beta) | PostgreSQL 19 RC 1 | Impact architectural |
|---|---|---|---|
| Latence des requêtes (sensible aux valeurs NULL) | Chemins d'évaluation conditionnelle standard | Sensibilité accrue des expressions aux valeurs NULL |
Réduction de la surcharge CPU de planification et d'exécution pour les prédicats conditionnels. |
| Export JSON (COPY) | Utilise par défaut les noms de colonnes de la table physique | Respecte les noms de colonnes et les alias de la requête | Élimine les étapes de sérialisation post-traitement dans les couches applicatives. |
| Import de statistiques FDW | Exécuté dans le contexte de l'appelant d'ANALYZE |
Exécuté dans le contexte du propriétaire de la table étrangère | Résout les limites de sécurité d'élévation des privilèges lors de la collecte de statistiques à distance. |
| Autovacuum parallèle | Gestion de base des processus parallèles | Correctifs de stabilisation élargis | Prévient les fuites de mémoire et la contention de verrous lors d'un nettoyage parallèle à haut débit. |
Changements cassants et mises en garde relatives à la migration
PostgreSQL 19 RC 1 maintient une haute compatibilité avec les versions majeures précédentes et la série bêta de PostgreSQL 19, ce qui signifie qu'il n'y a pas de dépréciation brusque de la syntaxe SQL de base. Cependant, le passage de versions majeures plus anciennes à PostgreSQL 19 nécessite une adhésion stricte aux protocoles de mise à niveau des versions majeures. La transition des structures de catalogue internes et des formats de stockage dicte que les mises à niveau mineures sur place via le pg_upgrade standard ou des sauvegardes logiques sont obligatoires.
De plus, les administrateurs doivent évaluer attentivement les définitions de schéma utilisant COPY (query) TO ... (FORMAT json). Étant donné que les clés JSON sont désormais correctement dérivées des alias de colonnes de requêtes plutôt que des colonnes de tables sous-jacentes, les applications héritées reposant sur l'ancien comportement de nommage physique non intentionnel peuvent rencontrer des incompatibilités de contrat de schéma lors des pipelines d'ingestion de données.
Guide de mise à niveau étape par étape
Le passage à PostgreSQL 19 RC 1 nécessite un chemin de mise à niveau explicite vers une version majeure. Suivez cette procédure administrative standard pour mettre à niveau en toute sécurité votre cluster de bases de données à l'aide de pg_upgrade :
Préparer et arrêter l'ancien cluster : Assurez-vous que toutes les transactions actives sur votre instance de base de données actuelle sont correctement terminées, effectuez une sauvegarde complète du système de fichiers et arrêtez l'ancien service PostgreSQL :
pg_ctl -D /var/lib/postgresql/old_data stopInitialiser les nouveaux binaires de la RC 1 : Installez les binaires de PostgreSQL 19 RC 1 et initialisez le nouveau répertoire de données en utilisant le chemin binaire mis à jour :
/usr/lib/postgresql/19/bin/initdb -D /var/lib/postgresql/19/dataExécuter la vérification et la migration avec
pg_upgrade: Exécutez l'utilitaire de mise à niveau en mode lien pour vérifier la compatibilité des binaires et du catalogue, puis effectuez la migration :/usr/lib/postgresql/19/bin/pg_upgrade \ --old-datadir=/var/lib/postgresql/old_data \ --new-datadir=/var/lib/postgresql/19/data \ --old-bindir=/usr/lib/postgresql/old/bin \ --new-bindir=/usr/lib/postgresql/19/bin \ --link
