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

E.20. Version 8.3.4

[Note]

Date de sortie

2008-09-22

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

E.20.1. Migration vers la version 8.3.4

Une sauvegarde/restauration n'est pas nécessaire aux utilisateurs de la version 8.3.X. Néanmoins, si vous mettez à jour à partir d'une version antérieure à la version 8.3.1, voir les notes de sortie de la 8.3.1.

E.20.2. Modifications

  • Correction d'un bogue dans le code de restauration d'un enregistrement btree (Heikki)

    La restauration échouait si l'enregistrement du journal se terminait à moitié lors d'une opération de division de page.

  • Correction d'une utilisation potentielle d'un XID limite lors de la réduction des pages HOT (Alvaro)

    Cette erreur crée un risque de corruption dans les catalogues système qui sont consultés par VACUUM : les versions de lignes mortes pourraient être supprimées trop rapidement. L'impact de ceci sur les opérations actuelles de la base de données serait minimale car le système ne suit pas les règles MVCC lors de l'examen des catalogues, mais pourrait résultat en de mauvaises sorties temporaires de programmes clients comme pg_dump.

  • Correction d'un mauvais calcul potentiel de datfrozenxid (Alvaro)

    Cette erreur pourrait expliquer certains rapports récents de suppression de vieilles données dans le répertoire pg_clog.

  • Correction de mises à jour incorrectes de HOT après que pg_class soit ré-indexé (Tom)

    Une corruption de pg_class pourrait survenir si REINDEX TABLE pg_class était suivi dans la même session par une commande ALTER TABLE RENAME ou ALTER TABLE SET SCHEMA.

  • Correction d'une casse manquante « combo cid » (Karl Schnaitter)

    Cette erreur faisait que des lignes se trouvaient invisibles par erreur dans une transaction. Elles avaient été supprimées par plusieurs sous-transactions toutes annulées.

  • Empêche l'autovacuum de s'arrêter inoppunément si la table qu'il vérifie est supprimée au mauvais moment (Alvaro)

  • Augmentation du compteur de verrou local en le passant de 32 à 64 bits (Tom)

    Ceci est une réponse aux rapports indiquant que la capacité des compteurs pouvait être dépassée dans des transactions suffisamment longues, amenant à des erreurs inattendues du style « le verrou est déjà détenu ».

  • Correction d'un affichage dupliqué des lignes lors d'un parcours d'index GiST (Teodor)

  • Regénération des requêtes de vérification des clés étrangères quand une des tables est modifiée (Tom)

    Auparavant, la version 8.3 essayait de replanifier la requête mais travaillait à partir des requêtes précédemment générées. Ceci pouvait amener des échecs si une table ou une colonne était renommée.

  • Correction des vérifications de droits oubliées quand une vue contient une construction UNION ALL simple (Heikki)

    Les droits pour les tables référencées étaient vérifiés correctement, mais pas les droits pour la vue elle-même.

  • Ajout de vérifications dans le démarrage de l'exécuteur pour s'assurer que les lignes produites par une instruction INSERT ou UPDATE correspondront au type de ligne actuel de la table cible (Tom)

    Cette situation semblait impossible en 8.3, mais elle peut arriver dans les versions précédentes, donc une vérification est plus prudente.

  • Correction des suppressions possibles répétées durant un DROP OWNED (Tom)

    Ceci pourrait résulter en des erreurs étranges comme « recherche échouée dans le cache pour la relation NNN ».

  • Corrections de plusieurs pertes mémoire dans les opérations XML (Kris Jurka, Tom)

  • Correction de xmlserialize() pour augmenter le niveau d'erreur correctement pour les types de données cibles non acceptables (Tom)

  • Correction de plusieurs places gérant mal les caractères multi-octets dans l'analyse des fichiers de configuration pour la recherche plein texte (Tom)

    Certains caractères des fichiers de configuration pouvaient toujours causer des échecs de type « séquence d'octets invalide pour l'encodage ».

  • Fournit un nom de fichier et le numéro de ligne pour toutes les erreurs rapportées dans des fichiers de configuration de la recherche plein texte (Tom)

  • Correction de AT TIME ZONE pour essayer tout d'abord d'interpréter son argument de fuseau horaire en tant qu'abréviation de fuseau horaire, et essaiera seulement en tant que nom complet de fuseau horaire si la première tentative échoue (auparavant, c'était le contraire (Tom)

    Les fonctions de saisie des dates et heures ont toujours tenté de résoudre les noms de fuseaux horaires ambigus dans cet ordre. Faire en sorte que AT TIME ZONE fasse de même améliore la cohérence et corrige un bogue de compatibilité introduit en version 8.1 : dans les cas ambigus, nous nous comportons maintenant comme en 8.0 car dans les anciennes versions AT TIME ZONE acceptaient seulement les abréviations.

  • Fix datetime input functions to correctly detect integer overflow when running on a 64-bit platform (Tom)

  • Prevent integer overflows during units conversion when displaying a configuration parameter that has units (Tom)

  • Improve performance of writing very long log messages to syslog (Tom)

  • Allow spaces in the suffix part of an LDAP URL in pg_hba.conf (Tom)

  • Fix bug in backwards scanning of a cursor on a SELECT DISTINCT ON query (Tom)

  • Fix planner bug that could improperly push down IS NULL tests below an outer join (Tom)

    This was triggered by occurrence of IS NULL tests for the same relation in all arms of an upper OR clause.

  • Fix planner bug with nested sub-select expressions (Tom)

    If the outer sub-select has no direct dependency on the parent query, but the inner one does, the outer value might not get recalculated for new parent query rows.

  • Fix planner to estimate that GROUP BY expressions yielding boolean results always result in two groups, regardless of the expressions' contents (Tom)

    This is very substantially more accurate than the regular GROUP BY estimate for certain boolean tests like col IS NULL.

  • Fix PL/PgSQL to not fail when a FOR loop's target variable is a record containing composite-type fields (Tom)

  • Fix PL/Tcl to behave correctly with Tcl 8.5, and to be more careful about the encoding of data sent to or from Tcl (Tom)

  • Improve performance of PQescapeBytea() (Rudolf Leitgeb)

  • On Windows, work around a Microsoft bug by preventing libpq from trying to send more than 64kB per system call (Magnus)

  • Fix ecpg to handle variables properly in SET commands (Michael)

  • Improve pg_dump and pg_restore's error reporting after failure to send a SQL command (Tom)

  • Fix pg_ctl to properly preserve postmaster command-line arguments across a restart (Bruce)

  • Fix erroneous WAL file cutoff point calculation in pg_standby (Simon)

  • Update time zone data files to tzdata release 2008f (for DST law changes in Argentina, Bahamas, Brazil, Mauritius, Morocco, Pakistan, Palestine, and Paraguay)