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

Version anglaise

E. Notes de version

Les notes de version contiennent les modifications significatives apparaissant dans chaque version de PostgreSQL™. Elles contiennent aussi les fonctionnalités majeures et les problèmes de migration éventuels. Les notes de version ne contiennent pas les modifications qui n'affectent que peu d'utilisateurs ainsi que les modifications internes, non visibles pour les utilisateurs. Par exemple, l'optimiseur est amélioré dans pratiquement chaque version, mais les améliorations ne sont visibles par les utilisateurs que par la plus grande rapidité des requêtes.

Une liste complète de modifications est récupérable pour chaque version en lisant les validations Git. La liste de diffusion pgsql-committers enregistre en plus toutes les modifications du code source. Il existe aussi une interface web montrant les modifications sur chaque fichier.

Le nom apparaissant auprès de chaque élément précise le développeur principal de cet élément. Bien sûr, toutes les modifications impliquent des discussions de la communauté et une relecture des correctifs, donc chaque élément est vraiment un travail de la communauté.

E.1. Release 9.5.18

Release date: 2019-06-20

This release contains a variety of fixes from 9.5.17. For information about new features in the 9.5 major release, see Section E.19, « Release 9.5 ».

E.1.1. Migration to Version 9.5.18

A dump/restore is not required for those running 9.5.X.

However, if you are upgrading from a version earlier than 9.5.13, see Section E.6, « Release 9.5.13 ».

E.1.2. Changes

  • Fix failure of ALTER TABLE ... ALTER COLUMN TYPE when the table has a partial exclusion constraint (Tom Lane)

  • Fix failure of COMMENT command for comments on domain constraints (Daniel Gustafsson, Michael Paquier)

  • Fix incorrect printing of queries with duplicate join names (Philip Dubé)

    This oversight caused a dump/restore failure for views containing such queries.

  • Fix misoptimization of {1,1} quantifiers in regular expressions (Tom Lane)

    Such quantifiers were treated as no-ops and optimized away; but the documentation specifies that they impose greediness, or non-greediness in the case of the non-greedy variant {1,1}?, on the subexpression they're attached to, and this did not happen. The misbehavior occurred only if the subexpression contained capturing parentheses or a back-reference.

  • Avoid possible failures while initializing a new process's pg_stat_activity data (Tom Lane)

    Certain operations that could fail, such as converting strings extracted from an SSL certificate into the database encoding, were being performed inside a critical section. Failure there would result in database-wide lockup due to violating the access protocol for shared pg_stat_activity data.

  • Fix race condition in check to see whether a pre-existing shared memory segment is still in use by a conflicting postmaster (Tom Lane)

  • Avoid attempting to do database accesses for parameter checking in processes that are not connected to a specific database (Vignesh C, Andres Freund)

    This error could result in failures like « cannot read pg_class without having selected a database ».

  • Avoid possible hang in libpq if using SSL and OpenSSL's pending-data buffer contains an exact multiple of 256 bytes (David Binderman)

  • Improve initdb's handling of multiple equivalent names for the system time zone (Tom Lane, Andrew Gierth)

    Make initdb examine the /etc/localtime symbolic link, if that exists, to break ties between equivalent names for the system time zone. This makes initdb more likely to select the time zone name that the user would expect when multiple identical time zones exist. It will not change the behavior if /etc/localtime is not a symlink to a zone data file, nor if the time zone is determined from the TZ environment variable.

    Separately, prefer UTC over other spellings of that time zone, when neither TZ nor /etc/localtime provide a hint. This fixes an annoyance introduced by tzdata 2019a's change to make the UCT and UTC zone names equivalent: initdb was then preferring UCT, which almost nobody wants.

  • Fix misleading error reports from reindexdb (Julien Rouhaud)

  • Ensure that vacuumdb returns correct status if an error occurs while using parallel jobs (Julien Rouhaud)

  • In contrib/postgres_fdw, account for possible data modifications by local BEFORE ROW UPDATE triggers (Shohei Mochizuki)

    If a trigger modified a column that was otherwise not changed by the UPDATE, the new value was not transmitted to the remote server.

  • On Windows, avoid failure when the database encoding is set to SQL_ASCII and we attempt to log a non-ASCII string (Noah Misch)

    The code had been assuming that such strings must be in UTF-8, and would throw an error if they didn't appear to be validly encoded. Now, just transmit the untranslated bytes to the log.

  • Make PL/pgSQL's header files C++-safe (George Tarasov)