vendredi, juillet 4 2008, 18:21
Et un patch intégré aux sources de PostgreSQL
Par Guillaume Lelarge - PostgreSQL - Lien permanent
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.
un commentaire
Hop,
Je n'avais pas eu le temps de commenter ici ce que j'ai dit à Guillaume: *FÉLICITATIONS* !!!