PostgreSQLLa base de données la plus sophistiquée au monde.

E.18. Version 8.3.6

[Note]

Date de version

2009-02-02

Cette version contient des corrections de la version 8.3.5. Pour plus d'informations sur les nouvelles fonctionnalités de la version majeure 8.3, voir Section E.24, « Version 8.3 ».

E.18.1. Migration vers la version 8.3.6

Une sauvegarde/restauration n'est pas requise pour ceux utilisant une version 8.3.X. Néanmoins, si vous mettez à jour à partir d'une version antérieure à la 8.3.5, voir les notes de sortie de la 8.3.5.

E.18.2. Changements

  • DISCARD ALL lâche aussi les verrous informatifs, en plus de tout ce qu'il faisait déjà (Tom)

    Il a été décidé que c'est le comportement le plus approprié. Néanmoins, cela pourrait affecter les applications existantes.

  • Correction des parcours complets d'index GiST (Teodor)

    Cette erreur peut faire que des lignes soient perdues si CLUSTER est utilisé avec une table et son index GiST.

  • Correction de l'arrêt brutal de xmlconcat(NULL) (Peter)

  • Correction d'un arrêt brutal possible dans le dictionnaire ispell si des caractères avec le bit de poids fort levé sont utilisés comme des drapeaux (Teodor)

    C'est survenu avec le dictionnaire norvégien disponible mais ces conditions pourraient en affecter d'autres.

  • Correction d'un mauvais ordre dans la sortie de pg_dump pour les types composites (Tom)

    Le problème le plus fréquent concernait des classes d'opérateur définies par l'utilisateur, qui sont sauvegardées après les index et vues qui les utilisent.

  • Amélioration de la gestion des URL dans la fonction headline() (Teodor)

  • Amélioration de la gestion des lignes trop longues dans la fonction headline() (Teodor)

  • Empêche des échecs ou des mauvaises conversions avec Assert si une conversion d'encodage est créé avec la mauvaise fonction de conversion pour la paire spécifiée des encodages (Tom, Heikki)

  • Empêche des échecs possibles avec Assert si une instruction exécutée en PL/pgSQL est ré-écrite dans un autre type d'instruction, par exemple si INSERT est ré-écrit en UPDATE (Heikki)

  • S'assure qu'une image de la base est disponible pour les fonctions en entrée des types (Tom)

    Ceci affecte principalement les domaines qui sont déclarés avec des contraintes CHECK impliquant des fonctions stables ou immutables définies par l'utilisateur. De telles fonctions échouent typiquement si aucune image de la base n'a été réalisée.

  • Rend plus sûr l'utilisation des entrées/sorties de type avec les fonctions SPI ; en particulier à utiliser aves les contraintes de vérifications pour les domaines (Tom)

  • Évite un verrou inutile des petites tables dans VACUUM (Heikki)

  • Correction d'un problème qui empêche quelque fois ALTER TABLE ENABLE/DISABLE RULE d'être reconnu par les sessions actives (Tom)

  • Correction d'un problème faisant que UPDATE RETURNING tableoid renvoie zéro au lieu du bon OID (Tom)

  • Permet aux fonctions déclarées comme prenant ANYARRAY en argument de fonctionner avec les colonnes de ce type dans la table pg_statistic (Tom)

    Ceci fonctionnait mais a été cassé par erreur en 8.3.

  • Correction d'une mauvaise estimation de la sélectivité du planificateur quand une égalité transitive est appliquée à une clause jointure externe (Tom)

    Ceci pourrait résulter en de mauvais plans pour les requêtes identiques à ... from a left join b on a.a1 = b.b1 where a.a1 = 42 ...

  • Amélioration de la gestion des grosses listes IN par l'optimiseur (Tom)

    Cette modification évite de perdre beaucoup de temps sur de telles listes dans la contrainte d'exclusion est activée.

  • Empêche le parcours synchrone lors de la construction d'un index GIN (Tom)

    Comme GIN est optimisé pour insérer les lignes dans l'ordre croissant des TID, l'utilisation d'un parcours synchrone pourrait ralentir la construction par un facteur de trois, voire plus.

  • S'assure que le contenu d'un curseur conservable ne dépend pas du contenu des tables TOAST (Tom)

    Auparavant, des valeurs de champ large dans un résultat de curseur pouvaient être représentées comme des pointeurs TOAST, ce qui causerait un échec si la table référencée était supprimée avant la lecture du curseur ou si la valeur large était supprimée puis subissait un VACUUM. Ceci ne peut pas arriver avec un curseur standard mais le pourrait avec un curseur qui est conservé après sa transaction de création.

  • Correction d'une fuite mémoire lorsqu'une fonction SRF se termine sans lecture du résultat complet (Tom)

  • Correction de problèmes de conversion dans les fonctions XML quand l'encodage de la base de données n'est pas UTF-8 (Tom)

  • Correction de la fonction dblink_get_result(text,bool) de contrib/dblink (Joe)

  • Correction d'un mauvais retour des fonctions de contrib/sslinfo (Tom)

  • Correction d'un mauvais comportement du trigger de compatibilité de contrib/tsearch2 lorsqu'il est exécuté plus d'une fois dans une commande (Teodor)

  • Correction d'un mauvais signal possible dans l'autovacuum (Heikki)

  • Support de l'utilisation d'un service avec Windows 7 beta (Dave et Magnus)

  • Correction de la gestion des structures varchar avec ecpg (Michael)

  • Correction du script configure pour rapporter correctement les échecs quand il est incapable d'obtenir les informations de liens pour PL/Perl (Andrew)

  • Toute la documentation référence maintenant pgsql-bugs et/ou pgsql-hackers, au lieu des listes obsolètes comme pgsql-ports et pgsql-patches (Tom)

  • Mise à jour des fichiers de fuseaux horaires avec la version 2009a de tzdata (pour le Kathmandou et des corrections historiques de DST en Switzerland et à Cuba)