Lettre d'information de Dalibo

L'actualité de PostgreSQL et de ses projets satellites. Novembre 2009.

Événements

Bienvenue à Jehan-Guillaume de Rorthais

L'ensemble de l'équipe Dalibo est heureuse d'accueillir en son sein Jehan-Guillaume de Rorthais, membre actif de la communauté PostgreSQL francophone et administrateur du projet PhpPgAdmin.

Jehan-Guillaume a découvert les logiciels libres au tout début de ses études supérieures. Attiré par leur qualité, il fut convaincu par les différentes communautés et leur dynamisme. Utilisateur quotidien depuis 2001, il s'efforça alors à prioriser les projets basés sur des briques libres. Il commença a participer à phpPgAdmin en proposant des patch correctifs ou pour ajouter des fonctionnalités. Au fil des mois et années, il deviendra développeur officiel puis administrateur du projet.

Jehan-Guillaume vient renforcer notre équipe au niveau de support PostgreSQL et sera également amené à intervenir sur les audits et les formations. Dalibo réaffirme ainsi sa volonté te tenir un role majeur dans la communauté PostgreSQL et son implication constante en termes de recherche & dévelopement.

Retrouvez ci-dessous la présentation de PhpPgAdmin donné par Jehan-Guillaume lors du PG Day Européen 2009 à Paris :

http://wiki.postgresql.org/images/0/0b/PPA_presentation.odp

Sortie de PostgreSQL 8.5 alpha 2

Le deuxième commit fest de la future 8.5 vient de se terminer. Comme vous le verrez dans la partie « Avancées sur PostgreSQL », de nombreuses nouvelles fonctionnalités ont été ajoutées. Robert Haas en a été de nouveau le coordinateur et démontre que la réussite du premier commitfest n'était pas un hasard.

Nous vous encourageons de nouevau à tester cette 8.5 alpha 2 sur un serveur de tests. Tout bug trouvé dès maintenant permettra de solidifier la future version 8.5 finale.

Actualité des produits dérivés

Avancées sur PostgreSQL

La deuxième commit fest s'est terminée ce mois-ci. Il a apporté un bon nombre de nouvelles fonctionnalités intéressantes.

Deux nouvelles clauses ont été ajoutées au CREATE TABLE LIKE:

  • INCLUDING COMMENTS, pour que les commentaires soient copiés en même temps que la table;
  • INCLUDING ALL, pour éviter d'avoir à ajouter tous les variantes d'INCLUDING possibles.

Une fonctionnalité très souvent demandée a été ajoutée. Il est enfin possible de donner un droit pour tous les objets d'un même type (tables, séquences, fonctions) dans un même schéma. L'instruction est la suivante : GRANT/REVOKE ON ALL TABLES/SEQUENCES/FUNCTIONS IN SCHEMA. Cela permet d'éviter l'exécution de nombreuses requêtes SQL, chacune donnant tous les droits sur un objet particulier.

De plus, il est possible de définir des droits qui seront appliquées par défaut aux objets créés par les utilisateurs. Une nouvelle commande a vu le jour pour cela, ALTER DEFAULT PRIVILEGES. Cette configuration se fait rôle par rôle et peut en plus être restreinte aux objets créés dans certains schémas particuliers. Un avantage supplémentaire notable est que les utilisateurs peuvent surcharger le paramétrage traditionnel comme par exemple le droit d'exécution des fonctions qui est accordé par défaut à tout le monde. Attention, cette instruction utilise les formes plurielles des objets (TABLES, FUNCTIONS, etc).

Le support des triggers sur les colonnes est disponible. Ils ne se déclenchent que si la colonne testée est bien dans la liste de la clause SET de l'instruction UPDATE.

Il était déjà possible de spécifier une configuration de certains paramètres à chaque utilisateur et à chaque base de données. Il est maintenant possible de spécifier une configuration pour chaque paire utilisateur/base de données. Un nouveau catalogue système enregistre ces informations.

Pavel a ajouté le support des arguments nommés grâce à la clause AS dans les procédures stockées PL/pgsql.

psql affiche les tables grâce à ce qu'on appelle l'ASCII Art. Les traits sont des caractères ASCII qui représentent aussi bien qu'ils le peuvent les traits du tableau. Or, l'Unicode permet d'aller bien plus loin dans l'affichage. psql bénéficie donc d'un affichage plus joli pour les traits des tables grâce au paramètre linestyle dont la valeur este une bascule: soit ascii (correspond à l'ancien affichage), soit unicode (pour le nouvel affichage). Par défaut, ce dernier est utilisé quand le paramètre client_encoding vaut UTF8.

pg_dump utilise maintenant la fonction pg_get_triggerdef pour récupérer la définition d'un trigger.

Les traces sont stockées dans le journal des événements Windows en UTF16, si nécessaire en convertissant l'encodage du message.

Deux paramètres du fichier postgresql.conf ont été supprimés car considérés comme obsolètes depuis trop longtemps: add_missing_from et regex_flavor. De plus, le premier commence à poser des soucis pour une refactorisation de l'analyseur. La valeur utilisée pour ce paramètre est maintenant OFF. Pour le deuxième, la valeur est automatiquement advanced.

Le pg_hba.conf supporte maintenant deux nouvelles spécifications pour la colonne CIDR: samehost et samenet. Elles permettent d'énumérer les interfaces IP de la machine pour rechercher une correspondance avec celle de l'utilisateur qui demande l'accès à une base de données.

Lors de l'exécution d'une requête sur une table parent, les droits ne sont plus vérifiés sur les tables enfants. C'était inutile, source de confusion et aussi contraire au standard SQL.

De plus, des correctifs ont été appliqués pour supprimer certains dysfonctionnements de différentes versions de PostgreSQL:

  • Vérification qu'un curseur obtient bien une image non modifiable de la base pendant toute la durée de vie du curseur (8.4).
  • Suppression d'une gestion erronée des dépendances sur les rôles pour l'instruction CREATE OR REPLACE FUNCTION (de la 8.1 à la 8.4).
  • Vérification que l'insertion rapide dans un index GIN et les chemins de code habituels s'assurent de la même limite de taille d'une ligne (8.4).
  • Amélioration du message d'erreur pour le « index-tuple-too-large » pour qu'il inclue la taille actuelle, la limite et le nom de l'index (8.4).
  • Correction d'un patch de la 8.3 : pgstat_initstats doit permettre la récupération de statistiques pour les séquences (8.3, 8.4).
  • Modification de CREATE TABLE pour que les expressions par défaut des colonnes provenant de différentes tables héritées soient comparées en utilisant une fonction plus fiable (voire même tout simplement fonctionnelle en 8.4).
  • Correction d'un bug de décalage par un dans bitncmp() (de la 7.4 à la 8.4).
  • Correction d'un échec de ts_stat lorsque son argument est un tsvector vide (8.4).
  • Augmentation de la taille maximum du jeton d'authentification (ticket Kerberos) pour les méthodes d'authentification GSSAPI et SSPI, pour pouvoir traiter les tickets issues des contrôleurs de domaine Windows qui peuvent avoir une taille bien supérieure à 2000 octets (8.3 et 8.4).
  • Réordonnancement des options FREEZE et VERBOSE pour la commande VACUUM que produit l'outil en ligne de commande vacuumdb (8.4).
  • Réécriture d'une procédure pam pour que cette dernière soit plus robuste (de la 7.4 à la 8.4).
  • Correction d'un bug des requêtes CTE avec FOR UPDATE/SHARE pour que cette clause ne soit plus propagée à la requête WITH (8.4).
  • Correction de \df pour autoriser de nouveau les caractères spéciaux des expressions rationnelles dans le motif du nom de fonction (8.4).

Avancées sur pgAdmin

Dave Page a fait tout le boulot ce mois-ci. Principalement des correctifs :

  • Plusieurs corrections sur l'utilisation de Slony, dont la création d'un cluster avec Slony 2.0.
  • S'assure que les variables des fonctions sont bien réinitialisées si la fonction est modifiée.
  • Correction du support de Greenplum pour les partitions orientées colonnes ;
  • La fonction de création des requêtes SQL à partir des objets déjà créés a été corrigé pour découvrir correctement les ACL.
  • Correction d'un crash possible dans le navigateur des objets.

Dans les nouvelles fonctionnalités, malheureusement peu nombreuses ce mois-ci, deux créations automatiques de scripts SQL ont été ajoutées : « SELECT Script » pour les fonctions et « EXEC Script » pour les procédures. Un drapeau a été ajouté au script configure pour permettre à l'utilisateur de spécifier l'architecture à construire sur OS X. Enfin, le code de personnalisation de l'interface a été étendu pour permettre de cacher les options d'aide spécifiques au vendeur.

Quant à Guillaume Lelarge, pris par l'organisation du PGDay 2009, il n'a pas pu travailler sur pgAdmin, en dehors d'un billet sur son blog relatant les nouvelles fonctionnalités déjà ajoutées à pgAdmin. Vous trouverez ce billet sur http://blog.guillaume.lelarge.info/index.php/post/2009/10/24/Et-si-on-reprenait-un-peu-sur-pgAdmin

Avancées sur phpPgAdmin

Beau mois pour phpPgAdmin. Jehan-Guillaume de Rorthais a pu faire de nombreuses corrections. Parmi celles-ci :

  • Correction de l'erreur générée par des requêtes lorsque le nom d'un schéma utilisé contenait un guillemet simple ou double.
  • Correction d'un bogue dans l'ajout du droit ALL sur une colonne.
  • Les versions PostgreSQL ultérieures à la 8.1 ne supportent plus le droit RULE sur une table ou une vue.
  • Autorisation de placer un commentaire vide sur une base, pour en fait supprimer ce commentaire.
  • Les outils pg_dump et pg_dumpall de la version 8.4 n'acceptent plus l'option -d. Il faut utiliser –inserts à la place.
  • Lors de la création d'une table avec WITHOUT OIDS non coché, ppa utilisait le comportement par défaut de la base. Maintenant, si WITHOUT OIDS n'est pas coché, cela force WITH OIDS. Suppression de la fonction hasWithoutOIDs() devenue inutile.
  • Correction du message « Fix Undefined index formConcur » lors de la création d'un index sans CONCURRENTLY.
  • Suppression du dernier '}' dans la partie du schéma des index trouvés dans la page de recherche.

Ce mois a aussi vu l'arrivée du début du support de PHP 5.3. Adodb a été mis à jour avec la dernière version 5.09a qui supporte PHP 5 seulement. Les correctifs pour PHP 5.3 ont aussi été intégrés.

La bibliothèque jQuery a été ajoutée. Elle gère actuellement l'autocomplétion lors d'une opération d'insertion avec des colonnes disposant de clés étrangères. Il est prévu de l'utiliser plus en profondeur.

Avancées sur les projets satellites

La version 1.2.17 de Slony vient de sortir. C'est la première version supportant officiellement la 8.4 de PostgreSQL. Malheureusement, deux bogues ont été découverts assez rapidement après sa sortie (échec de la mise à jour des fonctions Slony, et l'erreur générée par LOCK TABLE en 8.4 si ce dernier est utilisé hors d'une transaction), ce qui fait qu'une 1.2.18 est en attente. N'hésitez pas à tester la version CVS pour s'assurer que la 1.2.18 sera la bonne.

pgPool 2.2.5 est sorti, en proposant quelques corrections bienvenues.

Le rythme des modifications de check_postgres a bien diminué, ce qui est intéressant. L'outil est suffisamment mature et stable actuellement, contrairement à Bucardo dont le développement continue à un rythme de plus en plus rapide.

Sessions de formation

Dalibo organise une session de formation « PostgreSQL Avancé » à Paris du 17 au 20 novembre et une autre du 7 au 10 décembre.

Plus d'informations sur : http://dalibo.com/-Formations-.html

Dernières versions

Depuis le 9 septembre 2009 :

  • 8.4.1
  • 8.3.8
  • 8.2.14
  • 8.1.18
  • 8.0.22
  • 7.4.26

Versions Windows supportées :

  • 8.4.1
  • 8.3.8
  • 8.2.14

Informations Générales

Cette lettre d'information présente l'actualité francophone et internationale de PostgreSQL et de ses “logiciels satellites”. Elle vous est proposée par la société Dalibo.

Dalibo est une société d'expertise sur PostgreSQL et tous ses projets satellites.

Dalibo peut vous accompagner dans la mise en œuvre efficace et professionnelle de PostgreSQL. Qu'il s'agisse d'un nouveau projet ou de la migration d'un existant.

Si vous ne souhaitez plus recevoir cette lettre, envoyez simplement un courriel à l'adresse : newsletter-desabonnement@listes.dalibo.com

Vous pouvez retrouver cette lettre à l'adresse suivante :

http://dalibo.org/novembre_2009

Afficher le texte source