2009-03-16
Cette version contient des corrections de la version 8.2.12. Pour plus d'informations sur les nouvelles fonctionnalités de la version majeure 8.2, voir Section E.90, « Version 8.2 ».
Une sauvegarde/restauration n'est pas requise pour ceux utilisant une version 8.2.X. Néanmoins, si vous mettez à jour à partir d'une version antérieure à la 8.2.11, voir les notes de sortie de la 8.2.11.
Correction de crashs suite à des récursions erronées dûes à l'échec d'une conversion d'encodage (Tom)
Cette modification étend les corrections réalisées lors des deux précédentes versions mineures pour les même scénarios. Les corrections déjà réalisées étaient ciblées sur les problèmes rencontrés, mais nous nous apercevons maintenant que toute erreur renvoyée par une fonction de conversion d'encodage pouvait entraîner une récursion infinie pour indiquer l'erreur. La solution est donc de désactiver toute traduction et conversion d'encodage. Le message d'erreur est renvoyé en ASCII simple si nous découvrons que nous sommes dans une situation susceptible d'entraîner une récursion infinie. (CVE-2009-0922)
N'autorise plus CREATE CONVERSION avec les mauvais encodages pour la fonction de conversion spécifiée (Heikki)
Ceci permet de prévenir un scénario possible pour un échec de conversion d'encodage. Le changement précédent permet de se protéger contre les autres échecs du même type.
Correction d'un crash lorsque to_char() a pour argument des codes de format inappropriés pour la donnée en argument (Tom)
Correction d'un échec possible dans contrib/tsearch2 lorsque la locale C est utilisée avec un encodage multi-octets (Teodor)
Les crashes étaient possibles sur les plateformes où wchar_t est plus petit que int ; Windows en particulier.
Correction de l'inefficacité extrême dans la gestion par l'analyseur contrib/tsearch2 d'une chaîne de type email contenant de nombreux caractères @ (Heikki)
Correction de la décompilation de CASE WHEN lorsque cette instruction est utilisée avec une coercion explicite (Tom)
Cette erreur pouvait entraîner des échecs de type Assert pour les binaires compilés avec l'option Assert activé. Elle pouvait aussi entraîner des des messages d'erreur « unexpected CASE WHEN clause » dans d'autres cas lors de l'examen ou de la sauvegarde d'une vue.
Correction d'une mauvaise affectation possible du propriétaire du rowtype d'une table TOAST (Tom)
Si CLUSTER ou une variante de ALTER TABLE qui ré-écrit la table étaient exécutées par quelqu'un d'autre que le propriétaire de la table, l'entrée pg_type pour la table TOAST pouvait se trouver changer de propriétaire (en utilisant l'identifiant de l'utilisateur qui a exécuté la commande). Ceci ne pose pas de problèmes immédiatement car les droits sur le rowtype du TOAST ne sont pas examinés après chaque opération ordinaire de la base de données. Néanmoins, cela peut amener des échecs inattendus si une personne tente plus tard de supprimer le rôle qui a exécuté la commande (en 8.1 ou 8.2) ou des messages d'avertissement du type « propriétaire du type de données semble invalide » avec pg_dump après avoir supprimé l'utilisateur (en 8.3).
Correction de PL/pgSQL pour qu'il ne traite pas INTO après un INSERT comme une clause d'affectation de variables, quelque soit son emplacement ; en particulier, cela permet d'éviter un échec sur un INSERT INTO compris dans une commande CREATE RULE (Tom)
Nettoyage complet des variables de statut de PL/pgSQL à la sortie d'un bloc (Ashesh Vashi et Dave Page)
Ceci n'est pas un problème avec PL/pgSQL lui-même, mais l'omission pouvait entraîner un crash du debogueur PL/pgSQL lors de l'examen de l'état d'une fonction.
Ré-essaie d'appeler CallNamedPipe() après un échec sur Windows (Steve Marshall, Magnus)
Il semble que cette fonction puisse échouer de temps en temps ; auparavant, nous avons traiter toute erreur comme une erreur grave qui pourrait poser problème aux instructions LISTEN / NOTIFY ainsi qu'à d'autres opérations.
Ajout de MUST (Mauritius Island Summer Time) dans la liste par défaut des abréviations connues de fuseau horaire (Xavier Bugaud)