Dans moins d’un mois se tient la conférence européenne PostgreSQL, pgconf.eu. Il s’agit de quatre jours consacrés à votre SGBD préféré, où vous pourrez rencontrer la communauté européenne, consituée d’utilisateurs, d’entreprises de toutes tailles, de développeurs, de participants en tout genre.
C’est l’endroit où aller pour apprendre comment le projet fonctionne, comprendre les impacts des nouvelles versions sur votre architecture, avoir une discussion technique pointue sur cette fonctionalité que vous voudriez voir arriver dans la prochaine version, ou simplement vous rendre compte de l’énergie formidable qui est insuflée dans ce projet !
PostgreSQL 9.1 est dans les bacs ! Vous n’avez pas encore cette nouvelle version en production ? Pas encore évalué pourquoi vous devriez envisager de migrer à cette version ? Il existe beaucoup de bonnes raisons de passer à cette version, et peu de pièges.
Nous commençons à lire des articles qui reprennent la nouvelle dans la presse française, et j’ai le plaisir de mentionner celui de programmez.com qui annonce « un système d’extensions inégalé ».
Nous avons parlé la dernière fois les règles d' échappement de chaînes avec PostgreSQL, et mentionné qu’utiliser ces techniques afin de protéger les données insérées dans les requêtes SQL n’était pas une bonne idée dans la mesure où PostgreSQL offre une fonctionnalité bien plus adaptée.
Nous faisons face ici à un problème de sécurité très bien décrit dans le billet humoristique de Little Boby Tables, dont je vous recommande la lecture.
Parmis les nouveautés de la prochaine version de PostgreSQL, la fameuse 9.1, il faut signaler le changement de valeur par défaut de la variable standard_conforming_strings, qui passe à vraie.
En effet, l’utilisation d’échappements avec le caractère « anti-slash » n’est pas conforme au standard SQL. Le paramètre standard_conforming_strings permet de contrôler le comportement de PostgreSQL lorsqu’il lit une chaîne de caractère dans une requête SQL.
Voyons quelques exemples :
dimitri=# set standard_conforming_strings to true; SET dimitri=# select 'hop'''; ?