Bonsoir,

Ça fait un petit moment que ça trotte dans ma petite tête de malade.Pas le fait d'écrire un patch implantant une nouvelle fonctionnalité pour PostgreSQL, mais le fait d'en faire une série. Voilà c'est dit. Ce billet est le premier d'une (pas trop longue, j'espère) série sur le développement d'une nouvelle fonctionnalité pour PostgreSQL.

Évidemment, j'aurais pu me plonger dans la liste des fonctionnalités manquantes, mais j'avais déjà mon idée. Je l'avais depuis le début de l'été, c'est dire :) Ce projet est donc d'ajouter la possibilité de modifier le tablespace d'une base de données. Je vous entends déjà dire que je suis à côté de mes pompes, que la fonctionnalité des tablespaces est présent depuis la version 8.0. Et vous avez raison. Enfin, pour le deuxième point en tout cas :) En effet, les tablespaces sont présents depuis la version 8.0. Il est possible de créer, modifier et supprimer un tablespace. Il est possible de créer une relation (donc table ou index) dans un tablespace particulier, il est possible de la déplacer dans un autre. Pareil pour les bases de données. Pareil ? non, pas vraiment. Il est possible de créer une base de données dans un tablespace mais pas de déplacer le contenu d'une base de données existante dans un autre tablespace en une seule commande. J'avoue que quand j'ai appris cela au début de l'été, je suis tombé des nues. Je ne comprenais pas pourquoi on n'avait pas cette fonctionnalité qui semble découler tout logiquement du reste. J'ai une petite idée du pourquoi maintenant, mais je préfère garder le suspens :)

Donc, voilà. Le but est d'ajouter la fonctionnalité proposée par la commande : ALTER DATABASE nom_base SET TABLESPACE nom_tablespace.

Autant le dire tout de suite, je ne sais pas si je vais arriver réellement à coder cette fonctionnalité. Je ne sais pas non plus si, une fois développée, elle sera acceptée par l'équipe de développement de PostgreSQL. Et en fait, peu importe. Le but est d'apprendre. Il est aussi de montrer comment on peut (facilement) développer une nouvelle fonctionnalité. OK, pour le « facilement », je m'avance certainement un peu :)

Pourquoi ne pas en avoir fait un article pour GLMF ? tout simplement parce que je veux montrer ma progression au jour le jour, pas à pas. Faire un résumé ne me paraissait pas intéressant. Et dans ce cas, seul un blog permet de faire cela « à ma sauce ». Cela ne m'empêche pas de continuer à écrire pour GLMF. D'ailleurs, Denis vient de m'annoncer que « Opérations de maintenance pour PostgreSQL » sera dans le numéro 109 (à paraître fin septembre), et je suis en train de travailler (humm...) sur le prochain.

Bon, alors, prêt à suivre ?