Et un patch intégré aux sources de PostgreSQL

Bon, c'est pas un patch du moteur... mais quand même, ça me fait bêtement plaisir :)

Lorsque vous utilisez l'outil client psql avec un serveur PostgreSQL de version antérieure, les métacommandes (\du par exemple) pouvaient vous renvoyer une erreur. Par exemple :

 guillaume@laptop:~$ psql -tc "select version()" aa
  PostgreSQL 8.0.17 on i686-pc-linux-gnu, compiled by GCC gcc (GCC) 4.2.3 (Ubuntu 4.2.3-2ubuntu7)
 guillaume@laptop:~$ /opt/postgresql-8.3/bin/psql --version
 psql (PostgreSQL) 8.3.3
 contains support for command-line editing
 guillaume@laptop:~$ /opt/postgresql-8.3/bin/psql aa
 Welcome to psql 8.3.3 (server 8.0.17), the PostgreSQL interactive terminal.
 Type:  \copyright for distribution terms
        \h for help with SQL commands
        \? for help with psql commands
        \g or terminate with semicolon to execute query
        \q to quit
 WARNING:  You are connected to a server with major version 8.0,
 but your psql client is major version 8.3.  Some backslash commands,
 such as \d, might not work properly.
 aa=# \du
 ERROR:  relation "pg_catalog.pg_roles" does not exist
 ERROR:  relation "pg_catalog.pg_roles" does not exist

Ce que mon patch fait, c'est de modifier dynamiquement la requête exécutée suivant la version du serveur où psql est connecté :

 guillaume@laptop:~$ /opt/postgresql-head/bin/psql aa
 psql (8.4devel, server 8.0.17)
 WARNING: psql version 8.4, server version 8.0.
          Some psql features might not work.
 Type "help" for help.
 aa=# \du
            List of roles
  Role name | Attributes | Member of
 -++-
  guillaume | Superuser  |
            : Create DB
  postgres  | Superuser  |
            : Create DB
  pouet     |            |

Voilà, c'est pas grand chose, mais c'est plaisant :) Je pense que je vais travailler sur un autre patch pour le prochain commit fest.

Commentaires

1. Le lundi, juillet 7 2008, 07:47 par jpa

Hop,

Je n'avais pas eu le temps de commenter ici ce que j'ai dit à Guillaume: *FÉLICITATIONS* !!!

;-)

Ajouter un commentaire

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

Fil des commentaires de ce billet