HeadlinesBriefing favicon HeadlinesBriefing.com

PostgreSQL 19 : Nouvelles fonctionnalités et graphes de propriétés

Hacker News •
×

PostgreSQL 19 est actuellement en version bêta, avec une disponibilité générale prévue autour de septembre ou octobre 2026. Cet article sert de complément pratique aux notes de version officielles, en transformant des entrées sélectionnées en exemples exécutables afin que les utilisateurs puissent voir comment les nouveaux comportements fonctionnent réellement. Les fonctionnalités sont basées sur les notes de version officielles et le code source de PostgreSQL sous la licence PostgreSQL. Avant d'explorer les nouvelles fonctionnalités, il est important de noter que ce n'est pas une liste exhaustive ; les notes de version officielles doivent être consultées pour obtenir des informations complètes. Tous les exemples ont été exécutés sur PostgreSQL 19 bêta 3 (publié le 2026-08-13), et la sortie reflète ce que ce serveur a réellement affiché.

Les requêtes sur les graphes de propriétés sont la fonctionnalité phare de cette version. PostgreSQL 19 implémente SQL/PGQ, la partie graphe de propriétés de SQL:2023. Les utilisateurs peuvent déclarer un graphe de propriétés sur des tables existantes et l'interroger par correspondance de motifs au lieu d'écrire manuellement des jointures. Deux tables ordinaires peuvent être configurées comme sommets et arêtes, permettant une correspondance de motifs avec GRAPH_TABLE où les arêtes dirigées sont mises en correspondance à l'aide de la syntaxe -[...]->. L'avantage est la possibilité de réaliser des motifs à plusieurs sauts ; chaîner deux arêtes permet d'obtenir des amis d'amis sans avoir besoin d'une jointure avec soi-même, et un () vide signifie « un sommet dont je ne me soucie pas du nom ». Une limitation importante est que les chemins de longueur variable ne sont pas pris en charge ; des quantificateurs comme -[IS follows]->{1,3} sont analysés mais rejetés, nécessitant que chaque saut soit explicitement spécifié. La requête GRAPH_TABLE est réécrite en une requête relationnelle simple, ce qui signifie que le planificateur, les statistiques et les choix d'index déjà connus de l'utilisateur s'appliquent toujours.

Les mises à jour et suppressions temporelles introduisent la nouvelle clause FOR PORTION OF sur les instructions UPDATE et DELETE. Cette clause permet de spécifier une période de temps valide pour l'opération, permettant une manipulation de données plus précise dans les tables bitemporelles. Cette fonctionnalité s'intègre avec les tables versionnées par le système pour garantir que les mises à jour et suppressions n'affectent que les lignes situées dans l'intervalle de temps spécifié, améliorant ainsi l'intégrité des données pour les applications nécessitant un suivi historique.

Cette version améliore également les capacités JSON et de requête. De nouveaux opérateurs et fonctions améliorent la gestion des types de données JSON, permettant une interrogation et une manipulation plus efficaces. Ces améliorations réduisent le besoin de sous-requêtes complexes ou de traitement externe lors du travail avec des données semi-structurées, offrant de meilleures performances et une syntaxe plus simple pour les opérations JSON courantes.

Entités clés : Entreprises : PostgreSQL | Personnes : Peter Eisentraut, Ashutosh Bapat