Petit résumé des trois dernières semaines sur pgAdmin - 3

J'ai une petite semaine de retard pour mon compte-rendu habituel sur mon travail pour pgAdmin. Certainement dû à une grosse flemme le week-end dernier, de retour du FOSDEM. Cela étant dit, c'est pas plus mal. Et ce n'est pas comme si rien ne s'est fait pendant ces trois semaines, loin de là :)

Voici une liste rapide:

  • fonctionnalités spécifiques à la 9.0
    • gestion des nouvelles options (COSTS et BUFFERS) de l'instruction SQL EXPLAIN ;
    • gestion de la nouvelle colonne attoptions dans pg_attribute ;
    • ajout du support du paramétrage par paire utilisateur/base de données ;
    • ajout des informations sur le Hot Standby et le Streaming Replication ;
  • autres
    • revue complète de la fenêtre de restauration d'une sauvegarde ;
    • ajout d'un historique des requêtes sauvegardé automatiquement ;
    • possibilité d'afficher les numéros de lignes dans l'outil de requêtage ;
    • possibilité de personnaliser les couleurs utilisées par la colorisation syntaxique ;
    • possibilité de personnaliser certains des fichiers utilisés par pgAdmin (fichier des favoris, fichier des macros, fichier de l'historique des requêtes).

Pour le coup du EXPLAIN, j'ai ajouté un menu « EXPLAIN ANALYZE », plutôt que de laisser l'ANALYZE en tant qu'option à cocher. Ça permet de faire plus rapidement cette action. Et j'ai ajouté les options BUFFERS et COSTS. Du coup, le menu ressemble à ceci :

explainmenu.png

Et voici le texte d'un nœud suite à l'exécution d'un « EXPLAIN (ANALYZE on, BUFFERS on) » :

explainbuffers.png

La page des propriétés d'une base a changé pour permettre de spécifier des variables pour le couple base/utilisateur :

dbguc.png

Avec une telle configuration, le panneau SQL indique ceci :

dbguc2.png

Oui, je sais, les couleurs du SQL sont affreuses. C'est dû à mon test du patch de Maga qui permet à tout un chacun de sélectionner les couleurs qui lui plaisent pour la colorisation syntaxique du SQL. Voici l'onglet de configuration de la colorisation :

sqlhighlighting.png

Ayant réalisé la relecture de ce patch, je suis bien content que Maga soit arrivé à le terminer, ce qui m'a permis de l'intégrer cet après-midi.

Tant qu'on parle de la configuration, j'ai écrit un patch pour permettre de déplacer les fichiers internes de pgAdmin (comme celui des favoris par exemple). Le but est qu'un utilisateur puisse placer ces fichiers dans un répertoire partagé et faire profiter ses petits collègues de ses trouvailles. Voici l'écran de configuration :

filelocations.png

L'outil de requêtage a subi de nombreuses modifications, comme la possibilité d'afficher les numéros de ligne (désactivable par un menu de l'outil) ainsi que l'enregistrement automatique des requêtes exécutées.

linenumber.png

La liste déroulante permet de sélectionner une ancienne requête pour la ré-exécuter. Il est aussi possible de supprimer certaines requêtes du fichier (bouton « Delete Current »), voire toutes les requêtes (bouton « Delete All »).

querytool1.png

Enfin, la dernière nouveauté, c'est l'ajout de quelques informations permettant de savoir si un serveur est en mode restauration :

hssr_server.png

Il a aussi fallu supprimer un ancien patch que j'avais fait. Pas si ancien vu qu'il date de cette année. En effet, la nouvelle option INPLACE de l'instruction VACUUM a été supprimée. C'est, je crois, le problème quand on réagit trop vite aux améliorations du code source de PostgreSQL : on peut avoir à défaire ce qu'on a déjà fait. C'est un peu navrant mais on se console assez facilement. Tout d'abord parce que le nouveau VACUUM FULL est bien plus rapide. Ensuite parce que git rend ce genre de manipulation très aisée. Un simple « git revert id_patch » et hop, j'ai le patch me permettant de supprimer ce que j'avais fait. Tout à fait impressionnant.

Le travail sur pgAdmin continue. Je dois tout d'abord remplacer le composant de sélection des couleurs par notre propre composant. En effet, celui de wxWidgets se révèle être très moche, limite inutilisable, sous Mac OS X. Ensuite, je pourrais enfin m'attaquer au support des contraintes d'exclusion, puis aux droits par défaut et enfin à la nouvelle syntaxe de création de table. S'il me reste un peu de temps, j'aimerais bien voir ce que je peux faire pour avoir des graphes dans la fenêtre d'état du serveur.

Ajouter un commentaire

Les commentaires peuvent être formatés en utilisant une syntaxe wiki simplifiée.

Fil des commentaires de ce billet