Ce mois-ci, je vous propose de réviser un peu le langage SQL en l’appliquant pour
des cas d’usage assez fréquents qui mettent en scène des types temporels, notamment
les intervalles de dates. Ce sera l’occasion également de revenir sur l’implémentation
très originale qu’en a fait PostgreSQL avec les types d’intervalle de valeurs, ou
range types dans la documentation.
Le partitionnement déclaratif a été une véritable révolution à la sortie de la
version 10 de PostgreSQL en octobre 2017. La gestion des sous-tables devenait
alors bien plus aisée au quotidien, simplifiant leur mise en place et leur
maintenance.
Sans cesse amélioré au cours des dernières années, je me souviens encore de mon
émerveillement devant la magie du partitionnement par hachage, apparu en
version 11. Comment le déployer et que permet-il ? J’ai voulu m’en rendre compte
dans une rapide démonstration sur le type UUID en étudiant les fonctions
d’appui qui se cachent derrière le hachage des valeurs.
Les requêtes ou instructions préparées sont un mécanisme proposé par la
plupart des moteurs de bases de données afin de réexécuter un ordre SQL semblable
au précédent. On parle d’un template de requête qu’il est nécessaire de
préparer avant d’exécuter. Les principaux bénéfices que nous lui connaissons
méritent un article afin de mieux comprendre leur implémentation.
Je suis resté longtemps ignorant des mécanismes de journalisation et de PITR
avec PostgreSQL alors même qu’il s’agit d’un des fonctionnements critiques pour
la durabilité des données d’une instance. Mieux comprendre ces concepts m’aurait
permis à une époque, d’être plus serein lors de la mise en place de sauvegardes
et surtout au moment de leur restauration !
Dans cet article, je vous propose de revenir sur un fichier anecdotique qui a
fait parlé de lui pendant plusieurs années : le fichier backup_label.
Qui est-il et à quoi sert-il ? Comment a-t-il évolué depuis sa création en
version 8.0 de PostgreSQL et qu’adviendra-t-il de lui dans les prochaines années ?
Parmi les quelques outils de mon quotidien, il y en a un très sobre et bigrement
efficace répondant au nom de pgenv, un gestionnaire des versions PostgreSQL.
Ce projet est publié sous licence MIT par David E. Wheeler, auteur de l’extension
pgTAP dont j’avais déjà vanté les mérites dans un autre article.
Cet outil concerne principalement les contributeur⋅rices au projet PostgreSQL et les
quelques DBA féru⋅es d’expérimentations, car pgenv permet de compiler et
d’exécuter toutes les versions majeures et mineures du système de base de données
open-source le plus avancé du monde.