]> granicus.if.org Git - postgresql/blobdiff - doc/src/sgml/release-9.3.sgml
Release notes for 9.6.3, 9.5.7, 9.4.12, 9.3.17, 9.2.21.
[postgresql] / doc / src / sgml / release-9.3.sgml
index e7f6c93534734ac1b1b705220a2d0e894d89b39a..44c1e2ac69d4be2c6ddb8dfa06c9bf6ee12f5733 100644 (file)
 <!-- doc/src/sgml/release-9.3.sgml -->
 <!-- See header comment in release.sgml about typical markup -->
 
+ <sect1 id="release-9-3-17">
+  <title>Release 9.3.17</title>
+
+  <note>
+  <title>Release Date</title>
+  <simpara>2017-05-11</simpara>
+  </note>
+
+  <para>
+   This release contains a variety of fixes from 9.3.16.
+   For information about new features in the 9.3 major release, see
+   <xref linkend="release-9-3">.
+  </para>
+
+  <sect2>
+   <title>Migration to Version 9.3.17</title>
+
+   <para>
+    A dump/restore is not required for those running 9.3.X.
+   </para>
+
+   <para>
+    However, if you are upgrading from a version earlier than 9.3.16,
+    see <xref linkend="release-9-3-16">.
+   </para>
+
+  </sect2>
+
+  <sect2>
+   <title>Changes</title>
+
+   <itemizedlist>
+
+    <listitem>
+     <para>
+      Fix possible corruption of <quote>init forks</> of unlogged indexes
+      (Robert Haas, Michael Paquier)
+     </para>
+
+     <para>
+      This could result in an unlogged index being set to an invalid state
+      after a crash and restart.  Such a problem would persist until the
+      index was dropped and rebuilt.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix incorrect reconstruction of <structname>pg_subtrans</> entries
+      when a standby server replays a prepared but uncommitted two-phase
+      transaction (Tom Lane)
+     </para>
+
+     <para>
+      In most cases this turned out to have no visible ill effects, but in
+      corner cases it could result in circular references
+      in <structname>pg_subtrans</>, potentially causing infinite loops
+      in queries that examine rows modified by the two-phase transaction.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Ensure parsing of queries in extension scripts sees the results of
+      immediately-preceding DDL (Julien Rouhaud, Tom Lane)
+     </para>
+
+     <para>
+      Due to lack of a cache flush step between commands in an extension
+      script file, non-utility queries might not see the effects of an
+      immediately preceding catalog change, such as <command>ALTER TABLE
+      ... RENAME</>.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Skip tablespace privilege checks when <command>ALTER TABLE ... ALTER
+      COLUMN TYPE</> rebuilds an existing index (Noah Misch)
+     </para>
+
+     <para>
+      The command failed if the calling user did not currently have
+      <literal>CREATE</> privilege for the tablespace containing the index.
+      That behavior seems unhelpful, so skip the check, allowing the
+      index to be rebuilt where it is.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix <command>ALTER TABLE ... VALIDATE CONSTRAINT</> to not recurse
+      to child tables when the constraint is marked <literal>NO INHERIT</>
+      (Amit Langote)
+     </para>
+
+     <para>
+      This fix prevents unwanted <quote>constraint does not exist</> failures
+      when no matching constraint is present in the child tables.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix <command>VACUUM</> to account properly for pages that could not
+      be scanned due to conflicting page pins (Andrew Gierth)
+     </para>
+
+     <para>
+      This tended to lead to underestimation of the number of tuples in
+      the table.  In the worst case of a small heavily-contended
+      table, <command>VACUUM</> could incorrectly report that the table
+      contained no tuples, leading to very bad planning choices.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Ensure that bulk-tuple-transfer loops within a hash join are
+      interruptible by query cancel requests (Tom Lane, Thomas Munro)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix <function>cursor_to_xml()</> to produce valid output
+      with <replaceable>tableforest</> = false
+      (Thomas Munro, Peter Eisentraut)
+     </para>
+
+     <para>
+      Previously it failed to produce a wrapping <literal>&lt;table&gt;</>
+      element.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Improve performance of <structname>pg_timezone_names</> view
+      (Tom Lane, David Rowley)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix sloppy handling of corner-case errors from <function>lseek()</>
+      and <function>close()</> (Tom Lane)
+     </para>
+
+     <para>
+      Neither of these system calls are likely to fail in typical situations,
+      but if they did, <filename>fd.c</> could get quite confused.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix incorrect check for whether postmaster is running as a Windows
+      service (Michael Paquier)
+     </para>
+
+     <para>
+      This could result in attempting to write to the event log when that
+      isn't accessible, so that no logging happens at all.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix <application>ecpg</> to support <command>COMMIT PREPARED</>
+      and <command>ROLLBACK PREPARED</> (Masahiko Sawada)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix a double-free error when processing dollar-quoted string literals
+      in <application>ecpg</> (Michael Meskes)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      In <application>pg_dump</>, fix incorrect schema and owner marking for
+      comments and security labels of some types of database objects
+      (Giuseppe Broccolo, Tom Lane)
+     </para>
+
+     <para>
+      In simple cases this caused no ill effects; but for example, a
+      schema-selective restore might omit comments it should include, because
+      they were not marked as belonging to the schema of their associated
+      object.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Avoid emitting an invalid list file in <literal>pg_restore -l</>
+      when SQL object names contain newlines (Tom Lane)
+     </para>
+
+     <para>
+      Replace newlines by spaces, which is sufficient to make the output
+      valid for <literal>pg_restore -L</>'s purposes.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix <application>pg_upgrade</> to transfer comments and security labels
+      attached to <quote>large objects</> (blobs) (Stephen Frost)
+     </para>
+
+     <para>
+      Previously, blobs were correctly transferred to the new database, but
+      any comments or security labels attached to them were lost.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Improve error handling
+      in <filename>contrib/adminpack</>'s <function>pg_file_write()</>
+      function (Noah Misch)
+     </para>
+
+     <para>
+      Notably, it failed to detect errors reported
+      by <function>fclose()</>.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      In <filename>contrib/dblink</>, avoid leaking the previous unnamed
+      connection when establishing a new unnamed connection (Joe Conway)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix <filename>contrib/pg_trgm</>'s extraction of trigrams from regular
+      expressions (Tom Lane)
+     </para>
+
+     <para>
+      In some cases it would produce a broken data structure that could never
+      match anything, leading to GIN or GiST indexscans that use a trigram
+      index not finding any matches to the regular expression.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      In <filename>contrib/postgres_fdw</>,
+      transmit query cancellation requests to the remote server
+      (Michael Paquier, Etsuro Fujita)
+     </para>
+
+     <para>
+      Previously, a local query cancellation request did not cause an
+      already-sent remote query to terminate early.  This is a back-patch
+      of work originally done for 9.6.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Support OpenSSL 1.1.0 (Heikki Linnakangas, Andreas Karlsson, Tom Lane)
+     </para>
+
+     <para>
+      This is a back-patch of work previously done in newer branches;
+      it's needed since many platforms are adopting newer OpenSSL versions.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Support Tcl 8.6 in MSVC builds (&Aacute;lvaro Herrera)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Sync our copy of the timezone library with IANA release tzcode2017b
+      (Tom Lane)
+     </para>
+
+     <para>
+      This fixes a bug affecting some DST transitions in January 2038.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Update time zone data files to <application>tzdata</> release 2017b
+      for DST law changes in Chile, Haiti, and Mongolia, plus historical
+      corrections for Ecuador, Kazakhstan, Liberia, and Spain.
+      Switch to numeric abbreviations for numerous time zones in South
+      America, the Pacific and Indian oceans, and some Asian and Middle
+      Eastern countries.
+     </para>
+
+     <para>
+      The IANA time zone database previously provided textual abbreviations
+      for all time zones, sometimes making up abbreviations that have little
+      or no currency among the local population.  They are in process of
+      reversing that policy in favor of using numeric UTC offsets in zones
+      where there is no evidence of real-world use of an English
+      abbreviation.  At least for the time being, <productname>PostgreSQL</>
+      will continue to accept such removed abbreviations for timestamp input.
+      But they will not be shown in the <structname>pg_timezone_names</>
+      view nor used for output.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Use correct daylight-savings rules for POSIX-style time zone names
+      in MSVC builds (David Rowley)
+     </para>
+
+     <para>
+      The Microsoft MSVC build scripts neglected to install
+      the <filename>posixrules</> file in the timezone directory tree.
+      This resulted in the timezone code falling back to its built-in
+      rule about what DST behavior to assume for a POSIX-style time zone
+      name.  For historical reasons that still corresponds to the DST rules
+      the USA was using before 2007 (i.e., change on first Sunday in April
+      and last Sunday in October).  With this fix, a POSIX-style zone name
+      will use the current and historical DST transition dates of
+      the <literal>US/Eastern</> zone.  If you don't want that, remove
+      the <filename>posixrules</> file, or replace it with a copy of some
+      other zone file (see <xref linkend="datatype-timezones">).  Note that
+      due to caching, you may need to restart the server to get such changes
+      to take effect.
+     </para>
+    </listitem>
+
+   </itemizedlist>
+
+  </sect2>
+ </sect1>
+
+ <sect1 id="release-9-3-16">
+  <title>Release 9.3.16</title>
+
+  <note>
+  <title>Release Date</title>
+  <simpara>2017-02-09</simpara>
+  </note>
+
+  <para>
+   This release contains a variety of fixes from 9.3.15.
+   For information about new features in the 9.3 major release, see
+   <xref linkend="release-9-3">.
+  </para>
+
+  <sect2>
+   <title>Migration to Version 9.3.16</title>
+
+   <para>
+    A dump/restore is not required for those running 9.3.X.
+   </para>
+
+   <para>
+    However, if your installation has been affected by the bug described in
+    the first changelog entry below, then after updating you may need
+    to take action to repair corrupted indexes.
+   </para>
+
+   <para>
+    Also, if you are upgrading from a version earlier than 9.3.15,
+    see <xref linkend="release-9-3-15">.
+   </para>
+
+  </sect2>
+
+  <sect2>
+   <title>Changes</title>
+
+   <itemizedlist>
+
+    <listitem>
+     <para>
+      Fix a race condition that could cause indexes built
+      with <command>CREATE INDEX CONCURRENTLY</> to be corrupt
+      (Pavan Deolasee, Tom Lane)
+     </para>
+
+     <para>
+      If <command>CREATE INDEX CONCURRENTLY</> was used to build an index
+      that depends on a column not previously indexed, then rows
+      updated by transactions that ran concurrently with
+      the <command>CREATE INDEX</> command could have received incorrect
+      index entries.  If you suspect this may have happened, the most
+      reliable solution is to rebuild affected indexes after installing
+      this update.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Unconditionally WAL-log creation of the <quote>init fork</> for an
+      unlogged table (Michael Paquier)
+     </para>
+
+     <para>
+      Previously, this was skipped when <xref linkend="guc-wal-level">
+      = <literal>minimal</>, but actually it's necessary even in that case
+      to ensure that the unlogged table is properly reset to empty after a
+      crash.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      If the stats collector dies during hot standby, restart it (Takayuki
+      Tsunakawa)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Ensure that hot standby feedback works correctly when it's enabled at
+      standby server start (Ants Aasma, Craig Ringer)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Check for interrupts while hot standby is waiting for a conflicting
+      query (Simon Riggs)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Avoid constantly respawning the autovacuum launcher in a corner case
+      (Amit Khandekar)
+     </para>
+
+     <para>
+      This fix avoids problems when autovacuum is nominally off and there
+      are some tables that require freezing, but all such tables are
+      already being processed by autovacuum workers.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix check for when an extension member object can be dropped (Tom Lane)
+     </para>
+
+     <para>
+      Extension upgrade scripts should be able to drop member objects,
+      but this was disallowed for serial-column sequences, and possibly
+      other cases.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Make sure <command>ALTER TABLE</> preserves index tablespace
+      assignments when rebuilding indexes (Tom Lane, Michael Paquier)
+     </para>
+
+     <para>
+      Previously, non-default settings
+      of <xref linkend="guc-default-tablespace"> could result in broken
+      indexes.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Prevent dropping a foreign-key constraint if there are pending
+      trigger events for the referenced relation (Tom Lane)
+     </para>
+
+     <para>
+      This avoids <quote>could not find trigger <replaceable>NNN</></quote>
+      or <quote>relation <replaceable>NNN</> has no triggers</quote> errors.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix processing of OID column when a table with OIDs is associated to
+      a parent with OIDs via <command>ALTER TABLE ... INHERIT</> (Amit
+      Langote)
+     </para>
+
+     <para>
+      The OID column should be treated the same as regular user columns in
+      this case, but it wasn't, leading to odd behavior in later
+      inheritance changes.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Report correct object identity during <command>ALTER TEXT SEARCH
+      CONFIGURATION</> (Artur Zakirov)
+     </para>
+
+     <para>
+      The wrong catalog OID was reported to extensions such as logical
+      decoding.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Check for serializability conflicts before reporting
+      constraint-violation failures (Thomas Munro)
+     </para>
+
+     <para>
+      When using serializable transaction isolation, it is desirable
+      that any error due to concurrent transactions should manifest
+      as a serialization failure, thereby cueing the application that
+      a retry might succeed.  Unfortunately, this does not reliably
+      happen for duplicate-key failures caused by concurrent insertions.
+      This change ensures that such an error will be reported as a
+      serialization error if the application explicitly checked for
+      the presence of a conflicting key (and did not find it) earlier
+      in the transaction.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Prevent multicolumn expansion of <replaceable>foo</><literal>.*</> in
+      an <command>UPDATE</> source expression (Tom Lane)
+     </para>
+
+     <para>
+      This led to <quote>UPDATE target count mismatch --- internal
+      error</>.  Now the syntax is understood as a whole-row variable,
+      as it would be in other contexts.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Ensure that column typmods are determined accurately for
+      multi-row <literal>VALUES</> constructs (Tom Lane)
+     </para>
+
+     <para>
+      This fixes problems occurring when the first value in a column has a
+      determinable typmod (e.g., length for a <type>varchar</> value) but
+      later values don't share the same limit.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Throw error for an unfinished Unicode surrogate pair at the end of a
+      Unicode string (Tom Lane)
+     </para>
+
+     <para>
+      Normally, a Unicode surrogate leading character must be followed by a
+      Unicode surrogate trailing character, but the check for this was
+      missed if the leading character was the last character in a Unicode
+      string literal (<literal>U&amp;'...'</>) or Unicode identifier
+      (<literal>U&amp;"..."</>).
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Ensure that a purely negative text search query, such
+      as <literal>!foo</>, matches empty <type>tsvector</>s (Tom Dunstan)
+     </para>
+
+     <para>
+      Such matches were found by GIN index searches, but not by sequential
+      scans or GiST index searches.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Prevent crash when <function>ts_rewrite()</> replaces a non-top-level
+      subtree with an empty query (Artur Zakirov)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix performance problems in <function>ts_rewrite()</> (Tom Lane)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix <function>ts_rewrite()</>'s handling of nested NOT operators
+      (Tom Lane)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix <function>array_fill()</> to handle empty arrays properly (Tom Lane)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix one-byte buffer overrun in <function>quote_literal_cstr()</>
+      (Heikki Linnakangas)
+     </para>
+
+     <para>
+      The overrun occurred only if the input consisted entirely of single
+      quotes and/or backslashes.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Prevent multiple calls of <function>pg_start_backup()</>
+      and <function>pg_stop_backup()</> from running concurrently (Michael
+      Paquier)
+     </para>
+
+     <para>
+      This avoids an assertion failure, and possibly worse things, if
+      someone tries to run these functions in parallel.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Avoid discarding <type>interval</>-to-<type>interval</> casts
+      that aren't really no-ops (Tom Lane)
+     </para>
+
+     <para>
+      In some cases, a cast that should result in zeroing out
+      low-order <type>interval</> fields was mistakenly deemed to be a
+      no-op and discarded.  An example is that casting from <type>INTERVAL
+      MONTH</> to <type>INTERVAL YEAR</> failed to clear the months field.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Ensure that cached plans are invalidated by changes in foreign-table
+      options (Amit Langote, Etsuro Fujita, Ashutosh Bapat)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix <application>pg_dump</> to dump user-defined casts and transforms
+      that use built-in functions (Stephen Frost)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix possible <application>pg_basebackup</> failure on standby
+      server when including WAL files (Amit Kapila, Robert Haas)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Ensure that the Python exception objects we create for PL/Python are
+      properly reference-counted (Rafa de la Torre, Tom Lane)
+     </para>
+
+     <para>
+      This avoids failures if the objects are used after a Python garbage
+      collection cycle has occurred.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix PL/Tcl to support triggers on tables that have <literal>.tupno</>
+      as a column name (Tom Lane)
+     </para>
+
+     <para>
+      This matches the (previously undocumented) behavior of
+      PL/Tcl's <command>spi_exec</> and <command>spi_execp</> commands,
+      namely that a magic <literal>.tupno</> column is inserted only if
+      there isn't a real column named that.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Allow DOS-style line endings in <filename>~/.pgpass</> files,
+      even on Unix (Vik Fearing)
+     </para>
+
+     <para>
+      This change simplifies use of the same password file across Unix and
+      Windows machines.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix one-byte buffer overrun if <application>ecpg</> is given a file
+      name that ends with a dot (Takayuki Tsunakawa)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix <application>psql</>'s tab completion for <command>ALTER DEFAULT
+      PRIVILEGES</> (Gilles Darold, Stephen Frost)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      In <application>psql</>, treat an empty or all-blank setting of
+      the <envar>PAGER</> environment variable as meaning <quote>no
+      pager</> (Tom Lane)
+     </para>
+
+     <para>
+      Previously, such a setting caused output intended for the pager to
+      vanish entirely.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Improve <filename>contrib/dblink</>'s reporting of
+      low-level <application>libpq</> errors, such as out-of-memory
+      (Joe Conway)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Teach <filename>contrib/dblink</> to ignore irrelevant server options
+      when it uses a <filename>contrib/postgres_fdw</> foreign server as
+      the source of connection options (Corey Huinker)
+     </para>
+
+     <para>
+      Previously, if the foreign server object had options that were not
+      also <application>libpq</> connection options, an error occurred.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      On Windows, ensure that environment variable changes are propagated
+      to DLLs built with debug options (Christian Ullrich)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Sync our copy of the timezone library with IANA release tzcode2016j
+      (Tom Lane)
+     </para>
+
+     <para>
+      This fixes various issues, most notably that timezone data
+      installation failed if the target directory didn't support hard
+      links.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Update time zone data files to <application>tzdata</> release 2016j
+      for DST law changes in northern Cyprus (adding a new zone
+      Asia/Famagusta), Russia (adding a new zone Europe/Saratov), Tonga,
+      and Antarctica/Casey.
+      Historical corrections for Italy, Kazakhstan, Malta, and Palestine.
+      Switch to preferring numeric zone abbreviations for Tonga.
+     </para>
+    </listitem>
+
+   </itemizedlist>
+
+  </sect2>
+ </sect1>
+
+ <sect1 id="release-9-3-15">
+  <title>Release 9.3.15</title>
+
+  <note>
+  <title>Release Date</title>
+  <simpara>2016-10-27</simpara>
+  </note>
+
+  <para>
+   This release contains a variety of fixes from 9.3.14.
+   For information about new features in the 9.3 major release, see
+   <xref linkend="release-9-3">.
+  </para>
+
+  <sect2>
+   <title>Migration to Version 9.3.15</title>
+
+   <para>
+    A dump/restore is not required for those running 9.3.X.
+   </para>
+
+   <para>
+    However, if your installation has been affected by the bug described in
+    the first changelog entry below, then after updating you may need
+    to take action to repair corrupted free space maps.
+   </para>
+
+   <para>
+    Also, if you are upgrading from a version earlier than 9.3.9,
+    see <xref linkend="release-9-3-9">.
+   </para>
+
+  </sect2>
+
+  <sect2>
+   <title>Changes</title>
+
+   <itemizedlist>
+
+    <listitem>
+     <para>
+      Fix WAL-logging of truncation of relation free space maps and
+      visibility maps (Pavan Deolasee, Heikki Linnakangas)
+     </para>
+
+     <para>
+      It was possible for these files to not be correctly restored during
+      crash recovery, or to be written incorrectly on a standby server.
+      Bogus entries in a free space map could lead to attempts to access
+      pages that have been truncated away from the relation itself, typically
+      producing errors like <quote>could not read block <replaceable>XXX</>:
+      read only 0 of 8192 bytes</quote>.  Checksum failures in the
+      visibility map are also possible, if checksumming is enabled.
+     </para>
+
+     <para>
+      Procedures for determining whether there is a problem and repairing it
+      if so are discussed at
+      <ulink url="https://wiki.postgresql.org/wiki/Free_Space_Map_Problems"></>.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix <command>SELECT FOR UPDATE/SHARE</> to correctly lock tuples that
+      have been updated by a subsequently-aborted transaction
+      (&Aacute;lvaro Herrera)
+     </para>
+
+     <para>
+      In 9.5 and later, the <command>SELECT</> would sometimes fail to
+      return such tuples at all.  A failure has not been proven to occur in
+      earlier releases, but might be possible with concurrent updates.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix EvalPlanQual rechecks involving CTE scans (Tom Lane)
+     </para>
+
+     <para>
+      The recheck would always see the CTE as returning no rows, typically
+      leading to failure to update rows that were recently updated.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix improper repetition of previous results from hashed aggregation in
+      a subquery (Andrew Gierth)
+     </para>
+
+     <para>
+      The test to see if we can reuse a previously-computed hash table of
+      the aggregate state values neglected the possibility of an outer query
+      reference appearing in an aggregate argument expression.  A change in
+      the value of such a reference should lead to recalculating the hash
+      table, but did not.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix <command>EXPLAIN</> to emit valid XML when
+      <xref linkend="guc-track-io-timing"> is on (Markus Winand)
+     </para>
+
+     <para>
+      Previously the XML output-format option produced syntactically invalid
+      tags such as <literal>&lt;I/O-Read-Time&gt;</>.  That is now
+      rendered as <literal>&lt;I-O-Read-Time&gt;</>.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Suppress printing of zeroes for unmeasured times
+      in <command>EXPLAIN</> (Maksim Milyutin)
+     </para>
+
+     <para>
+      Certain option combinations resulted in printing zero values for times
+      that actually aren't ever measured in that combination.  Our general
+      policy in <command>EXPLAIN</> is not to print such fields at all, so
+      do that consistently in all cases.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix timeout length when <command>VACUUM</> is waiting for exclusive
+      table lock so that it can truncate the table (Simon Riggs)
+     </para>
+
+     <para>
+      The timeout was meant to be 50 milliseconds, but it was actually only
+      50 microseconds, causing <command>VACUUM</> to give up on truncation
+      much more easily than intended.  Set it to the intended value.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix bugs in merging inherited <literal>CHECK</> constraints while
+      creating or altering a table (Tom Lane, Amit Langote)
+     </para>
+
+     <para>
+      Allow identical <literal>CHECK</> constraints to be added to a parent
+      and child table in either order.  Prevent merging of a valid
+      constraint from the parent table with a <literal>NOT VALID</>
+      constraint on the child.  Likewise, prevent merging of a <literal>NO
+      INHERIT</> child constraint with an inherited constraint.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Remove artificial restrictions on the values accepted
+      by <function>numeric_in()</> and <function>numeric_recv()</>
+      (Tom Lane)
+     </para>
+
+     <para>
+      We allow numeric values up to the limit of the storage format (more
+      than <literal>1e100000</>), so it seems fairly pointless
+      that <function>numeric_in()</> rejected scientific-notation exponents
+      above 1000.  Likewise, it was silly for <function>numeric_recv()</> to
+      reject more than 1000 digits in an input value.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Avoid very-low-probability data corruption due to testing tuple
+      visibility without holding buffer lock (Thomas Munro, Peter Geoghegan,
+      Tom Lane)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix file descriptor leakage when truncating a temporary relation of
+      more than 1GB (Andres Freund)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Disallow starting a standalone backend with <literal>standby_mode</>
+      turned on (Michael Paquier)
+     </para>
+
+     <para>
+      This can't do anything useful, since there will be no WAL receiver
+      process to fetch more WAL data; and it could result in misbehavior
+      in code that wasn't designed with this situation in mind.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Don't try to share SSL contexts across multiple connections
+      in <application>libpq</> (Heikki Linnakangas)
+     </para>
+
+     <para>
+      This led to assorted corner-case bugs, particularly when trying to use
+      different SSL parameters for different connections.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Avoid corner-case memory leak in <application>libpq</> (Tom Lane)
+     </para>
+
+     <para>
+      The reported problem involved leaking an error report
+      during <function>PQreset()</>, but there might be related cases.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Make <application>ecpg</>'s <option>--help</> and <option>--version</>
+      options work consistently with our other executables (Haribabu Kommi)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      In <application>pg_dump</>, never dump range constructor functions
+      (Tom Lane)
+     </para>
+
+     <para>
+      This oversight led to <application>pg_upgrade</> failures with
+      extensions containing range types, due to duplicate creation of the
+      constructor functions.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      In <application>pg_xlogdump</>, retry opening new WAL segments when
+      using <option>--follow</> option (Magnus Hagander)
+     </para>
+
+     <para>
+      This allows for a possible delay in the server's creation of the next
+      segment.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix <application>pg_xlogdump</> to cope with a WAL file that begins
+      with a continuation record spanning more than one page (Pavan
+      Deolasee)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix <filename>contrib/intarray/bench/bench.pl</> to print the results
+      of the <command>EXPLAIN</> it does when given the <option>-e</> option
+      (Daniel Gustafsson)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Update Windows time zone mapping to recognize some time zone names
+      added in recent Windows versions (Michael Paquier)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Prevent failure of obsolete dynamic time zone abbreviations (Tom Lane)
+     </para>
+
+     <para>
+      If a dynamic time zone abbreviation does not match any entry in the
+      referenced time zone, treat it as equivalent to the time zone name.
+      This avoids unexpected failures when IANA removes abbreviations from
+      their time zone database, as they did in <application>tzdata</>
+      release 2016f and seem likely to do again in the future.  The
+      consequences were not limited to not recognizing the individual
+      abbreviation; any mismatch caused
+      the <structname>pg_timezone_abbrevs</> view to fail altogether.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Update time zone data files to <application>tzdata</> release 2016h
+      for DST law changes in Palestine and Turkey, plus historical
+      corrections for Turkey and some regions of Russia.
+      Switch to numeric abbreviations for some time zones in Antarctica,
+      the former Soviet Union, and Sri Lanka.
+     </para>
+
+     <para>
+      The IANA time zone database previously provided textual abbreviations
+      for all time zones, sometimes making up abbreviations that have little
+      or no currency among the local population.  They are in process of
+      reversing that policy in favor of using numeric UTC offsets in zones
+      where there is no evidence of real-world use of an English
+      abbreviation.  At least for the time being, <productname>PostgreSQL</>
+      will continue to accept such removed abbreviations for timestamp input.
+      But they will not be shown in the <structname>pg_timezone_names</>
+      view nor used for output.
+     </para>
+
+     <para>
+      In this update, <literal>AMT</> is no longer shown as being in use to
+      mean Armenia Time.  Therefore, we have changed the <literal>Default</>
+      abbreviation set to interpret it as Amazon Time, thus UTC-4 not UTC+4.
+     </para>
+    </listitem>
+
+   </itemizedlist>
+
+  </sect2>
+ </sect1>
+
+ <sect1 id="release-9-3-14">
+  <title>Release 9.3.14</title>
+
+  <note>
+  <title>Release Date</title>
+  <simpara>2016-08-11</simpara>
+  </note>
+
+  <para>
+   This release contains a variety of fixes from 9.3.13.
+   For information about new features in the 9.3 major release, see
+   <xref linkend="release-9-3">.
+  </para>
+
+  <sect2>
+   <title>Migration to Version 9.3.14</title>
+
+   <para>
+    A dump/restore is not required for those running 9.3.X.
+   </para>
+
+   <para>
+    However, if you are upgrading from a version earlier than 9.3.9,
+    see <xref linkend="release-9-3-9">.
+   </para>
+
+  </sect2>
+
+  <sect2>
+   <title>Changes</title>
+
+   <itemizedlist>
+
+    <listitem>
+     <para>
+      Fix possible mis-evaluation of
+      nested <literal>CASE</>-<literal>WHEN</> expressions (Heikki
+      Linnakangas, Michael Paquier, Tom Lane)
+     </para>
+
+     <para>
+      A <literal>CASE</> expression appearing within the test value
+      subexpression of another <literal>CASE</> could become confused about
+      whether its own test value was null or not.  Also, inlining of a SQL
+      function implementing the equality operator used by
+      a <literal>CASE</> expression could result in passing the wrong test
+      value to functions called within a <literal>CASE</> expression in the
+      SQL function's body.  If the test values were of different data
+      types, a crash might result; moreover such situations could be abused
+      to allow disclosure of portions of server memory.  (CVE-2016-5423)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix client programs' handling of special characters in database and
+      role names (Noah Misch, Nathan Bossart, Michael Paquier)
+     </para>
+
+     <para>
+      Numerous places in <application>vacuumdb</> and other client programs
+      could become confused by database and role names containing double
+      quotes or backslashes.  Tighten up quoting rules to make that safe.
+      Also, ensure that when a conninfo string is used as a database name
+      parameter to these programs, it is correctly treated as such throughout.
+     </para>
+
+     <para>
+      Fix handling of paired double quotes
+      in <application>psql</>'s <command>\connect</>
+      and <command>\password</> commands to match the documentation.
+     </para>
+
+     <para>
+      Introduce a new <option>-reuse-previous</> option
+      in <application>psql</>'s <command>\connect</> command to allow
+      explicit control of whether to re-use connection parameters from a
+      previous connection.  (Without this, the choice is based on whether
+      the database name looks like a conninfo string, as before.)  This
+      allows secure handling of database names containing special
+      characters in <application>pg_dumpall</> scripts.
+     </para>
+
+     <para>
+      <application>pg_dumpall</> now refuses to deal with database and role
+      names containing carriage returns or newlines, as it seems impractical
+      to quote those characters safely on Windows.  In future we may reject
+      such names on the server side, but that step has not been taken yet.
+     </para>
+
+     <para>
+      These are considered security fixes because crafted object names
+      containing special characters could have been used to execute
+      commands with superuser privileges the next time a superuser
+      executes <application>pg_dumpall</> or other routine maintenance
+      operations.  (CVE-2016-5424)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix corner-case misbehaviors for <literal>IS NULL</>/<literal>IS NOT
+      NULL</> applied to nested composite values (Andrew Gierth, Tom Lane)
+     </para>
+
+     <para>
+      The SQL standard specifies that <literal>IS NULL</> should return
+      TRUE for a row of all null values (thus <literal>ROW(NULL,NULL) IS
+      NULL</> yields TRUE), but this is not meant to apply recursively
+      (thus <literal>ROW(NULL, ROW(NULL,NULL)) IS NULL</> yields FALSE).
+      The core executor got this right, but certain planner optimizations
+      treated the test as recursive (thus producing TRUE in both cases),
+      and <filename>contrib/postgres_fdw</> could produce remote queries
+      that misbehaved similarly.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Make the <type>inet</> and <type>cidr</> data types properly reject
+      IPv6 addresses with too many colon-separated fields (Tom Lane)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Prevent crash in <function>close_ps()</>
+      (the <type>point</> <literal>##</> <type>lseg</> operator)
+      for NaN input coordinates (Tom Lane)
+     </para>
+
+     <para>
+      Make it return NULL instead of crashing.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Avoid possible crash in <function>pg_get_expr()</> when inconsistent
+      values are passed to it (Michael Paquier, Thomas Munro)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix several one-byte buffer over-reads in <function>to_number()</>
+      (Peter Eisentraut)
+     </para>
+
+     <para>
+      In several cases the <function>to_number()</> function would read one
+      more character than it should from the input string.  There is a
+      small chance of a crash, if the input happens to be adjacent to the
+      end of memory.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Do not run the planner on the query contained in <literal>CREATE
+      MATERIALIZED VIEW</> or <literal>CREATE TABLE AS</>
+      when <literal>WITH NO DATA</> is specified (Michael Paquier,
+      Tom Lane)
+     </para>
+
+     <para>
+      This avoids some unnecessary failure conditions, for example if a
+      stable function invoked by the materialized view depends on a table
+      that doesn't exist yet.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Avoid unsafe intermediate state during expensive paths
+      through <function>heap_update()</> (Masahiko Sawada, Andres Freund)
+     </para>
+
+     <para>
+      Previously, these cases locked the target tuple (by setting its XMAX)
+      but did not WAL-log that action, thus risking data integrity problems
+      if the page were spilled to disk and then a database crash occurred
+      before the tuple update could be completed.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix hint bit update during WAL replay of row locking operations
+      (Andres Freund)
+     </para>
+
+     <para>
+      The only known consequence of this problem is that row locks held by
+      a prepared, but uncommitted, transaction might fail to be enforced
+      after a crash and restart.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Avoid unnecessary <quote>could not serialize access</> errors when
+      acquiring <literal>FOR KEY SHARE</> row locks in serializable mode
+      (&Aacute;lvaro Herrera)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Avoid crash in <literal>postgres -C</> when the specified variable
+      has a null string value (Michael Paquier)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Ensure that backends see up-to-date statistics for shared catalogs
+      (Tom Lane)
+     </para>
+
+     <para>
+      The statistics collector failed to update the statistics file for
+      shared catalogs after a request from a regular backend.  This problem
+      was partially masked because the autovacuum launcher regularly makes
+      requests that did cause such updates; however, it became obvious with
+      autovacuum disabled.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Avoid redundant writes of the statistics files when multiple
+      backends request updates close together (Tom Lane, Tomas Vondra)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Avoid consuming a transaction ID during <command>VACUUM</>
+      (Alexander Korotkov)
+     </para>
+
+     <para>
+      Some cases in <command>VACUUM</> unnecessarily caused an XID to be
+      assigned to the current transaction.  Normally this is negligible,
+      but if one is up against the XID wraparound limit, consuming more
+      XIDs during anti-wraparound vacuums is a very bad thing.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Avoid canceling hot-standby queries during <command>VACUUM FREEZE</>
+      (Simon Riggs, &Aacute;lvaro Herrera)
+     </para>
+
+     <para>
+      <command>VACUUM FREEZE</> on an otherwise-idle master server could
+      result in unnecessary cancellations of queries on its standby
+      servers.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Prevent possible failure when vacuuming multixact IDs in an
+      installation that has been pg_upgrade'd from pre-9.3 (Andrew Gierth,
+      &Aacute;lvaro Herrera)
+     </para>
+
+     <para>
+      The usual symptom of this bug is errors
+      like <quote>MultiXactId <replaceable>NNN</> has not been created
+      yet -- apparent wraparound</quote>.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      When a manual <command>ANALYZE</> specifies a column list, don't
+      reset the table's <literal>changes_since_analyze</> counter
+      (Tom Lane)
+     </para>
+
+     <para>
+      If we're only analyzing some columns, we should not prevent routine
+      auto-analyze from happening for the other columns.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix <command>ANALYZE</>'s overestimation of <literal>n_distinct</>
+      for a unique or nearly-unique column with many null entries (Tom
+      Lane)
+     </para>
+
+     <para>
+      The nulls could get counted as though they were themselves distinct
+      values, leading to serious planner misestimates in some types of
+      queries.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Prevent autovacuum from starting multiple workers for the same shared
+      catalog (&Aacute;lvaro Herrera)
+     </para>
+
+     <para>
+      Normally this isn't much of a problem because the vacuum doesn't take
+      long anyway; but in the case of a severely bloated catalog, it could
+      result in all but one worker uselessly waiting instead of doing
+      useful work on other tables.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Prevent infinite loop in GiST index build for geometric columns
+      containing NaN component values (Tom Lane)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix <filename>contrib/btree_gin</> to handle the smallest
+      possible <type>bigint</> value correctly (Peter Eisentraut)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Teach libpq to correctly decode server version from future servers
+      (Peter Eisentraut)
+     </para>
+
+     <para>
+      It's planned to switch to two-part instead of three-part server
+      version numbers for releases after 9.6.  Make sure
+      that <function>PQserverVersion()</> returns the correct value for
+      such cases.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix <application>ecpg</>'s code for <literal>unsigned long long</>
+      array elements (Michael Meskes)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      In <application>pg_dump</> with both <option>-c</> and <option>-C</>
+      options, avoid emitting an unwanted <literal>CREATE SCHEMA public</>
+      command (David Johnston, Tom Lane)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Improve handling of <systemitem>SIGTERM</>/control-C in
+      parallel <application>pg_dump</> and <application>pg_restore</> (Tom
+      Lane)
+     </para>
+
+     <para>
+      Make sure that the worker processes will exit promptly, and also arrange
+      to send query-cancel requests to the connected backends, in case they
+      are doing something long-running such as a <command>CREATE INDEX</>.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix error reporting in parallel <application>pg_dump</>
+      and <application>pg_restore</> (Tom Lane)
+     </para>
+
+     <para>
+      Previously, errors reported by <application>pg_dump</>
+      or <application>pg_restore</> worker processes might never make it to
+      the user's console, because the messages went through the master
+      process, and there were various deadlock scenarios that would prevent
+      the master process from passing on the messages.  Instead, just print
+      everything to <literal>stderr</>.  In some cases this will result in
+      duplicate messages (for instance, if all the workers report a server
+      shutdown), but that seems better than no message.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Ensure that parallel <application>pg_dump</>
+      or <application>pg_restore</> on Windows will shut down properly
+      after an error (Kyotaro Horiguchi)
+     </para>
+
+     <para>
+      Previously, it would report the error, but then just sit until
+      manually stopped by the user.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Make <application>pg_dump</> behave better when built without zlib
+      support (Kyotaro Horiguchi)
+     </para>
+
+     <para>
+      It didn't work right for parallel dumps, and emitted some rather
+      pointless warnings in other cases.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Make <application>pg_basebackup</> accept <literal>-Z 0</> as
+      specifying no compression (Fujii Masao)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix makefiles' rule for building AIX shared libraries to be safe for
+      parallel make (Noah Misch)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix TAP tests and MSVC scripts to work when build directory's path
+      name contains spaces (Michael Paquier, Kyotaro Horiguchi)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Be more predictable about reporting <quote>statement timeout</>
+      versus <quote>lock timeout</> (Tom Lane)
+     </para>
+
+     <para>
+      On heavily loaded machines, the regression tests sometimes failed due
+      to reporting <quote>lock timeout</> even though the statement timeout
+      should have occurred first.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Make regression tests safe for Danish and Welsh locales (Jeff Janes,
+      Tom Lane)
+     </para>
+
+     <para>
+      Change some test data that triggered the unusual sorting rules of
+      these locales.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Update our copy of the timezone code to match
+      IANA's <application>tzcode</> release 2016c (Tom Lane)
+     </para>
+
+     <para>
+      This is needed to cope with anticipated future changes in the time
+      zone data files.  It also fixes some corner-case bugs in coping with
+      unusual time zones.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Update time zone data files to <application>tzdata</> release 2016f
+      for DST law changes in Kemerovo and Novosibirsk, plus historical
+      corrections for Azerbaijan, Belarus, and Morocco.
+     </para>
+    </listitem>
+
+   </itemizedlist>
+
+  </sect2>
+ </sect1>
+
+ <sect1 id="release-9-3-13">
+  <title>Release 9.3.13</title>
+
+  <note>
+  <title>Release Date</title>
+  <simpara>2016-05-12</simpara>
+  </note>
+
+  <para>
+   This release contains a variety of fixes from 9.3.12.
+   For information about new features in the 9.3 major release, see
+   <xref linkend="release-9-3">.
+  </para>
+
+  <sect2>
+   <title>Migration to Version 9.3.13</title>
+
+   <para>
+    A dump/restore is not required for those running 9.3.X.
+   </para>
+
+   <para>
+    However, if you are upgrading from a version earlier than 9.3.9,
+    see <xref linkend="release-9-3-9">.
+   </para>
+
+  </sect2>
+
+  <sect2>
+   <title>Changes</title>
+
+   <itemizedlist>
+
+    <listitem>
+     <para>
+      Clear the OpenSSL error queue before OpenSSL calls, rather than
+      assuming it's clear already; and make sure we leave it clear
+      afterwards (Peter Geoghegan, Dave Vitek, Peter Eisentraut)
+     </para>
+
+     <para>
+      This change prevents problems when there are multiple connections
+      using OpenSSL within a single process and not all the code involved
+      follows the same rules for when to clear the error queue.
+      Failures have been reported specifically when a client application
+      uses SSL connections in <application>libpq</> concurrently with
+      SSL connections using the PHP, Python, or Ruby wrappers for OpenSSL.
+      It's possible for similar problems to arise within the server as well,
+      if an extension module establishes an outgoing SSL connection.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix <quote>failed to build any <replaceable>N</>-way joins</quote>
+      planner error with a full join enclosed in the right-hand side of a
+      left join (Tom Lane)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix incorrect handling of equivalence-class tests in multilevel
+      nestloop plans (Tom Lane)
+     </para>
+
+     <para>
+      Given a three-or-more-way equivalence class of variables, such
+      as <literal>X.X = Y.Y = Z.Z</>, it was possible for the planner to omit
+      some of the tests needed to enforce that all the variables are actually
+      equal, leading to join rows being output that didn't satisfy
+      the <literal>WHERE</> clauses.  For various reasons, erroneous plans
+      were seldom selected in practice, so that this bug has gone undetected
+      for a long time.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix possible misbehavior of <literal>TH</>, <literal>th</>,
+      and <literal>Y,YYY</> format codes in <function>to_timestamp()</>
+      (Tom Lane)
+     </para>
+
+     <para>
+      These could advance off the end of the input string, causing subsequent
+      format codes to read garbage.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix dumping of rules and views in which the <replaceable>array</>
+      argument of a <literal><replaceable>value</> <replaceable>operator</>
+      ANY (<replaceable>array</>)</literal> construct is a sub-SELECT
+      (Tom Lane)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Make <application>pg_regress</> use a startup timeout from the
+      <envar>PGCTLTIMEOUT</> environment variable, if that's set (Tom Lane)
+     </para>
+
+     <para>
+      This is for consistency with a behavior recently added
+      to <application>pg_ctl</>; it eases automated testing on slow machines.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix <application>pg_upgrade</> to correctly restore extension
+      membership for operator families containing only one operator class
+      (Tom Lane)
+     </para>
+
+     <para>
+      In such a case, the operator family was restored into the new database,
+      but it was no longer marked as part of the extension.  This had no
+      immediate ill effects, but would cause later <application>pg_dump</>
+      runs to emit output that would cause (harmless) errors on restore.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix <application>pg_upgrade</> to not fail when new-cluster TOAST rules
+      differ from old (Tom Lane)
+     </para>
+
+     <para>
+      <application>pg_upgrade</> had special-case code to handle the
+      situation where the new <productname>PostgreSQL</> version thinks that
+      a table should have a TOAST table while the old version did not.  That
+      code was broken, so remove it, and instead do nothing in such cases;
+      there seems no reason to believe that we can't get along fine without
+      a TOAST table if that was okay according to the old version's rules.
+     </para>
+    </listitem>
+
+    <listitem>
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [f4f4f6990] 2016-04-15 16:49:48 -0400
+Branch: REL9_2_STABLE [d7dbc882d] 2016-04-15 16:49:48 -0400
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [992df9658] 2016-04-16 10:42:07 -0400
+Branch: REL9_2_STABLE [9008922bf] 2016-04-16 10:41:57 -0400
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [35166fd76] 2016-04-18 13:19:52 -0400
+Branch: REL9_2_STABLE [37f30b251] 2016-04-18 13:19:52 -0400
+-->
+     <para>
+      Back-port 9.4-era memory-barrier code changes into 9.2 and 9.3 (Tom Lane)
+     </para>
+
+     <para>
+      These changes were not originally needed in pre-9.4 branches, but we
+      recently back-patched a fix that expected the barrier code to work
+      properly.  Only IA64 (when using icc), HPPA, and Alpha platforms are
+      affected.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Reduce the number of SysV semaphores used by a build configured with
+      <option>--disable-spinlocks</> (Tom Lane)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Rename internal function <function>strtoi()</>
+      to <function>strtoint()</> to avoid conflict with a NetBSD library
+      function (Thomas Munro)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix reporting of errors from <function>bind()</>
+      and <function>listen()</> system calls on Windows (Tom Lane)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Reduce verbosity of compiler output when building with Microsoft Visual
+      Studio (Christian Ullrich)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix <function>putenv()</> to work properly with Visual Studio 2013
+      (Michael Paquier)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Avoid possibly-unsafe use of Windows' <function>FormatMessage()</>
+      function (Christian Ullrich)
+     </para>
+
+     <para>
+      Use the <literal>FORMAT_MESSAGE_IGNORE_INSERTS</> flag where
+      appropriate.  No live bug is known to exist here, but it seems like a
+      good idea to be careful.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Update time zone data files to <application>tzdata</> release 2016d
+      for DST law changes in Russia and Venezuela.  There are new zone
+      names <literal>Europe/Kirov</> and <literal>Asia/Tomsk</> to reflect
+      the fact that these regions now have different time zone histories from
+      adjacent regions.
+     </para>
+    </listitem>
+
+   </itemizedlist>
+
+  </sect2>
+ </sect1>
+
+ <sect1 id="release-9-3-12">
+  <title>Release 9.3.12</title>
+
+  <note>
+  <title>Release Date</title>
+  <simpara>2016-03-31</simpara>
+  </note>
+
+  <para>
+   This release contains a variety of fixes from 9.3.11.
+   For information about new features in the 9.3 major release, see
+   <xref linkend="release-9-3">.
+  </para>
+
+  <sect2>
+   <title>Migration to Version 9.3.12</title>
+
+   <para>
+    A dump/restore is not required for those running 9.3.X.
+   </para>
+
+   <para>
+    However, if you are upgrading from a version earlier than 9.3.9,
+    see <xref linkend="release-9-3-9">.
+   </para>
+
+  </sect2>
+
+  <sect2>
+   <title>Changes</title>
+
+   <itemizedlist>
+
+    <listitem>
+     <para>
+      Fix incorrect handling of NULL index entries in
+      indexed <literal>ROW()</> comparisons (Tom Lane)
+     </para>
+
+     <para>
+      An index search using a row comparison such as <literal>ROW(a, b) &gt;
+      ROW('x', 'y')</> would stop upon reaching a NULL entry in
+      the <structfield>b</> column, ignoring the fact that there might be
+      non-NULL <structfield>b</> values associated with later values
+      of <structfield>a</>.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Avoid unlikely data-loss scenarios due to renaming files without
+      adequate <function>fsync()</> calls before and after (Michael Paquier,
+      Tomas Vondra, Andres Freund)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Correctly handle cases where <literal>pg_subtrans</> is close to XID
+      wraparound during server startup (Jeff Janes)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix corner-case crash due to trying to free <function>localeconv()</>
+      output strings more than once (Tom Lane)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix parsing of affix files for <literal>ispell</> dictionaries
+      (Tom Lane)
+     </para>
+
+     <para>
+      The code could go wrong if the affix file contained any characters
+      whose byte length changes during case-folding, for
+      example <literal>I</> in Turkish UTF8 locales.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Avoid use of <function>sscanf()</> to parse <literal>ispell</>
+      dictionary files (Artur Zakirov)
+     </para>
+
+     <para>
+      This dodges a portability problem on FreeBSD-derived platforms
+      (including macOS).
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Avoid a crash on old Windows versions (before 7SP1/2008R2SP1) with an
+      AVX2-capable CPU and a Postgres build done with Visual Studio 2013
+      (Christian Ullrich)
+     </para>
+
+     <para>
+      This is a workaround for a bug in Visual Studio 2013's runtime
+      library, which Microsoft have stated they will not fix in that
+      version.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix <application>psql</>'s tab completion logic to handle multibyte
+      characters properly (Kyotaro Horiguchi, Robert Haas)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix <application>psql</>'s tab completion for
+      <literal>SECURITY LABEL</> (Tom Lane)
+     </para>
+
+     <para>
+      Pressing TAB after <literal>SECURITY LABEL</> might cause a crash
+      or offering of inappropriate keywords.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Make <application>pg_ctl</> accept a wait timeout from the
+      <envar>PGCTLTIMEOUT</> environment variable, if none is specified on
+      the command line (Noah Misch)
+     </para>
+
+     <para>
+      This eases testing of slower buildfarm members by allowing them
+      to globally specify a longer-than-normal timeout for postmaster
+      startup and shutdown.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix incorrect test for Windows service status
+      in <application>pg_ctl</> (Manuel Mathar)
+     </para>
+
+     <para>
+      The previous set of minor releases attempted to
+      fix <application>pg_ctl</> to properly determine whether to send log
+      messages to Window's Event Log, but got the test backwards.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix <application>pgbench</> to correctly handle the combination
+      of <literal>-C</> and <literal>-M prepared</> options (Tom Lane)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      In <application>pg_upgrade</>, skip creating a deletion script when
+      the new data directory is inside the old data directory (Bruce
+      Momjian)
+     </para>
+
+     <para>
+      Blind application of the script in such cases would result in loss of
+      the new data directory.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      In PL/Perl, properly translate empty Postgres arrays into empty Perl
+      arrays (Alex Hunsaker)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Make PL/Python cope with function names that aren't valid Python
+      identifiers (Jim Nasby)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix multiple mistakes in the statistics returned
+      by <filename>contrib/pgstattuple</>'s <function>pgstatindex()</>
+      function (Tom Lane)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Remove dependency on <literal>psed</> in MSVC builds, since it's no
+      longer provided by core Perl (Michael Paquier, Andrew Dunstan)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Update time zone data files to <application>tzdata</> release 2016c
+      for DST law changes in Azerbaijan, Chile, Haiti, Palestine, and Russia
+      (Altai, Astrakhan, Kirov, Sakhalin, Ulyanovsk regions), plus
+      historical corrections for Lithuania, Moldova, and Russia
+      (Kaliningrad, Samara, Volgograd).
+     </para>
+    </listitem>
+
+   </itemizedlist>
+
+  </sect2>
+ </sect1>
+
+ <sect1 id="release-9-3-11">
+  <title>Release 9.3.11</title>
+
+  <note>
+  <title>Release Date</title>
+  <simpara>2016-02-11</simpara>
+  </note>
+
+  <para>
+   This release contains a variety of fixes from 9.3.10.
+   For information about new features in the 9.3 major release, see
+   <xref linkend="release-9-3">.
+  </para>
+
+  <sect2>
+   <title>Migration to Version 9.3.11</title>
+
+   <para>
+    A dump/restore is not required for those running 9.3.X.
+   </para>
+
+   <para>
+    However, if you are upgrading from a version earlier than 9.3.9,
+    see <xref linkend="release-9-3-9">.
+   </para>
+
+  </sect2>
+
+  <sect2>
+   <title>Changes</title>
+
+   <itemizedlist>
+
+    <listitem>
+     <para>
+      Fix infinite loops and buffer-overrun problems in regular expressions
+      (Tom Lane)
+     </para>
+
+     <para>
+      Very large character ranges in bracket expressions could cause
+      infinite loops in some cases, and memory overwrites in other cases.
+      (CVE-2016-0773)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Perform an immediate shutdown if the <filename>postmaster.pid</> file
+      is removed (Tom Lane)
+     </para>
+
+     <para>
+      The postmaster now checks every minute or so
+      that <filename>postmaster.pid</> is still there and still contains its
+      own PID.  If not, it performs an immediate shutdown, as though it had
+      received <systemitem>SIGQUIT</>.  The main motivation for this change
+      is to ensure that failed buildfarm runs will get cleaned up without
+      manual intervention; but it also serves to limit the bad effects if a
+      DBA forcibly removes <filename>postmaster.pid</> and then starts a new
+      postmaster.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      In <literal>SERIALIZABLE</> transaction isolation mode, serialization
+      anomalies could be missed due to race conditions during insertions
+      (Kevin Grittner, Thomas Munro)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix failure to emit appropriate WAL records when doing <literal>ALTER
+      TABLE ... SET TABLESPACE</> for unlogged relations (Michael Paquier,
+      Andres Freund)
+     </para>
+
+     <para>
+      Even though the relation's data is unlogged, the move must be logged or
+      the relation will be inaccessible after a standby is promoted to master.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix possible misinitialization of unlogged relations at the end of
+      crash recovery (Andres Freund, Michael Paquier)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Ensure walsender slots are fully re-initialized when being re-used
+      (Magnus Hagander)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix <command>ALTER COLUMN TYPE</> to reconstruct inherited check
+      constraints properly (Tom Lane)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix <command>REASSIGN OWNED</> to change ownership of composite types
+      properly (&Aacute;lvaro Herrera)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix <command>REASSIGN OWNED</> and <command>ALTER OWNER</> to correctly
+      update granted-permissions lists when changing owners of data types,
+      foreign data wrappers, or foreign servers (Bruce Momjian,
+      &Aacute;lvaro Herrera)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix <command>REASSIGN OWNED</> to ignore foreign user mappings,
+      rather than fail (&Aacute;lvaro Herrera)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix possible crash after doing query rewrite for an updatable view
+      (Stephen Frost)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix planner's handling of <literal>LATERAL</> references (Tom
+      Lane)
+     </para>
+
+     <para>
+      This fixes some corner cases that led to <quote>failed to build any
+      N-way joins</> or <quote>could not devise a query plan</> planner
+      failures.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Add more defenses against bad planner cost estimates for GIN index
+      scans when the index's internal statistics are very out-of-date
+      (Tom Lane)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Make planner cope with hypothetical GIN indexes suggested by an index
+      advisor plug-in (Julien Rouhaud)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Speed up generation of unique table aliases in <command>EXPLAIN</> and
+      rule dumping, and ensure that generated aliases do not
+      exceed <literal>NAMEDATALEN</> (Tom Lane)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix dumping of whole-row Vars in <literal>ROW()</>
+      and <literal>VALUES()</> lists (Tom Lane)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix possible internal overflow in <type>numeric</> division
+      (Dean Rasheed)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix enforcement of restrictions inside parentheses within regular
+      expression lookahead constraints (Tom Lane)
+     </para>
+
+     <para>
+      Lookahead constraints aren't allowed to contain backrefs, and
+      parentheses within them are always considered non-capturing, according
+      to the manual.  However, the code failed to handle these cases properly
+      inside a parenthesized subexpression, and would give unexpected
+      results.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Conversion of regular expressions to indexscan bounds could produce
+      incorrect bounds from regexps containing lookahead constraints
+      (Tom Lane)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix regular-expression compiler to handle loops of constraint arcs
+      (Tom Lane)
+     </para>
+
+     <para>
+      The code added for CVE-2007-4772 was both incomplete, in that it didn't
+      handle loops involving more than one state, and incorrect, in that it
+      could cause assertion failures (though there seem to be no bad
+      consequences of that in a non-assert build).  Multi-state loops would
+      cause the compiler to run until the query was canceled or it reached
+      the too-many-states error condition.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Improve memory-usage accounting in regular-expression compiler
+      (Tom Lane)
+     </para>
+
+     <para>
+      This causes the code to emit <quote>regular expression is too
+      complex</> errors in some cases that previously used unreasonable
+      amounts of time and memory.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Improve performance of regular-expression compiler (Tom Lane)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Make <literal>%h</> and <literal>%r</> escapes
+      in <varname>log_line_prefix</> work for messages emitted due
+      to <varname>log_connections</> (Tom Lane)
+     </para>
+
+     <para>
+      Previously, <literal>%h</>/<literal>%r</> started to work just after a
+      new session had emitted the <quote>connection received</> log message;
+      now they work for that message too.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      On Windows, ensure the shared-memory mapping handle gets closed in
+      child processes that don't need it (Tom Lane, Amit Kapila)
+     </para>
+
+     <para>
+      This oversight resulted in failure to recover from crashes
+      whenever <varname>logging_collector</> is turned on.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix possible failure to detect socket EOF in non-blocking mode on
+      Windows (Tom Lane)
+     </para>
+
+     <para>
+      It's not entirely clear whether this problem can happen in pre-9.5
+      branches, but if it did, the symptom would be that a walsender process
+      would wait indefinitely rather than noticing a loss of connection.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Avoid leaking a token handle during SSPI authentication
+      (Christian Ullrich)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      In <application>psql</>, ensure that <application>libreadline</>'s idea
+      of the screen size is updated when the terminal window size changes
+      (Merlin Moncure)
+     </para>
+
+     <para>
+      Previously, <application>libreadline</> did not notice if the window
+      was resized during query output, leading to strange behavior during
+      later input of multiline queries.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix <application>psql</>'s <literal>\det</> command to interpret its
+      pattern argument the same way as other <literal>\d</> commands with
+      potentially schema-qualified patterns do (Reece Hart)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Avoid possible crash in <application>psql</>'s <literal>\c</> command
+      when previous connection was via Unix socket and command specifies a
+      new hostname and same username (Tom Lane)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      In <literal>pg_ctl start -w</>, test child process status directly
+      rather than relying on heuristics (Tom Lane, Michael Paquier)
+     </para>
+
+     <para>
+      Previously, <application>pg_ctl</> relied on an assumption that the new
+      postmaster would always create <filename>postmaster.pid</> within five
+      seconds.  But that can fail on heavily-loaded systems,
+      causing <application>pg_ctl</> to report incorrectly that the
+      postmaster failed to start.
+     </para>
+
+     <para>
+      Except on Windows, this change also means that a <literal>pg_ctl start
+      -w</> done immediately after another such command will now reliably
+      fail, whereas previously it would report success if done within two
+      seconds of the first command.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      In <literal>pg_ctl start -w</>, don't attempt to use a wildcard listen
+      address to connect to the postmaster (Kondo Yuta)
+     </para>
+
+     <para>
+      On Windows, <application>pg_ctl</> would fail to detect postmaster
+      startup if <varname>listen_addresses</> is set to <literal>0.0.0.0</>
+      or <literal>::</>, because it would try to use that value verbatim as
+      the address to connect to, which doesn't work.  Instead assume
+      that <literal>127.0.0.1</> or <literal>::1</>, respectively, is the
+      right thing to use.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      In <application>pg_ctl</> on Windows, check service status to decide
+      where to send output, rather than checking if standard output is a
+      terminal (Michael Paquier)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      In <application>pg_dump</> and <application>pg_basebackup</>, adopt
+      the GNU convention for handling tar-archive members exceeding 8GB
+      (Tom Lane)
+     </para>
+
+     <para>
+      The POSIX standard for <literal>tar</> file format does not allow
+      archive member files to exceed 8GB, but most modern implementations
+      of <application>tar</> support an extension that fixes that.  Adopt
+      this extension so that <application>pg_dump</> with <option>-Ft</> no
+      longer fails on tables with more than 8GB of data, and so
+      that <application>pg_basebackup</> can handle files larger than 8GB.
+      In addition, fix some portability issues that could cause failures for
+      members between 4GB and 8GB on some platforms.  Potentially these
+      problems could cause unrecoverable data loss due to unreadable backup
+      files.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix assorted corner-case bugs in <application>pg_dump</>'s processing
+      of extension member objects (Tom Lane)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Make <application>pg_dump</> mark a view's triggers as needing to be
+      processed after its rule, to prevent possible failure during
+      parallel <application>pg_restore</> (Tom Lane)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Ensure that relation option values are properly quoted
+      in <application>pg_dump</> (Kouhei Sutou, Tom Lane)
+     </para>
+
+     <para>
+      A reloption value that isn't a simple identifier or number could lead
+      to dump/reload failures due to syntax errors in CREATE statements
+      issued by <application>pg_dump</>.  This is not an issue with any
+      reloption currently supported by core <productname>PostgreSQL</>, but
+      extensions could allow reloptions that cause the problem.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Avoid repeated password prompts during parallel <application>pg_dump</>
+      (Zeus Kronion)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix <application>pg_upgrade</>'s file-copying code to handle errors
+      properly on Windows (Bruce Momjian)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Install guards in <application>pgbench</> against corner-case overflow
+      conditions during evaluation of script-specified division or modulo
+      operators (Fabien Coelho, Michael Paquier)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix failure to localize messages emitted
+      by <application>pg_receivexlog</> and <application>pg_recvlogical</>
+      (Ioseph Kim)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Avoid dump/reload problems when using both <application>plpython2</>
+      and <application>plpython3</> (Tom Lane)
+     </para>
+
+     <para>
+      In principle, both versions of <application>PL/Python</> can be used in
+      the same database, though not in the same session (because the two
+      versions of <application>libpython</> cannot safely be used concurrently).
+      However, <application>pg_restore</> and <application>pg_upgrade</> both
+      do things that can fall foul of the same-session restriction.  Work
+      around that by changing the timing of the check.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix <application>PL/Python</> regression tests to pass with Python 3.5
+      (Peter Eisentraut)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix premature clearing of <application>libpq</>'s input buffer when
+      socket EOF is seen (Tom Lane)
+     </para>
+
+     <para>
+      This mistake caused <application>libpq</> to sometimes not report the
+      backend's final error message before reporting <quote>server closed the
+      connection unexpectedly</>.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Prevent certain <application>PL/Java</> parameters from being set by
+      non-superusers (Noah Misch)
+     </para>
+
+     <para>
+      This change mitigates a <application>PL/Java</> security bug
+      (CVE-2016-0766), which was fixed in <application>PL/Java</> by marking
+      these parameters as superuser-only.  To fix the security hazard for
+      sites that update <productname>PostgreSQL</> more frequently
+      than <application>PL/Java</>, make the core code aware of them also.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Improve <application>libpq</>'s handling of out-of-memory situations
+      (Michael Paquier, Amit Kapila, Heikki Linnakangas)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix order of arguments
+      in <application>ecpg</>-generated <literal>typedef</> statements
+      (Michael Meskes)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Use <literal>%g</> not <literal>%f</> format
+      in <application>ecpg</>'s <function>PGTYPESnumeric_from_double()</>
+      (Tom Lane)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix <application>ecpg</>-supplied header files to not contain comments
+      continued from a preprocessor directive line onto the next line
+      (Michael Meskes)
+     </para>
+
+     <para>
+      Such a comment is rejected by <application>ecpg</>.  It's not yet clear
+      whether <application>ecpg</> itself should be changed.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix <function>hstore_to_json_loose()</>'s test for whether
+      an <type>hstore</> value can be converted to a JSON number (Tom Lane)
+     </para>
+
+     <para>
+      Previously this function could be fooled by non-alphanumeric trailing
+      characters, leading to emitting syntactically-invalid JSON.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Ensure that <filename>contrib/pgcrypto</>'s <function>crypt()</>
+      function can be interrupted by query cancel (Andreas Karlsson)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Accept <application>flex</> versions later than 2.5.x
+      (Tom Lane, Michael Paquier)
+     </para>
+
+     <para>
+      Now that flex 2.6.0 has been released, the version checks in our build
+      scripts needed to be adjusted.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Improve reproducibility of build output by ensuring filenames are given
+      to the linker in a fixed order (Christoph Berg)
+     </para>
+
+     <para>
+      This avoids possible bitwise differences in the produced executable
+      files from one build to the next.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Install our <filename>missing</> script where PGXS builds can find it
+      (Jim Nasby)
+     </para>
+
+     <para>
+      This allows sane behavior in a PGXS build done on a machine where build
+      tools such as <application>bison</> are missing.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Ensure that <filename>dynloader.h</> is included in the installed
+      header files in MSVC builds (Bruce Momjian, Michael Paquier)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Add variant regression test expected-output file to match behavior of
+      current <application>libxml2</> (Tom Lane)
+     </para>
+
+     <para>
+      The fix for <application>libxml2</>'s CVE-2015-7499 causes it not to
+      output error context reports in some cases where it used to do so.
+      This seems to be a bug, but we'll probably have to live with it for
+      some time, so work around it.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Update time zone data files to <application>tzdata</> release 2016a for
+      DST law changes in Cayman Islands, Metlakatla, and Trans-Baikal
+      Territory (Zabaykalsky Krai), plus historical corrections for Pakistan.
+     </para>
+    </listitem>
+
+   </itemizedlist>
+
+  </sect2>
+ </sect1>
+
+ <sect1 id="release-9-3-10">
+  <title>Release 9.3.10</title>
+
+  <note>
+  <title>Release Date</title>
+  <simpara>2015-10-08</simpara>
+  </note>
+
+  <para>
+   This release contains a variety of fixes from 9.3.9.
+   For information about new features in the 9.3 major release, see
+   <xref linkend="release-9-3">.
+  </para>
+
+  <sect2>
+   <title>Migration to Version 9.3.10</title>
+
+   <para>
+    A dump/restore is not required for those running 9.3.X.
+   </para>
+
+   <para>
+    However, if you are upgrading from a version earlier than 9.3.9,
+    see <xref linkend="release-9-3-9">.
+   </para>
+
+  </sect2>
+
+  <sect2>
+   <title>Changes</title>
+
+   <itemizedlist>
+
+    <listitem>
+     <para>
+      Guard against stack overflows in <type>json</> parsing
+      (Oskari Saarenmaa)
+     </para>
+
+     <para>
+      If an application constructs PostgreSQL <type>json</>
+      or <type>jsonb</> values from arbitrary user input, the application's
+      users can reliably crash the PostgreSQL server, causing momentary
+      denial of service.  (CVE-2015-5289)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix <filename>contrib/pgcrypto</> to detect and report
+      too-short <function>crypt()</> salts (Josh Kupershmidt)
+     </para>
+
+     <para>
+      Certain invalid salt arguments crashed the server or disclosed a few
+      bytes of server memory.  We have not ruled out the viability of
+      attacks that arrange for presence of confidential information in the
+      disclosed bytes, but they seem unlikely.  (CVE-2015-5288)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix subtransaction cleanup after a portal (cursor) belonging to an
+      outer subtransaction fails (Tom Lane, Michael Paquier)
+     </para>
+
+     <para>
+      A function executed in an outer-subtransaction cursor could cause an
+      assertion failure or crash by referencing a relation created within an
+      inner subtransaction.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Ensure all relations referred to by an updatable view are properly
+      locked during an update statement (Dean Rasheed)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix insertion of relations into the relation cache <quote>init file</>
+      (Tom Lane)
+     </para>
+
+     <para>
+      An oversight in a patch in the most recent minor releases
+      caused <structname>pg_trigger_tgrelid_tgname_index</> to be omitted
+      from the init file.  Subsequent sessions detected this, then deemed the
+      init file to be broken and silently ignored it, resulting in a
+      significant degradation in session startup time.  In addition to fixing
+      the bug, install some guards so that any similar future mistake will be
+      more obvious.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Avoid O(N^2) behavior when inserting many tuples into a SPI query
+      result (Neil Conway)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Improve <command>LISTEN</> startup time when there are many unread
+      notifications (Matt Newell)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix performance problem when a session alters large numbers of foreign
+      key constraints (Jan Wieck, Tom Lane)
+     </para>
+
+     <para>
+      This was seen primarily when restoring <application>pg_dump</> output
+      for databases with many thousands of tables.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Disable SSL renegotiation by default (Michael Paquier, Andres Freund)
+     </para>
+
+     <para>
+      While use of SSL renegotiation is a good idea in theory, we have seen
+      too many bugs in practice, both in the underlying OpenSSL library and
+      in our usage of it.  Renegotiation will be removed entirely in 9.5 and
+      later.  In the older branches, just change the default value
+      of <varname>ssl_renegotiation_limit</> to zero (disabled).
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Lower the minimum values of the <literal>*_freeze_max_age</> parameters
+      (Andres Freund)
+     </para>
+
+     <para>
+      This is mainly to make tests of related behavior less time-consuming,
+      but it may also be of value for installations with limited disk space.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Limit the maximum value of <varname>wal_buffers</> to 2GB to avoid
+      server crashes (Josh Berkus)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Avoid logging complaints when a parameter that can only be set at
+      server start appears multiple times in <filename>postgresql.conf</>,
+      and fix counting of line numbers after an <literal>include_dir</>
+      directive (Tom Lane)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix rare internal overflow in multiplication of <type>numeric</> values
+      (Dean Rasheed)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Guard against hard-to-reach stack overflows involving record types,
+      range types, <type>json</>, <type>jsonb</>, <type>tsquery</>,
+      <type>ltxtquery</> and <type>query_int</> (Noah Misch)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix handling of <literal>DOW</> and <literal>DOY</> in datetime input
+      (Greg Stark)
+     </para>
+
+     <para>
+      These tokens aren't meant to be used in datetime values, but previously
+      they resulted in opaque internal error messages rather
+      than <quote>invalid input syntax</>.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Add more query-cancel checks to regular expression matching (Tom Lane)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Add recursion depth protections to regular expression, <literal>SIMILAR
+      TO</>, and <literal>LIKE</> matching (Tom Lane)
+     </para>
+
+     <para>
+      Suitable search patterns and a low stack depth limit could lead to
+      stack-overrun crashes.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix potential infinite loop in regular expression execution (Tom Lane)
+     </para>
+
+     <para>
+      A search pattern that can apparently match a zero-length string, but
+      actually doesn't match because of a back reference, could lead to an
+      infinite loop.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      In regular expression execution, correctly record match data for
+      capturing parentheses within a quantifier even when the match is
+      zero-length (Tom Lane)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix low-memory failures in regular expression compilation
+      (Andreas Seltenreich)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix low-probability memory leak during regular expression execution
+      (Tom Lane)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix rare low-memory failure in lock cleanup during transaction abort
+      (Tom Lane)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix <quote>unexpected out-of-memory situation during sort</> errors
+      when using tuplestores with small <varname>work_mem</> settings (Tom
+      Lane)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix very-low-probability stack overrun in <function>qsort</> (Tom Lane)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix <quote>invalid memory alloc request size</> failure in hash joins
+      with large <varname>work_mem</> settings (Tomas Vondra, Tom Lane)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix assorted planner bugs (Tom Lane)
+     </para>
+
+     <para>
+      These mistakes could lead to incorrect query plans that would give wrong
+      answers, or to assertion failures in assert-enabled builds, or to odd
+      planner errors such as <quote>could not devise a query plan for the
+      given query</>, <quote>could not find pathkey item to
+      sort</>, <quote>plan should not reference subplan's variable</>,
+      or <quote>failed to assign all NestLoopParams to plan nodes</>.
+      Thanks are due to Andreas Seltenreich and Piotr Stefaniak for fuzz
+      testing that exposed these problems.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Improve planner's performance for <command>UPDATE</>/<command>DELETE</>
+      on large inheritance sets (Tom Lane, Dean Rasheed)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Ensure standby promotion trigger files are removed at postmaster
+      startup (Michael Paquier, Fujii Masao)
+     </para>
+
+     <para>
+      This prevents unwanted promotion from occurring if these files appear
+      in a database backup that is used to initialize a new standby server.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      During postmaster shutdown, ensure that per-socket lock files are
+      removed and listen sockets are closed before we remove
+      the <filename>postmaster.pid</> file (Tom Lane)
+     </para>
+
+     <para>
+      This avoids race-condition failures if an external script attempts to
+      start a new postmaster as soon as <literal>pg_ctl stop</> returns.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix postmaster's handling of a startup-process crash during crash
+      recovery (Tom Lane)
+     </para>
+
+     <para>
+      If, during a crash recovery cycle, the startup process crashes without
+      having restored database consistency, we'd try to launch a new startup
+      process, which typically would just crash again, leading to an infinite
+      loop.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Make emergency autovacuuming for multixact wraparound more robust
+      (Andres Freund)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Do not print a <literal>WARNING</> when an autovacuum worker is already
+      gone when we attempt to signal it, and reduce log verbosity for such
+      signals (Tom Lane)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Prevent autovacuum launcher from sleeping unduly long if the server
+      clock is moved backwards a large amount (&Aacute;lvaro Herrera)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Ensure that cleanup of a GIN index's pending-insertions list is
+      interruptable by cancel requests (Jeff Janes)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Allow all-zeroes pages in GIN indexes to be reused (Heikki Linnakangas)
+     </para>
+
+     <para>
+      Such a page might be left behind after a crash.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix handling of all-zeroes pages in SP-GiST indexes (Heikki
+      Linnakangas)
+     </para>
+
+     <para>
+      <command>VACUUM</> attempted to recycle such pages, but did so in a
+      way that wasn't crash-safe.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix off-by-one error that led to otherwise-harmless warnings
+      about <quote>apparent wraparound</> in subtrans/multixact truncation
+      (Thomas Munro)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix misreporting of <command>CONTINUE</> and <command>MOVE</> statement
+      types in <application>PL/pgSQL</>'s error context messages
+      (Pavel Stehule, Tom Lane)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix <application>PL/Perl</> to handle non-<acronym>ASCII</> error
+      message texts correctly (Alex Hunsaker)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix <application>PL/Python</> crash when returning the string
+      representation of a <type>record</> result (Tom Lane)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix some places in <application>PL/Tcl</> that neglected to check for
+      failure of <function>malloc()</> calls (Michael Paquier, &Aacute;lvaro
+      Herrera)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      In <filename>contrib/isn</>, fix output of ISBN-13 numbers that begin
+      with 979 (Fabien Coelho)
+     </para>
+
+     <para>
+      EANs beginning with 979 (but not 9790) are considered ISBNs, but they
+      must be printed in the new 13-digit format, not the 10-digit format.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Improve <filename>contrib/postgres_fdw</>'s handling of
+      collation-related decisions (Tom Lane)
+     </para>
+
+     <para>
+      The main user-visible effect is expected to be that comparisons
+      involving <type>varchar</> columns will be sent to the remote server
+      for execution in more cases than before.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Improve <application>libpq</>'s handling of out-of-memory conditions
+      (Michael Paquier, Heikki Linnakangas)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix memory leaks and missing out-of-memory checks
+      in <application>ecpg</> (Michael Paquier)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix <application>psql</>'s code for locale-aware formatting of numeric
+      output (Tom Lane)
+     </para>
+
+     <para>
+      The formatting code invoked by <literal>\pset numericlocale on</>
+      did the wrong thing for some uncommon cases such as numbers with an
+      exponent but no decimal point.  It could also mangle already-localized
+      output from the <type>money</> data type.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Prevent crash in <application>psql</>'s <command>\c</> command when
+      there is no current connection (Noah Misch)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Make <application>pg_dump</> handle inherited <literal>NOT VALID</>
+      check constraints correctly (Tom Lane)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix selection of default <application>zlib</> compression level
+      in <application>pg_dump</>'s directory output format (Andrew Dunstan)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Ensure that temporary files created during a <application>pg_dump</>
+      run with <acronym>tar</>-format output are not world-readable (Michael
+      Paquier)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix <application>pg_dump</> and <application>pg_upgrade</> to support
+      cases where the <literal>postgres</> or <literal>template1</> database
+      is in a non-default tablespace (Marti Raudsepp, Bruce Momjian)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix <application>pg_dump</> to handle object privileges sanely when
+      dumping from a server too old to have a particular privilege type
+      (Tom Lane)
+     </para>
+
+     <para>
+      When dumping data types from pre-9.2 servers, and when dumping
+      functions or procedural languages from pre-7.3
+      servers, <application>pg_dump</> would
+      produce <command>GRANT</>/<command>REVOKE</> commands that revoked the
+      owner's grantable privileges and instead granted all privileges
+      to <literal>PUBLIC</>.  Since the privileges involved are
+      just <literal>USAGE</> and <literal>EXECUTE</>, this isn't a security
+      problem, but it's certainly a surprising representation of the older
+      systems' behavior.  Fix it to leave the default privilege state alone
+      in these cases.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix <application>pg_dump</> to dump shell types (Tom Lane)
+     </para>
+
+     <para>
+      Shell types (that is, not-yet-fully-defined types) aren't useful for
+      much, but nonetheless <application>pg_dump</> should dump them.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix assorted minor memory leaks in <application>pg_dump</> and other
+      client-side programs (Michael Paquier)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix spinlock assembly code for PPC hardware to be compatible
+      with <acronym>AIX</>'s native assembler (Tom Lane)
+     </para>
+
+     <para>
+      Building with <application>gcc</> didn't work if <application>gcc</>
+      had been configured to use the native assembler, which is becoming more
+      common.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      On <acronym>AIX</>, test the <literal>-qlonglong</> compiler option
+      rather than just assuming it's safe to use (Noah Misch)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      On <acronym>AIX</>, use <literal>-Wl,-brtllib</> link option to allow
+      symbols to be resolved at runtime (Noah Misch)
+     </para>
+
+     <para>
+      Perl relies on this ability in 5.8.0 and later.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Avoid use of inline functions when compiling with
+      32-bit <application>xlc</>, due to compiler bugs (Noah Misch)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Use <filename>librt</> for <function>sched_yield()</> when necessary,
+      which it is on some Solaris versions (Oskari Saarenmaa)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix Windows <filename>install.bat</> script to handle target directory
+      names that contain spaces (Heikki Linnakangas)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Make the numeric form of the <productname>PostgreSQL</> version number
+      (e.g., <literal>90405</>) readily available to extension Makefiles,
+      as a variable named <varname>VERSION_NUM</> (Michael Paquier)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Update time zone data files to <application>tzdata</> release 2015g for
+      DST law changes in Cayman Islands, Fiji, Moldova, Morocco, Norfolk
+      Island, North Korea, Turkey, and Uruguay.  There is a new zone name
+      <literal>America/Fort_Nelson</> for the Canadian Northern Rockies.
+     </para>
+    </listitem>
+
+   </itemizedlist>
+
+  </sect2>
+ </sect1>
+
+ <sect1 id="release-9-3-9">
+  <title>Release 9.3.9</title>
+
+  <note>
+  <title>Release Date</title>
+  <simpara>2015-06-12</simpara>
+  </note>
+
+  <para>
+   This release contains a small number of fixes from 9.3.8.
+   For information about new features in the 9.3 major release, see
+   <xref linkend="release-9-3">.
+  </para>
+
+  <sect2>
+   <title>Migration to Version 9.3.9</title>
+
+   <para>
+    A dump/restore is not required for those running 9.3.X.
+   </para>
+
+   <para>
+    However, if you are upgrading an installation that was previously
+    upgraded using a <application>pg_upgrade</> version between 9.3.0 and
+    9.3.4 inclusive, see the first changelog entry below.
+   </para>
+
+   <para>
+    Also, if you are upgrading from a version earlier than 9.3.7,
+    see <xref linkend="release-9-3-7">.
+   </para>
+
+  </sect2>
+
+  <sect2>
+   <title>Changes</title>
+
+   <itemizedlist>
+
+    <listitem>
+     <para>
+      Fix possible failure to recover from an inconsistent database state
+      (Robert Haas)
+     </para>
+
+     <para>
+      Recent <productname>PostgreSQL</> releases introduced mechanisms to
+      protect against multixact wraparound, but some of that code did not
+      account for the possibility that it would need to run during crash
+      recovery, when the database may not be in a consistent state.  This
+      could result in failure to restart after a crash, or failure to start
+      up a secondary server.  The lingering effects of a previously-fixed
+      bug in <application>pg_upgrade</> could also cause such a failure, in
+      installations that had used <application>pg_upgrade</> versions
+      between 9.3.0 and 9.3.4.
+     </para>
+
+     <para>
+      The <application>pg_upgrade</> bug in question was that it would
+      set <literal>oldestMultiXid</> to 1 in <filename>pg_control</> even
+      if the true value should be higher.  With the fixes introduced in
+      this release, such a situation will result in immediate emergency
+      autovacuuming until a correct <literal>oldestMultiXid</> value can be
+      determined.  If that would pose a hardship, users can avoid it by
+      doing manual vacuuming <emphasis>before</> upgrading to this release.
+      In detail:
+
+      <orderedlist>
+       <listitem>
+        <para>
+         Check whether <application>pg_controldata</> reports <quote>Latest
+         checkpoint's oldestMultiXid</> to be 1.  If not, there's nothing
+         to do.
+        </para>
+       </listitem>
+       <listitem>
+        <para>
+         Look in <filename>PGDATA/pg_multixact/offsets</> to see if there's a
+         file named <filename>0000</>.  If there is, there's nothing to do.
+        </para>
+       </listitem>
+       <listitem>
+        <para>
+         Otherwise, for each table that has
+         <structname>pg_class</>.<structfield>relminmxid</> equal to 1,
+         <command>VACUUM</> that table with
+         both <xref linkend="guc-vacuum-multixact-freeze-min-age">
+         and <xref linkend="guc-vacuum-multixact-freeze-table-age"> set to
+         zero.  (You can use the vacuum cost delay parameters described
+         in <xref linkend="runtime-config-resource-vacuum-cost"> to reduce
+         the performance consequences for concurrent sessions.)  You must
+         use <productname>PostgreSQL</> 9.3.5 or later to perform this step.
+        </para>
+       </listitem>
+      </orderedlist>
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix rare failure to invalidate relation cache init file (Tom Lane)
+     </para>
+
+     <para>
+      With just the wrong timing of concurrent activity, a <command>VACUUM
+      FULL</> on a system catalog might fail to update the <quote>init file</>
+      that's used to avoid cache-loading work for new sessions.  This would
+      result in later sessions being unable to access that catalog at all.
+      This is a very ancient bug, but it's so hard to trigger that no
+      reproducible case had been seen until recently.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Avoid deadlock between incoming sessions and <literal>CREATE/DROP
+      DATABASE</> (Tom Lane)
+     </para>
+
+     <para>
+      A new session starting in a database that is the target of
+      a <command>DROP DATABASE</> command, or is the template for
+      a <command>CREATE DATABASE</> command, could cause the command to wait
+      for five seconds and then fail, even if the new session would have
+      exited before that.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Improve planner's cost estimates for semi-joins and anti-joins with
+      inner indexscans (Tom Lane, Tomas Vondra)
+     </para>
+
+     <para>
+      This type of plan is quite cheap when all the join clauses are used
+      as index scan conditions, even if the inner scan would nominally
+      fetch many rows, because the executor will stop after obtaining one
+      row.  The planner only partially accounted for that effect, and would
+      therefore overestimate the cost, leading it to possibly choose some
+      other much less efficient plan type.
+     </para>
+    </listitem>
+
+   </itemizedlist>
+
+  </sect2>
+ </sect1>
+
+ <sect1 id="release-9-3-8">
+  <title>Release 9.3.8</title>
+
+  <note>
+  <title>Release Date</title>
+  <simpara>2015-06-04</simpara>
+  </note>
+
+  <para>
+   This release contains a small number of fixes from 9.3.7.
+   For information about new features in the 9.3 major release, see
+   <xref linkend="release-9-3">.
+  </para>
+
+  <sect2>
+   <title>Migration to Version 9.3.8</title>
+
+   <para>
+    A dump/restore is not required for those running 9.3.X.
+   </para>
+
+   <para>
+    However, if you are upgrading from a version earlier than 9.3.7,
+    see <xref linkend="release-9-3-7">.
+   </para>
+
+  </sect2>
+
+  <sect2>
+   <title>Changes</title>
+
+   <itemizedlist>
+
+    <listitem>
+     <para>
+      Avoid failures while <function>fsync</>'ing data directory during
+      crash restart (Abhijit Menon-Sen, Tom Lane)
+     </para>
+
+     <para>
+      In the previous minor releases we added a patch to <function>fsync</>
+      everything in the data directory after a crash.  Unfortunately its
+      response to any error condition was to fail, thereby preventing the
+      server from starting up, even when the problem was quite harmless.
+      An example is that an unwritable file in the data directory would
+      prevent restart on some platforms; but it is common to make SSL
+      certificate files unwritable by the server.  Revise this behavior so
+      that permissions failures are ignored altogether, and other types of
+      failures are logged but do not prevent continuing.
+     </para>
+
+     <para>
+      Also apply the same rules in <literal>initdb --sync-only</>.
+      This case is less critical but it should act similarly.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix <function>pg_get_functiondef()</> to show
+      functions' <literal>LEAKPROOF</> property, if set (Jeevan Chalke)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Remove <application>configure</>'s check prohibiting linking to a
+      threaded <application>libpython</>
+      on <systemitem class="osname">OpenBSD</> (Tom Lane)
+     </para>
+
+     <para>
+      The failure this restriction was meant to prevent seems to not be a
+      problem anymore on current <systemitem class="osname">OpenBSD</>
+      versions.
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [c6b7b9a9c] 2015-05-21 20:41:55 -0400
+Branch: REL9_2_STABLE [b78fbfe65] 2015-05-21 20:41:55 -0400
+Branch: REL9_1_STABLE [2c2c5f0e0] 2015-05-21 20:41:55 -0400
+Branch: REL9_0_STABLE [4dddf8552] 2015-05-21 20:41:55 -0400
+-->
+
+    <listitem>
+     <para>
+      Allow <application>libpq</> to use TLS protocol versions beyond v1
+      (Noah Misch)
+     </para>
+
+     <para>
+      For a long time, <application>libpq</> was coded so that the only SSL
+      protocol it would allow was TLS v1.  Now that newer TLS versions are
+      becoming popular, allow it to negotiate the highest commonly-supported
+      TLS version with the server.  (<productname>PostgreSQL</> servers were
+      already capable of such negotiation, so no change is needed on the
+      server side.)  This is a back-patch of a change already released in
+      9.4.0.
+     </para>
+    </listitem>
+
+   </itemizedlist>
+
+  </sect2>
+ </sect1>
+
+ <sect1 id="release-9-3-7">
+  <title>Release 9.3.7</title>
+
+  <note>
+  <title>Release Date</title>
+  <simpara>2015-05-22</simpara>
+  </note>
+
+  <para>
+   This release contains a variety of fixes from 9.3.6.
+   For information about new features in the 9.3 major release, see
+   <xref linkend="release-9-3">.
+  </para>
+
+  <sect2>
+   <title>Migration to Version 9.3.7</title>
+
+   <para>
+    A dump/restore is not required for those running 9.3.X.
+   </para>
+
+   <para>
+    However, if you use <filename>contrib/citext</>'s
+    <function>regexp_matches()</> functions, see the changelog entry below
+    about that.
+   </para>
+
+   <para>
+    Also, if you are upgrading from a version earlier than 9.3.6,
+    see <xref linkend="release-9-3-6">.
+   </para>
+
+  </sect2>
+
+  <sect2>
+   <title>Changes</title>
+
+   <itemizedlist>
+
+    <listitem>
+     <para>
+      Avoid possible crash when client disconnects just before the
+      authentication timeout expires (Benkocs Norbert Attila)
+     </para>
+
+     <para>
+      If the timeout interrupt fired partway through the session shutdown
+      sequence, SSL-related state would be freed twice, typically causing a
+      crash and hence denial of service to other sessions.  Experimentation
+      shows that an unauthenticated remote attacker could trigger the bug
+      somewhat consistently, hence treat as security issue.
+      (CVE-2015-3165)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Improve detection of system-call failures (Noah Misch)
+     </para>
+
+     <para>
+      Our replacement implementation of <function>snprintf()</> failed to
+      check for errors reported by the underlying system library calls;
+      the main case that might be missed is out-of-memory situations.
+      In the worst case this might lead to information exposure, due to our
+      code assuming that a buffer had been overwritten when it hadn't been.
+      Also, there were a few places in which security-relevant calls of other
+      system library functions did not check for failure.
+     </para>
+
+     <para>
+      It remains possible that some calls of the <function>*printf()</>
+      family of functions are vulnerable to information disclosure if an
+      out-of-memory error occurs at just the wrong time.  We judge the risk
+      to not be large, but will continue analysis in this area.
+      (CVE-2015-3166)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      In <filename>contrib/pgcrypto</>, uniformly report decryption failures
+      as <quote>Wrong key or corrupt data</> (Noah Misch)
+     </para>
+
+     <para>
+      Previously, some cases of decryption with an incorrect key could report
+      other error message texts.  It has been shown that such variance in
+      error reports can aid attackers in recovering keys from other systems.
+      While it's unknown whether <filename>pgcrypto</>'s specific behaviors
+      are likewise exploitable, it seems better to avoid the risk by using a
+      one-size-fits-all message.
+      (CVE-2015-3167)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Protect against wraparound of multixact member IDs
+      (&Aacute;lvaro Herrera, Robert Haas, Thomas Munro)
+     </para>
+
+     <para>
+      Under certain usage patterns, the existing defenses against this might
+      be insufficient, allowing <filename>pg_multixact/members</> files to be
+      removed too early, resulting in data loss.
+      The fix for this includes modifying the server to fail transactions
+      that would result in overwriting old multixact member ID data, and
+      improving autovacuum to ensure it will act proactively to prevent
+      multixact member ID wraparound, as it does for transaction ID
+      wraparound.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix incorrect declaration of <filename>contrib/citext</>'s
+      <function>regexp_matches()</> functions (Tom Lane)
+     </para>
+
+     <para>
+      These functions should return <type>setof text[]</>, like the core
+      functions they are wrappers for; but they were incorrectly declared as
+      returning just <type>text[]</>.  This mistake had two results: first,
+      if there was no match you got a scalar null result, whereas what you
+      should get is an empty set (zero rows).  Second, the <literal>g</> flag
+      was effectively ignored, since you would get only one result array even
+      if there were multiple matches.
+     </para>
+
+     <para>
+      While the latter behavior is clearly a bug, there might be applications
+      depending on the former behavior; therefore the function declarations
+      will not be changed by default until <productname>PostgreSQL</> 9.5.
+      In pre-9.5 branches, the old behavior exists in version 1.0 of
+      the <literal>citext</> extension, while we have provided corrected
+      declarations in version 1.1 (which is <emphasis>not</> installed by
+      default).  To adopt the fix in pre-9.5 branches, execute
+      <literal>ALTER EXTENSION citext UPDATE TO '1.1'</> in each database in
+      which <literal>citext</> is installed.  (You can also <quote>update</>
+      back to 1.0 if you need to undo that.)  Be aware that either update
+      direction will require dropping and recreating any views or rules that
+      use <filename>citext</>'s <function>regexp_matches()</> functions.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix incorrect checking of deferred exclusion constraints after a HOT
+      update (Tom Lane)
+     </para>
+
+     <para>
+      If a new row that potentially violates a deferred exclusion constraint
+      is HOT-updated (that is, no indexed columns change and the row can be
+      stored back onto the same table page) later in the same transaction,
+      the exclusion constraint would be reported as violated when the check
+      finally occurred, even if the row(s) the new row originally conflicted
+      with had been deleted.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix planning of star-schema-style queries (Tom Lane)
+     </para>
+
+     <para>
+      Sometimes, efficient scanning of a large table requires that index
+      parameters be provided from more than one other table (commonly,
+      dimension tables whose keys are needed to index a large fact table).
+      The planner should be able to find such plans, but an overly
+      restrictive search heuristic prevented it.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Prevent improper reordering of antijoins (NOT EXISTS joins) versus
+      other outer joins (Tom Lane)
+     </para>
+
+     <para>
+      This oversight in the planner has been observed to cause <quote>could
+      not find RelOptInfo for given relids</> errors, but it seems possible
+      that sometimes an incorrect query plan might get past that consistency
+      check and result in silently-wrong query output.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix incorrect matching of subexpressions in outer-join plan nodes
+      (Tom Lane)
+     </para>
+
+     <para>
+      Previously, if textually identical non-strict subexpressions were used
+      both above and below an outer join, the planner might try to re-use
+      the value computed below the join, which would be incorrect because the
+      executor would force the value to NULL in case of an unmatched outer row.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix GEQO planner to cope with failure of its join order heuristic
+      (Tom Lane)
+     </para>
+
+     <para>
+      This oversight has been seen to lead to <quote>failed to join all
+      relations together</> errors in queries involving <literal>LATERAL</>,
+      and that might happen in other cases as well.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix possible deadlock at startup
+      when <literal>max_prepared_transactions</> is too small
+      (Heikki Linnakangas)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Don't archive useless preallocated WAL files after a timeline switch
+      (Heikki Linnakangas)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Recursively <function>fsync()</> the data directory after a crash
+      (Abhijit Menon-Sen, Robert Haas)
+     </para>
+
+     <para>
+      This ensures consistency if another crash occurs shortly later.  (The
+      second crash would have to be a system-level crash, not just a database
+      crash, for there to be a problem.)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix autovacuum launcher's possible failure to shut down, if an error
+      occurs after it receives SIGTERM (&Aacute;lvaro Herrera)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Cope with unexpected signals in <function>LockBufferForCleanup()</>
+      (Andres Freund)
+     </para>
+
+     <para>
+      This oversight could result in spurious errors about <quote>multiple
+      backends attempting to wait for pincount 1</>.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix crash when doing <literal>COPY IN</> to a table with check
+      constraints that contain whole-row references (Tom Lane)
+     </para>
+
+     <para>
+      The known failure case only crashes in 9.4 and up, but there is very
+      similar code in 9.3 and 9.2, so back-patch those branches as well.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Avoid waiting for WAL flush or synchronous replication during commit of
+      a transaction that was read-only so far as the user is concerned
+      (Andres Freund)
+     </para>
+
+     <para>
+      Previously, a delay could occur at commit in transactions that had
+      written WAL due to HOT page pruning, leading to undesirable effects
+      such as sessions getting stuck at startup if all synchronous replicas
+      are down.  Sessions have also been observed to get stuck in catchup
+      interrupt processing when using synchronous replication; this will fix
+      that problem as well.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix crash when manipulating hash indexes on temporary tables
+      (Heikki Linnakangas)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix possible failure during hash index bucket split, if other processes
+      are modifying the index concurrently (Tom Lane)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Check for interrupts while analyzing index expressions (Jeff Janes)
+     </para>
+
+     <para>
+      <command>ANALYZE</> executes index expressions many times; if there are
+      slow functions in such an expression, it's desirable to be able to
+      cancel the <command>ANALYZE</> before that loop finishes.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Ensure <structfield>tableoid</> of a foreign table is reported
+      correctly when a <literal>READ COMMITTED</> recheck occurs after
+      locking rows in <command>SELECT FOR UPDATE</>, <command>UPDATE</>,
+      or <command>DELETE</> (Etsuro Fujita)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Add the name of the target server to object description strings for
+      foreign-server user mappings (&Aacute;lvaro Herrera)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Include the schema name in object identity strings for conversions
+      (&Aacute;lvaro Herrera)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Recommend setting <literal>include_realm</> to 1 when using
+      Kerberos/GSSAPI/SSPI authentication (Stephen Frost)
+     </para>
+
+     <para>
+      Without this, identically-named users from different realms cannot be
+      distinguished.  For the moment this is only a documentation change, but
+      it will become the default setting in <productname>PostgreSQL</> 9.5.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Remove code for matching IPv4 <filename>pg_hba.conf</> entries to
+      IPv4-in-IPv6 addresses (Tom Lane)
+     </para>
+
+     <para>
+      This hack was added in 2003 in response to a report that some Linux
+      kernels of the time would report IPv4 connections as having
+      IPv4-in-IPv6 addresses.  However, the logic was accidentally broken in
+      9.0.  The lack of any field complaints since then shows that it's not
+      needed anymore.  Now we have reports that the broken code causes
+      crashes on some systems, so let's just remove it rather than fix it.
+      (Had we chosen to fix it, that would make for a subtle and potentially
+      security-sensitive change in the effective meaning of
+      IPv4 <filename>pg_hba.conf</> entries, which does not seem like a good
+      thing to do in minor releases.)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Report WAL flush, not insert, position in <literal>IDENTIFY_SYSTEM</>
+      replication command (Heikki Linnakangas)
+     </para>
+
+     <para>
+      This avoids a possible startup failure
+      in <application>pg_receivexlog</>.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      While shutting down service on Windows, periodically send status
+      updates to the Service Control Manager to prevent it from killing the
+      service too soon; and ensure that <application>pg_ctl</> will wait for
+      shutdown (Krystian Bigaj)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Reduce risk of network deadlock when using <application>libpq</>'s
+      non-blocking mode (Heikki Linnakangas)
+     </para>
+
+     <para>
+      When sending large volumes of data, it's important to drain the input
+      buffer every so often, in case the server has sent enough response data
+      to cause it to block on output.  (A typical scenario is that the server
+      is sending a stream of NOTICE messages during <literal>COPY FROM
+      STDIN</>.)  This worked properly in the normal blocking mode, but not
+      so much in non-blocking mode.  We've modified <application>libpq</>
+      to opportunistically drain input when it can, but a full defense
+      against this problem requires application cooperation: the application
+      should watch for socket read-ready as well as write-ready conditions,
+      and be sure to call <function>PQconsumeInput()</> upon read-ready.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      In <application>libpq</>, fix misparsing of empty values in URI
+      connection strings (Thomas Fanghaenel)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix array handling in <application>ecpg</> (Michael Meskes)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix <application>psql</> to sanely handle URIs and conninfo strings as
+      the first parameter to <command>\connect</>
+      (David Fetter, Andrew Dunstan, &Aacute;lvaro Herrera)
+     </para>
+
+     <para>
+      This syntax has been accepted (but undocumented) for a long time, but
+      previously some parameters might be taken from the old connection
+      instead of the given string, which was agreed to be undesirable.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Suppress incorrect complaints from <application>psql</> on some
+      platforms that it failed to write <filename>~/.psql_history</> at exit
+      (Tom Lane)
+     </para>
+
+     <para>
+      This misbehavior was caused by a workaround for a bug in very old
+      (pre-2006) versions of <application>libedit</>.  We fixed it by
+      removing the workaround, which will cause a similar failure to appear
+      for anyone still using such versions of <application>libedit</>.
+      Recommendation: upgrade that library, or use <application>libreadline</>.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix <application>pg_dump</>'s rule for deciding which casts are
+      system-provided casts that should not be dumped (Tom Lane)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      In <application>pg_dump</>, fix failure to honor <literal>-Z</>
+      compression level option together with <literal>-Fd</>
+      (Michael Paquier)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Make <application>pg_dump</> consider foreign key relationships
+      between extension configuration tables while choosing dump order
+      (Gilles Darold, Michael Paquier, Stephen Frost)
+     </para>
+
+     <para>
+      This oversight could result in producing dumps that fail to reload
+      because foreign key constraints are transiently violated.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Avoid possible <application>pg_dump</> failure when concurrent sessions
+      are creating and dropping temporary functions (Tom Lane)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix dumping of views that are just <literal>VALUES(...)</> but have
+      column aliases (Tom Lane)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      In <application>pg_upgrade</>, force timeline 1 in the new cluster
+      (Bruce Momjian)
+     </para>
+
+     <para>
+      This change prevents upgrade failures caused by bogus complaints about
+      missing WAL history files.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      In <application>pg_upgrade</>, check for improperly non-connectable
+      databases before proceeding
+      (Bruce Momjian)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      In <application>pg_upgrade</>, quote directory paths
+      properly in the generated <literal>delete_old_cluster</> script
+      (Bruce Momjian)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      In <application>pg_upgrade</>, preserve database-level freezing info
+      properly
+      (Bruce Momjian)
+     </para>
+
+     <para>
+      This oversight could cause missing-clog-file errors for tables within
+      the <literal>postgres</> and <literal>template1</> databases.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Run <application>pg_upgrade</> and <application>pg_resetxlog</> with
+      restricted privileges on Windows, so that they don't fail when run by
+      an administrator (Muhammad Asif Naeem)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Improve handling of <function>readdir()</> failures when scanning
+      directories in <application>initdb</> and <application>pg_basebackup</>
+      (Marco Nenciarini)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix slow sorting algorithm in <filename>contrib/intarray</> (Tom Lane)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix compile failure on Sparc V8 machines (Rob Rowan)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Silence some build warnings on macOS (Tom Lane)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Update time zone data files to <application>tzdata</> release 2015d
+      for DST law changes in Egypt, Mongolia, and Palestine, plus historical
+      changes in Canada and Chile.  Also adopt revised zone abbreviations for
+      the America/Adak zone (HST/HDT not HAST/HADT).
+     </para>
+    </listitem>
+
+   </itemizedlist>
+
+  </sect2>
+ </sect1>
+
+ <sect1 id="release-9-3-6">
+  <title>Release 9.3.6</title>
+
+  <note>
+  <title>Release Date</title>
+  <simpara>2015-02-05</simpara>
+  </note>
+
+  <para>
+   This release contains a variety of fixes from 9.3.5.
+   For information about new features in the 9.3 major release, see
+   <xref linkend="release-9-3">.
+  </para>
+
+  <sect2>
+   <title>Migration to Version 9.3.6</title>
+
+   <para>
+    A dump/restore is not required for those running 9.3.X.
+   </para>
+
+   <para>
+    However, if you are a Windows user and are using the <quote>Norwegian
+    (Bokm&aring;l)</> locale, manual action is needed after the upgrade to
+    replace any <quote>Norwegian (Bokm&aring;l)_Norway</> locale names stored
+    in <productname>PostgreSQL</> system catalogs with the plain-ASCII
+    alias <quote>Norwegian_Norway</>.  For details see
+    <ulink url="http://wiki.postgresql.org/wiki/Changes_To_Norwegian_Locale"></>
+   </para>
+
+   <para>
+    Also, if you are upgrading from a version earlier than 9.3.5,
+    see <xref linkend="release-9-3-5">.
+   </para>
+
+  </sect2>
+
+  <sect2>
+   <title>Changes</title>
+
+   <itemizedlist>
+
+<!--
+Author: Bruce Momjian <bruce@momjian.us>
+Branch: master [0150ab567] 2015-02-02 10:00:44 -0500
+Branch: REL9_4_STABLE [1628a0bbf] 2015-02-02 10:00:49 -0500
+Branch: REL9_3_STABLE [b8b580147] 2015-02-02 10:00:50 -0500
+Branch: REL9_2_STABLE [5ae3bf1af] 2015-02-02 10:00:50 -0500
+Branch: REL9_1_STABLE [037529a11] 2015-02-02 10:00:51 -0500
+Branch: REL9_0_STABLE [611e110aa] 2015-02-02 10:00:52 -0500
+Author: Bruce Momjian <bruce@momjian.us>
+Branch: master [9241c84cb] 2015-02-02 10:00:45 -0500
+Branch: REL9_4_STABLE [56d2bee9d] 2015-02-02 10:00:49 -0500
+Branch: REL9_3_STABLE [fe2526990] 2015-02-02 10:00:50 -0500
+Branch: REL9_2_STABLE [e09651e9d] 2015-02-02 10:00:50 -0500
+Branch: REL9_1_STABLE [2ceb63deb] 2015-02-02 10:00:51 -0500
+Branch: REL9_0_STABLE [56b970f2e] 2015-02-02 10:00:52 -0500
+-->
+
+    <listitem>
+     <para>
+      Fix buffer overruns in <function>to_char()</>
+      (Bruce Momjian)
+     </para>
+
+     <para>
+      When <function>to_char()</> processes a numeric formatting template
+      calling for a large number of digits, <productname>PostgreSQL</>
+      would read past the end of a buffer.  When processing a crafted
+      timestamp formatting template, <productname>PostgreSQL</> would write
+      past the end of a buffer.  Either case could crash the server.
+      We have not ruled out the possibility of attacks that lead to
+      privilege escalation, though they seem unlikely.
+      (CVE-2015-0241)
+     </para>
+    </listitem>
+
+<!--
+Author: Bruce Momjian <bruce@momjian.us>
+Branch: master [29725b3db] 2015-02-02 10:00:45 -0500
+Branch: REL9_4_STABLE [2ac95c83c] 2015-02-02 10:00:49 -0500
+Branch: REL9_3_STABLE [bc4d5f2e5] 2015-02-02 10:00:50 -0500
+Branch: REL9_2_STABLE [c6c6aa288] 2015-02-02 10:00:51 -0500
+Branch: REL9_1_STABLE [98f2479d8] 2015-02-02 10:00:51 -0500
+Branch: REL9_0_STABLE [9e05c5063] 2015-02-02 10:00:52 -0500
+-->
+
+    <listitem>
+     <para>
+      Fix buffer overrun in replacement <function>*printf()</> functions
+      (Tom Lane)
+     </para>
+
+     <para>
+      <productname>PostgreSQL</> includes a replacement implementation
+      of <function>printf</> and related functions.  This code will overrun
+      a stack buffer when formatting a floating point number (conversion
+      specifiers <literal>e</>, <literal>E</>, <literal>f</>, <literal>F</>,
+      <literal>g</> or <literal>G</>) with requested precision greater than
+      about 500.  This will crash the server, and we have not ruled out the
+      possibility of attacks that lead to privilege escalation.
+      A database user can trigger such a buffer overrun through
+      the <function>to_char()</> SQL function.  While that is the only
+      affected core <productname>PostgreSQL</> functionality, extension
+      modules that use printf-family functions may be at risk as well.
+     </para>
+
+     <para>
+      This issue primarily affects <productname>PostgreSQL</> on Windows.
+      <productname>PostgreSQL</> uses the system implementation of these
+      functions where adequate, which it is on other modern platforms.
+      (CVE-2015-0242)
+     </para>
+    </listitem>
+
+<!--
+Author: Noah Misch <noah@leadboat.com>
+Branch: master [1dc755158] 2015-02-02 10:00:45 -0500
+Branch: REL9_4_STABLE [82806cf4e] 2015-02-02 10:00:49 -0500
+Branch: REL9_3_STABLE [6994f0790] 2015-02-02 10:00:50 -0500
+Branch: REL9_2_STABLE [d95ebe0ac] 2015-02-02 10:00:51 -0500
+Branch: REL9_1_STABLE [11f738a8a] 2015-02-02 10:00:51 -0500
+Branch: REL9_0_STABLE [ce6f261cd] 2015-02-02 10:00:52 -0500
+Author: Noah Misch <noah@leadboat.com>
+Branch: master [8b59672d8] 2015-02-02 10:00:45 -0500
+Branch: REL9_4_STABLE [258e294db] 2015-02-02 10:00:49 -0500
+Branch: REL9_3_STABLE [a558ad3a7] 2015-02-02 10:00:50 -0500
+Branch: REL9_2_STABLE [d1972da8c] 2015-02-02 10:00:51 -0500
+Branch: REL9_1_STABLE [8d412e02e] 2015-02-02 10:00:52 -0500
+Branch: REL9_0_STABLE [0a3ee8a5f] 2015-02-02 10:00:52 -0500
+-->
+
+    <listitem>
+     <para>
+      Fix buffer overruns in <filename>contrib/pgcrypto</>
+      (Marko Tiikkaja, Noah Misch)
+     </para>
+
+     <para>
+      Errors in memory size tracking within the <filename>pgcrypto</>
+      module permitted stack buffer overruns and improper dependence on the
+      contents of uninitialized memory.  The buffer overrun cases can
+      crash the server, and we have not ruled out the possibility of
+      attacks that lead to privilege escalation.
+      (CVE-2015-0243)
+     </para>
+    </listitem>
+
+<!--
+Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
+Branch: master [2b3a8b20c] 2015-02-02 17:09:53 +0200
+Branch: REL9_4_STABLE [57ec87c6b] 2015-02-02 17:09:46 +0200
+Branch: REL9_3_STABLE [cd19848bd] 2015-02-02 17:09:40 +0200
+Branch: REL9_2_STABLE [289592b23] 2015-02-02 17:09:35 +0200
+Branch: REL9_1_STABLE [af9c5c074] 2015-02-02 17:09:31 +0200
+Branch: REL9_0_STABLE [47ba0fbd7] 2015-02-02 17:09:25 +0200
+-->
+
+    <listitem>
+     <para>
+      Fix possible loss of frontend/backend protocol synchronization after
+      an error
+      (Heikki Linnakangas)
+     </para>
+
+     <para>
+      If any error occurred while the server was in the middle of reading a
+      protocol message from the client, it could lose synchronization and
+      incorrectly try to interpret part of the message's data as a new
+      protocol message.  An attacker able to submit crafted binary data
+      within a command parameter might succeed in injecting his own SQL
+      commands this way.  Statement timeout and query cancellation are the
+      most likely sources of errors triggering this scenario.  Particularly
+      vulnerable are applications that use a timeout and also submit
+      arbitrary user-crafted data as binary query parameters.  Disabling
+      statement timeout will reduce, but not eliminate, the risk of
+      exploit.  Our thanks to Emil Lenngren for reporting this issue.
+      (CVE-2015-0244)
+     </para>
+    </listitem>
+
+<!--
+Author: Stephen Frost <sfrost@snowman.net>
+Branch: master [804b6b6db] 2015-01-28 12:31:30 -0500
+Branch: REL9_4_STABLE [3cc74a3d6] 2015-01-28 12:32:06 -0500
+Branch: REL9_3_STABLE [4b9874216] 2015-01-28 12:32:39 -0500
+Branch: REL9_2_STABLE [d49f84b08] 2015-01-28 12:32:56 -0500
+Branch: REL9_1_STABLE [9406884af] 2015-01-28 12:33:15 -0500
+Branch: REL9_0_STABLE [3a2063369] 2015-01-28 12:33:29 -0500
+-->
+
+    <listitem>
+     <para>
+      Fix information leak via constraint-violation error messages
+      (Stephen Frost)
+     </para>
+
+     <para>
+      Some server error messages show the values of columns that violate
+      a constraint, such as a unique constraint.  If the user does not have
+      <literal>SELECT</> privilege on all columns of the table, this could
+      mean exposing values that the user should not be able to see.  Adjust
+      the code so that values are displayed only when they came from the SQL
+      command or could be selected by the user.
+      (CVE-2014-8161)
+     </para>
+    </listitem>
+
+<!--
+Author: Noah Misch <noah@leadboat.com>
+Branch: master [f6dc6dd5b] 2014-12-17 22:48:40 -0500
+Branch: REL9_4_STABLE [6b87d423d] 2014-12-17 22:48:45 -0500
+Branch: REL9_3_STABLE [442dc2c35] 2014-12-17 22:48:46 -0500
+Branch: REL9_2_STABLE [0046f651d] 2014-12-17 22:48:47 -0500
+Branch: REL9_1_STABLE [6aa98e957] 2014-12-17 22:48:47 -0500
+Branch: REL9_0_STABLE [6d45ee572] 2014-12-17 22:48:48 -0500
+-->
+
+    <listitem>
+     <para>
+      Lock down regression testing's temporary installations on Windows
+      (Noah Misch)
+     </para>
+
+     <para>
+      Use SSPI authentication to allow connections only from the OS user
+      who launched the test suite.  This closes on Windows the same
+      vulnerability previously closed on other platforms, namely that other
+      users might be able to connect to the test postmaster.
+      (CVE-2014-0067)
+     </para>
+    </listitem>
+
+<!--
+Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
+Branch: REL9_3_STABLE [8f80dcf3c] 2014-10-24 19:59:49 +0300
+Branch: REL9_2_STABLE [d440c4b55] 2014-10-24 19:59:52 +0300
+Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
+Branch: REL9_3_STABLE [2a1b34959] 2014-10-24 19:36:28 +0300
+Branch: REL9_2_STABLE [737ae3fc7] 2014-10-24 19:53:27 +0300
+Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
+Branch: master [aa1d2fc5e] 2015-01-16 13:28:19 +0200
+Branch: REL9_4_STABLE [2049a7d82] 2015-01-16 13:10:06 +0200
+Branch: REL9_3_STABLE [1619442a1] 2015-01-16 13:10:15 +0200
+Branch: REL9_2_STABLE [6bf343c6e] 2015-01-16 13:10:23 +0200
+-->
+
+    <listitem>
+     <para>
+      Cope with the Windows locale named <quote>Norwegian (Bokm&aring;l)</>
+      (Heikki Linnakangas)
+     </para>
+
+     <para>
+      Non-ASCII locale names are problematic since it's not clear what
+      encoding they should be represented in.  Map the troublesome locale
+      name to a plain-ASCII alias, <quote>Norwegian_Norway</>.
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [f88300168] 2014-11-04 13:24:14 -0500
+Branch: REL9_2_STABLE [db72ad02e] 2014-11-04 13:24:17 -0500
+Branch: REL9_1_STABLE [7c6f55e9e] 2014-11-04 13:24:22 -0500
+Branch: REL9_0_STABLE [45a607d5c] 2014-11-04 13:24:26 -0500
+-->
+
+    <listitem>
+     <para>
+      Avoid possible data corruption if <command>ALTER DATABASE SET
+      TABLESPACE</> is used to move a database to a new tablespace and then
+      shortly later move it back to its original tablespace (Tom Lane)
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [81f0a5e38] 2014-10-29 18:12:08 -0400
+Branch: REL9_2_STABLE [40058fbce] 2014-10-29 18:12:11 -0400
+Branch: REL9_1_STABLE [6ec1c3ef8] 2014-10-29 18:12:17 -0400
+Branch: REL9_0_STABLE [9d06da58e] 2014-10-29 18:12:20 -0400
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [e65b550b3] 2014-10-30 13:03:28 -0400
+Branch: REL9_2_STABLE [38cb8687a] 2014-10-30 13:03:31 -0400
+Branch: REL9_1_STABLE [fcf0246b2] 2014-10-30 13:03:34 -0400
+Branch: REL9_0_STABLE [73f950fc8] 2014-10-30 13:03:39 -0400
+-->
+
+    <listitem>
+     <para>
+      Avoid corrupting tables when <command>ANALYZE</> inside a transaction
+      is rolled back (Andres Freund, Tom Lane, Michael Paquier)
+     </para>
+
+     <para>
+      If the failing transaction had earlier removed the last index, rule, or
+      trigger from the table, the table would be left in a corrupted state
+      with the relevant <structname>pg_class</> flags not set though they
+      should be.
+     </para>
+    </listitem>
+
+<!--
+Author: Andres Freund <andres@anarazel.de>
+Branch: REL9_3_STABLE [d7624e562] 2014-10-20 23:45:31 +0200
+Branch: REL9_2_STABLE [fd29810d1] 2014-10-20 23:47:00 +0200
+Branch: REL9_1_STABLE [d5fef87e9] 2014-10-20 23:47:45 +0200
+-->
+
+    <listitem>
+     <para>
+      Ensure that unlogged tables are copied correctly
+      during <command>CREATE DATABASE</> or <command>ALTER DATABASE SET
+      TABLESPACE</> (Pavan Deolasee, Andres Freund)
+     </para>
+    </listitem>
+
+<!--
+Author: Robert Haas <rhaas@postgresql.org>
+Branch: REL9_3_STABLE [e35db342a] 2014-09-22 16:19:59 -0400
+-->
+
+    <listitem>
+     <para>
+      Fix incorrect processing
+      of <structname>CreateEventTrigStmt</>.<structfield>eventname</> (Petr
+      Jelinek)
+     </para>
+
+     <para>
+      This could result in misbehavior if <command>CREATE EVENT TRIGGER</>
+      were executed as a prepared query, or via extended query protocol.
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [2a83e0349] 2014-11-11 17:00:21 -0500
+Branch: REL9_2_STABLE [1c2f9a4f6] 2014-11-11 17:00:25 -0500
+Branch: REL9_1_STABLE [94d5d57d5] 2014-11-11 17:00:28 -0500
+-->
+
+    <listitem>
+     <para>
+      Fix <command>DROP</>'s dependency searching to correctly handle the
+      case where a table column is recursively visited before its table
+      (Petr Jelinek, Tom Lane)
+     </para>
+
+     <para>
+      This case is only known to arise when an extension creates both a
+      datatype and a table using that datatype.  The faulty code might
+      refuse a <command>DROP EXTENSION</> unless <literal>CASCADE</> is
+      specified, which should not be required.
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master [c480cb9d2] 2015-01-15 18:52:58 -0500
+Branch: REL9_4_STABLE [b75d18bd4] 2015-01-15 18:53:05 -0500
+Branch: REL9_3_STABLE [34668c8ec] 2015-01-15 18:52:28 -0500
+Branch: REL9_2_STABLE [0acb32efb] 2015-01-15 18:52:31 -0500
+Branch: REL9_1_STABLE [450530fce] 2015-01-15 18:52:34 -0500
+Branch: REL9_0_STABLE [5308e085b] 2015-01-15 18:52:38 -0500
+-->
+
+    <listitem>
+     <para>
+      Fix use-of-already-freed-memory problem in EvalPlanQual processing
+      (Tom Lane)
+     </para>
+
+     <para>
+      In <literal>READ COMMITTED</> mode, queries that lock or update
+      recently-updated rows could crash as a result of this bug.
+     </para>
+    </listitem>
+
+<!--
+Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
+Branch: master [0e5680f47] 2014-12-26 13:52:27 -0300
+Branch: REL9_4_STABLE [0e3a1f71d] 2014-12-26 13:52:27 -0300
+Branch: REL9_3_STABLE [048912386] 2014-12-26 13:52:27 -0300
+-->
+
+    <listitem>
+     <para>
+      Avoid possible deadlock while trying to acquire tuple locks
+      in EvalPlanQual processing (&Aacute;lvaro Herrera, Mark Kirkwood)
+     </para>
+    </listitem>
+
+<!--
+Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
+Branch: master [d5e3d1e96] 2015-01-04 15:48:29 -0300
+Branch: REL9_4_STABLE [51742063b] 2015-01-04 15:48:29 -0300
+Branch: REL9_3_STABLE [54a8abc2b] 2015-01-04 15:48:29 -0300
+-->
+
+    <listitem>
+     <para>
+      Fix failure to wait when a transaction tries to acquire a <literal>FOR
+      NO KEY EXCLUSIVE</> tuple lock, while multiple other transactions
+      currently hold <literal>FOR SHARE</> locks (&Aacute;lvaro Herrera)
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [2ae8a01ca] 2014-12-11 21:02:31 -0500
+Branch: REL9_2_STABLE [cd63c57e5] 2014-12-11 21:02:34 -0500
+Branch: REL9_1_STABLE [bca39b578] 2014-12-11 21:02:38 -0500
+Branch: REL9_0_STABLE [662eebdc6] 2014-12-11 21:02:41 -0500
+-->
+
+    <listitem>
+     <para>
+      Fix planning of <command>SELECT FOR UPDATE</> when using a partial
+      index on a child table (Kyotaro Horiguchi)
+     </para>
+
+     <para>
+      In <literal>READ COMMITTED</> mode, <command>SELECT FOR UPDATE</> must
+      also recheck the partial index's <literal>WHERE</> condition when
+      rechecking a recently-updated row to see if it still satisfies the
+      query's <literal>WHERE</> condition.  This requirement was missed if the
+      index belonged to an inheritance child table, so that it was possible
+      to incorrectly return rows that no longer satisfy the query condition.
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [f14196c35] 2014-12-11 19:37:07 -0500
+Branch: REL9_2_STABLE [deadbf4f3] 2014-12-11 19:37:10 -0500
+Branch: REL9_1_STABLE [21946ac9b] 2014-12-11 19:37:14 -0500
+Branch: REL9_0_STABLE [f5e4e92fb] 2014-12-11 19:37:17 -0500
+-->
+
+    <listitem>
+     <para>
+      Fix corner case wherein <command>SELECT FOR UPDATE</> could return a row
+      twice, and possibly miss returning other rows (Tom Lane)
+     </para>
+
+     <para>
+      In <literal>READ COMMITTED</> mode, a <command>SELECT FOR UPDATE</>
+      that is scanning an inheritance tree could incorrectly return a row
+      from a prior child table instead of the one it should return from a
+      later child table.
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master [a5cd70dcb] 2015-01-15 13:18:12 -0500
+Branch: REL9_4_STABLE [d25192892] 2015-01-15 13:18:16 -0500
+Branch: REL9_3_STABLE [939f0fb67] 2015-01-15 13:18:19 -0500
+-->
+
+    <listitem>
+     <para>
+      Improve performance of <command>EXPLAIN</> with large range tables
+      (Tom Lane)
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [7a9c8cefb] 2014-08-09 13:46:42 -0400
+Branch: REL9_2_STABLE [b4dacab12] 2014-08-09 13:46:45 -0400
+Branch: REL9_1_STABLE [bbe826f21] 2014-08-09 13:46:48 -0400
+Branch: REL9_0_STABLE [4ff49746e] 2014-08-09 13:46:52 -0400
+-->
+
+    <listitem>
+     <para>
+      Reject duplicate column names in the referenced-columns list of
+      a <literal>FOREIGN KEY</> declaration (David Rowley)
+     </para>
+
+     <para>
+      This restriction is per SQL standard.  Previously we did not reject
+      the case explicitly, but later on the code would fail with
+      bizarre-looking errors.
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [6306d0712] 2014-07-22 13:30:14 -0400
+-->
+
+    <listitem>
+     <para>
+      Re-enable error for <literal>SELECT ... OFFSET -1</> (Tom Lane)
+     </para>
+
+     <para>
+      A negative offset value has been an error since 8.4, but an
+      optimization added in 9.3 accidentally turned the case into a no-op.
+      Restore the expected behavior.
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [8b65e0a33] 2014-08-09 18:40:34 -0400
+Branch: REL9_2_STABLE [15026ab97] 2014-08-09 18:40:38 -0400
+-->
+
+    <listitem>
+     <para>
+      Restore previous behavior of conversion of domains to JSON
+      (Tom Lane)
+     </para>
+
+     <para>
+      This change causes domains over numeric and boolean to be treated
+      like their base types for purposes of conversion to JSON.  It worked
+      like that before 9.3.5 and 9.2.9, but was unintentionally changed
+      while fixing a related problem.
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [8571ecb24] 2014-12-02 15:02:43 -0500
+-->
+
+    <listitem>
+     <para>
+      Fix <function>json_agg()</> to not return extra trailing right
+      brackets in its result (Tom Lane)
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [25bf13fe1] 2014-09-11 23:30:57 -0400
+Branch: REL9_2_STABLE [228ed4370] 2014-09-11 23:31:00 -0400
+Branch: REL9_1_STABLE [cf5c20b06] 2014-09-11 23:31:03 -0400
+Branch: REL9_0_STABLE [26f8a4691] 2014-09-11 23:31:06 -0400
+-->
+
+    <listitem>
+     <para>
+      Fix bugs in raising a <type>numeric</> value to a large integral power
+      (Tom Lane)
+     </para>
+
+     <para>
+      The previous code could get a wrong answer, or consume excessive
+      amounts of time and memory before realizing that the answer must
+      overflow.
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [10b81fbdc] 2014-12-01 15:25:08 -0500
+Branch: REL9_2_STABLE [e640042e9] 2014-12-01 15:25:12 -0500
+Branch: REL9_1_STABLE [2e3cc3955] 2014-12-01 15:25:15 -0500
+Branch: REL9_0_STABLE [e6550626c] 2014-12-01 15:25:18 -0500
+-->
+
+    <listitem>
+     <para>
+      In <function>numeric_recv()</>, truncate away any fractional digits
+      that would be hidden according to the value's <literal>dscale</> field
+      (Tom Lane)
+     </para>
+
+     <para>
+      A <type>numeric</> value's display scale (<literal>dscale</>) should
+      never be less than the number of nonzero fractional digits; but
+      apparently there's at least one broken client application that
+      transmits binary <type>numeric</> values in which that's true.
+      This leads to strange behavior since the extra digits are taken into
+      account by arithmetic operations even though they aren't printed.
+      The least risky fix seems to be to truncate away such <quote>hidden</>
+      digits on receipt, so that the value is indeed what it prints as.
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [bbfdf5d75] 2014-09-23 20:25:36 -0400
+Branch: REL9_2_STABLE [3359a818c] 2014-09-23 20:25:39 -0400
+-->
+
+    <listitem>
+     <para>
+      Fix incorrect search for shortest-first regular expression matches
+      (Tom Lane)
+     </para>
+
+     <para>
+      Matching would often fail when the number of allowed iterations is
+      limited by a <literal>?</> quantifier or a bound expression.
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [7672bbca0] 2014-07-21 22:41:27 -0400
+Branch: REL9_2_STABLE [f54d97c5e] 2014-07-21 22:41:30 -0400
+Branch: REL9_1_STABLE [124331b61] 2014-07-21 22:41:33 -0400
+Branch: REL9_0_STABLE [6e5a39c9e] 2014-07-21 22:41:36 -0400
+-->
+
+    <listitem>
+     <para>
+      Reject out-of-range numeric timezone specifications (Tom Lane)
+     </para>
+
+     <para>
+      Simple numeric timezone specifications exceeding +/- 168 hours (one
+      week) would be accepted, but could then cause null-pointer dereference
+      crashes in certain operations.  There's no use-case for such large UTC
+      offsets, so reject them.
+     </para>
+    </listitem>
+
+<!--
+Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
+Branch: REL9_3_STABLE [1aa526f3f] 2014-10-27 10:51:29 +0200
+Branch: REL9_2_STABLE [604d94d4c] 2014-10-27 10:51:33 +0200
+Branch: REL9_1_STABLE [4d1c738d1] 2014-10-27 10:51:36 +0200
+Branch: REL9_0_STABLE [10059c2da] 2014-10-27 10:51:38 +0200
+-->
+
+    <listitem>
+     <para>
+      Fix bugs in <type>tsquery</> <literal>@&gt;</> <type>tsquery</>
+      operator (Heikki Linnakangas)
+     </para>
+
+     <para>
+      Two different terms would be considered to match if they had the same
+      CRC.  Also, if the second operand had more terms than the first, it
+      would be assumed not to be contained in the first; which is wrong
+      since it might contain duplicate terms.
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [385f0d98a] 2014-10-23 13:11:34 -0400
+Branch: REL9_2_STABLE [f09369da8] 2014-10-23 13:11:37 -0400
+Branch: REL9_1_STABLE [94de3a679] 2014-10-23 13:11:41 -0400
+Branch: REL9_0_STABLE [21fa26b65] 2014-10-23 13:11:45 -0400
+-->
+
+    <listitem>
+     <para>
+      Improve ispell dictionary's defenses against bad affix files (Tom Lane)
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [5a74ff373] 2014-11-06 20:52:52 -0500
+Branch: REL9_2_STABLE [0bb318595] 2014-11-06 20:52:57 -0500
+Branch: REL9_1_STABLE [076688084] 2014-11-06 20:53:02 -0500
+Branch: REL9_0_STABLE [39493e4d9] 2014-11-06 20:53:07 -0500
+-->
+
+    <listitem>
+     <para>
+      Allow more than 64K phrases in a thesaurus dictionary (David Boutin)
+     </para>
+
+     <para>
+      The previous coding could crash on an oversize dictionary, so this was
+      deemed a back-patchable bug fix rather than a feature addition.
+     </para>
+    </listitem>
+
+<!--
+Author: Peter Eisentraut <peter_e@gmx.net>
+Branch: master [79af9a1d2] 2015-01-06 23:06:13 -0500
+Branch: REL9_4_STABLE [6bbf75192] 2015-01-17 22:11:20 -0500
+Branch: REL9_3_STABLE [e32cb8d0e] 2015-01-17 22:13:27 -0500
+Branch: REL9_2_STABLE [c8ef5b1ac] 2015-01-17 22:14:21 -0500
+Branch: REL9_1_STABLE [c975fa471] 2015-01-17 22:37:07 -0500
+Branch: REL9_0_STABLE [cebb3f032] 2015-01-17 22:37:32 -0500
+-->
+
+    <listitem>
+     <para>
+      Fix namespace handling in <function>xpath()</> (Ali Akbar)
+     </para>
+
+     <para>
+      Previously, the <type>xml</> value resulting from
+      an <function>xpath()</> call would not have namespace declarations if
+      the namespace declarations were attached to an ancestor element in the
+      input <type>xml</> value, rather than to the specific element being
+      returned.  Propagate the ancestral declaration so that the result is
+      correct when considered in isolation.
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [07ab4ec4c] 2014-11-10 15:21:20 -0500
+Branch: REL9_2_STABLE [19ccaf9d4] 2014-11-10 15:21:26 -0500
+-->
+
+    <listitem>
+     <para>
+      Ensure that whole-row variables expose nonempty column names
+      to functions that pay attention to column names within composite
+      arguments (Tom Lane)
+     </para>
+
+     <para>
+      In some contexts, constructs like <literal>row_to_json(tab.*)</> may
+      not produce the expected column names.  This is fixed properly as of
+      9.4; in older branches, just ensure that we produce some nonempty
+      name.  (In some cases this will be the underlying table's column name
+      rather than the query-assigned alias that should theoretically be
+      visible.)
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [c57cdc9c1] 2014-11-22 16:01:12 -0500
+Branch: REL9_2_STABLE [906599f65] 2014-11-22 16:01:15 -0500
+-->
+
+    <listitem>
+     <para>
+      Fix mishandling of system columns,
+      particularly <structfield>tableoid</>, in FDW queries (Etsuro Fujita)
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master [3d660d33a] 2015-01-30 12:30:59 -0500
+Branch: REL9_4_STABLE [b6a164e5c] 2015-01-30 12:31:08 -0500
+Branch: REL9_3_STABLE [527ff8baf] 2015-01-30 12:30:43 -0500
+-->
+
+    <listitem>
+     <para>
+      Fix assorted oversights in range-operator selectivity estimation
+      (Emre Hasegeli)
+     </para>
+
+     <para>
+      This patch fixes corner-case <quote>unexpected operator NNNN</> planner
+      errors, and improves the selectivity estimates for some other cases.
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [f6abf8f08] 2014-10-26 16:12:29 -0400
+Branch: REL9_2_STABLE [4586572d7] 2014-10-26 16:12:32 -0400
+-->
+
+    <listitem>
+     <para>
+      Avoid doing <literal><replaceable>indexed_column</> = ANY
+      (<replaceable>array</>)</literal> as an index qualifier if that leads
+      to an inferior plan (Andrew Gierth)
+     </para>
+
+     <para>
+      In some cases, <literal>= ANY</> conditions applied to non-first index
+      columns would be done as index conditions even though it would be
+      better to use them as simple filter conditions.
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [4e54685d0] 2014-10-20 12:23:48 -0400
+-->
+
+    <listitem>
+     <para>
+      Fix <quote>variable not found in subplan target list</> planner
+      failure when an inline-able SQL function taking a composite argument
+      is used in a <literal>LATERAL</> subselect and the composite argument
+      is a lateral reference (Tom Lane)
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [b2b95de61] 2014-10-01 19:30:30 -0400
+Branch: REL9_2_STABLE [71b88cf52] 2014-10-01 19:30:34 -0400
+Branch: REL9_1_STABLE [477023e94] 2014-10-01 19:30:38 -0400
+Branch: REL9_0_STABLE [288f15b7c] 2014-10-01 19:30:41 -0400
+-->
+
+    <listitem>
+     <para>
+      Fix planner problems with nested append relations, such as inherited
+      tables within <literal>UNION ALL</> subqueries (Tom Lane)
+     </para>
+    </listitem>
+
+<!--
+Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
+Branch: REL9_3_STABLE [ef8ac584e] 2014-10-03 14:50:29 +0300
+Branch: REL9_2_STABLE [8e137b075] 2014-10-03 14:50:40 +0300
+Branch: REL9_1_STABLE [f270a1611] 2014-10-03 14:50:46 +0300
+Branch: REL9_0_STABLE [f04b112d5] 2014-10-03 14:50:58 +0300
+-->
+
+    <listitem>
+     <para>
+      Fail cleanly when a GiST index tuple doesn't fit on a page, rather
+      than going into infinite recursion (Andrew Gierth)
+     </para>
+    </listitem>
+
+<!--
+Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
+Branch: REL9_3_STABLE [67ed9d531] 2014-10-03 13:01:27 -0300
+Branch: REL9_2_STABLE [769d6815e] 2014-10-03 13:01:27 -0300
+Branch: REL9_1_STABLE [06646f52e] 2014-10-03 13:01:27 -0300
+Branch: REL9_0_STABLE [50a757698] 2014-10-03 13:01:27 -0300
+-->
+
+    <listitem>
+     <para>
+      Exempt tables that have per-table <varname>cost_limit</>
+      and/or <varname>cost_delay</> settings from autovacuum's global cost
+      balancing rules (&Aacute;lvaro Herrera)
+     </para>
+
+     <para>
+      The previous behavior resulted in basically ignoring these per-table
+      settings, which was unintended.  Now, a table having such settings
+      will be vacuumed using those settings, independently of what is going
+      on in other autovacuum workers.  This may result in heavier total I/O
+      load than before, so such settings should be re-examined for sanity.
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [4cbecdaaa] 2014-07-30 14:41:49 -0400
+Branch: REL9_2_STABLE [c83aed34b] 2014-07-30 14:41:53 -0400
+Branch: REL9_1_STABLE [f21afe421] 2014-07-30 14:41:58 -0400
+Branch: REL9_0_STABLE [91b4a881c] 2014-07-30 14:42:12 -0400
+-->
+
+    <listitem>
+     <para>
+      Avoid wholesale autovacuuming when autovacuum is nominally off
+      (Tom Lane)
+     </para>
+
+     <para>
+      Even when autovacuum is nominally off, we will still launch autovacuum
+      worker processes to vacuum tables that are at risk of XID wraparound.
+      However, such a worker process then proceeded to vacuum all tables in
+      the target database, if they met the usual thresholds for
+      autovacuuming.  This is at best pretty unexpected; at worst it delays
+      response to the wraparound threat.  Fix it so that if autovacuum is
+      turned off, workers <emphasis>only</> do anti-wraparound vacuums and
+      not any other work.
+     </para>
+    </listitem>
+
+<!--
+Author: Andres Freund <andres@anarazel.de>
+Branch: REL9_3_STABLE [2c3ebfd1a] 2014-11-15 01:21:07 +0100
+Branch: REL9_2_STABLE [ea8b3833e] 2014-11-15 01:21:45 +0100
+Branch: REL9_1_STABLE [d85b646d0] 2014-11-15 01:22:32 +0100
+Author: Andres Freund <andres@anarazel.de>
+Branch: REL9_3_STABLE [672b43e68] 2014-11-15 01:21:02 +0100
+Branch: REL9_2_STABLE [c5baa708f] 2014-11-15 01:21:40 +0100
+Branch: REL9_1_STABLE [fde9994bc] 2014-11-15 01:22:32 +0100
+Author: Andres Freund <andres@anarazel.de>
+Branch: REL9_3_STABLE [c7299d32f] 2014-11-15 01:20:29 +0100
+Branch: REL9_2_STABLE [86673a44a] 2014-11-15 01:21:30 +0100
+Branch: REL9_1_STABLE [b0a48e996] 2014-11-15 01:22:32 +0100
+-->
+
+    <listitem>
+     <para>
+      During crash recovery, ensure that unlogged relations are rewritten as
+      empty and are synced to disk before recovery is considered complete
+      (Abhijit Menon-Sen, Andres Freund)
+     </para>
+
+     <para>
+      This prevents scenarios in which unlogged relations might contain
+      garbage data following database crash recovery.
+     </para>
+    </listitem>
+
+<!--
+Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
+Branch: REL9_3_STABLE [861d3aa43] 2014-11-13 20:01:55 +0200
+Branch: REL9_2_STABLE [7eab804c2] 2014-11-13 20:01:18 +0200
+Branch: REL9_1_STABLE [5f1d931cf] 2014-11-13 20:01:09 +0200
+Branch: REL9_0_STABLE [681dbe7d4] 2014-11-13 20:00:51 +0200
+-->
+
+    <listitem>
+     <para>
+      Fix race condition between hot standby queries and replaying a
+      full-page image (Heikki Linnakangas)
+     </para>
+
+     <para>
+      This mistake could result in transient errors in queries being
+      executed in hot standby.
+     </para>
+    </listitem>
+
+<!--
+Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
+Branch: REL9_3_STABLE [a2a718b22] 2014-07-29 11:57:52 +0300
+Branch: REL9_2_STABLE [1578d13dc] 2014-07-29 11:58:01 +0300
+Branch: REL9_1_STABLE [de88ec6bf] 2014-07-29 11:58:09 +0300
+Branch: REL9_0_STABLE [804983961] 2014-07-29 11:58:17 +0300
+-->
+
+    <listitem>
+     <para>
+      Fix several cases where recovery logic improperly ignored WAL records
+      for <literal>COMMIT/ABORT PREPARED</> (Heikki Linnakangas)
+     </para>
+
+     <para>
+      The most notable oversight was
+      that <varname>recovery_target_xid</> could not be used to stop at
+      a two-phase commit.
+     </para>
+    </listitem>
+
+<!--
+Author: Fujii Masao <fujii@postgresql.org>
+Branch: REL9_3_STABLE [d45cd9e19] 2014-10-23 16:22:46 +0900
+Branch: REL9_2_STABLE [f904e9afd] 2014-10-23 16:31:44 +0900
+-->
+
+    <listitem>
+     <para>
+      Prevent latest WAL file from being archived a second time at completion
+      of crash recovery (Fujii Masao)
+     </para>
+    </listitem>
+
+<!--
+Author: Fujii Masao <fujii@postgresql.org>
+Branch: REL9_3_STABLE [3a3b7e316] 2014-11-06 21:25:18 +0900
+Branch: REL9_2_STABLE [38eb5d9e8] 2014-11-06 21:25:45 +0900
+Branch: REL9_1_STABLE [4e7468074] 2014-11-06 21:26:15 +0900
+Branch: REL9_0_STABLE [83c7bfb9a] 2014-11-06 21:26:21 +0900
+-->
+
+    <listitem>
+     <para>
+      Avoid creating unnecessary <filename>.ready</> marker files for
+      timeline history files (Fujii Masao)
+     </para>
+    </listitem>
+
+<!--
+Author: Fujii Masao <fujii@postgresql.org>
+Branch: REL9_3_STABLE [52eed3d42] 2014-09-05 02:19:29 +0900
+Branch: REL9_2_STABLE [78b1228ef] 2014-09-05 02:19:45 +0900
+Branch: REL9_1_STABLE [81bffe63c] 2014-09-05 02:19:50 +0900
+Branch: REL9_0_STABLE [857a5d6b5] 2014-09-05 02:19:57 +0900
+-->
+
+    <listitem>
+     <para>
+      Fix possible null pointer dereference when an empty prepared statement
+      is used and the <varname>log_statement</> setting is <literal>mod</>
+      or <literal>ddl</> (Fujii Masao)
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master [75b48e1ff] 2015-01-19 23:01:33 -0500
+Branch: REL9_4_STABLE [3387cbbcb] 2015-01-19 23:01:36 -0500
+Branch: REL9_3_STABLE [19794e997] 2015-01-19 23:01:39 -0500
+Branch: REL9_2_STABLE [33b723538] 2015-01-19 23:01:41 -0500
+Branch: REL9_1_STABLE [b87c1dcef] 2015-01-19 23:01:44 -0500
+Branch: REL9_0_STABLE [a1a8d0249] 2015-01-19 23:01:46 -0500
+-->
+
+    <listitem>
+     <para>
+      Change <quote>pgstat wait timeout</> warning message to be LOG level,
+      and rephrase it to be more understandable (Tom Lane)
+     </para>
+
+     <para>
+      This message was originally thought to be essentially a can't-happen
+      case, but it occurs often enough on our slower buildfarm members to be
+      a nuisance.  Reduce it to LOG level, and expend a bit more effort on
+      the wording: it now reads <quote>using stale statistics instead of
+      current ones because stats collector is not responding</>.
+     </para>
+    </listitem>
+
+<!--
+Author: Andres Freund <andres@anarazel.de>
+Branch: REL9_3_STABLE [cbd9619ac] 2014-10-01 14:34:06 +0200
+-->
+
+    <listitem>
+     <para>
+      Fix possible corruption of postmaster's list of dynamic background
+      workers (Andres Freund)
+     </para>
+    </listitem>
+
+<!--
+Author: Andres Freund <andres@anarazel.de>
+Branch: REL9_3_STABLE [27ef6b653] 2014-09-09 23:37:33 +0200
+Branch: REL9_2_STABLE [d0b7ffc0f] 2014-09-09 23:37:50 +0200
+Branch: REL9_1_STABLE [5af508f66] 2014-09-09 23:45:07 +0200
+Branch: REL9_0_STABLE [f25e89601] 2014-09-09 23:48:03 +0200
+-->
+
+    <listitem>
+     <para>
+      Fix SPARC spinlock implementation to ensure correctness if the CPU is
+      being run in a non-TSO coherency mode, as some non-Solaris kernels do
+      (Andres Freund)
+     </para>
+    </listitem>
+
+<!--
+Author: Noah Misch <noah@leadboat.com>
+Branch: master [894459e59] 2015-01-07 22:35:44 -0500
+Branch: REL9_4_STABLE [83fb1ca5c] 2015-01-07 22:36:35 -0500
+Branch: REL9_3_STABLE [1a366d51e] 2015-01-07 22:40:40 -0500
+Branch: REL9_2_STABLE [5ca4e444c] 2015-01-07 22:41:49 -0500
+Branch: REL9_1_STABLE [8dc83104e] 2015-01-07 22:42:42 -0500
+Branch: REL9_0_STABLE [2e4946169] 2015-01-07 22:46:20 -0500
+-->
+
+    <listitem>
+     <para>
+      Warn if macOS's <function>setlocale()</> starts an unwanted extra
+      thread inside the postmaster (Noah Misch)
+     </para>
+    </listitem>
+
+<!--
+Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
+Branch: REL9_3_STABLE [08cd4d9a6] 2014-11-25 17:39:00 +0200
+Branch: REL9_2_STABLE [9b468bcec] 2014-11-25 17:39:04 +0200
+Branch: REL9_1_STABLE [95be34362] 2014-11-25 17:39:07 +0200
+Branch: REL9_0_STABLE [9880fea4f] 2014-11-25 17:39:09 +0200
+-->
+
+    <listitem>
+     <para>
+      Fix processing of repeated <literal>dbname</> parameters
+      in <function>PQconnectdbParams()</> (Alex Shulgin)
+     </para>
+
+     <para>
+      Unexpected behavior ensued if the first occurrence
+      of <literal>dbname</> contained a connection string or URI to be
+      expanded.
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [52ef33f72] 2014-10-22 18:41:51 -0400
+Branch: REL9_2_STABLE [6fa31d8d1] 2014-10-22 18:41:54 -0400
+Branch: REL9_1_STABLE [98144378c] 2014-10-22 18:41:57 -0400
+Branch: REL9_0_STABLE [ac6e87537] 2014-10-22 18:42:01 -0400
+-->
+
+    <listitem>
+     <para>
+      Ensure that <application>libpq</> reports a suitable error message on
+      unexpected socket EOF (Marko Tiikkaja, Tom Lane)
+     </para>
+
+     <para>
+      Depending on kernel behavior, <application>libpq</> might return an
+      empty error string rather than something useful when the server
+      unexpectedly closed the socket.
+     </para>
+    </listitem>
+
+<!--
+Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
+Branch: REL9_3_STABLE [1325b239b] 2014-10-29 14:40:47 +0200
+Branch: REL9_2_STABLE [1a27fbd07] 2014-10-29 14:39:10 +0200
+Branch: REL9_1_STABLE [8f7bd8e91] 2014-10-29 14:36:19 +0200
+Branch: REL9_0_STABLE [49ef4eba2] 2014-10-29 14:35:39 +0200
+-->
+
+    <listitem>
+     <para>
+      Clear any old error message during <function>PQreset()</>
+      (Heikki Linnakangas)
+     </para>
+
+     <para>
+      If <function>PQreset()</> is called repeatedly, and the connection
+      cannot be re-established, error messages from the failed connection
+      attempts kept accumulating in the <structname>PGconn</>'s error
+      string.
+     </para>
+    </listitem>
+
+<!--
+Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
+Branch: REL9_3_STABLE [d3b162a3d] 2014-11-25 14:10:29 +0200
+Branch: REL9_2_STABLE [abcab2a64] 2014-11-25 14:10:43 +0200
+Branch: REL9_1_STABLE [5053ad206] 2014-11-25 14:10:48 +0200
+Branch: REL9_0_STABLE [1f3517039] 2014-11-25 14:10:54 +0200
+-->
+
+    <listitem>
+     <para>
+      Properly handle out-of-memory conditions while parsing connection
+      options in <application>libpq</> (Alex Shulgin, Heikki Linnakangas)
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [d3cfe20c6] 2014-10-06 21:23:35 -0400
+Branch: REL9_2_STABLE [b513205bc] 2014-10-06 21:23:39 -0400
+Branch: REL9_1_STABLE [037b912ec] 2014-10-06 21:23:45 -0400
+Branch: REL9_0_STABLE [d9a1e9de5] 2014-10-06 21:23:50 -0400
+-->
+
+    <listitem>
+     <para>
+      Fix array overrun in <application>ecpg</>'s version
+      of <function>ParseDateTime()</> (Michael Paquier)
+     </para>
+    </listitem>
+
+<!--
+Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
+Branch: REL9_3_STABLE [2df66f01a] 2014-12-05 14:31:51 +0200
+Branch: REL9_2_STABLE [2b53d583d] 2014-12-05 14:31:45 +0200
+Branch: REL9_1_STABLE [729202754] 2014-12-05 14:31:37 +0200
+Branch: REL9_0_STABLE [d67be559e] 2014-12-05 14:30:55 +0200
+-->
+
+    <listitem>
+     <para>
+      In <application>initdb</>, give a clearer error message if a password
+      file is specified but is empty (Mats Erik Andersson)
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [b0fd5c552] 2014-09-08 16:09:52 -0400
+Branch: REL9_2_STABLE [886b58b47] 2014-09-08 16:09:56 -0400
+Branch: REL9_1_STABLE [440fcc568] 2014-09-08 16:10:01 -0400
+Branch: REL9_0_STABLE [44c518328] 2014-09-08 16:10:05 -0400
+-->
+
+    <listitem>
+     <para>
+      Fix <application>psql</>'s <command>\s</> command to work nicely with
+      libedit, and add pager support (Stepan Rutz, Tom Lane)
+     </para>
+
+     <para>
+      When using libedit rather than readline, <command>\s</> printed the
+      command history in a fairly unreadable encoded format, and on recent
+      libedit versions might fail altogether.  Fix that by printing the
+      history ourselves rather than having the library do it.  A pleasant
+      side-effect is that the pager is used if appropriate.
+     </para>
+
+     <para>
+      This patch also fixes a bug that caused newline encoding to be applied
+      inconsistently when saving the command history with libedit.
+      Multiline history entries written by older <application>psql</>
+      versions will be read cleanly with this patch, but perhaps not
+      vice versa, depending on the exact libedit versions involved.
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master [28551797a] 2014-12-31 12:18:50 -0500
+Branch: REL9_4_STABLE [c35249939] 2014-12-31 12:16:57 -0500
+Branch: REL9_3_STABLE [7582cce56] 2014-12-31 12:17:00 -0500
+Branch: REL9_2_STABLE [64c506535] 2014-12-31 12:17:04 -0500
+Branch: REL9_1_STABLE [1773e0702] 2014-12-31 12:17:08 -0500
+Branch: REL9_0_STABLE [2600e4436] 2014-12-31 12:17:12 -0500
+-->
+
+    <listitem>
+     <para>
+      Improve consistency of parsing of <application>psql</>'s special
+      variables (Tom Lane)
+     </para>
+
+     <para>
+      Allow variant spellings of <literal>on</> and <literal>off</> (such
+      as <literal>1</>/<literal>0</>) for <literal>ECHO_HIDDEN</>
+      and <literal>ON_ERROR_ROLLBACK</>.  Report a warning for unrecognized
+      values for <literal>COMP_KEYWORD_CASE</>, <literal>ECHO</>,
+      <literal>ECHO_HIDDEN</>, <literal>HISTCONTROL</>,
+      <literal>ON_ERROR_ROLLBACK</>, and <literal>VERBOSITY</>.  Recognize
+      all values for all these variables case-insensitively; previously
+      there was a mishmash of case-sensitive and case-insensitive behaviors.
+     </para>
+    </listitem>
+
+<!--
+Author: Fujii Masao <fujii@postgresql.org>
+Branch: REL9_3_STABLE [4b1953079] 2014-11-28 02:44:40 +0900
+-->
+
+    <listitem>
+     <para>
+      Make <application>psql</>'s <command>\watch</> command display
+      nulls as specified by <command>\pset null</> (Fujii Masao)
+     </para>
+    </listitem>
+
+<!--
+Author: Stephen Frost <sfrost@snowman.net>
+Branch: REL9_3_STABLE [7ec399094] 2014-09-12 11:24:28 -0400
+Branch: REL9_2_STABLE [5d63f2159] 2014-09-12 11:24:32 -0400
+Branch: REL9_1_STABLE [4d96e93cb] 2014-09-12 11:24:36 -0400
+Branch: REL9_0_STABLE [1f89fc218] 2014-09-12 11:24:39 -0400
+-->
+
+    <listitem>
+     <para>
+      Fix <application>psql</>'s expanded-mode display to work
+      consistently when using <literal>border</> = 3
+      and <literal>linestyle</> = <literal>ascii</> or <literal>unicode</>
+      (Stephen Frost)
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master [adfc157dd] 2015-01-05 19:27:04 -0500
+Branch: REL9_4_STABLE [c99e41f68] 2015-01-05 19:27:06 -0500
+Branch: REL9_3_STABLE [bb1e2426b] 2015-01-05 19:27:09 -0500
+-->
+
+    <listitem>
+     <para>
+      Fix <application>pg_dump</> to handle comments on event triggers
+      without failing (Tom Lane)
+     </para>
+    </listitem>
+
+<!--
+Author: Kevin Grittner <kgrittn@postgresql.org>
+Branch: master [cff1bd2a3] 2015-01-30 08:57:24 -0600
+Branch: REL9_4_STABLE [cb0168528] 2015-01-30 08:57:53 -0600
+Branch: REL9_3_STABLE [cc609c46f] 2015-01-30 09:01:36 -0600
+-->
+
+    <listitem>
+     <para>
+      Allow parallel <application>pg_dump</> to
+      use <option>--serializable-deferrable</> (Kevin Grittner)
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [51fc61334] 2014-07-25 19:48:48 -0400
+Branch: REL9_2_STABLE [a6c567437] 2014-07-25 19:48:51 -0400
+Branch: REL9_1_STABLE [40c333c39] 2014-07-25 19:48:54 -0400
+-->
+
+    <listitem>
+     <para>
+      Improve performance of <application>pg_dump</> when the database
+      contains many instances of multiple dependency paths between the same
+      two objects (Tom Lane)
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [9fc887121] 2014-11-13 18:19:32 -0500
+Branch: REL9_2_STABLE [3c5ce5102] 2014-11-13 18:19:35 -0500
+-->
+
+    <listitem>
+     <para>
+      Fix <application>pg_dumpall</> to restore its ability to dump from
+      pre-8.1 servers (Gilles Darold)
+     </para>
+    </listitem>
+
+<!--
+Author: Robert Haas <rhaas@postgresql.org>
+Branch: REL9_3_STABLE [d72ecc91c] 2014-09-26 11:23:43 -0400
+Branch: REL9_2_STABLE [a97c8c393] 2014-09-26 11:25:57 -0400
+Branch: REL9_1_STABLE [d1844c21b] 2014-09-26 11:36:25 -0400
+Branch: REL9_0_STABLE [bbe3c069a] 2014-09-26 11:43:56 -0400
+-->
+
+    <listitem>
+     <para>
+      Fix possible deadlock during parallel restore of a schema-only dump
+      (Robert Haas, Tom Lane)
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [9a540c1ef] 2014-10-17 12:49:06 -0400
+Branch: REL9_2_STABLE [787e20bd4] 2014-10-17 12:49:09 -0400
+Branch: REL9_1_STABLE [0c9391e52] 2014-10-17 12:49:11 -0400
+Branch: REL9_0_STABLE [31021e7ba] 2014-10-17 12:49:15 -0400
+-->
+
+    <listitem>
+     <para>
+      Fix core dump in <literal>pg_dump --binary-upgrade</> on zero-column
+      composite type (Rushabh Lathia)
+     </para>
+    </listitem>
+
+<!--
+Author: Andres Freund <andres@anarazel.de>
+Branch: REL9_3_STABLE [26a4e0ed7] 2014-11-15 01:21:11 +0100
+-->
+
+    <listitem>
+     <para>
+      Fix failure to fsync tables in nondefault tablespaces
+      during <application>pg_upgrade</> (Abhijit Menon-Sen, Andres Freund)
+     </para>
+
+     <para>
+      With an operating system crash and some bad luck, this could result in
+      data loss during an upgrade.
+     </para>
+    </listitem>
+
+<!--
+Author: Bruce Momjian <bruce@momjian.us>
+Branch: REL9_3_STABLE [fca9f349b] 2014-08-07 14:56:13 -0400
+-->
+
+    <listitem>
+     <para>
+      In <application>pg_upgrade</>, cope with cases where the new cluster
+      creates a TOAST table for a table that didn't previously have one
+      (Bruce Momjian)
+     </para>
+
+     <para>
+      Previously this could result in failures due to OID conflicts.
+     </para>
+    </listitem>
+
+<!--
+Author: Bruce Momjian <bruce@momjian.us>
+Branch: REL9_3_STABLE [24ae44914] 2014-08-04 11:45:45 -0400
+-->
+
+    <listitem>
+     <para>
+      In <application>pg_upgrade</>, don't try to
+      set <literal>autovacuum_multixact_freeze_max_age</> for the old cluster
+      (Bruce Momjian)
+     </para>
+
+     <para>
+      This could result in failure because not all 9.3.X versions have that
+      parameter.  Fortunately, we don't actually need to set it at all.
+     </para>
+    </listitem>
+
+<!--
+Author: Bruce Momjian <bruce@momjian.us>
+Branch: REL9_3_STABLE [5724f491d] 2014-09-11 18:39:46 -0400
+-->
+
+    <listitem>
+     <para>
+      In <application>pg_upgrade</>, preserve the transaction ID epoch
+      (Bruce Momjian)
+     </para>
+
+     <para>
+      This oversight did not bother <productname>PostgreSQL</> proper,
+      but could confuse some external replication tools.
+     </para>
+    </listitem>
+
+<!--
+Author: Andres Freund <andres@anarazel.de>
+Branch: master [2c0a48589] 2015-01-03 20:54:12 +0100
+Branch: REL9_4_STABLE [90e4a2bf9] 2015-01-03 20:54:13 +0100
+Branch: REL9_3_STABLE [f6cea4502] 2015-01-03 20:54:13 +0100
+Branch: REL9_2_STABLE [f961ad479] 2015-01-03 20:54:13 +0100
+Branch: REL9_1_STABLE [2a0bfa4d6] 2015-01-03 20:54:13 +0100
+-->
+
+    <listitem>
+     <para>
+      Prevent WAL files created by <literal>pg_basebackup -x/-X</> from
+      being archived again when the standby is promoted (Andres Freund)
+     </para>
+    </listitem>
+
+<!--
+Author: Fujii Masao <fujii@postgresql.org>
+Branch: REL9_3_STABLE [9747a9898] 2014-08-02 15:19:45 +0900
+-->
+
+    <listitem>
+     <para>
+      Fix memory leak in <application>pg_receivexlog</> (Fujii Masao)
+     </para>
+    </listitem>
+
+<!--
+Author: Fujii Masao <fujii@postgresql.org>
+Branch: REL9_3_STABLE [39217ce41] 2014-08-02 14:59:10 +0900
+-->
+
+    <listitem>
+     <para>
+      Fix unintended suppression of <application>pg_receivexlog</> verbose
+      messages (Fujii Masao)
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [9474c9d81] 2014-09-19 13:19:02 -0400
+Branch: REL9_2_STABLE [5ff8c2d7d] 2014-09-19 13:19:05 -0400
+-->
+
+    <listitem>
+     <para>
+      Fix failure of <filename>contrib/auto_explain</> to print per-node
+      timing information when doing <command>EXPLAIN ANALYZE</> (Tom Lane)
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [0ad403c98] 2014-08-28 18:21:14 -0400
+Branch: REL9_2_STABLE [f3998521f] 2014-08-28 18:21:17 -0400
+Branch: REL9_1_STABLE [9807c8220] 2014-08-28 18:21:20 -0400
+-->
+
+    <listitem>
+     <para>
+      Fix upgrade-from-unpackaged script for <filename>contrib/citext</>
+      (Tom Lane)
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [f44290b7b] 2014-11-04 16:54:59 -0500
+-->
+
+    <listitem>
+     <para>
+      Avoid integer overflow and buffer overrun
+      in <filename>contrib/hstore</>'s <function>hstore_to_json()</>
+      (Heikki Linnakangas)
+     </para>
+    </listitem>
+
+<!--
+Author: Andrew Dunstan <andrew@dunslane.net>
+Branch: REL9_3_STABLE [55c880797] 2014-12-01 11:44:48 -0500
+-->
+
+    <listitem>
+     <para>
+      Fix recognition of numbers in <function>hstore_to_json_loose()</>,
+      so that JSON numbers and strings are correctly distinguished
+      (Andrew Dunstan)
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [f59c8eff7] 2014-07-22 11:45:53 -0400
+Branch: REL9_2_STABLE [810f0d2a2] 2014-07-22 11:45:57 -0400
+Branch: REL9_1_STABLE [3c5232ae8] 2014-07-22 11:46:00 -0400
+Branch: REL9_0_STABLE [9dc2a3fd0] 2014-07-22 11:46:04 -0400
+-->
+
+    <listitem>
+     <para>
+      Fix block number checking
+      in <filename>contrib/pageinspect</>'s <function>get_raw_page()</>
+      (Tom Lane)
+     </para>
+
+     <para>
+      The incorrect checking logic could prevent access to some pages in
+      non-main relation forks.
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [419de696a] 2014-11-11 17:22:38 -0500
+Branch: REL9_2_STABLE [4a9710e6e] 2014-11-11 17:22:44 -0500
+Branch: REL9_1_STABLE [4ddd9e72f] 2014-11-11 17:22:51 -0500
+Branch: REL9_0_STABLE [ef5a3b957] 2014-11-11 17:22:58 -0500
+-->
+
+    <listitem>
+     <para>
+      Fix <filename>contrib/pgcrypto</>'s <function>pgp_sym_decrypt()</>
+      to not fail on messages whose length is 6 less than a power of 2
+      (Marko Tiikkaja)
+     </para>
+    </listitem>
+
+<!--
+Author: Robert Haas <rhaas@postgresql.org>
+Branch: REL9_3_STABLE [8cf825974] 2014-11-19 12:14:22 -0500
+Branch: REL9_2_STABLE [57ce74661] 2014-11-19 12:20:47 -0500
+Branch: REL9_1_STABLE [a855c90a7] 2014-11-19 12:26:06 -0500
+-->
+
+    <listitem>
+     <para>
+      Fix file descriptor leak in <filename>contrib/pg_test_fsync</>
+      (Jeff Janes)
+     </para>
+
+     <para>
+      This could cause failure to remove temporary files on Windows.
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master [37507962c] 2015-01-29 20:18:33 -0500
+Branch: REL9_4_STABLE [202621d04] 2015-01-29 20:18:37 -0500
+Branch: REL9_3_STABLE [53ae24692] 2015-01-29 20:18:40 -0500
+Branch: REL9_2_STABLE [66cc74680] 2015-01-29 20:18:42 -0500
+Branch: REL9_1_STABLE [290c2daad] 2015-01-29 20:18:44 -0500
+Branch: REL9_0_STABLE [dc9a506e6] 2015-01-29 20:18:46 -0500
+-->
+
+    <listitem>
+     <para>
+      Handle unexpected query results, especially NULLs, safely in
+      <filename>contrib/tablefunc</>'s <function>connectby()</>
+      (Michael Paquier)
+     </para>
+
+     <para>
+      <function>connectby()</> previously crashed if it encountered a NULL
+      key value.  It now prints that row but doesn't recurse further.
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [c393847a1] 2014-11-27 11:12:51 -0500
+Branch: REL9_2_STABLE [a1cd04cd0] 2014-11-27 11:12:55 -0500
+Branch: REL9_1_STABLE [168636a99] 2014-11-27 11:12:59 -0500
+Branch: REL9_0_STABLE [6a694bbab] 2014-11-27 11:13:03 -0500
+-->
+
+    <listitem>
+     <para>
+      Avoid a possible crash in <filename>contrib/xml2</>'s
+      <function>xslt_process()</> (Mark Simonetti)
+     </para>
+
+     <para>
+      <application>libxslt</> seems to have an undocumented dependency on
+      the order in which resources are freed; reorder our calls to avoid a
+      crash.
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [0247935c7] 2014-11-05 11:34:19 -0500
+Branch: REL9_2_STABLE [0ef754cad] 2014-11-05 11:34:22 -0500
+Branch: REL9_1_STABLE [7225abf00] 2014-11-05 11:34:25 -0500
+-->
+
+    <listitem>
+     <para>
+      Mark some <filename>contrib</> I/O functions with correct volatility
+      properties (Tom Lane)
+     </para>
+
+     <para>
+      The previous over-conservative marking was immaterial in normal use,
+      but could cause optimization problems or rejection of valid index
+      expression definitions.  Since the consequences are not large, we've
+      just adjusted the function definitions in the extension modules'
+      scripts, without changing version numbers.
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master [a59ee8819] 2015-01-30 13:05:30 -0500
+Branch: REL9_4_STABLE [70da7aeba] 2015-01-30 13:04:59 -0500
+Branch: REL9_3_STABLE [f08cf8ad9] 2015-01-30 13:05:01 -0500
+Branch: REL9_2_STABLE [a97dfdfd9] 2015-01-30 13:05:04 -0500
+Branch: REL9_1_STABLE [8f51c432c] 2015-01-30 13:05:07 -0500
+Branch: REL9_0_STABLE [7c41a32b3] 2015-01-30 13:05:09 -0500
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [8824bae87] 2014-11-18 13:28:13 -0500
+Author: Robert Haas <rhaas@postgresql.org>
+Branch: master [0b49642b9] 2015-01-15 09:26:03 -0500
+Branch: REL9_4_STABLE [7b65f194e] 2015-01-15 09:29:41 -0500
+Branch: REL9_3_STABLE [ebbef4f39] 2015-01-15 09:29:55 -0500
+Branch: REL9_2_STABLE [d452bfd1b] 2015-01-15 09:42:21 -0500
+Branch: REL9_1_STABLE [151fb75b0] 2015-01-15 09:42:33 -0500
+Branch: REL9_0_STABLE [0a67c0018] 2015-01-15 09:42:47 -0500
+Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
+Branch: master [e37d474f9] 2015-01-13 14:33:05 +0200
+Branch: REL9_4_STABLE [4ebb3494e] 2015-01-13 16:01:04 +0200
+Author: Andres Freund <andres@anarazel.de>
+Branch: master [8cadeb792] 2015-01-04 15:44:49 +0100
+Branch: REL9_4_STABLE [7ced1b6c5] 2015-01-04 15:52:52 +0100
+Branch: REL9_3_STABLE [a68b8aec7] 2015-01-04 15:53:08 +0100
+Branch: REL9_2_STABLE [6f9b84a40] 2015-01-04 15:55:00 +0100
+Author: Andres Freund <andres@anarazel.de>
+Branch: master [58bc4747b] 2015-01-04 15:35:46 +0100
+Branch: REL9_4_STABLE [2d8411a0a] 2015-01-04 15:35:46 +0100
+Branch: REL9_3_STABLE [d33f36f16] 2015-01-04 15:35:47 +0100
+Branch: REL9_2_STABLE [029e41afd] 2015-01-04 15:35:47 +0100
+Branch: REL9_1_STABLE [39cdf365a] 2015-01-04 15:35:47 +0100
+Branch: REL9_0_STABLE [17797e18d] 2015-01-04 15:35:48 +0100
+Author: Andres Freund <andres@anarazel.de>
+Branch: master [0398ece4c] 2015-01-04 14:36:21 +0100
+Branch: REL9_4_STABLE [ff7d46b85] 2015-01-04 14:36:21 +0100
+Branch: REL9_3_STABLE [ec14f1601] 2015-01-04 14:36:22 +0100
+Branch: REL9_2_STABLE [f4060db11] 2015-01-04 14:36:22 +0100
+Author: Tatsuo Ishii <ishii@postgresql.org>
+Branch: master [3b5a89c48] 2014-12-30 20:33:01 +0900
+Branch: REL9_4_STABLE [458e8bc65] 2014-12-30 20:27:26 +0900
+Branch: REL9_3_STABLE [ed0e03283] 2014-12-30 20:20:56 +0900
+Branch: REL9_2_STABLE [4db7eaae0] 2014-12-30 19:59:26 +0900
+Branch: REL9_1_STABLE [4c136b0b6] 2014-12-30 19:48:53 +0900
+Branch: REL9_0_STABLE [9b74f3574] 2014-12-30 19:37:55 +0900
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master [66709133c] 2014-12-16 15:35:33 -0500
+Branch: REL9_4_STABLE [383d224a0] 2014-12-16 15:35:36 -0500
+Branch: REL9_3_STABLE [53960e7eb] 2014-12-16 15:35:40 -0500
+Branch: REL9_2_STABLE [e92c67ddc] 2014-12-16 15:35:43 -0500
+Branch: REL9_1_STABLE [5c784d96a] 2014-12-16 15:35:46 -0500
+Branch: REL9_0_STABLE [a2969bd72] 2014-12-16 15:35:49 -0500
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master [d38e8d30c] 2014-12-16 13:31:42 -0500
+Branch: REL9_4_STABLE [6c75384ee] 2014-12-16 13:31:57 -0500
+Branch: REL9_3_STABLE [3b750ec15] 2014-12-16 13:32:02 -0500
+Branch: REL9_2_STABLE [5b2c8f04a] 2014-12-16 13:32:15 -0500
+Branch: REL9_1_STABLE [926da211a] 2014-12-16 13:32:25 -0500
+Branch: REL9_0_STABLE [961df1853] 2014-12-16 13:32:38 -0500
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master [586dd5d6a] 2015-01-24 13:05:42 -0500
+Branch: REL9_4_STABLE [d51d4ff31] 2015-01-24 13:05:45 -0500
+Branch: REL9_3_STABLE [7240f9200] 2015-01-24 13:05:49 -0500
+Branch: REL9_2_STABLE [502e5f9c3] 2015-01-24 13:05:53 -0500
+Branch: REL9_1_STABLE [b00a08859] 2015-01-24 13:05:56 -0500
+Branch: REL9_0_STABLE [3a3ee655c] 2015-01-24 13:05:58 -0500
+-->
+
+    <listitem>
+     <para>
+      Numerous cleanups of warnings from Coverity static code analyzer
+      (Andres Freund, Tatsuo Ishii, Marko Kreen, Tom Lane, Michael Paquier)
+     </para>
+
+     <para>
+      These changes are mostly cosmetic but in some cases fix corner-case
+      bugs, for example a crash rather than a proper error report after an
+      out-of-memory failure.  None are believed to represent security
+      issues.
+     </para>
+    </listitem>
+
+<!--
+Author: Robert Haas <rhaas@postgresql.org>
+Branch: REL9_3_STABLE [05c0059b3] 2014-07-30 12:10:20 -0400
+-->
+
+    <listitem>
+     <para>
+      Fix setup of background workers in EXEC_BACKEND builds, eg Windows
+      (Robert Haas)
+     </para>
+    </listitem>
+
+<!--
+Author: Noah Misch <noah@leadboat.com>
+Branch: REL9_3_STABLE [07115248f] 2014-07-22 11:01:41 -0400
+Branch: REL9_2_STABLE [cec0c2182] 2014-07-22 11:01:51 -0400
+Branch: REL9_1_STABLE [81af4185a] 2014-07-22 11:02:00 -0400
+Branch: REL9_0_STABLE [4c6d0abde] 2014-07-22 11:02:25 -0400
+-->
+
+    <listitem>
+     <para>
+      Detect incompatible OpenLDAP versions during build (Noah Misch)
+     </para>
+
+     <para>
+      With OpenLDAP versions 2.4.24 through 2.4.31,
+      inclusive, <productname>PostgreSQL</> backends can crash at exit.
+      Raise a warning during <application>configure</> based on the
+      compile-time OpenLDAP version number, and test the crashing scenario
+      in the <filename>contrib/dblink</> regression test.
+     </para>
+    </listitem>
+
+<!--
+Author: Noah Misch <noah@leadboat.com>
+Branch: REL9_3_STABLE [318fe2321] 2014-08-18 23:01:04 -0400
+Branch: REL9_2_STABLE [ebd4d9cdd] 2014-08-18 23:01:09 -0400
+Branch: REL9_1_STABLE [ba72fc054] 2014-08-18 23:01:13 -0400
+Branch: REL9_0_STABLE [e6841c4d6] 2014-08-18 23:01:23 -0400
+-->
+
+    <listitem>
+     <para>
+      In non-MSVC Windows builds, ensure <filename>libpq.dll</> is installed
+      with execute permissions (Noah Misch)
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master [aa719391d] 2015-01-19 23:44:19 -0500
+Branch: REL9_4_STABLE [3de9f22ac] 2015-01-19 23:44:22 -0500
+Branch: REL9_3_STABLE [1681e2f74] 2015-01-19 23:44:24 -0500
+Branch: REL9_2_STABLE [89b6a19e1] 2015-01-19 23:44:28 -0500
+Branch: REL9_1_STABLE [f4f522deb] 2015-01-19 23:44:30 -0500
+Branch: REL9_0_STABLE [338ff75fc] 2015-01-19 23:44:33 -0500
+-->
+
+    <listitem>
+     <para>
+      Make <application>pg_regress</> remove any temporary installation it
+      created upon successful exit (Tom Lane)
+     </para>
+
+     <para>
+      This results in a very substantial reduction in disk space usage
+      during <literal>make check-world</>, since that sequence involves
+      creation of numerous temporary installations.
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [137e7c164] 2014-10-16 15:22:17 -0400
+Branch: REL9_2_STABLE [7c67b9365] 2014-10-16 15:22:20 -0400
+Branch: REL9_1_STABLE [2784b68b3] 2014-10-16 15:22:23 -0400
+Branch: REL9_0_STABLE [870a980aa] 2014-10-16 15:22:26 -0400
+-->
+
+    <listitem>
+     <para>
+      Support time zone abbreviations that change UTC offset from time to
+      time (Tom Lane)
+     </para>
+
+     <para>
+      Previously, <productname>PostgreSQL</> assumed that the UTC offset
+      associated with a time zone abbreviation (such as <literal>EST</>)
+      never changes in the usage of any particular locale.  However this
+      assumption fails in the real world, so introduce the ability for a
+      zone abbreviation to represent a UTC offset that sometimes changes.
+      Update the zone abbreviation definition files to make use of this
+      feature in timezone locales that have changed the UTC offset of their
+      abbreviations since 1970 (according to the IANA timezone database).
+      In such timezones, <productname>PostgreSQL</> will now associate the
+      correct UTC offset with the abbreviation depending on the given date.
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [9701f238b] 2014-10-03 17:44:56 -0400
+Branch: REL9_2_STABLE [d7d546bbc] 2014-10-03 17:44:59 -0400
+Branch: REL9_1_STABLE [252af79d9] 2014-10-03 17:45:03 -0400
+Branch: REL9_0_STABLE [cc7bad30c] 2014-10-03 17:45:07 -0400
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [0190f0a76] 2014-12-24 16:35:40 -0500
+Branch: REL9_2_STABLE [5c8665892] 2014-12-24 16:35:44 -0500
+Branch: REL9_1_STABLE [310597e31] 2014-12-24 16:35:48 -0500
+Branch: REL9_0_STABLE [8b70023af] 2014-12-24 16:35:54 -0500
+-->
+
+    <listitem>
+     <para>
+      Update time zone abbreviations lists (Tom Lane)
+     </para>
+
+     <para>
+      Add CST (China Standard Time) to our lists.
+      Remove references to ADT as <quote>Arabia Daylight Time</>, an
+      abbreviation that's been out of use since 2007; therefore, claiming
+      there is a conflict with <quote>Atlantic Daylight Time</> doesn't seem
+      especially helpful.
+      Fix entirely incorrect GMT offsets for CKT (Cook Islands), FJT, and FJST
+      (Fiji); we didn't even have them on the proper side of the date line.
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [8470cd473] 2015-01-30 22:46:05 -0500
+Branch: REL9_2_STABLE [c9048d353] 2015-01-30 22:46:12 -0500
+Branch: REL9_1_STABLE [cb24cd3f4] 2015-01-30 22:46:17 -0500
+Branch: REL9_0_STABLE [3553d9c6e] 2015-01-30 22:46:22 -0500
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [ab45d907b] 2014-11-17 12:08:25 -0500
+Branch: REL9_2_STABLE [b1e996035] 2014-11-17 12:08:32 -0500
+Branch: REL9_1_STABLE [b96c47a3d] 2014-11-17 12:08:39 -0500
+Branch: REL9_0_STABLE [92979576e] 2014-11-17 12:08:46 -0500
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [c66199151] 2014-10-04 14:18:33 -0400
+Branch: REL9_2_STABLE [8f75d7a25] 2014-10-04 14:18:36 -0400
+Branch: REL9_1_STABLE [745723c9e] 2014-10-04 14:18:39 -0400
+Branch: REL9_0_STABLE [b6391f587] 2014-10-04 14:18:43 -0400
+-->
+
+    <listitem>
+     <para>
+      Update time zone data files to <application>tzdata</> release 2015a.
+     </para>
+
+     <para>
+      The IANA timezone database has adopted abbreviations of the form
+      <literal>A<replaceable>x</>ST</literal>/<literal>A<replaceable>x</>DT</literal>
+      for all Australian time zones, reflecting what they believe to be
+      current majority practice Down Under.  These names do not conflict
+      with usage elsewhere (other than ACST for Acre Summer Time, which has
+      been in disuse since 1994).  Accordingly, adopt these names into
+      our <quote>Default</> timezone abbreviation set.
+      The <quote>Australia</> abbreviation set now contains only CST, EAST,
+      EST, SAST, SAT, and WST, all of which are thought to be mostly
+      historical usage.  Note that SAST has also been changed to be South
+      Africa Standard Time in the <quote>Default</> abbreviation set.
+     </para>
+
+     <para>
+      Also, add zone abbreviations SRET (Asia/Srednekolymsk) and XJT
+      (Asia/Urumqi), and use WSST/WSDT for western Samoa.  Also, there were
+      DST law changes in Chile, Mexico, the Turks &amp; Caicos Islands
+      (America/Grand_Turk), and Fiji.  There is a new zone
+      Pacific/Bougainville for portions of Papua New Guinea.  Also, numerous
+      corrections for historical (pre-1970) time zone data.
+     </para>
+    </listitem>
+
+   </itemizedlist>
+
+  </sect2>
+ </sect1>
+
+ <sect1 id="release-9-3-5">
+  <title>Release 9.3.5</title>
+
+  <note>
+  <title>Release Date</title>
+  <simpara>2014-07-24</simpara>
+  </note>
+
+  <para>
+   This release contains a variety of fixes from 9.3.4.
+   For information about new features in the 9.3 major release, see
+   <xref linkend="release-9-3">.
+  </para>
+
+  <sect2>
+   <title>Migration to Version 9.3.5</title>
+
+   <para>
+    A dump/restore is not required for those running 9.3.X.
+   </para>
+
+   <para>
+    However, this release corrects a logic error
+    in <application>pg_upgrade</>, as well as an index corruption problem in
+    some GiST indexes.  See the first two changelog entries below to find out
+    whether your installation has been affected and what steps you should take
+    if so.
+   </para>
+
+   <para>
+    Also, if you are upgrading from a version earlier than 9.3.4,
+    see <xref linkend="release-9-3-4">.
+   </para>
+
+  </sect2>
+
+  <sect2>
+   <title>Changes</title>
+
+   <itemizedlist>
+
+<!--
+Author: Bruce Momjian <bruce@momjian.us>
+Branch: master [0f7482733] 2014-06-24 16:11:06 -0400
+Branch: REL9_4_STABLE [dd5369047] 2014-06-24 16:11:06 -0400
+Branch: REL9_3_STABLE [cc5841809] 2014-06-24 16:11:06 -0400
+-->
+
+    <listitem>
+     <para>
+      In <application>pg_upgrade</>, remove <filename>pg_multixact</> files
+      left behind by <application>initdb</> (Bruce Momjian)
+     </para>
+
+     <para>
+      If you used a pre-9.3.5 version of <application>pg_upgrade</> to
+      upgrade a database cluster to 9.3, it might have left behind a file
+      <filename>$PGDATA/pg_multixact/offsets/0000</> that should not be
+      there and will eventually cause problems in <command>VACUUM</>.
+      <emphasis>However, in common cases this file is actually valid and
+      must not be removed.</emphasis>
+      To determine whether your installation has this problem, run this
+      query as superuser, in any database of the cluster:
+<programlisting>
+WITH list(file) AS (SELECT * FROM pg_ls_dir('pg_multixact/offsets'))
+SELECT EXISTS (SELECT * FROM list WHERE file = '0000') AND
+       NOT EXISTS (SELECT * FROM list WHERE file = '0001') AND
+       NOT EXISTS (SELECT * FROM list WHERE file = 'FFFF') AND
+       EXISTS (SELECT * FROM list WHERE file != '0000')
+       AS file_0000_removal_required;
+</programlisting>
+      If this query returns <literal>t</>, manually remove the file
+      <filename>$PGDATA/pg_multixact/offsets/0000</>.
+      Do nothing if the query returns <literal>f</>.
+     </para>
+    </listitem>
+
+<!--
+Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
+Branch: master Release: REL9_4_BR [540ac7cea] 2014-05-13 15:15:13 +0300
+Branch: REL9_3_STABLE [d5b912c90] 2014-05-13 15:27:14 +0300
+Branch: REL9_2_STABLE [0d8d0d027] 2014-05-13 15:27:21 +0300
+Branch: REL9_1_STABLE [1913d0f28] 2014-05-13 15:27:28 +0300
+Branch: REL9_0_STABLE [c87c43f08] 2014-05-13 15:27:36 +0300
+Branch: REL8_4_STABLE [e31d77c96] 2014-05-13 15:27:43 +0300
+-->
+
+    <listitem>
+     <para>
+      Correctly initialize padding bytes in <filename>contrib/btree_gist</>
+      indexes on <type>bit</> columns (Heikki Linnakangas)
+     </para>
+
+     <para>
+      This error could result in incorrect query results due to values that
+      should compare equal not being seen as equal.
+      Users with GiST indexes on <type>bit</> or <type>bit varying</>
+      columns should <command>REINDEX</> those indexes after installing this
+      update.
+     </para>
+    </listitem>
+
+<!--
+Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
+Branch: master Release: REL9_4_BR [4f7bb4b2a] 2014-05-08 14:50:22 +0300
+Branch: REL9_3_STABLE [34572920c] 2014-05-08 14:43:04 +0300
+Branch: REL9_2_STABLE [31633f992] 2014-05-08 14:43:39 +0300
+Branch: REL9_1_STABLE [686a7194e] 2014-05-08 14:43:58 +0300
+Branch: REL9_0_STABLE [8b4efe1f3] 2014-05-08 14:44:06 +0300
+Branch: REL8_4_STABLE [be7830596] 2014-05-08 14:46:43 +0300
+-->
+
+    <listitem>
+     <para>
+      Protect against torn pages when deleting GIN list pages (Heikki
+      Linnakangas)
+     </para>
+
+     <para>
+      This fix prevents possible index corruption if a system crash occurs
+      while the page update is being written to disk.
+     </para>
+    </listitem>
+
+<!--
+Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
+Branch: master Release: REL9_4_BR [7ca32e255] 2014-04-08 14:51:40 +0300
+Branch: REL9_3_STABLE [601c01e08] 2014-04-08 14:51:49 +0300
+Branch: REL9_2_STABLE [02b9fd73e] 2014-04-08 14:51:56 +0300
+Branch: REL9_1_STABLE [ac0078c1d] 2014-04-08 14:52:01 +0300
+Branch: REL9_0_STABLE [d034e9b3b] 2014-04-08 14:52:07 +0300
+-->
+
+    <listitem>
+     <para>
+      Don't clear the right-link of a GiST index page while replaying
+      updates from WAL (Heikki Linnakangas)
+     </para>
+
+     <para>
+      This error could lead to transiently wrong answers from GiST index
+      scans performed in Hot Standby.
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master Release: REL9_4_BR [c170655cc] 2014-06-09 16:31:11 -0400
+Branch: REL9_3_STABLE [717c116f1] 2014-06-09 16:31:16 -0400
+Branch: REL9_2_STABLE [93328b2df] 2014-06-09 16:30:46 -0400
+-->
+
+    <listitem>
+     <para>
+      Fix corner-case infinite loop during insertion into an SP-GiST text
+      index (Tom Lane)
+     </para>
+    </listitem>
+
+<!--
+Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
+Branch: master [1264ef31a] 2014-07-16 09:19:06 +0300
+Branch: REL9_4_STABLE [9b3ef66af] 2014-07-16 09:20:20 +0300
+Branch: REL9_3_STABLE [a4867d041] 2014-07-16 09:20:31 +0300
+-->
+
+    <listitem>
+     <para>
+      Fix incorrect answers from SP-GiST index searches
+      with <literal>-|-</literal> (range adjacency) operator
+      (Heikki Linnakangas)
+     </para>
+    </listitem>
+
+<!--
+Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
+Branch: master Release: REL9_4_BR [b0b263baa] 2014-06-09 15:17:23 -0400
+Branch: REL9_3_STABLE [167a2535f] 2014-06-09 15:17:23 -0400
+-->
+
+    <listitem>
+     <para>
+      Fix wraparound handling for <filename>pg_multixact/members</>
+      (&Aacute;lvaro Herrera)
+     </para>
+    </listitem>
+
+<!--
+Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
+Branch: master [f741300c9] 2014-06-27 14:43:53 -0400
+Branch: REL9_4_STABLE [56f86bb76] 2014-06-27 14:43:52 -0400
+Branch: REL9_3_STABLE [9a28c3752] 2014-06-27 14:43:52 -0400
+-->
+
+    <listitem>
+     <para>
+      Truncate <structname>pg_multixact</> during checkpoints, not
+      during <command>VACUUM</> (&Aacute;lvaro Herrera)
+     </para>
+
+     <para>
+      This change ensures that <structname>pg_multixact</> segments can't be
+      removed if they'd still be needed during WAL replay after a crash.
+     </para>
+    </listitem>
+
+<!--
+Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
+Branch: master Release: REL9_4_BR [2a8e1ac59] 2014-04-17 17:47:50 +0300
+Branch: REL9_3_STABLE [95aa823eb] 2014-04-17 17:47:58 +0300
+-->
+
+    <listitem>
+     <para>
+      Fix possible inconsistency of all-visible flags after WAL recovery
+      (Heikki Linnakangas)
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master Release: REL9_4_BR [0f928a85e] 2014-05-05 14:43:39 -0400
+Branch: REL9_3_STABLE [4f4ef042f] 2014-05-05 14:43:42 -0400
+Branch: REL9_2_STABLE [c8fbeeb45] 2014-05-05 14:43:46 -0400
+Branch: REL9_1_STABLE [2f4ee3a2f] 2014-05-05 14:43:49 -0400
+Branch: REL9_0_STABLE [7d5b68621] 2014-05-05 14:43:52 -0400
+Branch: REL8_4_STABLE [3ada1fab8] 2014-05-05 14:43:55 -0400
+-->
+
+    <listitem>
+     <para>
+      Fix possibly-incorrect cache invalidation during nested calls
+      to <function>ReceiveSharedInvalidMessages</> (Andres Freund)
+     </para>
+    </listitem>
+
+<!--
+Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
+Branch: master Release: REL9_4_BR [1a917ae86] 2014-04-24 15:41:55 -0300
+Branch: REL9_3_STABLE [c0bd128c8] 2014-04-24 15:41:55 -0300
+-->
+
+    <listitem>
+     <para>
+      Fix race condition when updating a tuple concurrently locked by
+      another process (Andres Freund, &Aacute;lvaro Herrera)
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: REL9_3_STABLE [a2db7b7d0] 2014-06-26 10:41:59 -0700
+Branch: REL9_2_STABLE [0cf16686b] 2014-06-26 10:42:03 -0700
+Branch: REL9_1_STABLE [555d0b200] 2014-06-26 10:42:08 -0700
+-->
+
+    <listitem>
+     <para>
+      Fix <quote>could not find pathkey item to sort</> planner failures
+      with <literal>UNION ALL</> over subqueries reading from tables with
+      inheritance children (Tom Lane)
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master [9e2f2d7a0] 2014-07-08 14:03:56 -0400
+Branch: REL9_4_STABLE [ac45aa1dd] 2014-07-08 14:03:45 -0400
+Branch: REL9_3_STABLE [6d36aee5b] 2014-07-08 14:03:19 -0400
+Branch: REL9_2_STABLE [189bd09cb] 2014-07-08 14:03:23 -0400
+Branch: REL9_1_STABLE [fa21a760b] 2014-07-08 14:03:26 -0400
+Branch: REL9_0_STABLE [2865d5952] 2014-07-08 14:03:30 -0400
+Branch: REL8_4_STABLE [2e7469dc8] 2014-07-08 14:03:32 -0400
+-->
+
+    <listitem>
+     <para>
+      Don't assume a subquery's output is unique if there's a set-returning
+      function in its targetlist (David Rowley)
+     </para>
+
+     <para>
+      This oversight could lead to misoptimization of constructs
+      like <literal>WHERE x IN (SELECT y, generate_series(1,10) FROM t GROUP
+      BY y)</literal>.
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master Release: REL9_4_BR [95811032d] 2014-04-29 13:12:46 -0400
+Branch: REL9_3_STABLE [150a44e83] 2014-04-29 13:12:29 -0400
+Branch: REL9_2_STABLE [0901dbab3] 2014-04-29 13:12:33 -0400
+-->
+
+    <listitem>
+     <para>
+      Improve planner to drop constant-NULL inputs
+      of <literal>AND</>/<literal>OR</> when possible (Tom Lane)
+     </para>
+
+     <para>
+      This change fixes some cases where the more aggressive parameter
+      substitution done by 9.2 and later can lead to a worse plan than
+      older versions produced.
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master Release: REL9_4_BR [c7b353959] 2014-04-03 22:02:24 -0400
+Branch: REL9_3_STABLE [d359f71ac] 2014-04-03 22:02:27 -0400
+-->
+
+    <listitem>
+     <para>
+      Ensure that the planner sees equivalent <literal>VARIADIC</> and
+      non-<literal>VARIADIC</> function calls as equivalent (Tom Lane)
+     </para>
+
+     <para>
+      This bug could for example result in failure to use expression indexes
+      involving variadic functions.  It might be necessary to re-create such
+      indexes, and/or re-create views including variadic function calls that
+      should match the indexes, for the fix to be effective for existing 9.3
+      installations.
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master [57d8c1270] 2014-06-24 21:22:40 -0700
+Branch: REL9_4_STABLE [a331512de] 2014-06-24 21:22:43 -0700
+Branch: REL9_3_STABLE [a1fc36495] 2014-06-24 21:22:47 -0700
+-->
+
+    <listitem>
+     <para>
+      Fix handling of nested <type>JSON</> objects
+      in <function>json_populate_recordset()</> and friends
+      (Michael Paquier, Tom Lane)
+     </para>
+
+     <para>
+      A nested <type>JSON</> object could result in previous fields of the
+      parent object not being shown in the output.
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master Release: REL9_4_BR [0ca6bda8e] 2014-05-09 12:55:31 -0400
+Branch: REL9_3_STABLE [13c679995] 2014-05-09 12:55:03 -0400
+Branch: REL9_2_STABLE [25c933c5c] 2014-05-09 12:55:06 -0400
+-->
+
+    <listitem>
+     <para>
+      Fix identification of input type category in <function>to_json()</>
+      and friends (Tom Lane)
+     </para>
+
+     <para>
+      This is known to have led to inadequate quoting of <type>money</>
+      fields in the <type>JSON</> result, and there may have been wrong
+      results for other data types as well.
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master Release: REL9_4_BR [3f8c8e3c6] 2014-05-01 15:19:06 -0400
+Branch: REL9_3_STABLE [b72e90bc3] 2014-05-01 15:19:10 -0400
+Branch: REL9_2_STABLE [8c43980a1] 2014-05-01 15:19:14 -0400
+Branch: REL9_1_STABLE [db1fdc945] 2014-05-01 15:19:17 -0400
+Branch: REL9_0_STABLE [7a4f114f3] 2014-05-01 15:19:20 -0400
+Branch: REL8_4_STABLE [70debcf09] 2014-05-01 15:19:23 -0400
+-->
+
+    <listitem>
+     <para>
+      Fix failure to detoast fields in composite elements of structured
+      types (Tom Lane)
+     </para>
+
+     <para>
+      This corrects cases where TOAST pointers could be copied into other
+      tables without being dereferenced.  If the original data is later
+      deleted, it would lead to errors like <quote>missing chunk number 0
+      for toast value ...</> when the now-dangling pointer is used.
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master [d68581483] 2014-07-11 19:12:35 -0400
+Branch: REL9_4_STABLE [f280eff94] 2014-07-11 19:12:38 -0400
+Branch: REL9_3_STABLE [b77e6b959] 2014-07-11 19:12:42 -0400
+Branch: REL9_2_STABLE [261f954e7] 2014-07-11 19:12:45 -0400
+Branch: REL9_1_STABLE [c45841f9e] 2014-07-11 19:12:48 -0400
+Branch: REL9_0_STABLE [cd8ba91a0] 2014-07-11 19:12:51 -0400
+Branch: REL8_4_STABLE [a81fbcfb3] 2014-07-11 19:12:56 -0400
+-->
+
+    <listitem>
+     <para>
+      Fix <quote>record type has not been registered</> failures with
+      whole-row references to the output of Append plan nodes (Tom Lane)
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master Release: REL9_4_BR [04e5025be] 2014-05-07 14:25:11 -0400
+Branch: REL9_3_STABLE [fc58c39d4] 2014-05-07 14:25:13 -0400
+Branch: REL9_2_STABLE [022b5f2b2] 2014-05-07 14:25:17 -0400
+Branch: REL9_1_STABLE [229101db4] 2014-05-07 14:25:22 -0400
+Branch: REL9_0_STABLE [7f66ade71] 2014-05-07 14:25:25 -0400
+Branch: REL8_4_STABLE [2a527baa3] 2014-05-07 14:25:28 -0400
+-->
+
+    <listitem>
+     <para>
+      Fix possible crash when invoking a user-defined function while
+      rewinding a cursor (Tom Lane)
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master [45b0f3572] 2014-06-19 22:14:26 -0400
+Branch: REL9_4_STABLE [1044e79a0] 2014-06-19 22:13:44 -0400
+Branch: REL9_3_STABLE [c1f8fb9bf] 2014-06-19 22:13:47 -0400
+Branch: REL9_2_STABLE [b568d3836] 2014-06-19 22:13:51 -0400
+Branch: REL9_1_STABLE [06d5eacbc] 2014-06-19 22:13:54 -0400
+Branch: REL9_0_STABLE [83131e634] 2014-06-19 22:13:58 -0400
+Branch: REL8_4_STABLE [d297c91d4] 2014-06-19 22:14:00 -0400
+-->
+
+    <listitem>
+     <para>
+      Fix query-lifespan memory leak while evaluating the arguments for a
+      function in <literal>FROM</> (Tom Lane)
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master [1567e659a] 2014-07-18 13:00:27 -0400
+Branch: REL9_4_STABLE [4a66f0f2d] 2014-07-18 13:00:39 -0400
+Branch: REL9_3_STABLE [5ef588b22] 2014-07-18 13:00:43 -0400
+Branch: REL9_2_STABLE [a223b9e36] 2014-07-18 13:00:48 -0400
+Branch: REL9_1_STABLE [8a817785a] 2014-07-18 13:00:52 -0400
+Branch: REL9_0_STABLE [b8c24f7ab] 2014-07-18 13:00:57 -0400
+Branch: REL8_4_STABLE [e0a233744] 2014-07-18 13:01:04 -0400
+-->
+
+    <listitem>
+     <para>
+      Fix session-lifespan memory leaks in regular-expression processing
+      (Tom Lane, Arthur O'Dwyer, Greg Stark)
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master [fd90b5d57] 2014-06-10 22:48:16 -0400
+Branch: REL9_4_STABLE [7f9fbb842] 2014-06-10 22:48:31 -0400
+Branch: REL9_3_STABLE [87db9534a] 2014-06-10 22:48:39 -0400
+Branch: REL9_2_STABLE [802323535] 2014-06-10 22:48:45 -0400
+Branch: REL9_1_STABLE [62f134954] 2014-06-10 22:48:52 -0400
+Branch: REL9_0_STABLE [4d5ea4290] 2014-06-10 22:48:59 -0400
+Branch: REL8_4_STABLE [f3f40434b] 2014-06-10 22:49:08 -0400
+-->
+
+    <listitem>
+     <para>
+      Fix data encoding error in <filename>hungarian.stop</> (Tom Lane)
+     </para>
+    </listitem>
+
+<!--
+Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
+Branch: master [a87a7dc8b] 2014-06-24 13:27:18 +0300
+Branch: REL9_4_STABLE [1818ae0a7] 2014-06-24 13:31:06 +0300
+Branch: REL9_3_STABLE [2a7512bc7] 2014-06-24 13:31:00 +0300
+Branch: REL9_2_STABLE [1c9f9e888] 2014-06-24 13:30:54 +0300
+Branch: REL9_1_STABLE [dd1a5b09b] 2014-06-24 13:30:41 +0300
+-->
+
+    <listitem>
+     <para>
+      Prevent foreign tables from being created with OIDS
+      when <xref linkend="guc-default-with-oids"> is true
+      (Etsuro Fujita)
+     </para>
+    </listitem>
+
+<!--
+Author: Andres Freund <andres@anarazel.de>
+Branch: master Release: REL9_4_BR [621a99a66] 2014-06-04 21:36:19 +0200
+Branch: REL9_3_STABLE [edde59db1] 2014-06-04 23:26:08 +0200
+Branch: REL9_2_STABLE [315442c01] 2014-06-04 23:25:52 +0200
+Branch: REL9_1_STABLE [6bf6e528a] 2014-06-04 23:26:30 +0200
+Branch: REL9_0_STABLE [037c6fb9f] 2014-06-04 23:27:10 +0200
+Branch: REL8_4_STABLE [80d45ae4e] 2014-06-04 23:27:38 +0200
+-->
+
+    <listitem>
+     <para>
+      Fix liveness checks for rows that were inserted in the current
+      transaction and then deleted by a now-rolled-back subtransaction
+      (Andres Freund)
+     </para>
+
+     <para>
+      This could cause problems (at least spurious warnings, and at worst an
+      infinite loop) if <command>CREATE INDEX</> or <command>CLUSTER</> were
+      done later in the same transaction.
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master Release: REL9_4_BR [d19bd29f0] 2014-04-24 13:29:48 -0400
+Branch: REL9_3_STABLE [12e41a5d7] 2014-04-24 13:29:56 -0400
+Branch: REL9_2_STABLE [ea9ac7741] 2014-04-24 13:30:00 -0400
+Branch: REL9_1_STABLE [70e7be264] 2014-04-24 13:30:04 -0400
+Branch: REL9_0_STABLE [b7a3e1173] 2014-04-24 13:30:08 -0400
+Branch: REL8_4_STABLE [82fbd88a7] 2014-04-24 13:30:14 -0400
+-->
+
+    <listitem>
+     <para>
+      Clear <structname>pg_stat_activity</>.<structfield>xact_start</>
+      during <command>PREPARE TRANSACTION</> (Andres Freund)
+     </para>
+
+     <para>
+      After the <command>PREPARE</>, the originating session is no longer in
+      a transaction, so it should not continue to display a transaction
+      start time.
+     </para>
+    </listitem>
+
+<!--
+Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
+Branch: master [6bdf4b9c7] 2014-07-15 13:24:07 -0400
+Branch: REL9_4_STABLE [e45229bb6] 2014-07-15 13:24:07 -0400
+Branch: REL9_3_STABLE [12c5bbdcb] 2014-07-15 13:24:07 -0400
+Branch: REL9_2_STABLE [b42f09fc8] 2014-07-15 13:24:07 -0400
+Branch: REL9_1_STABLE [a41dc7321] 2014-07-15 13:24:07 -0400
+Branch: REL9_0_STABLE [bf08864b8] 2014-07-15 13:24:07 -0400
+Branch: REL8_4_STABLE [4b767789d] 2014-07-15 13:24:07 -0400
+-->
+
+    <listitem>
+     <para>
+      Fix <command>REASSIGN OWNED</> to not fail for text search objects
+      (&Aacute;lvaro Herrera)
+     </para>
+    </listitem>
+
+<!--
+Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
+Branch: master [b7e51d9c0] 2014-06-27 14:43:46 -0400
+Branch: REL9_4_STABLE [9eecc8a7c] 2014-06-27 14:43:46 -0400
+Branch: REL9_3_STABLE [e86cfc4bb] 2014-06-27 14:43:45 -0400
+-->
+
+    <listitem>
+     <para>
+      Prevent <structname>pg_class</>.<structfield>relminmxid</> values from
+      going backwards during <command>VACUUM FULL</> (&Aacute;lvaro Herrera)
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master Release: REL9_4_BR [41de93c53] 2014-04-30 13:26:26 -0400
+Branch: REL9_3_STABLE [0652d77fb] 2014-04-30 13:26:29 -0400
+-->
+
+    <listitem>
+     <para>
+      Reduce indentation in rule/view dumps to improve readability and avoid
+      excessive whitespace (Greg Stark, Tom Lane)
+     </para>
+
+     <para>
+      This change reduces the amount of indentation applied to nested
+      constructs, including some cases that the user probably doesn't think
+      of as nested, such as UNION lists.  Previously, deeply nested
+      constructs were printed with an amount of whitespace growing as
+      O(N^2), which created a performance problem and even risk of
+      out-of-memory failures.  Now the indentation is reduced modulo 40,
+      which is initially odd to look at but seems to preserve readability
+      better than simply limiting the indentation would do.
+      Redundant parenthesization of UNION lists has been reduced as well.
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master Release: REL9_4_BR [91e16b980] 2014-05-01 20:22:37 -0400
+Branch: REL9_3_STABLE [e31193d49] 2014-05-01 20:22:39 -0400
+-->
+
+    <listitem>
+     <para>
+      Fix dumping of rules/views when subsequent addition of a column has
+      resulted in multiple input columns matching a <literal>USING</>
+      specification (Tom Lane)
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master [9b35ddce9] 2014-07-19 14:28:52 -0400
+Branch: REL9_4_STABLE [f0a497e4c] 2014-07-19 14:29:00 -0400
+Branch: REL9_3_STABLE [b978ab5f6] 2014-07-19 14:29:05 -0400
+-->
+
+    <listitem>
+     <para>
+      Repair view printing for some cases involving functions
+      in <literal>FROM</> that return a composite type containing dropped
+      columns (Tom Lane)
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master Release: REL9_4_BR [5d8117e1f] 2014-04-05 18:16:08 -0400
+Branch: REL9_3_STABLE [21aa47d01] 2014-04-05 18:16:11 -0400
+Branch: REL9_2_STABLE [53463e247] 2014-04-05 18:16:14 -0400
+Branch: REL9_1_STABLE [093d3da1d] 2014-04-05 18:16:17 -0400
+Branch: REL9_0_STABLE [5c26ab659] 2014-04-05 18:16:20 -0400
+Branch: REL8_4_STABLE [969735cf1] 2014-04-05 18:16:24 -0400
+-->
+
+    <listitem>
+     <para>
+      Block signals during postmaster startup (Tom Lane)
+     </para>
+
+     <para>
+      This ensures that the postmaster will properly clean up after itself
+      if, for example, it receives <systemitem>SIGINT</> while still
+      starting up.
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master Release: REL9_4_BR [fc752505a] 2014-04-02 17:11:24 -0400
+Branch: REL9_3_STABLE [65183fb78] 2014-04-02 17:11:27 -0400
+Branch: REL9_2_STABLE [029decfec] 2014-04-02 17:11:31 -0400
+Branch: REL9_1_STABLE [b7a424371] 2014-04-02 17:11:34 -0400
+-->
+
+    <listitem>
+     <para>
+      Fix client host name lookup when processing <filename>pg_hba.conf</>
+      entries that specify host names instead of IP addresses (Tom Lane)
+     </para>
+
+     <para>
+      Ensure that reverse-DNS lookup failures are reported, instead of just
+      silently not matching such entries.  Also ensure that we make only
+      one reverse-DNS lookup attempt per connection, not one per host name
+      entry, which is what previously happened if the lookup attempts failed.
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master Release: REL9_4_BR [b203c57bb] 2014-04-04 22:03:35 -0400
+Branch: REL9_3_STABLE [7d1a0f585] 2014-04-04 22:03:38 -0400
+Branch: REL9_2_STABLE [6d25eb314] 2014-04-04 22:03:42 -0400
+-->
+
+    <listitem>
+     <para>
+      Allow the root user to use <literal>postgres -C variable</> and
+      <literal>postgres --describe-config</> (MauMau)
+     </para>
+
+     <para>
+      The prohibition on starting the server as root does not need to extend
+      to these operations, and relaxing it prevents failure
+      of <application>pg_ctl</> in some scenarios.
+     </para>
+    </listitem>
+
+<!--
+Author: Noah Misch <noah@leadboat.com>
+Branch: master [be76a6d39] 2014-06-14 09:41:13 -0400
+Branch: REL9_4_STABLE [6583a75b2] 2014-06-14 09:41:16 -0400
+Branch: REL9_3_STABLE [1442b426e] 2014-06-14 09:41:17 -0400
+Branch: REL9_2_STABLE [453a5d91d] 2014-06-14 09:41:17 -0400
+Branch: REL9_1_STABLE [481831b43] 2014-06-14 09:41:18 -0400
+Branch: REL9_0_STABLE [5f09c583c] 2014-06-14 09:41:18 -0400
+Branch: REL8_4_STABLE [95cefd30e] 2014-06-14 09:41:18 -0400
+-->
+
+    <listitem>
+     <para>
+      Secure Unix-domain sockets of temporary postmasters started during
+      <literal>make check</> (Noah Misch)
+     </para>
+
+     <para>
+      Any local user able to access the socket file could connect as the
+      server's bootstrap superuser, then proceed to execute arbitrary code as
+      the operating-system user running the test, as we previously noted in
+      CVE-2014-0067.  This change defends against that risk by placing the
+      server's socket in a temporary, mode 0700 subdirectory
+      of <filename>/tmp</>.  The hazard remains however on platforms where
+      Unix sockets are not supported, notably Windows, because then the
+      temporary postmaster must accept local TCP connections.
+     </para>
+
+     <para>
+      A useful side effect of this change is to simplify
+      <literal>make check</> testing in builds that
+      override <literal>DEFAULT_PGSOCKET_DIR</>.  Popular non-default values
+      like <filename>/var/run/postgresql</> are often not writable by the
+      build user, requiring workarounds that will no longer be necessary.
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master Release: REL9_4_BR [abe075dff] 2014-04-04 23:09:35 -0400
+Branch: REL9_3_STABLE [84520f91c] 2014-04-04 23:09:38 -0400
+Branch: REL9_2_STABLE [1a496a12b] 2014-04-04 23:09:41 -0400
+Branch: REL9_1_STABLE [af7738fe6] 2014-04-04 23:09:45 -0400
+Branch: REL9_0_STABLE [634056567] 2014-04-04 23:09:49 -0400
+-->
+
+    <listitem>
+     <para>
+      Fix tablespace creation WAL replay to work on Windows (MauMau)
+     </para>
+    </listitem>
+
+<!--
+Author: Bruce Momjian <bruce@momjian.us>
+Branch: master Release: REL9_4_BR [418093465] 2014-04-16 10:45:48 -0400
+Branch: REL9_3_STABLE [f716c3250] 2014-04-16 10:45:48 -0400
+Branch: REL9_2_STABLE [966f015b6] 2014-04-16 10:45:48 -0400
+Branch: REL9_1_STABLE [bed499ed1] 2014-04-16 10:45:48 -0400
+Branch: REL9_0_STABLE [a86b2daff] 2014-04-16 10:45:48 -0400
+-->
+
+    <listitem>
+     <para>
+      Fix detection of socket creation failures on Windows (Bruce Momjian)
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master Release: REL9_4_BR [6862ca697] 2014-04-05 12:41:25 -0400
+Branch: REL9_3_STABLE [18db2150c] 2014-04-05 12:41:28 -0400
+Branch: REL9_2_STABLE [bdc3e95c2] 2014-04-05 12:41:31 -0400
+Branch: REL9_1_STABLE [cb11f4d8d] 2014-04-05 12:41:34 -0400
+Branch: REL9_0_STABLE [9500d8f89] 2014-04-05 12:41:38 -0400
+Branch: REL8_4_STABLE [30e434bdf] 2014-04-05 12:41:40 -0400
+-->
+
+    <listitem>
+     <para>
+      On Windows, allow new sessions to absorb values of PGC_BACKEND
+      parameters (such as <xref linkend="guc-log-connections">) from the
+      configuration file (Amit Kapila)
+     </para>
+
+     <para>
+      Previously, if such a parameter were changed in the file post-startup,
+      the change would have no effect.
+     </para>
+    </listitem>
+
+<!--
+Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
+Branch: master Release: REL9_4_BR [503de5462] 2014-04-30 10:35:52 +0300
+Branch: REL9_3_STABLE [8a90a39b4] 2014-04-30 10:35:46 +0300
+Branch: REL9_2_STABLE [e2558e016] 2014-04-30 10:36:31 +0300
+Branch: REL9_1_STABLE [94095e341] 2014-04-30 10:36:41 +0300
+Branch: REL9_0_STABLE [c06b7219a] 2014-04-30 10:38:32 +0300
+Branch: REL8_4_STABLE [e3f273ff6] 2014-04-30 10:39:03 +0300
+-->
+
+    <listitem>
+     <para>
+      Properly quote executable path names on Windows (Nikhil Deshpande)
+     </para>
+
+     <para>
+      This oversight could cause <application>initdb</>
+      and <application>pg_upgrade</> to fail on Windows, if the installation
+      path contained both spaces and <literal>@</> signs.
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master Release: REL9_4_BR [20561acf9] 2014-05-30 18:19:06 -0400
+Branch: REL9_3_STABLE [4f5f4da79] 2014-05-30 18:19:14 -0400
+Branch: REL9_2_STABLE [83ed4598b] 2014-05-30 18:18:20 -0400
+Branch: REL9_1_STABLE [a784a39c4] 2014-05-30 18:18:24 -0400
+Branch: REL9_0_STABLE [4f725bbc4] 2014-05-30 18:18:28 -0400
+Branch: REL8_4_STABLE [ae41bb4be] 2014-05-30 18:18:32 -0400
+-->
+
+    <listitem>
+     <para>
+      Fix linking of <application>libpython</> on macOS (Tom Lane)
+     </para>
+
+     <para>
+      The method we previously used can fail with the Python library
+      supplied by Xcode 5.0 and later.
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master Release: REL9_4_BR [2f557167b] 2014-05-07 21:39:13 -0400
+Branch: REL9_3_STABLE [b4f9c93ce] 2014-05-07 21:38:38 -0400
+Branch: REL9_2_STABLE [f7672c8ce] 2014-05-07 21:38:41 -0400
+Branch: REL9_1_STABLE [86888054a] 2014-05-07 21:38:44 -0400
+Branch: REL9_0_STABLE [77e662827] 2014-05-07 21:38:47 -0400
+Branch: REL8_4_STABLE [664ac3de7] 2014-05-07 21:38:50 -0400
+-->
+
+    <listitem>
+     <para>
+      Avoid buffer bloat in <application>libpq</> when the server
+      consistently sends data faster than the client can absorb it
+      (Shin-ichi Morita, Tom Lane)
+     </para>
+
+     <para>
+      <application>libpq</> could be coerced into enlarging its input buffer
+      until it runs out of memory (which would be reported misleadingly
+      as <quote>lost synchronization with server</>).  Under ordinary
+      circumstances it's quite far-fetched that data could be continuously
+      transmitted more quickly than the <function>recv()</> loop can
+      absorb it, but this has been observed when the client is artificially
+      slowed by scheduler constraints.
+     </para>
+    </listitem>
+
+<!--
+Author: Magnus Hagander <magnus@hagander.net>
+Branch: master Release: REL9_4_BR [585bca393] 2014-04-16 18:58:10 +0200
+Branch: REL9_3_STABLE [cc269272c] 2014-04-16 18:58:55 +0200
+Branch: REL9_2_STABLE [b764080ee] 2014-04-16 18:59:11 +0200
+Branch: REL9_1_STABLE [c4bf15b9c] 2014-04-16 18:59:28 +0200
+Branch: REL9_0_STABLE [96752b02d] 2014-04-16 18:59:37 +0200
+Branch: REL8_4_STABLE [b4ae2e37d] 2014-04-16 18:59:48 +0200
+-->
+
+    <listitem>
+     <para>
+      Ensure that LDAP lookup attempts in <application>libpq</> time out as
+      intended (Laurenz Albe)
+     </para>
+    </listitem>
+
+<!--
+Author: Michael Meskes <meskes@postgresql.org>
+Branch: master Release: REL9_4_BR [8d6a07fa0] 2014-05-06 13:09:51 +0200
+Branch: REL9_3_STABLE [b4eeb9d58] 2014-05-06 13:04:30 +0200
+Branch: REL9_2_STABLE [3a024c110] 2014-05-06 13:14:01 +0200
+Branch: REL9_1_STABLE [fb66e88cf] 2014-05-06 13:20:22 +0200
+Branch: REL9_0_STABLE [91c8c106f] 2014-05-06 13:24:13 +0200
+
+Author: Michael Meskes <meskes@postgresql.org>
+Branch: master Release: REL9_4_BR [f91796853] 2014-04-09 11:23:38 +0200
+Branch: REL9_3_STABLE [3b8fda676] 2014-04-09 11:38:40 +0200
+Branch: REL9_2_STABLE [2b3136de9] 2014-04-09 11:43:13 +0200
+Branch: REL9_1_STABLE [0de106836] 2014-04-09 12:04:33 +0200
+Branch: REL9_0_STABLE [0c2eb989e] 2014-04-09 12:12:32 +0200
+-->
+
+    <listitem>
+     <para>
+      Fix <application>ecpg</> to do the right thing when an array
+      of <type>char *</> is the target for a FETCH statement returning more
+      than one row, as well as some other array-handling fixes
+      (Ashutosh Bapat)
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master Release: REL9_4_BR [62215de29] 2014-03-29 17:34:00 -0400
+Branch: REL9_3_STABLE [3080bbaa9] 2014-03-29 17:34:03 -0400
+-->
+
+    <listitem>
+     <para>
+      Fix <application>pg_dump</> to cope with a materialized view that
+      depends on a table's primary key (Tom Lane)
+     </para>
+
+     <para>
+      This occurs if the view's query relies on functional dependency to
+      abbreviate a <literal>GROUP BY</> list.  <application>pg_dump</> got
+      sufficiently confused that it dumped the materialized view as a
+      regular view.
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master Release: REL9_4_BR [19f2d6cda] 2014-03-18 10:38:25 -0400
+Branch: REL9_3_STABLE [63817f86b] 2014-03-18 10:38:38 -0400
+-->
+
+    <listitem>
+     <para>
+      Fix parsing of <application>pg_dumpall</>'s <option>-i</> switch
+      (Tom Lane)
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master [c81e63d85] 2014-06-12 20:14:32 -0400
+Branch: REL9_4_STABLE [c3c1401ca] 2014-06-12 20:14:36 -0400
+Branch: REL9_3_STABLE [a11577f47] 2014-06-12 20:14:39 -0400
+Branch: REL9_2_STABLE [ce7fc4fbb] 2014-06-12 20:14:46 -0400
+Branch: REL9_1_STABLE [294a48985] 2014-06-12 20:14:49 -0400
+Branch: REL9_0_STABLE [3fec825f9] 2014-06-12 20:14:52 -0400
+Branch: REL8_4_STABLE [6adddac8a] 2014-06-12 20:14:55 -0400
+-->
+
+    <listitem>
+     <para>
+      Fix <application>pg_restore</>'s processing of old-style large object
+      comments (Tom Lane)
+     </para>
+
+     <para>
+      A direct-to-database restore from an archive file generated by a
+      pre-9.0 version of <application>pg_dump</> would usually fail if the
+      archive contained more than a few comments for large objects.
+     </para>
+    </listitem>
+
+<!--
+Author: Bruce Momjian <bruce@momjian.us>
+Branch: master [3088cc370] 2014-07-07 13:24:08 -0400
+Branch: REL9_4_STABLE [f64fe2cbe] 2014-07-07 13:24:08 -0400
+Branch: REL9_3_STABLE [f1d7ff5bb] 2014-07-07 13:24:08 -0400
+Branch: REL9_2_STABLE [759c9fb63] 2014-07-07 13:24:08 -0400
+-->
+
+    <listitem>
+     <para>
+      Fix <application>pg_upgrade</> for cases where the new server creates
+      a TOAST table but the old version did not (Bruce Momjian)
+     </para>
+
+     <para>
+      This rare situation would manifest as <quote>relation OID mismatch</>
+      errors.
+     </para>
+    </listitem>
+
+<!--
+Author: Bruce Momjian <bruce@momjian.us>
+Branch: master [a61daa14d] 2014-07-02 15:29:38 -0400
+Branch: REL9_4_STABLE [b446a384b] 2014-07-02 15:29:38 -0400
+Branch: REL9_3_STABLE [3d2e18510] 2014-07-02 15:29:38 -0400
+
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master [78db307bb] 2014-07-21 11:41:53 -0400
+Branch: REL9_4_STABLE [d122387d7] 2014-07-21 11:42:00 -0400
+Branch: REL9_3_STABLE [e7984cca0] 2014-07-21 11:42:05 -0400
+-->
+
+    <listitem>
+     <para>
+      In <application>pg_upgrade</>,
+      preserve <structname>pg_database</>.<structfield>datminmxid</>
+      and <structname>pg_class</>.<structfield>relminmxid</> values from the
+      old cluster, or insert reasonable values when upgrading from pre-9.3;
+      also defend against unreasonable values in the core server
+      (Bruce Momjian, &Aacute;lvaro Herrera, Tom Lane)
+     </para>
+
+     <para>
+      These changes prevent scenarios in which autovacuum might insist on
+      scanning the entire cluster's contents immediately upon starting the
+      new cluster, or in which tracking of unfrozen MXID values might be
+      disabled completely.
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master Release: REL9_4_BR [e416830a2] 2014-05-20 12:20:47 -0400
+Branch: REL9_3_STABLE [0266a9c78] 2014-05-20 12:20:52 -0400
+Branch: REL9_2_STABLE [31f579f09] 2014-05-20 12:20:57 -0400
+-->
+
+    <listitem>
+     <para>
+      Prevent <filename>contrib/auto_explain</> from changing the output of
+      a user's <command>EXPLAIN</> (Tom Lane)
+     </para>
+
+     <para>
+      If <filename>auto_explain</> is active, it could cause
+      an <literal>EXPLAIN (ANALYZE, TIMING OFF)</> command to nonetheless
+      print timing information.
+     </para>
+    </listitem>
+
+<!--
+Author: Joe Conway <mail@joeconway.com>
+Branch: master [1dde5782e] 2014-06-20 12:24:59 -0700
+Branch: REL9_4_STABLE [9d884a34c] 2014-06-20 12:26:26 -0700
+Branch: REL9_3_STABLE [b3a3f3d2f] 2014-06-20 12:26:43 -0700
+Branch: REL9_2_STABLE [3e2cfa42f] 2014-06-20 12:27:04 -0700
+-->
+
+    <listitem>
+     <para>
+      Fix query-lifespan memory leak in <filename>contrib/dblink</>
+      (MauMau, Joe Conway)
+     </para>
+    </listitem>
+
+<!--
+Author: Bruce Momjian <bruce@momjian.us>
+Branch: master Release: REL9_4_BR [9fe55259f] 2014-04-17 12:37:53 -0400
+Branch: REL9_3_STABLE [fc72e94a1] 2014-04-17 12:37:53 -0400
+Branch: REL9_2_STABLE [ea8725a8b] 2014-04-17 12:37:53 -0400
+Branch: REL9_1_STABLE [fc02b87e2] 2014-04-17 12:37:53 -0400
+Branch: REL9_0_STABLE [a1b9c4630] 2014-04-17 12:37:53 -0400
+Branch: REL8_4_STABLE [df2e62603] 2014-04-17 12:37:53 -0400
+-->
+
+    <listitem>
+     <para>
+      In <filename>contrib/pgcrypto</> functions, ensure sensitive
+      information is cleared from stack variables before returning
+      (Marko Kreen)
+     </para>
+    </listitem>
+
+<!--
+Author: Noah Misch <noah@leadboat.com>
+Branch: master [9d0826c59] 2014-06-30 16:59:19 -0400
+Branch: REL9_4_STABLE [37a4d3d70] 2014-06-30 16:59:44 -0400
+Branch: REL9_3_STABLE [f14e40852] 2014-06-30 17:00:22 -0400
+Branch: REL9_2_STABLE [f6d6b7b1e] 2014-06-30 17:00:40 -0400
+-->
+
+    <listitem>
+     <para>
+      Prevent use of already-freed memory in
+      <filename>contrib/pgstattuple</>'s <function>pgstat_heap()</>
+      (Noah Misch)
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master Release: REL9_4_BR [c941aed96] 2014-05-29 13:51:02 -0400
+Branch: REL9_3_STABLE [961dd203a] 2014-05-29 13:51:05 -0400
+Branch: REL9_2_STABLE [2fb9fb661] 2014-05-29 13:51:09 -0400
+Branch: REL9_1_STABLE [3606754da] 2014-05-29 13:51:12 -0400
+Branch: REL9_0_STABLE [b2f6754d2] 2014-05-29 13:51:15 -0400
+Branch: REL8_4_STABLE [fd785441f] 2014-05-29 13:51:18 -0400
+-->
+
+    <listitem>
+     <para>
+      In <filename>contrib/uuid-ossp</>, cache the state of the OSSP UUID
+      library across calls (Tom Lane)
+     </para>
+
+     <para>
+      This improves the efficiency of UUID generation and reduces the amount
+      of entropy drawn from <filename>/dev/urandom</>, on platforms that
+      have that.
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master [b1864fabf] 2014-07-19 15:00:50 -0400
+Branch: REL9_4_STABLE [e5ea60e80] 2014-07-19 15:01:05 -0400
+Branch: REL9_3_STABLE [bd5458f52] 2014-07-19 15:01:12 -0400
+Branch: REL9_2_STABLE [7d09e4854] 2014-07-19 15:01:18 -0400
+Branch: REL9_1_STABLE [40ccb6530] 2014-07-19 15:01:28 -0400
+Branch: REL9_0_STABLE [7659b6913] 2014-07-19 15:01:38 -0400
+Branch: REL8_4_STABLE [c51da696b] 2014-07-19 15:01:45 -0400
+-->
+
+    <listitem>
+     <para>
+      Update time zone data files to <application>tzdata</> release 2014e
+      for DST law changes in Crimea, Egypt, and Morocco.
+     </para>
+    </listitem>
+
+   </itemizedlist>
+
+  </sect2>
+ </sect1>
+
+ <sect1 id="release-9-3-4">
+  <title>Release 9.3.4</title>
+
+  <note>
+  <title>Release Date</title>
+  <simpara>2014-03-20</simpara>
+  </note>
+
+  <para>
+   This release contains a variety of fixes from 9.3.3.
+   For information about new features in the 9.3 major release, see
+   <xref linkend="release-9-3">.
+  </para>
+
+  <sect2>
+   <title>Migration to Version 9.3.4</title>
+
+   <para>
+    A dump/restore is not required for those running 9.3.X.
+   </para>
+
+   <para>
+    However, the error fixed in the first changelog entry below could have
+    resulted in corrupt data on standby servers.  It may be prudent to
+    reinitialize standby servers from fresh base backups after installing
+    this update.
+   </para>
+
+   <para>
+    Also, if you are upgrading from a version earlier than 9.3.3,
+    see <xref linkend="release-9-3-3">.
+   </para>
+
+  </sect2>
+
+  <sect2>
+   <title>Changes</title>
+
+   <itemizedlist>
+
+<!--
+Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
+Branch: master [6bfa88acd] 2014-02-27 11:13:39 -0300
+Branch: REL9_3_STABLE [9a57858f1] 2014-02-27 11:23:24 -0300
+-->
+
+    <listitem>
+     <para>
+      Fix WAL replay of locking an already-updated tuple (Andres Freund,
+      &Aacute;lvaro Herrera)
+     </para>
+
+     <para>
+      This error caused updated rows to not be found by index scans, resulting
+      in inconsistent query results depending on whether an index scan was
+      used.  Subsequent processing could result in constraint violations,
+      since the previously updated row would not be found by later index
+      searches, thus possibly allowing conflicting rows to be inserted.
+      Since this error is in WAL replay, it would only manifest during crash
+      recovery or on standby servers.  The improperly-replayed case most
+      commonly arises when a table row that is referenced by a foreign-key
+      constraint is updated concurrently with creation of a referencing row.
+     </para>
+    </listitem>
+
+<!--
+Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
+Branch: master [fecfc2b91] 2014-03-12 10:04:57 +0200
+Branch: REL9_3_STABLE [4738cc356] 2014-03-12 10:05:46 +0200
+Branch: REL9_2_STABLE [91f932cf4] 2014-03-12 10:07:22 +0200
+Branch: REL9_1_STABLE [63e59c259] 2014-03-12 10:09:22 +0200
+Branch: REL9_0_STABLE [9954e1f03] 2014-03-12 10:09:43 +0200
+Branch: REL8_4_STABLE [e2bccdfcc] 2014-03-12 10:10:04 +0200
+-->
+
+    <listitem>
+     <para>
+      Restore GIN metapages unconditionally to avoid torn-page risk
+      (Heikki Linnakangas)
+     </para>
+
+     <para>
+      Although this oversight could theoretically result in a corrupted
+      index, it is unlikely to have caused any problems in practice, since
+      the active part of a GIN metapage is smaller than a standard 512-byte
+      disk sector.
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master [7bae0284e] 2014-03-13 12:02:54 -0400
+Branch: REL9_3_STABLE [0d11fed8e] 2014-03-13 12:02:56 -0400
+Branch: REL9_2_STABLE [bbe9621a9] 2014-03-13 12:03:00 -0400
+Branch: REL9_1_STABLE [7bfdf10f5] 2014-03-13 12:03:03 -0400
+Branch: REL9_0_STABLE [7aea1050e] 2014-03-13 12:03:07 -0400
+-->
+
+    <listitem>
+     <para>
+      Avoid race condition in checking transaction commit status during
+      receipt of a <command>NOTIFY</> message (Marko Tiikkaja)
+     </para>
+
+     <para>
+      This prevents a scenario wherein a sufficiently fast client might
+      respond to a notification before database updates made by the
+      notifier have become visible to the recipient.
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master [bf4052faa] 2014-03-06 11:37:02 -0500
+Branch: REL9_3_STABLE [3973034e6] 2014-03-06 11:37:04 -0500
+-->
+
+    <listitem>
+     <para>
+      Allow materialized views to be referenced in <command>UPDATE</>
+      and <command>DELETE</> commands (Michael Paquier)
+     </para>
+
+     <para>
+      Previously such queries failed with a complaint about not being able
+      to lock rows in the materialized view.
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master [9662143f0] 2014-03-01 15:20:56 -0500
+Branch: REL9_3_STABLE [f5f21315d] 2014-03-01 15:21:00 -0500
+Branch: REL9_2_STABLE [03e6423fc] 2014-03-01 15:21:04 -0500
+Branch: REL9_1_STABLE [a9eb4924a] 2014-03-01 15:21:07 -0500
+Branch: REL9_0_STABLE [43af0e8c6] 2014-03-01 15:21:11 -0500
+Branch: REL8_4_STABLE [b6e143458] 2014-03-01 15:21:13 -0500
+-->
+
+    <listitem>
+     <para>
+      Allow regular-expression operators to be terminated early by query
+      cancel requests (Tom Lane)
+     </para>
+
+     <para>
+      This prevents scenarios wherein a pathological regular expression
+      could lock up a server process uninterruptibly for a long time.
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master [a222f7fda] 2014-02-18 12:44:20 -0500
+Branch: REL9_3_STABLE [0aaa42241] 2014-02-18 12:44:24 -0500
+Branch: REL9_2_STABLE [d7cd6a9d5] 2014-02-18 12:44:27 -0500
+Branch: REL9_1_STABLE [e6f7fe983] 2014-02-18 12:44:30 -0500
+Branch: REL9_0_STABLE [19d66ab05] 2014-02-18 12:44:33 -0500
+Branch: REL8_4_STABLE [dd378dd1e] 2014-02-18 12:44:36 -0500
+-->
+
+    <listitem>
+     <para>
+      Remove incorrect code that tried to allow <literal>OVERLAPS</> with
+      single-element row arguments (Joshua Yanovski)
+     </para>
+
+     <para>
+      This code never worked correctly, and since the case is neither
+      specified by the SQL standard nor documented, it seemed better to
+      remove it than fix it.
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master [7c3187494] 2014-03-06 19:31:05 -0500
+Branch: REL9_3_STABLE [f557826f8] 2014-03-06 19:31:09 -0500
+Branch: REL9_2_STABLE [5ec41e345] 2014-03-06 19:31:12 -0500
+Branch: REL9_1_STABLE [f3e3f6c5b] 2014-03-06 19:31:16 -0500
+Branch: REL9_0_STABLE [bed1259e5] 2014-03-06 19:31:19 -0500
+Branch: REL8_4_STABLE [f043bddfe] 2014-03-06 19:31:22 -0500
+-->
+
+    <listitem>
+     <para>
+      Avoid getting more than <literal>AccessShareLock</> when de-parsing a
+      rule or view (Dean Rasheed)
+     </para>
+
+     <para>
+      This oversight resulted in <application>pg_dump</> unexpectedly
+      acquiring <literal>RowExclusiveLock</> locks on tables mentioned as
+      the targets of <literal>INSERT</>/<literal>UPDATE</>/<literal>DELETE</>
+      commands in rules.  While usually harmless, that could interfere with
+      concurrent transactions that tried to acquire, for example,
+      <literal>ShareLock</> on those tables.
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master [fccebe421] 2014-02-25 16:04:06 -0500
+Branch: REL9_3_STABLE [4162a55c7] 2014-02-25 16:04:09 -0500
+Branch: REL9_2_STABLE [00283cae1] 2014-02-25 16:04:12 -0500
+Branch: REL9_1_STABLE [3e2db4c80] 2014-02-25 16:04:16 -0500
+Branch: REL9_0_STABLE [1e0fb6a2c] 2014-02-25 16:04:20 -0500
+-->
+
+    <listitem>
+     <para>
+      Improve performance of index endpoint probes during planning (Tom Lane)
+     </para>
+
+     <para>
+      This change fixes a significant performance problem that occurred
+      when there were many not-yet-committed rows at the end of the index,
+      which is a common situation for indexes on sequentially-assigned
+      values such as timestamps or sequence-generated identifiers.
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master [77585bce0] 2014-02-21 17:10:46 -0500
+Branch: REL9_3_STABLE [e8655a77f] 2014-02-21 17:10:49 -0500
+-->
+
+    <listitem>
+     <para>
+      Use non-default selectivity estimates for
+      <literal><replaceable>value</> IN (<replaceable>list</>)</literal> and
+      <literal><replaceable>value</> <replaceable>operator</> ANY
+      (<replaceable>array</>)</literal>
+      expressions when the righthand side is a stable expression (Tom Lane)
+     </para>
+    </listitem>
+
+<!--
+Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
+Branch: master [2b4f2ab33] 2014-03-05 13:03:29 -0300
+Branch: REL9_3_STABLE [13ea43ab8] 2014-03-05 13:03:29 -0300
+-->
+
+    <listitem>
+     <para>
+      Remove the correct per-database statistics file during <command>DROP
+      DATABASE</> (Tomas Vondra)
+     </para>
+
+     <para>
+      This fix prevents a permanent leak of statistics file space.
+      Users who have done many <command>DROP DATABASE</> commands since
+      upgrading to <productname>PostgreSQL</> 9.3 may wish to check their
+      statistics directory and delete statistics files that do not
+      correspond to any existing database.  Please note
+      that <filename>db_0.stat</> should not be removed.
+     </para>
+    </listitem>
+
+<!--
+Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
+Branch: master [94ae6ba74] 2014-03-06 21:38:51 +0200
+Branch: REL9_3_STABLE [dcd1131c8] 2014-03-06 21:40:50 +0200
+-->
+
+    <listitem>
+     <para>
+      Fix <application>walsender</> ping logic to avoid inappropriate
+      disconnects under continuous load (Andres Freund, Heikki Linnakangas)
+     </para>
+
+     <para>
+      <application>walsender</> failed to send ping messages to the client
+      if it was constantly busy sending WAL data; but it expected to see
+      ping responses despite that, and would therefore disconnect
+      once <xref linkend="guc-wal-sender-timeout"> elapsed.
+     </para>
+    </listitem>
+
+<!--
+Author: Fujii Masao <fujii@postgresql.org>
+Branch: master [5c6d9fc4b] 2014-03-17 20:37:50 +0900
+Branch: REL9_3_STABLE [385723405] 2014-03-17 20:41:12 +0900
+Branch: REL9_2_STABLE [7899aa356] 2014-03-17 20:41:52 +0900
+Branch: REL9_1_STABLE [65e8dbb18] 2014-03-17 20:42:35 +0900
+-->
+
+    <listitem>
+     <para>
+      Fix <application>walsender</>'s failure to shut down cleanly when client
+      is <application>pg_receivexlog</> (Fujii Masao)
+     </para>
+    </listitem>
+
+<!--
+Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
+Branch: master [956685f82] 2014-03-05 14:48:14 +0200
+Branch: REL9_3_STABLE [a5363a696] 2014-03-05 14:46:56 +0200
+Branch: REL9_2_STABLE [e7ec05562] 2014-03-05 14:45:55 +0200
+-->
+
+    <listitem>
+     <para>
+      Check WAL level and hot standby parameters correctly when doing crash
+      recovery that will be followed by archive recovery (Heikki Linnakangas)
+     </para>
+    </listitem>
+
+<!--
+Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
+Branch: master [af246c37c] 2014-03-05 13:51:19 +0200
+Branch: REL9_3_STABLE [2cd72ba42] 2014-03-05 13:52:21 +0200
+Branch: REL9_2_STABLE [931dc26b0] 2014-03-05 13:57:32 +0200
+Branch: REL9_1_STABLE [7552d3d1a] 2014-03-05 13:58:14 +0200
+Branch: REL9_0_STABLE [4521cc850] 2014-03-05 13:58:22 +0200
+-->
+
+    <listitem>
+     <para>
+      Fix test to see if hot standby connections can be allowed immediately
+      after a crash (Heikki Linnakangas)
+     </para>
+    </listitem>
+
+<!--
+Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
+Branch: REL9_3_STABLE [5a7e75849] 2014-02-20 10:46:54 +0200
+-->
+
+    <listitem>
+     <para>
+      Add read-only <xref linkend="guc-data-checksums"> parameter to
+      display whether page checksums are enabled (Heikki Linnakangas)
+     </para>
+
+     <para>
+      Without this parameter, determining the state of checksum
+      processing was difficult.
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master [6c461cb92] 2014-03-13 20:59:42 -0400
+Branch: REL9_3_STABLE [41bd2cf55] 2014-03-13 20:59:45 -0400
+Branch: REL9_2_STABLE [7a289bb6d] 2014-03-13 20:59:48 -0400
+Branch: REL9_1_STABLE [f16ca9755] 2014-03-13 20:59:51 -0400
+Branch: REL9_0_STABLE [dad55e1e9] 2014-03-13 20:59:55 -0400
+Branch: REL8_4_STABLE [172c53e92] 2014-03-13 20:59:57 -0400
+-->
+
+    <listitem>
+     <para>
+      Prevent interrupts while reporting non-<literal>ERROR</> messages
+      (Tom Lane)
+     </para>
+
+     <para>
+      This guards against rare server-process freezeups due to recursive
+      entry to <function>syslog()</>, and perhaps other related problems.
+     </para>
+    </listitem>
+
+<!--
+Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
+Branch: master [bd1154ede] 2014-03-16 23:22:21 -0300
+Branch: REL9_3_STABLE [60829079d] 2014-03-16 23:22:22 -0300
+Branch: REL9_2_STABLE [ba5946e86] 2014-03-16 23:22:22 -0300
+Branch: REL9_1_STABLE [f84997c7e] 2014-03-16 23:22:22 -0300
+-->
+
+    <listitem>
+     <para>
+      Fix memory leak in PL/Perl when returning a composite result, including
+      multiple-OUT-parameter cases (Alex Hunsaker)
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master [e85a5ffba] 2014-03-10 15:47:40 -0400
+Branch: REL9_3_STABLE [f64f4c370] 2014-03-10 15:47:09 -0400
+Branch: REL9_2_STABLE [b315b767f] 2014-03-10 15:47:13 -0400
+-->
+
+    <listitem>
+     <para>
+      Fix tracking of <application>psql</> script line numbers
+      during <literal>\copy</> from out-of-line data
+      (Kumar Rajeev Rastogi, Amit Khandekar)
+     </para>
+
+     <para>
+      <literal>\copy ... from</> incremented the script file line number
+      for each data line, even if the data was not coming from the script
+      file.  This mistake resulted in wrong line numbers being reported for
+      any errors occurring later in the same script file.
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master [83204e100] 2014-03-07 16:36:40 -0500
+Branch: REL9_3_STABLE [73f0483fd] 2014-03-07 16:36:50 -0500
+-->
+
+    <listitem>
+     <para>
+      Fix <application>contrib/postgres_fdw</> to handle multiple join
+      conditions properly (Tom Lane)
+     </para>
+
+     <para>
+      This oversight could result in sending <literal>WHERE</> clauses to
+      the remote server for execution even though the clauses are not known
+      to have the same semantics on the remote server (for example, clauses
+      that use non-built-in operators).  The query might succeed anyway,
+      but it could also fail with errors from the remote server, or worse
+      give silently wrong answers.
+     </para>
+    </listitem>
+
+<!--
+Author: Magnus Hagander <magnus@hagander.net>
+Branch: master [7f3e17b48] 2014-02-18 14:45:58 +0100
+Branch: REL9_3_STABLE [b88ecb002] 2014-02-18 14:49:41 +0100
+Branch: REL9_2_STABLE [062deb313] 2014-02-18 14:50:19 +0100
+Branch: REL9_1_STABLE [fae12f331] 2014-03-16 11:46:20 +0100
+Branch: REL9_0_STABLE [665515539] 2014-03-16 11:47:37 +0100
+-->
+
+    <listitem>
+     <para>
+      Prevent intermittent <quote>could not reserve shared memory region</>
+      failures on recent Windows versions (MauMau)
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master [aba7f5677] 2014-03-15 13:36:07 -0400
+Branch: REL9_3_STABLE [b5de16997] 2014-03-15 13:36:24 -0400
+Branch: REL9_2_STABLE [f2063b379] 2014-03-15 13:36:32 -0400
+Branch: REL9_1_STABLE [2df1bf21c] 2014-03-15 13:36:41 -0400
+Branch: REL9_0_STABLE [0033f5324] 2014-03-15 13:36:49 -0400
+Branch: REL8_4_STABLE [6e6c2c2e1] 2014-03-15 13:36:57 -0400
+-->
+
+    <listitem>
+     <para>
+      Update time zone data files to <application>tzdata</> release 2014a
+      for DST law changes in Fiji and Turkey, plus historical changes in
+      Israel and Ukraine.
+     </para>
+    </listitem>
+
+   </itemizedlist>
+
+  </sect2>
+ </sect1>
+
+ <sect1 id="release-9-3-3">
+  <title>Release 9.3.3</title>
+
+  <note>
+  <title>Release Date</title>
+  <simpara>2014-02-20</simpara>
+  </note>
+
+  <para>
+   This release contains a variety of fixes from 9.3.2.
+   For information about new features in the 9.3 major release, see
+   <xref linkend="release-9-3">.
+  </para>
+
+  <sect2>
+   <title>Migration to Version 9.3.3</title>
+
+   <para>
+    A dump/restore is not required for those running 9.3.X.
+   </para>
+
+   <para>
+    However, several of the issues corrected in this release could have
+    resulted in corruption of foreign-key constraints; that is, there
+    might now be referencing rows for which there is no matching row in
+    the referenced table.  It may be worthwhile to recheck such
+    constraints after installing this update.  The simplest way to do that
+    is to drop and recreate each suspect constraint; however, that will
+    require taking an exclusive lock on both tables, so it is unlikely to
+    be acceptable in production databases.  Alternatively, you can do a
+    manual join query between the two tables to look for unmatched rows.
+   </para>
+
+   <para>
+    Note also the requirement for replication standby servers to be
+    upgraded before their master server is upgraded.
+   </para>
+
+   <para>
+    Also, if you are upgrading from a version earlier than 9.3.2,
+    see <xref linkend="release-9-3-2">.
+   </para>
+
+  </sect2>
+
+  <sect2>
+   <title>Changes</title>
+
+   <itemizedlist>
+
+<!--
+Author: Noah Misch <noah@leadboat.com>
+Branch: master [fea164a72] 2014-02-17 09:33:31 -0500
+Branch: REL9_3_STABLE [475a1fbc4] 2014-02-17 09:33:32 -0500
+Branch: REL9_2_STABLE [15a8f97b9] 2014-02-17 09:33:33 -0500
+Branch: REL9_1_STABLE [5d320a16c] 2014-02-17 09:33:33 -0500
+Branch: REL9_0_STABLE [789063697] 2014-02-17 09:33:37 -0500
+Branch: REL8_4_STABLE [ff35425c8] 2014-02-17 09:33:38 -0500
+-->
+
+    <listitem>
+     <para>
+      Shore up <literal>GRANT ... WITH ADMIN OPTION</> restrictions
+      (Noah Misch)
+     </para>
+
+     <para>
+      Granting a role without <literal>ADMIN OPTION</> is supposed to
+      prevent the grantee from adding or removing members from the granted
+      role, but this restriction was easily bypassed by doing <literal>SET
+      ROLE</> first.  The security impact is mostly that a role member can
+      revoke the access of others, contrary to the wishes of his grantor.
+      Unapproved role member additions are a lesser concern, since an
+      uncooperative role member could provide most of his rights to others
+      anyway by creating views or <literal>SECURITY DEFINER</> functions.
+      (CVE-2014-0060)
+     </para>
+    </listitem>
+
+<!--
+Author: Noah Misch <noah@leadboat.com>
+Branch: master [537cbd35c] 2014-02-17 09:33:31 -0500
+Branch: REL9_3_STABLE [fc4a04a3c] 2014-02-17 09:33:32 -0500
+Branch: REL9_2_STABLE [1d701d28a] 2014-02-17 09:33:33 -0500
+Branch: REL9_1_STABLE [23b5a85e6] 2014-02-17 09:33:36 -0500
+Branch: REL9_0_STABLE [c0ac4c75f] 2014-02-17 09:33:37 -0500
+Branch: REL8_4_STABLE [823b9dc25] 2014-02-17 09:33:38 -0500
+-->
+
+    <listitem>
+     <para>
+      Prevent privilege escalation via manual calls to PL validator
+      functions (Andres Freund)
+     </para>
+
+     <para>
+      The primary role of PL validator functions is to be called implicitly
+      during <command>CREATE FUNCTION</>, but they are also normal SQL
+      functions that a user can call explicitly.  Calling a validator on
+      a function actually written in some other language was not checked
+      for and could be exploited for privilege-escalation purposes.
+      The fix involves adding a call to a privilege-checking function in
+      each validator function.  Non-core procedural languages will also
+      need to make this change to their own validator functions, if any.
+      (CVE-2014-0061)
+     </para>
+    </listitem>
+
+<!--
+Author: Robert Haas <rhaas@postgresql.org>
+Branch: master [5f173040e] 2014-02-17 09:33:31 -0500
+Branch: REL9_3_STABLE [e1e0a4d79] 2014-02-17 09:33:32 -0500
+Branch: REL9_2_STABLE [820ab11fb] 2014-02-17 09:33:33 -0500
+Branch: REL9_1_STABLE [b5c574399] 2014-02-17 09:33:36 -0500
+Branch: REL9_0_STABLE [43d4e965e] 2014-02-17 09:33:37 -0500
+Branch: REL8_4_STABLE [e46476133] 2014-02-17 09:33:38 -0500
+-->
+
+    <listitem>
+     <para>
+      Avoid multiple name lookups during table and index DDL
+      (Robert Haas, Andres Freund)
+     </para>
+
+     <para>
+      If the name lookups come to different conclusions due to concurrent
+      activity, we might perform some parts of the DDL on a different table
+      than other parts.  At least in the case of <command>CREATE INDEX</>,
+      this can be used to cause the permissions checks to be performed
+      against a different table than the index creation, allowing for a
+      privilege escalation attack.
+      (CVE-2014-0062)
+     </para>
+    </listitem>
+
+<!--
+Author: Noah Misch <noah@leadboat.com>
+Branch: master [4318daecc] 2014-02-17 09:33:31 -0500
+Branch: REL9_3_STABLE [e4a4fa223] 2014-02-17 09:33:32 -0500
+Branch: REL9_2_STABLE [f416622be] 2014-02-17 09:33:33 -0500
+Branch: REL9_1_STABLE [6a10e57b0] 2014-02-17 09:33:37 -0500
+Branch: REL9_0_STABLE [b9c3bb1b3] 2014-02-17 09:33:38 -0500
+Branch: REL8_4_STABLE [d0ed1a6c0] 2014-02-17 09:33:39 -0500
+-->
+
+    <listitem>
+     <para>
+      Prevent buffer overrun with long datetime strings (Noah Misch)
+     </para>
+
+     <para>
+      The <literal>MAXDATELEN</> constant was too small for the longest
+      possible value of type <type>interval</>, allowing a buffer overrun
+      in <function>interval_out()</>.  Although the datetime input
+      functions were more careful about avoiding buffer overrun, the limit
+      was short enough to cause them to reject some valid inputs, such as
+      input containing a very long timezone name.  The <application>ecpg</>
+      library contained these vulnerabilities along with some of its own.
+      (CVE-2014-0063)
+     </para>
+    </listitem>
+
+<!--
+Author: Noah Misch <noah@leadboat.com>
+Branch: master [31400a673] 2014-02-17 09:33:31 -0500
+Branch: REL9_3_STABLE [7a362a176] 2014-02-17 09:33:32 -0500
+Branch: REL9_2_STABLE [12bbce15d] 2014-02-17 09:33:33 -0500
+Branch: REL9_1_STABLE [0b7026d96] 2014-02-17 09:33:37 -0500
+Branch: REL9_0_STABLE [2c3203e18] 2014-02-17 09:33:38 -0500
+Branch: REL8_4_STABLE [98be8a6ea] 2014-02-17 09:33:39 -0500
+-->
+
+    <listitem>
+     <para>
+      Prevent buffer overrun due to integer overflow in size calculations
+      (Noah Misch, Heikki Linnakangas)
+     </para>
+
+     <para>
+      Several functions, mostly type input functions, calculated an
+      allocation size without checking for overflow.  If overflow did
+      occur, a too-small buffer would be allocated and then written past.
+      (CVE-2014-0064)
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master [01824385a] 2014-02-17 11:20:21 -0500
+Branch: REL9_3_STABLE [e3208fec3] 2014-02-17 11:20:24 -0500
+Branch: REL9_2_STABLE [655b665f7] 2014-02-17 11:20:27 -0500
+Branch: REL9_1_STABLE [4741e3160] 2014-02-17 11:20:31 -0500
+Branch: REL9_0_STABLE [45bf2404a] 2014-02-17 11:20:35 -0500
+Branch: REL8_4_STABLE [69d2bc14a] 2014-02-17 11:20:38 -0500
+-->
+
+    <listitem>
+     <para>
+      Prevent overruns of fixed-size buffers
+      (Peter Eisentraut, Jozef Mlich)
+     </para>
+
+     <para>
+      Use <function>strlcpy()</> and related functions to provide a clear
+      guarantee that fixed-size buffers are not overrun.  Unlike the
+      preceding items, it is unclear whether these cases really represent
+      live issues, since in most cases there appear to be previous
+      constraints on the size of the input string.  Nonetheless it seems
+      prudent to silence all Coverity warnings of this type.
+      (CVE-2014-0065)
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master [01824385a] 2014-02-17 11:20:21 -0500
+Branch: REL9_3_STABLE [e3208fec3] 2014-02-17 11:20:24 -0500
+Branch: REL9_2_STABLE [655b665f7] 2014-02-17 11:20:27 -0500
+Branch: REL9_1_STABLE [4741e3160] 2014-02-17 11:20:31 -0500
+Branch: REL9_0_STABLE [45bf2404a] 2014-02-17 11:20:35 -0500
+Branch: REL8_4_STABLE [69d2bc14a] 2014-02-17 11:20:38 -0500
+-->
+
+    <listitem>
+     <para>
+      Avoid crashing if <function>crypt()</> returns NULL (Honza Horak,
+      Bruce Momjian)
+     </para>
+
+     <para>
+      There are relatively few scenarios in which <function>crypt()</>
+      could return NULL, but <filename>contrib/chkpass</> would crash
+      if it did.  One practical case in which this could be an issue is
+      if <application>libc</> is configured to refuse to execute unapproved
+      hashing algorithms (e.g., <quote>FIPS mode</>).
+      (CVE-2014-0066)
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master [6ef325429] 2014-02-17 11:24:32 -0500
+Branch: REL9_3_STABLE [1ec5988f3] 2014-02-17 11:24:38 -0500
+Branch: REL9_2_STABLE [ff3d533e5] 2014-02-17 11:24:42 -0500
+Branch: REL9_1_STABLE [800a3744b] 2014-02-17 11:24:45 -0500
+Branch: REL9_0_STABLE [369c229d2] 2014-02-17 11:24:48 -0500
+Branch: REL8_4_STABLE [f58663ab1] 2014-02-17 11:24:51 -0500
+-->
+
+    <listitem>
+     <para>
+      Document risks of <literal>make check</> in the regression testing
+      instructions (Noah Misch, Tom Lane)
+     </para>
+
+     <para>
+      Since the temporary server started by <literal>make check</>
+      uses <quote>trust</> authentication, another user on the same machine
+      could connect to it as database superuser, and then potentially
+      exploit the privileges of the operating-system user who started the
+      tests.  A future release will probably incorporate changes in the
+      testing procedure to prevent this risk, but some public discussion is
+      needed first.  So for the moment, just warn people against using
+      <literal>make check</> when there are untrusted users on the
+      same machine.
+      (CVE-2014-0067)
+     </para>
+    </listitem>
+
+<!--
+Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
+Branch: master [3b97e6823] 2013-12-16 11:29:50 -0300
+Branch: REL9_3_STABLE [8e9a16ab8] 2013-12-16 11:29:51 -0300
+-->
+
+    <listitem>
+     <para>
+      Rework tuple freezing protocol
+      (&Aacute;lvaro Herrera, Andres Freund)
+     </para>
+
+     <para>
+      The logic for tuple freezing was unable to handle some cases involving
+      freezing of
+      <link linkend="vacuum-for-multixact-wraparound"><firstterm>multixact</>
+      IDs</link>, with the practical effect that shared row-level locks
+      might be forgotten once old enough.
+     </para>
+
+     <para>
+      Fixing this required changing the WAL record format for tuple
+      freezing.  While this is no issue for standalone servers, when using
+      replication it means that <emphasis>standby servers must be upgraded
+      to 9.3.3 or later before their masters are</>.  An older standby will
+      be unable to interpret freeze records generated by a newer master, and
+      will fail with a PANIC message.  (In such a case, upgrading the
+      standby should be sufficient to let it resume execution.)
+     </para>
+    </listitem>
+
+<!--
+Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
+Branch: master [801c2dc72] 2014-02-13 19:36:31 -0300
+Branch: REL9_3_STABLE [fb47de2be] 2014-02-13 19:30:30 -0300
+-->
+
+    <listitem>
+     <para>
+      Create separate GUC parameters to control multixact freezing
+      (&Aacute;lvaro Herrera)
+     </para>
+
+     <para>
+      9.3 requires multixact tuple labels to be frozen before
+      they grow too old, in the same fashion as plain transaction ID labels
+      have been frozen for some time.  Previously, the transaction ID
+      freezing parameters were used for multixact IDs too; but since
+      the consumption rates of transaction IDs and multixact IDs can be
+      quite different, this did not work very well.  Introduce new settings
+      <xref linkend="guc-vacuum-multixact-freeze-min-age">,
+      <xref linkend="guc-vacuum-multixact-freeze-table-age">, and
+      <xref linkend="guc-autovacuum-multixact-freeze-max-age">
+      to control when to freeze multixacts.
+     </para>
+    </listitem>
+
+<!--
+Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
+Branch: master [11ac4c73c] 2013-12-18 13:45:51 -0300
+Branch: REL9_3_STABLE [db1014bc4] 2013-12-18 13:31:27 -0300
+-->
+
+    <listitem>
+     <para>
+      Account for remote row locks propagated by local updates
+      (&Aacute;lvaro Herrera)
+     </para>
+
+     <para>
+      If a row was locked by transaction A, and transaction B updated it,
+      the new version of the row created by B would be locked by A, yet
+      visible only to B.  If transaction B then again updated the row, A's
+      lock wouldn't get checked, thus possibly allowing B to complete when
+      it shouldn't.  This case is new in 9.3 since prior versions did not
+      have any types of row locking that would permit another transaction
+      to update the row at all.
+     </para>
+
+     <para>
+      This oversight could allow referential integrity checks to give false
+      positives (for instance, allow deletes that should have been rejected).
+      Applications using the new commands <literal>SELECT FOR KEY SHARE</>
+      and <literal>SELECT FOR NO KEY UPDATE</> might also have suffered
+      locking failures of this kind.
+     </para>
+    </listitem>
+
+<!--
+Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
+Branch: master [07aeb1fec] 2013-12-05 12:21:55 -0300
+Branch: REL9_3_STABLE [c6cd27e36] 2013-12-05 12:21:55 -0300
+-->
+
+    <listitem>
+     <para>
+      Prevent <quote>forgetting</> valid row locks when one of several
+      holders of a row lock aborts (&Aacute;lvaro Herrera)
+     </para>
+
+     <para>
+      This was yet another mechanism by which a shared row lock could be
+      lost, thus possibly allowing updates that should have been prevented
+      by foreign-key constraints.
+     </para>
+    </listitem>
+
+<!--
+Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
+Branch: master [312bde3d4] 2013-12-05 17:47:51 -0300
+Branch: REL9_3_STABLE [2dcc48c35] 2013-12-05 17:47:51 -0300
+-->
+
+    <listitem>
+     <para>
+      Fix incorrect logic during update chain locking
+      (&Aacute;lvaro Herrera)
+     </para>
+
+     <para>
+      This mistake could result in spurious <quote>could not serialize access
+      due to concurrent update</> errors in <literal>REPEATABLE READ</>
+      and <literal>SERIALIZABLE</> transaction isolation modes.
+     </para>
+    </listitem>
+
+<!--
+Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
+Branch: master [a50d97625] 2014-01-02 18:17:07 -0300
+Branch: REL9_3_STABLE [03db79459] 2014-01-02 18:17:07 -0300
+-->
+
+    <listitem>
+     <para>
+      Handle wraparound correctly during extension or truncation
+      of <filename>pg_multixact/members</>
+      (Andres Freund, &Aacute;lvaro Herrera)
+     </para>
+    </listitem>
+
+<!--
+Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
+Branch: master [638cf09e7] 2014-01-02 18:17:29 -0300
+Branch: REL9_3_STABLE [948a3dfbb] 2014-01-02 18:17:29 -0300
+-->
+
+    <listitem>
+     <para>
+      Fix handling of 5-digit filenames in <filename>pg_multixact/members</>
+      (&Aacute;lvaro Herrera)
+     </para>
+
+     <para>
+      As of 9.3, these names can be more than 4 digits, but the directory
+      cleanup code ignored such files.
+     </para>
+    </listitem>
+
+<!--
+Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
+Branch: master [d881dd623] 2013-12-13 17:16:25 -0300
+Branch: REL9_3_STABLE [0bc00363b] 2013-12-13 17:16:25 -0300
+-->
+
+    <listitem>
+     <para>
+      Improve performance of multixact cache code
+      (&Aacute;lvaro Herrera)
+     </para>
+    </listitem>
+
+<!--
+Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
+Branch: master [13aa62443] 2013-12-19 16:53:49 -0300
+Branch: REL9_3_STABLE [85d3b3c3a] 2013-12-19 16:39:59 -0300
+-->
+
+    <listitem>
+     <para>
+      Optimize updating a row that's already locked by the same transaction
+      (Andres Freund, &Aacute;lvaro Herrera)
+     </para>
+
+     <para>
+      This fixes a performance regression from pre-9.3 versions when doing
+      <literal>SELECT FOR UPDATE</> followed by <literal>UPDATE/DELETE</>.
+     </para>
+    </listitem>
+
+<!--
+Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
+Branch: master [4d894b41c] 2014-02-14 15:15:09 +0200
+Branch: REL9_3_STABLE [762bd379a] 2014-02-14 15:18:34 +0200
+-->
+
+    <listitem>
+     <para>
+      During archive recovery, prefer highest timeline number when WAL
+      segments with the same ID are present in both the archive
+      and <filename>pg_xlog/</> (Kyotaro Horiguchi)
+     </para>
+
+     <para>
+      Previously, not-yet-archived segments could get ignored during
+      recovery.  This reverts an undesirable behavioral change in 9.3.0
+      back to the way things worked pre-9.3.
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master [6f2aead1f] 2014-02-12 14:52:16 -0500
+Branch: REL9_3_STABLE [7190f7a34] 2014-02-12 14:52:20 -0500
+Branch: REL9_2_STABLE [bc7ab301a] 2014-02-12 14:52:23 -0500
+Branch: REL9_1_STABLE [a69cc9b2c] 2014-02-12 14:52:26 -0500
+Branch: REL9_0_STABLE [7fedd79b7] 2014-02-12 14:52:29 -0500
+Branch: REL8_4_STABLE [9620fede9] 2014-02-12 14:52:32 -0500
+-->
+
+    <listitem>
+     <para>
+      Fix possible mis-replay of WAL records when some segments of a
+      relation aren't full size (Greg Stark, Tom Lane)
+     </para>
+
+     <para>
+      The WAL update could be applied to the wrong page, potentially many
+      pages past where it should have been.  Aside from corrupting data,
+      this error has been observed to result in significant <quote>bloat</>
+      of standby servers compared to their masters, due to updates being
+      applied far beyond where the end-of-file should have been.  This
+      failure mode does not appear to be a significant risk during crash
+      recovery, only when initially synchronizing a standby created from a
+      base backup taken from a quickly-changing master.
+     </para>
+    </listitem>
+
+<!--
+Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
+Branch: master [d59ff6c11] 2014-01-08 15:03:09 +0200
+Branch: REL9_3_STABLE [425bef6ee] 2014-01-08 14:32:22 +0200
+Branch: REL9_2_STABLE [82c75f9dd] 2014-01-08 14:28:55 +0200
+Branch: REL9_1_STABLE [e56430c62] 2014-01-08 14:33:58 +0200
+Branch: REL9_0_STABLE [5301c8395] 2014-01-08 14:34:21 +0200
+-->
+
+    <listitem>
+     <para>
+      Fix bug in determining when recovery has reached consistency
+      (Tomonari Katsumata, Heikki Linnakangas)
+     </para>
+
+     <para>
+      In some cases WAL replay would mistakenly conclude that the database
+      was already consistent at the start of replay, thus possibly allowing
+      hot-standby queries before the database was really consistent.  Other
+      symptoms such as <quote>PANIC: WAL contains references to invalid
+      pages</> were also possible.
+     </para>
+    </listitem>
+
+<!--
+Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
+Branch: master [a49633d8d] 2013-12-13 14:15:04 +0200
+Branch: REL9_3_STABLE [615299cf6] 2013-12-13 14:23:02 +0200
+-->
+
+    <listitem>
+     <para>
+      Fix WAL logging of visibility map changes (Heikki Linnakangas)
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master [061b079f8] 2014-01-14 17:35:21 -0500
+Branch: REL9_3_STABLE [ebde6c401] 2014-01-14 17:34:51 -0500
+Branch: REL9_2_STABLE [ad2e041a3] 2014-01-14 17:34:54 -0500
+Branch: REL9_1_STABLE [ab4bb5c47] 2014-01-14 17:34:57 -0500
+Branch: REL9_0_STABLE [5d742b9ce] 2014-01-14 17:35:00 -0500
+-->
+
+    <listitem>
+     <para>
+      Fix improper locking of btree index pages while replaying
+      a <literal>VACUUM</> operation in hot-standby mode (Andres Freund,
+      Heikki Linnakangas, Tom Lane)
+     </para>
+
+     <para>
+      This error could result in <quote>PANIC: WAL contains references to
+      invalid pages</> failures.
+     </para>
+    </listitem>
+
+<!--
+Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
+Branch: master [22122c83f] 2013-12-03 23:16:01 +0200
+Branch: REL9_3_STABLE [8fd04cb32] 2013-12-03 22:13:16 +0200
+Branch: REL9_2_STABLE [06df57ac6] 2013-12-03 22:34:31 +0200
+Branch: REL9_1_STABLE [e6acb956a] 2013-12-03 22:34:43 +0200
+Branch: REL9_0_STABLE [760606dc5] 2013-12-03 23:01:31 +0200
+Branch: REL8_4_STABLE [67fc33d3a] 2013-12-03 22:53:26 +0200
+-->
+
+    <listitem>
+     <para>
+      Ensure that insertions into non-leaf GIN index pages write a full-page
+      WAL record when appropriate (Heikki Linnakangas)
+     </para>
+
+     <para>
+      The previous coding risked index corruption in the event of a
+      partial-page write during a system crash.
+     </para>
+    </listitem>
+
+<!--
+Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
+Branch: master [3739e5ab9] 2014-01-08 23:28:52 +0200
+Branch: REL9_3_STABLE [3aefff422] 2014-01-08 23:30:46 +0200
+Branch: REL9_2_STABLE [3bd8987ef] 2014-01-08 23:30:55 +0200
+Branch: REL9_1_STABLE [0402f2441] 2014-01-08 23:31:01 +0200
+-->
+
+    <listitem>
+     <para>
+      When <literal>pause_at_recovery_target</>
+      and <literal>recovery_target_inclusive</> are both set, ensure the
+      target record is applied before pausing, not after (Heikki
+      Linnakangas)
+     </para>
+    </listitem>
+
+<!--
+Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
+Branch: master [a472ae1e4] 2014-01-16 23:15:41 +0200
+Branch: REL9_3_STABLE [e34acac62] 2014-01-16 23:14:57 +0200
+-->
+
+    <listitem>
+     <para>
+      Ensure walreceiver sends hot-standby feedback messages on time even
+      when there is a continuous stream of data (Andres Freund, Amit
+      Kapila)
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master [e8312b4f0] 2013-12-13 11:50:15 -0500
+Branch: REL9_3_STABLE [478af9b79] 2013-12-13 11:50:25 -0500
+-->
+
+    <listitem>
+     <para>
+      Prevent timeout interrupts from taking control away from mainline
+      code unless <varname>ImmediateInterruptOK</> is set
+      (Andres Freund, Tom Lane)
+     </para>
+
+     <para>
+      This is a serious issue for any application making use of statement
+      timeouts, as it could cause all manner of strange failures after a
+      timeout occurred.  We have seen reports of <quote>stuck</> spinlocks,
+      ERRORs being unexpectedly promoted to PANICs, unkillable backends,
+      and other misbehaviors.
+     </para>
+    </listitem>
+
+<!--
+Author: Robert Haas <rhaas@postgresql.org>
+Branch: master [d1981719a] 2014-01-31 21:31:08 -0500
+Branch: REL9_3_STABLE [5d807a74b] 2014-01-31 21:34:44 -0500
+Branch: REL9_2_STABLE [ebe334463] 2014-01-31 21:35:32 -0500
+Branch: REL9_1_STABLE [8e6bfc9eb] 2014-01-31 21:36:23 -0500
+Branch: REL9_0_STABLE [798243a81] 2014-01-31 21:40:20 -0500
+Branch: REL8_4_STABLE [458b20f2d] 2014-01-31 21:41:09 -0500
+-->
+
+    <listitem>
+     <para>
+      Fix race conditions during server process exit (Robert Haas)
+     </para>
+
+     <para>
+      Ensure that signal handlers don't attempt to use the
+      process's <varname>MyProc</> pointer after it's no longer valid.
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master [214c7a4f0] 2014-02-01 16:21:23 -0500
+Branch: REL9_3_STABLE [6f1a40773] 2014-02-01 16:21:30 -0500
+Branch: REL9_2_STABLE [81b116d98] 2014-02-01 16:21:33 -0500
+Branch: REL9_1_STABLE [03f06ff38] 2014-02-01 16:21:38 -0500
+-->
+
+    <listitem>
+     <para>
+      Fix race conditions in walsender shutdown logic and walreceiver
+      SIGHUP signal handler (Tom Lane)
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master [571addd72] 2014-01-29 20:04:43 -0500
+Branch: REL9_3_STABLE [bf8ee6f15] 2014-01-29 20:04:01 -0500
+Branch: REL9_2_STABLE [3e71ce1e9] 2014-01-29 20:04:05 -0500
+Branch: REL9_1_STABLE [af259c691] 2014-01-29 20:04:08 -0500
+Branch: REL9_0_STABLE [d17a667e8] 2014-01-29 20:04:11 -0500
+Branch: REL8_4_STABLE [01b882fd8] 2014-01-29 20:04:14 -0500
+-->
+
+    <listitem>
+     <para>
+      Fix unsafe references to <varname>errno</> within error reporting
+      logic (Christian Kruse)
+     </para>
+
+     <para>
+      This would typically lead to odd behaviors such as missing or
+      inappropriate <literal>HINT</> fields.
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master [910bac595] 2014-01-11 16:36:07 -0500
+Branch: REL9_3_STABLE [5bfcc9ec5] 2014-01-11 16:35:30 -0500
+Branch: REL9_2_STABLE [2de905186] 2014-01-11 16:35:34 -0500
+Branch: REL9_1_STABLE [3f721588a] 2014-01-11 16:35:37 -0500
+Branch: REL9_0_STABLE [d9c4442b8] 2014-01-11 16:35:41 -0500
+Branch: REL8_4_STABLE [d0070ac81] 2014-01-11 16:35:44 -0500
+-->
+
+    <listitem>
+     <para>
+      Fix possible crashes from using <function>ereport()</> too early
+      during server startup (Tom Lane)
+     </para>
+
+     <para>
+      The principal case we've seen in the field is a crash if the server
+      is started in a directory it doesn't have permission to read.
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master [74242c23c] 2013-12-05 12:48:28 -0500
+Branch: REL9_3_STABLE [2a6e1a554] 2013-12-05 12:48:31 -0500
+Branch: REL9_2_STABLE [41042970b] 2013-12-05 12:48:35 -0500
+Branch: REL9_1_STABLE [ad910ccdc] 2013-12-05 12:48:37 -0500
+Branch: REL9_0_STABLE [36352ceb4] 2013-12-05 12:48:41 -0500
+Branch: REL8_4_STABLE [7635dae55] 2013-12-05 12:48:44 -0500
+-->
+
+    <listitem>
+     <para>
+      Clear retry flags properly in OpenSSL socket write
+      function (Alexander Kukushkin)
+     </para>
+
+     <para>
+      This omission could result in a server lockup after unexpected loss
+      of an SSL-encrypted connection.
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master [44c216330] 2014-02-13 14:24:42 -0500
+Branch: REL9_3_STABLE [ca1c17181] 2014-02-13 14:24:45 -0500
+Branch: REL9_2_STABLE [8439ee415] 2014-02-13 14:24:49 -0500
+Branch: REL9_1_STABLE [170590261] 2014-02-13 14:24:52 -0500
+Branch: REL9_0_STABLE [148052d25] 2014-02-13 14:24:55 -0500
+Branch: REL8_4_STABLE [a8a46d846] 2014-02-13 14:24:58 -0500
+-->
+
+    <listitem>
+     <para>
+      Fix length checking for Unicode identifiers (<literal>U&amp;"..."</>
+      syntax) containing escapes (Tom Lane)
+     </para>
+
+     <para>
+      A spurious truncation warning would be printed for such identifiers
+      if the escaped form of the identifier was too long, but the
+      identifier actually didn't need truncation after de-escaping.
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master [0c2338abb] 2014-02-03 19:47:57 -0500
+Branch: REL9_3_STABLE [4c70cb1d3] 2014-02-03 19:48:00 -0500
+-->
+
+    <listitem>
+     <para>
+      Fix parsing of Unicode literals and identifiers just before the end
+      of a command string or function body (Tom Lane)
+     </para>
+    </listitem>
+
+<!--
+Author: Stephen Frost <sfrost@snowman.net>
+Branch: master [6c36f383d] 2014-01-21 22:49:22 -0500
+Branch: REL9_3_STABLE [d1e3070f0] 2014-01-21 22:56:30 -0500
+Branch: REL9_2_STABLE [c0e6169e1] 2014-01-21 22:56:34 -0500
+Branch: REL9_1_STABLE [cbd850bf6] 2014-01-21 23:00:58 -0500
+Branch: REL9_0_STABLE [f2eede9b5] 2014-01-21 23:01:40 -0500
+-->
+
+    <listitem>
+     <para>
+      Allow keywords that are type names to be used in lists of roles
+      (Stephen Frost)
+     </para>
+
+     <para>
+      A previous patch allowed such keywords to be used without quoting
+      in places such as role identifiers; but it missed cases where a
+      list of role identifiers was permitted, such as <literal>DROP ROLE</>.
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master [7ab321404] 2013-12-02 20:28:45 -0500
+Branch: REL9_3_STABLE [b44ae4893] 2013-12-02 20:28:49 -0500
+Branch: REL9_2_STABLE [6698782f1] 2013-12-02 20:28:53 -0500
+Branch: REL9_1_STABLE [f67b8aeab] 2013-12-02 20:28:56 -0500
+-->
+
+    <listitem>
+     <para>
+      Fix parser crash for <literal>EXISTS(SELECT * FROM
+      zero_column_table)</literal> (Tom Lane)
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master [9ec6199d1] 2013-12-10 16:10:17 -0500
+Branch: REL9_3_STABLE [9d2e07fec] 2013-12-10 16:10:20 -0500
+Branch: REL9_2_STABLE [f5d9fdcc7] 2013-12-10 16:10:24 -0500
+Branch: REL9_1_STABLE [48e5cfde8] 2013-12-10 16:10:28 -0500
+Branch: REL9_0_STABLE [41e9990cd] 2013-12-10 16:10:31 -0500
+Branch: REL8_4_STABLE [884c6384a] 2013-12-10 16:10:36 -0500
+-->
+
+    <listitem>
+     <para>
+      Fix possible crash due to invalid plan for nested sub-selects, such
+      as <literal>WHERE (... x IN (SELECT ...) ...) IN (SELECT ...)</>
+      (Tom Lane)
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master [043f6ff05] 2014-01-30 14:51:16 -0500
+Branch: REL9_3_STABLE [a4aa854ca] 2014-01-30 14:51:19 -0500
+-->
+
+    <listitem>
+     <para>
+      Fix mishandling of <literal>WHERE</> conditions pulled up from
+      a <literal>LATERAL</> subquery (Tom Lane)
+     </para>
+
+     <para>
+      The typical symptom of this bug was a <quote>JOIN qualification
+      cannot refer to other relations</> error, though subtle logic
+      errors in created plans seem possible as well.
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master [158b7fa6a] 2014-01-11 19:03:12 -0500
+Branch: REL9_3_STABLE [27ff4cfe7] 2014-01-11 19:03:15 -0500
+-->
+
+    <listitem>
+     <para>
+      Disallow <literal>LATERAL</> references to the target table of
+      an <literal>UPDATE/DELETE</> (Tom Lane)
+     </para>
+
+     <para>
+      While this might be allowed in some future release, it was
+      unintentional in 9.3, and didn't work quite right anyway.
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master [c03ad5602] 2013-12-14 17:33:53 -0500
+Branch: REL9_3_STABLE [324577f39] 2013-12-14 17:33:56 -0500
+Branch: REL9_2_STABLE [5d545b7ed] 2013-12-14 17:34:00 -0500
+-->
+
+    <listitem>
+     <para>
+      Fix <literal>UPDATE/DELETE</> of an inherited target table
+      that has <literal>UNION ALL</> subqueries (Tom Lane)
+     </para>
+
+     <para>
+      Without this fix, <literal>UNION ALL</> subqueries aren't correctly
+      inserted into the update plans for inheritance child tables after the
+      first one, typically resulting in no update happening for those child
+      table(s).
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master [4eeda92d8] 2013-12-23 22:18:48 -0500
+Branch: REL9_3_STABLE [663f8419b] 2013-12-23 22:18:23 -0500
+-->
+
+    <listitem>
+     <para>
+      Fix <command>ANALYZE</> to not fail on a column that's a domain over
+      a range type (Tom Lane)
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master [628652620] 2014-01-11 13:42:42 -0500
+Branch: REL9_3_STABLE [36785a21b] 2014-01-11 13:41:51 -0500
+Branch: REL9_2_STABLE [f0381680f] 2014-01-11 13:41:56 -0500
+Branch: REL9_1_STABLE [9387f4e1b] 2014-01-11 13:42:00 -0500
+Branch: REL9_0_STABLE [2d76d75d9] 2014-01-11 13:42:05 -0500
+Branch: REL8_4_STABLE [00b77771a] 2014-01-11 13:42:11 -0500
+-->
+
+    <listitem>
+     <para>
+      Ensure that <command>ANALYZE</> creates statistics for a table column
+      even when all the values in it are <quote>too wide</> (Tom Lane)
+     </para>
+
+     <para>
+      <command>ANALYZE</> intentionally omits very wide values from its
+      histogram and most-common-values calculations, but it neglected to do
+      something sane in the case that all the sampled entries are too wide.
+     </para>
+    </listitem>
+
+<!--
+Author: Stephen Frost <sfrost@snowman.net>
+Branch: master [6f25c62d7] 2014-01-18 18:41:52 -0500
+Branch: REL9_3_STABLE [86e58ae02] 2014-01-18 18:49:08 -0500
+Branch: REL9_2_STABLE [1fe06595a] 2014-01-18 18:49:41 -0500
+Branch: REL9_1_STABLE [d2636486b] 2014-01-18 18:50:09 -0500
+Branch: REL9_0_STABLE [e70c42821] 2014-01-18 18:50:29 -0500
+Branch: REL8_4_STABLE [0fb4e3ceb] 2014-01-18 18:50:47 -0500
+-->
+
+    <listitem>
+     <para>
+      In <literal>ALTER TABLE ... SET TABLESPACE</>, allow the database's
+      default tablespace to be used without a permissions check
+      (Stephen Frost)
+     </para>
+
+     <para>
+      <literal>CREATE TABLE</> has always allowed such usage,
+      but <literal>ALTER TABLE</> didn't get the memo.
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master [c01bc51f8] 2013-12-30 14:00:02 -0500
+Branch: REL9_3_STABLE [9a6e2b150] 2013-12-30 14:00:05 -0500
+-->
+
+    <listitem>
+     <para>
+      Fix support for extensions containing event triggers (Tom Lane)
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master [080b7db72] 2014-01-08 20:18:58 -0500
+Branch: REL9_3_STABLE [47ac4473a] 2014-01-08 20:18:10 -0500
+Branch: REL9_2_STABLE [97a39f295] 2014-01-08 20:18:13 -0500
+Branch: REL9_1_STABLE [6c6c53d0b] 2014-01-08 20:18:17 -0500
+Branch: REL9_0_STABLE [6ca712fb9] 2014-01-08 20:18:20 -0500
+Branch: REL8_4_STABLE [57ac7d8a7] 2014-01-08 20:18:24 -0500
+-->
+
+    <listitem>
+     <para>
+      Fix <quote>cannot accept a set</> error when some arms of
+      a <literal>CASE</> return a set and others don't (Tom Lane)
+     </para>
+    </listitem>
+
+<!--
+Author: Andrew Dunstan <andrew@dunslane.net>
+Branch: master [d3ee45152] 2014-02-03 10:40:12 -0500
+Branch: REL9_3_STABLE [cdfbb78f0] 2014-02-03 10:39:13 -0500
+-->
+
+    <listitem>
+     <para>
+      Fix memory leakage in JSON functions (Craig Ringer)
+     </para>
+    </listitem>
+
+<!--
+Author: Andrew Dunstan <andrew@dunslane.net>
+Branch: master [29dcf7ded] 2013-12-27 17:04:00 -0500
+Branch: REL9_3_STABLE [7dfd9f6f5] 2013-12-27 17:21:04 -0500
+Branch: REL9_2_STABLE [4825a9e95] 2013-12-27 17:21:27 -0500
+-->
+
+    <listitem>
+     <para>
+      Properly distinguish numbers from non-numbers when generating JSON
+      output (Andrew Dunstan)
+     </para>
+    </listitem>
+
+<!--
+Author: Kevin Grittner <kgrittn@postgresql.org>
+Branch: master [a133bf703] 2013-12-27 15:26:24 -0600
+Branch: REL9_3_STABLE [28b60aa23] 2013-12-27 15:40:51 -0600
+Branch: REL9_2_STABLE [150a30e19] 2013-12-27 15:41:02 -0600
+Branch: REL9_1_STABLE [1f069d21d] 2013-12-27 15:41:18 -0600
+Branch: REL9_0_STABLE [918d74a07] 2013-12-27 15:41:32 -0600
+Branch: REL8_4_STABLE [b2d80147d] 2013-12-27 15:41:46 -0600
+-->
+
+    <listitem>
+     <para>
+      Fix checks for all-zero client addresses in pgstat functions (Kevin
+      Grittner)
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master [082c0dfa1] 2014-02-01 18:27:34 -0500
+Branch: REL9_3_STABLE [9beffdcc3] 2014-02-01 18:27:40 -0500
+Branch: REL9_2_STABLE [8be095cea] 2014-02-01 18:27:44 -0500
+Branch: REL9_1_STABLE [399d23e19] 2014-02-01 18:27:48 -0500
+Branch: REL9_0_STABLE [3c7b4ef70] 2014-02-01 18:27:54 -0500
+Branch: REL8_4_STABLE [56f5d3424] 2014-02-01 18:27:12 -0500
+-->
+
+    <listitem>
+     <para>
+      Fix possible misclassification of multibyte characters by the text
+      search parser (Tom Lane)
+     </para>
+
+     <para>
+      Non-ASCII characters could be misclassified when using C locale with
+      a multibyte encoding.  On Cygwin, non-C locales could fail as well.
+     </para>
+    </listitem>
+
+<!--
+Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
+Branch: master [6c2744f1d] 2014-02-10 09:57:59 +0200
+Branch: REL9_3_STABLE [928aec71c] 2014-02-10 09:59:49 +0200
+Branch: REL9_2_STABLE [f3807106b] 2014-02-10 10:00:04 +0200
+Branch: REL9_1_STABLE [5f778e644] 2014-02-10 10:00:23 +0200
+Branch: REL9_0_STABLE [fe8a6f53e] 2014-02-10 10:00:36 +0200
+Branch: REL8_4_STABLE [6141983fb] 2014-02-10 10:00:50 +0200
+-->
+
+    <listitem>
+     <para>
+      Fix possible misbehavior in <function>plainto_tsquery()</>
+      (Heikki Linnakangas)
+     </para>
+
+     <para>
+      Use <function>memmove()</> not <function>memcpy()</> for copying
+      overlapping memory regions.  There have been no field reports of
+      this actually causing trouble, but it's certainly risky.
+     </para>
+    </listitem>
+
+<!--
+Author: Magnus Hagander <magnus@hagander.net>
+Branch: master [9544cc0d6] 2014-01-07 17:50:56 +0100
+Branch: REL9_3_STABLE [91c2755fc] 2014-01-07 17:51:02 +0100
+Branch: REL9_2_STABLE [61d4d14ee] 2014-01-07 17:53:00 +0100
+Branch: REL9_1_STABLE [026a91f86] 2014-01-07 18:00:36 +0100
+-->
+
+    <listitem>
+     <para>
+      Fix placement of permissions checks in <function>pg_start_backup()</>
+      and <function>pg_stop_backup()</> (Andres Freund, Magnus Hagander)
+     </para>
+
+     <para>
+      The previous coding might attempt to do catalog access when it
+      shouldn't.
+     </para>
+    </listitem>
+
+<!--
+Author: Tatsuo Ishii <ishii@postgresql.org>
+Branch: master [1f0626ee4] 2013-12-15 11:09:05 +0900
+Branch: REL9_3_STABLE [8122e6f85] 2013-12-15 11:10:41 +0900
+Branch: REL9_2_STABLE [0c07ef1ad] 2013-12-15 11:10:49 +0900
+Branch: REL9_1_STABLE [035226c61] 2013-12-15 11:10:56 +0900
+Branch: REL9_0_STABLE [7016d970d] 2013-12-15 11:11:02 +0900
+Branch: REL8_4_STABLE [69f77d756] 2013-12-15 11:11:11 +0900
+-->
+
+    <listitem>
+     <para>
+      Accept <literal>SHIFT_JIS</> as an encoding name for locale checking
+      purposes (Tatsuo Ishii)
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master [0def2573c] 2014-02-03 14:47:17 -0500
+Branch: REL9_3_STABLE [641c08041] 2014-02-03 14:46:54 -0500
+Branch: REL9_2_STABLE [888b56570] 2014-02-03 14:46:57 -0500
+-->
+
+    <listitem>
+     <para>
+      Fix <literal>*</>-qualification of named parameters in SQL-language
+      functions (Tom Lane)
+     </para>
+
+     <para>
+      Given a composite-type parameter
+      named <literal>foo</>, <literal>$1.*</> worked fine,
+      but <literal>foo.*</> not so much.
+     </para>
+    </listitem>
+
+<!--
+Author: Fujii Masao <fujii@postgresql.org>
+Branch: master [77035fa8a] 2014-01-23 22:58:58 +0900
+Branch: REL9_3_STABLE [be5d49974] 2014-01-23 23:00:30 +0900
+Branch: REL9_2_STABLE [ea311bfdf] 2014-01-23 23:01:06 +0900
+Branch: REL9_1_STABLE [1b384aff1] 2014-01-23 23:01:34 +0900
+Branch: REL9_0_STABLE [996b21cbf] 2014-01-23 23:02:03 +0900
+Branch: REL8_4_STABLE [5525529db] 2014-01-23 23:02:30 +0900
+-->
+
+    <listitem>
+     <para>
+      Fix misbehavior of <function>PQhost()</> on Windows (Fujii Masao)
+     </para>
+
+     <para>
+      It should return <literal>localhost</> if no host has been specified.
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master [b8f00a46b] 2014-02-13 18:45:58 -0500
+Branch: REL9_3_STABLE [f208fb436] 2014-02-13 18:46:03 -0500
+Branch: REL9_2_STABLE [2573f08a1] 2014-02-13 18:45:20 -0500
+Branch: REL9_1_STABLE [7182bd239] 2014-02-13 18:45:23 -0500
+Branch: REL9_0_STABLE [218dd205b] 2014-02-13 18:45:27 -0500
+Branch: REL8_4_STABLE [7644a7bd8] 2014-02-13 18:45:32 -0500
+-->
+
+    <listitem>
+     <para>
+      Improve error handling in <application>libpq</> and <application>psql</>
+      for failures during <literal>COPY TO STDOUT/FROM STDIN</> (Tom Lane)
+     </para>
+
+     <para>
+      In particular this fixes an infinite loop that could occur in 9.2 and
+      up if the server connection was lost during <literal>COPY FROM
+      STDIN</>.  Variants of that scenario might be possible in older
+      versions, or with other client applications.
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master [92459e7a7] 2014-01-04 16:05:16 -0500
+Branch: REL9_3_STABLE [341f0bc49] 2014-01-04 16:05:20 -0500
+Branch: REL9_2_STABLE [fa28f9cba] 2014-01-04 16:05:23 -0500
+-->
+
+    <listitem>
+     <para>
+      Fix incorrect translation handling in
+      some <application>psql</> <literal>\d</> commands
+      (Peter Eisentraut, Tom Lane)
+     </para>
+    </listitem>
+
+<!--
+Author: Magnus Hagander <magnus@hagander.net>
+Branch: master [63ab2befe] 2014-02-12 18:45:18 +0100
+Branch: REL9_3_STABLE [c90204c60] 2014-02-12 18:46:04 +0100
+Branch: REL9_2_STABLE [0ae288d2d] 2014-02-12 14:51:00 +0100
+-->
+
+    <listitem>
+     <para>
+      Ensure <application>pg_basebackup</>'s background process is killed
+      when exiting its foreground process (Magnus Hagander)
+     </para>
+    </listitem>
+
+<!--
+Author: Magnus Hagander <magnus@hagander.net>
+Branch: master [01025d80a] 2014-02-09 12:05:14 +0100
+Branch: REL9_3_STABLE [680baa8d2] 2014-02-09 12:09:18 +0100
+Branch: REL9_2_STABLE [165aa1da5] 2014-02-09 12:09:39 +0100
+Branch: REL9_1_STABLE [c6e5c4dd1] 2014-02-09 12:09:55 +0100
+-->
+
+    <listitem>
+     <para>
+      Fix possible incorrect printing of filenames
+      in <application>pg_basebackup</>'s verbose mode (Magnus Hagander)
+     </para>
+    </listitem>
+
+<!--
+Author: Magnus Hagander <magnus@hagander.net>
+Branch: master [b168c5ef2] 2014-01-07 17:11:32 +0100
+Branch: REL9_3_STABLE [0463b9419] 2014-01-07 17:11:51 +0100
+Branch: REL9_2_STABLE [2edf3e82c] 2014-01-07 17:22:36 +0100
+Branch: REL9_1_STABLE [773e4d5e4] 2014-01-07 17:18:02 +0100
+-->
+
+    <listitem>
+     <para>
+      Avoid including tablespaces inside PGDATA twice in base backups
+      (Dimitri Fontaine, Magnus Hagander)
+     </para>
+    </listitem>
+
+<!--
+Author: Michael Meskes <meskes@postgresql.org>
+Branch: master [d685e2424] 2014-01-09 16:20:19 +0100
+Branch: REL9_3_STABLE [28fff0ef8] 2014-01-09 15:41:51 +0100
+Branch: REL9_2_STABLE [799728b0b] 2014-01-09 15:50:51 +0100
+Branch: REL9_1_STABLE [9f5b3a1a1] 2014-01-09 15:51:11 +0100
+Branch: REL9_0_STABLE [a29b6c342] 2014-01-09 15:51:23 +0100
+Branch: REL8_4_STABLE [d68a65b01] 2014-01-09 15:58:37 +0100
+-->
+
+    <listitem>
+     <para>
+      Fix misaligned descriptors in <application>ecpg</> (MauMau)
+     </para>
+    </listitem>
+
+<!--
+Author: Michael Meskes <meskes@postgresql.org>
+Branch: master [7c957ec83] 2014-01-01 12:39:31 +0100
+Branch: REL9_3_STABLE [8404037d8] 2014-01-01 12:40:28 +0100
+Branch: REL9_2_STABLE [119a59879] 2014-01-01 12:40:42 +0100
+Branch: REL9_1_STABLE [948498274] 2014-01-01 12:44:15 +0100
+Branch: REL9_0_STABLE [17bcdd01f] 2014-01-01 12:44:44 +0100
+Branch: REL8_4_STABLE [96de4939c] 2014-01-01 12:44:58 +0100
+-->
+
+    <listitem>
+     <para>
+      In <application>ecpg</>, handle lack of a hostname in the connection
+      parameters properly (Michael Meskes)
+     </para>
+    </listitem>
+
+<!--
+Author: Joe Conway <mail@joeconway.com>
+Branch: master [d6ca510d9] 2013-12-07 17:00:26 -0800
+Branch: REL9_3_STABLE [0ec530625] 2013-12-07 17:00:10 -0800
+Branch: REL9_2_STABLE [7f4ef622f] 2013-12-07 16:59:35 -0800
+Branch: REL9_1_STABLE [70165f25b] 2013-12-07 16:59:16 -0800
+Branch: REL9_0_STABLE [9057adc23] 2013-12-07 16:58:41 -0800
+Branch: REL8_4_STABLE [6c8b16e30] 2013-12-07 16:56:34 -0800
+-->
+
+    <listitem>
+     <para>
+      Fix performance regression in <filename>contrib/dblink</> connection
+      startup (Joe Conway)
+     </para>
+
+     <para>
+      Avoid an unnecessary round trip when client and server encodings match.
+     </para>
+    </listitem>
+
+<!--
+Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
+Branch: master [866a1f092] 2014-01-13 15:43:29 +0200
+Branch: REL9_3_STABLE [50c5770ec] 2014-01-13 15:43:59 +0200
+Branch: REL9_2_STABLE [f6d6b42f2] 2014-01-13 15:44:02 +0200
+Branch: REL9_1_STABLE [5143dfd57] 2014-01-13 15:44:04 +0200
+Branch: REL9_0_STABLE [6c3f040be] 2014-01-13 15:44:12 +0200
+Branch: REL8_4_STABLE [492b68541] 2014-01-13 15:44:14 +0200
+-->
+
+    <listitem>
+     <para>
+      In <filename>contrib/isn</>, fix incorrect calculation of the check
+      digit for ISMN values (Fabien Coelho)
+     </para>
+    </listitem>
+
+<!--
+Author: Tatsuo Ishii <ishii@postgresql.org>
+Branch: master [841a65482] 2013-12-12 19:10:35 +0900
+Branch: REL9_3_STABLE [27902bc91] 2013-12-12 19:07:53 +0900
+-->
+
+    <listitem>
+     <para>
+      Fix <filename>contrib/pgbench</>'s progress logging to avoid overflow
+      when the scale factor is large (Tatsuo Ishii)
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master [69c7a9838] 2014-01-21 16:34:28 -0500
+Branch: REL9_3_STABLE [0950d67ee] 2014-01-21 16:34:31 -0500
+Branch: REL9_2_STABLE [27ab1eb7e] 2014-01-21 16:34:35 -0500
+-->
+
+    <listitem>
+     <para>
+      Fix <filename>contrib/pg_stat_statement</>'s handling
+      of <literal>CURRENT_DATE</> and related constructs (Kyotaro
+      Horiguchi)
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master [00d4f2af8] 2014-02-03 21:30:20 -0500
+Branch: REL9_3_STABLE [eb3d350db] 2014-02-03 21:30:28 -0500
+-->
+
+    <listitem>
+     <para>
+      Improve lost-connection error handling
+      in <filename>contrib/postgres_fdw</> (Tom Lane)
+     </para>
+    </listitem>
+
+<!--
+Author: Peter Eisentraut <peter_e@gmx.net>
+Branch: master [ad6bf0291] 2014-01-17 23:08:22 -0500
+Branch: REL9_3_STABLE [586bea612] 2014-01-17 23:11:02 -0500
+Branch: REL9_2_STABLE [526e38751] 2014-01-17 23:12:50 -0500
+Branch: REL9_1_STABLE [6d969b000] 2014-01-17 23:14:21 -0500
+Branch: REL9_0_STABLE [2346c383a] 2014-01-17 23:15:00 -0500
+Branch: REL8_4_STABLE [15699d9bf] 2014-01-17 23:17:59 -0500
+-->
+
+    <listitem>
+     <para>
+      Ensure client-code-only installation procedure works as documented
+      (Peter Eisentraut)
+     </para>
+    </listitem>
+
+<!--
+Author: Andrew Dunstan <andrew@dunslane.net>
+Branch: master [d587298b8] 2014-02-01 15:11:13 -0500
+Branch: REL9_3_STABLE [1e9876c3b] 2014-02-01 15:16:06 -0500
+Branch: REL9_2_STABLE [6e96d4db8] 2014-02-01 15:16:18 -0500
+Branch: REL9_1_STABLE [dfb4a1a21] 2014-02-01 15:16:29 -0500
+Branch: REL9_0_STABLE [59d64e7f3] 2014-02-01 15:16:40 -0500
+Branch: REL8_4_STABLE [ae3c98b9b] 2014-02-01 15:16:52 -0500
+-->
+
+    <listitem>
+     <para>
+      In Mingw and Cygwin builds, install the <application>libpq</> DLL
+      in the <filename>bin</> directory (Andrew Dunstan)
+     </para>
+
+     <para>
+      This duplicates what the MSVC build has long done.  It should fix
+      problems with programs like <application>psql</> failing to start
+      because they can't find the DLL.
+     </para>
+    </listitem>
+
+<!--
+Author: Andrew Dunstan <andrew@dunslane.net>
+Branch: master [7e1531a45] 2014-02-01 16:08:33 -0500
+Branch: REL9_3_STABLE [27942baf4] 2014-02-01 16:13:32 -0500
+Branch: REL9_2_STABLE [fad443753] 2014-02-01 16:13:46 -0500
+Branch: REL9_1_STABLE [e5c22c15d] 2014-02-01 16:14:01 -0500
+Branch: REL9_0_STABLE [1c0bf372f] 2014-02-01 16:14:15 -0500
+-->
+
+    <listitem>
+     <para>
+      Avoid using the deprecated <literal>dllwrap</> tool in Cygwin builds
+      (Marco Atzeri)
+     </para>
+    </listitem>
+
+<!--
+Author: Andrew Dunstan <andrew@dunslane.net>
+Branch: master [cec8394b5] 2014-01-26 09:49:10 -0500
+Branch: REL9_3_STABLE [56c08df55] 2014-01-26 09:45:43 -0500
+-->
+
+    <listitem>
+     <para>
+      Enable building with Visual Studio 2013 (Brar Piening)
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master [289541520] 2014-02-10 20:48:04 -0500
+Branch: REL9_3_STABLE [f1e522696] 2014-02-10 20:48:12 -0500
+Branch: REL9_2_STABLE [dd5605104] 2014-02-10 20:48:20 -0500
+Branch: REL9_1_STABLE [3bf5c16f1] 2014-02-10 20:48:23 -0500
+Branch: REL9_0_STABLE [e1e7642bd] 2014-02-10 20:48:27 -0500
+Branch: REL8_4_STABLE [432735cbf] 2014-02-10 20:48:30 -0500
+-->
+
+    <listitem>
+     <para>
+      Don't generate plain-text <filename>HISTORY</>
+      and <filename>src/test/regress/README</> files anymore (Tom Lane)
+     </para>
+
+     <para>
+      These text files duplicated the main HTML and PDF documentation
+      formats.  The trouble involved in maintaining them greatly outweighs
+      the likely audience for plain-text format.  Distribution tarballs
+      will still contain files by these names, but they'll just be stubs
+      directing the reader to consult the main documentation.
+      The plain-text <filename>INSTALL</> file will still be maintained, as
+      there is arguably a use-case for that.
+     </para>
+    </listitem>
+
+<!--
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Branch: master [e04641f4b] 2014-02-14 21:59:13 -0500
+Branch: REL9_3_STABLE [46cbcd50e] 2014-02-14 21:59:37 -0500
+Branch: REL9_2_STABLE [4f975b68b] 2014-02-14 21:59:42 -0500
+Branch: REL9_1_STABLE [3212ba534] 2014-02-14 21:59:46 -0500
+Branch: REL9_0_STABLE [cb84fddd9] 2014-02-14 21:59:50 -0500
+Branch: REL8_4_STABLE [c0c2d62ac] 2014-02-14 21:59:56 -0500
+-->
+
+    <listitem>
+     <para>
+      Update time zone data files to <application>tzdata</> release 2013i
+      for DST law changes in Jordan and historical changes in Cuba.
+     </para>
+
+     <para>
+      In addition, the zones <literal>Asia/Riyadh87</>,
+      <literal>Asia/Riyadh88</>, and <literal>Asia/Riyadh89</> have been
+      removed, as they are no longer maintained by IANA, and never
+      represented actual civil timekeeping practice.
+     </para>
+    </listitem>
+
+   </itemizedlist>
+
+  </sect2>
+ </sect1>
+
+ <sect1 id="release-9-3-2">
+  <title>Release 9.3.2</title>
+
+  <note>
+  <title>Release Date</title>
+  <simpara>2013-12-05</simpara>
+  </note>
+
+  <para>
+   This release contains a variety of fixes from 9.3.1.
+   For information about new features in the 9.3 major release, see
+   <xref linkend="release-9-3">.
+  </para>
+
+  <sect2>
+   <title>Migration to Version 9.3.2</title>
+
+   <para>
+    A dump/restore is not required for those running 9.3.X.
+   </para>
+
+   <para>
+    However, this release corrects a number of potential data corruption
+    issues.  See the first three changelog entries below to find out whether
+    your installation has been affected and what steps you can take if so.
+   </para>
+
+   <para>
+    Also, if you are upgrading from a version earlier than 9.3.1,
+    see <xref linkend="release-9-3-1">.
+   </para>
+
+  </sect2>
+
+  <sect2>
+   <title>Changes</title>
+
+   <itemizedlist>
+
+    <listitem>
+     <para>
+      Fix <command>VACUUM</>'s tests to see whether it can
+      update <structfield>relfrozenxid</> (Andres Freund)
+     </para>
+
+     <para>
+      In some cases <command>VACUUM</> (either manual or autovacuum) could
+      incorrectly advance a table's <structfield>relfrozenxid</> value,
+      allowing tuples to escape freezing, causing those rows to become
+      invisible once 2^31 transactions have elapsed.  The probability of
+      data loss is fairly low since multiple incorrect advancements would
+      need to happen before actual loss occurs, but it's not zero.  In 9.2.0
+      and later, the probability of loss is higher, and it's also possible
+      to get <quote>could not access status of transaction</> errors as a
+      consequence of this bug.  Users upgrading from releases 9.0.4 or 8.4.8
+      or earlier are not affected, but all later versions contain the bug.
+     </para>
+
+     <para>
+      The issue can be ameliorated by, after upgrading, vacuuming all tables
+      in all databases while having <link
+      linkend="guc-vacuum-freeze-table-age"><varname>vacuum_freeze_table_age</></link>
+      set to zero.  This will fix any latent corruption but will not be able
+      to fix all pre-existing data errors.  However, an installation can be
+      presumed safe after performing this vacuuming if it has executed fewer
+      than 2^31 update transactions in its lifetime (check this with
+      <literal>SELECT txid_current() < 2^31</>).
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix multiple bugs in MultiXactId freezing (Andres Freund,
+      &Aacute;lvaro Herrera)
+     </para>
+
+     <para>
+      These bugs could lead to <quote>could not access status of
+      transaction</> errors, or to duplicate or vanishing rows.
+      Users upgrading from releases prior to 9.3.0 are not affected.
+     </para>
+
+     <para>
+      The issue can be ameliorated by, after upgrading, vacuuming all tables
+      in all databases while having <link
+      linkend="guc-vacuum-freeze-table-age"><varname>vacuum_freeze_table_age</></link>
+      set to zero.  This will fix latent corruption but will not be able to
+      fix all pre-existing data errors.
+     </para>
+
+     <para>
+      As a separate issue, these bugs can also cause standby servers to get
+      out of sync with the primary, thus exhibiting data errors that are not
+      in the primary.  Therefore, it's recommended that 9.3.0 and 9.3.1
+      standby servers be re-cloned from the primary (e.g., with a new base
+      backup) after upgrading.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix initialization of <filename>pg_clog</> and <filename>pg_subtrans</>
+      during hot standby startup (Andres Freund, Heikki Linnakangas)
+     </para>
+
+     <para>
+      This bug can cause data loss on standby servers at the moment they
+      start to accept hot-standby queries, by marking committed transactions
+      as uncommitted. The likelihood of such corruption is small unless, at
+      the time of standby startup, the primary server has executed many
+      updating transactions since its last checkpoint.  Symptoms include
+      missing rows, rows that should have been deleted being still visible,
+      and obsolete versions of updated rows being still visible alongside
+      their newer versions.
+     </para>
+
+     <para>
+      This bug was introduced in versions 9.3.0, 9.2.5, 9.1.10, and 9.0.14.
+      Standby servers that have only been running earlier releases are not
+      at risk.  It's recommended that standby servers that have ever run any
+      of the buggy releases be re-cloned from the primary (e.g., with a new
+      base backup) after upgrading.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix multiple bugs in update chain traversal (Andres Freund,
+      &Aacute;lvaro Herrera)
+     </para>
+
+     <para>
+      These bugs could result in incorrect behavior, such as locking or even
+      updating the wrong row, in the presence of concurrent updates.
+      Spurious <quote>unable to fetch updated version of tuple</> errors
+      were also possible.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix dangling-pointer problem in fast-path locking (Tom Lane)
+     </para>
+
+     <para>
+      This could lead to corruption of the lock data structures in shared
+      memory, causing <quote>lock already held</> and other odd errors.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix assorted race conditions in timeout management (Tom Lane)
+     </para>
+
+     <para>
+      These errors could result in a server process becoming unresponsive
+      because it had blocked SIGALRM and/or SIGINT.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Truncate <filename>pg_multixact</> contents during WAL replay
+      (Andres Freund)
+     </para>
+
+     <para>
+      This avoids ever-increasing disk space consumption in standby servers.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Ensure an anti-wraparound <command>VACUUM</> counts a page as scanned
+      when it's only verified that no tuples need freezing (Sergey
+      Burladyan, Jeff Janes)
+     </para>
+
+     <para>
+      This bug could result in failing to
+      advance <structfield>relfrozenxid</>, so that the table would still be
+      thought to need another anti-wraparound vacuum.  In the worst case the
+      database might even shut down to prevent wraparound.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix full-table-vacuum request mechanism for MultiXactIds (Andres Freund)
+     </para>
+
+     <para>
+      This bug could result in large amounts of useless autovacuum activity.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix race condition in GIN index posting tree page deletion (Heikki
+      Linnakangas)
+     </para>
+
+     <para>
+      This could lead to transient wrong answers or query failures.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix <quote>unexpected spgdoinsert() failure</> error during SP-GiST
+      index creation (Teodor Sigaev)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix assorted bugs in materialized views (Kevin Grittner, Andres Freund)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Re-allow duplicate table aliases if they're within aliased JOINs
+      (Tom Lane)
+     </para>
+
+     <para>
+      Historically <productname>PostgreSQL</> has accepted queries like
+<programlisting>
+SELECT ... FROM tab1 x CROSS JOIN (tab2 x CROSS JOIN tab3 y) z
+</programlisting>
+      although a strict reading of the SQL standard would forbid the
+      duplicate usage of table alias <literal>x</>.  A misguided change in
+      9.3.0 caused it to reject some such cases that were formerly accepted.
+      Restore the previous behavior.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Avoid flattening a subquery whose <literal>SELECT</> list contains a
+      volatile function wrapped inside a sub-<literal>SELECT</> (Tom Lane)
+     </para>
+
+     <para>
+      This avoids unexpected results due to extra evaluations of the
+      volatile function.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix planner's processing of non-simple-variable subquery outputs
+      nested within outer joins (Tom Lane)
+     </para>
+
+     <para>
+      This error could lead to incorrect plans for queries involving
+      multiple levels of subqueries within <literal>JOIN</> syntax.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix incorrect planning in cases where the same non-strict expression
+      appears in multiple <literal>WHERE</> and outer <literal>JOIN</>
+      equality clauses (Tom Lane)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix planner crash with whole-row reference to a subquery (Tom Lane)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix incorrect generation of optimized MIN()/MAX() plans for
+      inheritance trees (Tom Lane)
+     </para>
+
+     <para>
+      The planner could fail in cases where the MIN()/MAX() argument was an
+      expression rather than a simple variable.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix premature deletion of temporary files (Andres Freund)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Prevent intra-transaction memory leak when printing range values
+      (Tom Lane)
+     </para>
+
+     <para>
+      This fix actually cures transient memory leaks in any datatype output
+      function, but range types are the only ones known to have had a
+      significant problem.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix memory leaks when reloading configuration files (Heikki
+      Linnakangas, Hari Babu)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Prevent incorrect display of dropped columns in NOT NULL and CHECK
+      constraint violation messages (Michael Paquier and Tom Lane)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Allow default arguments and named-argument notation for window
+      functions (Tom Lane)
+     </para>
+
+     <para>
+      Previously, these cases were likely to crash.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Suppress trailing whitespace on each line when pretty-printing rules
+      and views (Tom Lane)
+     </para>
+
+     <para>
+      9.3.0 generated such whitespace in many more cases than previous
+      versions did.  To reduce unexpected behavioral changes, suppress
+      unnecessary whitespace in all cases.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix possible read past end of memory in rule printing (Peter Eisentraut)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix array slicing of <type>int2vector</> and <type>oidvector</> values
+      (Tom Lane)
+     </para>
+
+     <para>
+      Expressions of this kind are now implicitly promoted to
+      regular <type>int2</> or <type>oid</> arrays.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Return a valid JSON value when converting an empty <type>hstore</> value
+      to <type>json</>
+      (Oskari Saarenmaa)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix incorrect behaviors when using a SQL-standard, simple GMT offset
+      timezone (Tom Lane)
+     </para>
+
+     <para>
+      In some cases, the system would use the simple GMT offset value when
+      it should have used the regular timezone setting that had prevailed
+      before the simple offset was selected.  This change also causes
+      the <function>timeofday</> function to honor the simple GMT offset
+      zone.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Prevent possible misbehavior when logging translations of Windows
+      error codes (Tom Lane)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Properly quote generated command lines in <application>pg_ctl</>
+      (Naoya Anzai and Tom Lane)
+     </para>
+
+     <para>
+      This fix applies only to Windows.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix <application>pg_dumpall</> to work when a source database
+      sets <link
+      linkend="guc-default-transaction-read-only"><varname>default_transaction_read_only</></link>
+      via <command>ALTER DATABASE SET</> (Kevin Grittner)
+     </para>
+
+     <para>
+      Previously, the generated script would fail during restore.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix <application>pg_isready</> to handle its <option>-d</> option
+      properly (Fabr&iacute;zio de Royes Mello and Fujii Masao)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix parsing of WAL file names in <application>pg_receivexlog</>
+      (Heikki Linnakangas)
+     </para>
+
+     <para>
+      This error made <application>pg_receivexlog</> unable to restart
+      streaming after stopping, once at least 4 GB of WAL had been written.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Report out-of-disk-space failures properly
+      in <application>pg_upgrade</> (Peter Eisentraut)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Make <application>ecpg</> search for quoted cursor names
+      case-sensitively (Zolt&aacute;n B&ouml;sz&ouml;rm&eacute;nyi)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix <application>ecpg</>'s processing of lists of variables
+      declared <type>varchar</> (Zolt&aacute;n B&ouml;sz&ouml;rm&eacute;nyi)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Make <filename>contrib/lo</> defend against incorrect trigger definitions
+      (Marc Cousin)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Update time zone data files to <application>tzdata</> release 2013h
+      for DST law changes in Argentina, Brazil, Jordan, Libya,
+      Liechtenstein, Morocco, and Palestine.  Also, new timezone
+      abbreviations WIB, WIT, WITA for Indonesia.
+     </para>
+    </listitem>
+
+   </itemizedlist>
+
+  </sect2>
+ </sect1>
+
+ <sect1 id="release-9-3-1">
+  <title>Release 9.3.1</title>
+
+  <note>
+  <title>Release Date</title>
+  <simpara>2013-10-10</simpara>
+  </note>
+
+  <para>
+   This release contains a variety of fixes from 9.3.0.
+   For information about new features in the 9.3 major release, see
+   <xref linkend="release-9-3">.
+  </para>
+
+  <sect2>
+   <title>Migration to Version 9.3.1</title>
+
+   <para>
+    A dump/restore is not required for those running 9.3.X.
+   </para>
+
+   <para>
+    However, if you use the <literal>hstore</> extension, see the
+    first changelog entry.
+   </para>
+
+  </sect2>
+
+  <sect2>
+   <title>Changes</title>
+
+   <itemizedlist>
+
+    <listitem>
+     <para>
+      Ensure new-in-9.3 JSON functionality is added to the <literal>hstore</>
+      extension during an update (Andrew Dunstan)
+     </para>
+
+     <para>
+      Users who upgraded a pre-9.3 database containing <literal>hstore</>
+      should execute
+<programlisting>
+ALTER EXTENSION hstore UPDATE;
+</programlisting>
+      after installing 9.3.1, to add two new JSON functions and a cast.
+      (If <literal>hstore</> is already up to date, this command does
+      nothing.)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix memory leak when creating B-tree indexes on range columns
+      (Heikki Linnakangas)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix memory leak caused by <function>lo_open()</function> failure
+      (Heikki Linnakangas)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Serializable snapshot fixes (Kevin Grittner, Heikki Linnakangas)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix deadlock bug in libpq when using SSL (Stephen Frost)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Fix timeline handling bugs in <application>pg_receivexlog</>
+      (Heikki Linnakangas, Andrew Gierth)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Prevent <command>CREATE FUNCTION</> from checking <command>SET</>
+      variables unless function body checking is enabled (Tom Lane)
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Remove rare inaccurate warning during vacuum of index-less tables
+      (Heikki Linnakangas)
+     </para>
+    </listitem>
+
+   </itemizedlist>
+
+  </sect2>
+ </sect1>
+
  <sect1 id="release-9-3">
   <title>Release 9.3</title>
 
   <note>
    <title>Release Date</title>
-   <simpara>2013-XX-XX, CURRENT AS OF 2013-04-20</simpara>
+   <simpara>2013-09-09</simpara>
   </note>
 
   <sect2>
    <title>Overview</title>
 
    <para>
-    ADD HERE  Major enhancements include:
+    Major enhancements in <productname>PostgreSQL</> 9.3 include:
    </para>
 
-    <!-- This list duplicates items below, but without authors or details-->
+   <!-- This list duplicates items below, but without authors or details-->
+
+   <itemizedlist>
+
+    <listitem>
+     <para>
+      Add <link linkend="SQL-CREATEMATERIALIZEDVIEW">materialized
+      views</link>
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Make simple views <link
+      linkend="SQL-CREATEVIEW-updatable-views">auto-updatable</link>
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Add many features for the <type>JSON</> data type,
+      including <link linkend="functions-json">operators and functions</link>
+      to extract elements from <type>JSON</> values
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Implement <acronym>SQL</>-standard <link
+      linkend="queries-lateral"><literal>LATERAL</></link> option for
+      <literal>FROM</>-clause subqueries and function calls
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Allow <link linkend="SQL-CREATEFOREIGNDATAWRAPPER">foreign data
+      wrappers</link> to support writes (inserts/updates/deletes) on foreign
+      tables
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Add a <link linkend="postgres-fdw"><productname>Postgres</> foreign
+      data wrapper</link> to allow access to
+      other <productname>Postgres</> servers
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Add support for <link linkend="event-triggers">event triggers</link>
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Add optional ability to <link
+      linkend="app-initdb-data-checksums">checksum</link> data pages and
+      report corruption
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Prevent non-key-field row updates from blocking foreign key checks
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Greatly reduce System V <link linkend="sysvipc">shared
+      memory</link> requirements
+     </para>
+    </listitem>
+
+   </itemizedlist>
 
    <para>
     The above items are explained in more detail in the sections below.
    </para>
 
-  </sect2>
+  </sect2>
+
+  <sect2>
+
+  <title>Migration to Version 9.3</title>
+
+   <para>
+    A dump/restore using <link
+    linkend="APP-PG-DUMPALL"><application>pg_dumpall</></link>, or use
+    of <link linkend="pgupgrade"><application>pg_upgrade</></link>, is
+    required for those wishing to migrate data from any previous release.
+   </para>
+
+   <para>
+    Version 9.3 contains a number of changes that may affect compatibility
+    with previous releases.  Observe the following incompatibilities:
+   </para>
+
+   <sect3>
+    <title>Server Settings</title>
+
+     <itemizedlist>
+
+      <listitem>
+       <para>
+        Rename <varname>replication_timeout</> to <link
+        linkend="guc-wal-sender-timeout"><varname>wal_sender_timeout</></link>
+        (Amit Kapila)
+       </para>
+
+       <para>
+        This setting controls the <link
+        linkend="wal"><acronym>WAL</></link> sender timeout.
+       </para>
+      </listitem>
+
+      <listitem>
+       <para>
+        Require superuser privileges to set <link
+        linkend="guc-commit-delay"><varname>commit_delay</></link>
+        because it can now potentially delay other sessions (Simon Riggs)
+       </para>
+      </listitem>
+
+      <listitem>
+       <para>
+        Allow in-memory sorts to use their full memory allocation (Jeff Janes)
+       </para>
+
+       <para>
+        Users who have set <link
+        linkend="guc-work-mem"><varname>work_mem</></link> based on the
+        previous behavior may need to revisit that setting.
+       </para>
+      </listitem>
+
+     </itemizedlist>
+
+   </sect3>
+
+   <sect3>
+    <title>Other</title>
+
+     <itemizedlist>
+
+      <listitem>
+       <para>
+        Throw an error if a tuple to be updated or deleted has already been
+        updated or deleted by a <literal>BEFORE</> trigger (Kevin Grittner)
+       </para>
+
+       <para>
+        Formerly, the originally-intended update was silently skipped,
+        resulting in logical inconsistency since the trigger might have
+        propagated data to other places based on the intended update.
+        Now an error is thrown to prevent the inconsistent results from being
+        committed.  If this change affects your application, the best solution
+        is usually to move the data-propagation actions to
+        an <literal>AFTER</> trigger.
+       </para>
+
+       <para>
+        This error will also be thrown if a query invokes a volatile function
+        that modifies rows that are later modified by the query itself.
+        Such cases likewise previously resulted in silently skipping updates.
+       </para>
+      </listitem>
+
+      <listitem>
+       <para>
+        Change multicolumn <link linkend="SQL-CREATETABLE"><literal>ON UPDATE
+        SET NULL/SET DEFAULT</></link> foreign key actions to affect
+        all columns of the constraint, not just those changed in the
+        <command>UPDATE</> (Tom Lane)
+       </para>
+
+       <para>
+        Previously, we would set only those referencing columns that
+        correspond to referenced columns that were changed by
+        the <command>UPDATE</>.  This was what was required by SQL-92,
+        but more recent editions of the SQL standard specify the new behavior.
+       </para>
+      </listitem>
+
+      <listitem>
+       <para>
+        Force cached plans to be replanned if the <link
+        linkend="guc-search-path"><varname>search_path</></link> changes
+        (Tom Lane)
+       </para>
+
+       <para>
+        Previously, cached plans already generated in the current session were
+        not redone if the query was re-executed with a
+        new <varname>search_path</> setting, resulting in surprising behavior.
+       </para>
+      </listitem>
+
+      <listitem>
+       <para>
+        Fix <link
+        linkend="functions-formatting-table"><function>to_number()</></link>
+        to properly handle a period used as a thousands separator (Tom Lane)
+       </para>
+
+       <para>
+        Previously, a period was considered to be a decimal point even when
+        the locale says it isn't and the <literal>D</> format code is used to
+        specify use of the locale-specific decimal point.  This resulted in
+        wrong answers if <literal>FM</> format was also used.
+       </para>
+      </listitem>
+
+      <listitem>
+       <para>
+        Fix <literal>STRICT</> non-set-returning functions that have
+        set-returning functions in their arguments to properly return null
+        rows (Tom Lane)
+       </para>
+
+       <para>
+        A null value passed to the strict function should result in a null
+        output, but instead, that output row was suppressed entirely.
+       </para>
+      </listitem>
+
+      <listitem>
+       <para>
+        Store <link linkend="wal"><acronym>WAL</></link> in a continuous
+        stream, rather than skipping the last 16MB segment every 4GB
+        (Heikki Linnakangas)
+       </para>
 
-  <sect2>
+       <para>
+        Previously, <acronym>WAL</> files with names ending in <literal>FF</>
+        were not used because of this skipping.  If you have <acronym>WAL</>
+        backup or restore scripts that took this behavior into account, they
+        will need to be adjusted.
+       </para>
+      </listitem>
 
-  <title>Migration to Version 9.3</title>
+      <listitem>
+       <para>
+        In <link
+        linkend="catalog-pg-constraint"><structname>pg_constraint.confmatchtype</></link>,
+        store the default foreign key match type (non-<literal>FULL</>,
+        non-<literal>PARTIAL</>) as <literal>s</> for <quote>simple</>
+        (Tom Lane)
+       </para>
 
-   <para>
-    A dump/restore using <link
-    linkend="APP-PG-DUMPALL"><application>pg_dumpall</></link>, or use
-    of <link linkend="pgupgrade"><application>pg_upgrade</></link>, is
-    required for those wishing to migrate data from any previous release.
-   </para>
+       <para>
+        Previously this case was represented by <literal>u</>
+        for <quote>unspecified</>.
+       </para>
+      </listitem>
 
-   <para>
-    Version 9.3 contains a number of changes that may affect compatibility
-    with previous releases.  Observe the following incompatibilities:
-   </para>
+     </itemizedlist>
 
-   <sect3>
-    <title>ADD HERE</title>
-     <para>here</para>
    </sect3>
 
   </sect2>
 
       <listitem>
        <para>
-        Prevent non-key-field row updates from locking foreign key rows
+        Prevent non-key-field row updates from blocking foreign key checks
         (&Aacute;lvaro Herrera, Noah Misch, Andres Freund, Alexander
-        Shulgin, Marti Raudsepp)
+        Shulgin, Marti Raudsepp, Alexander Shulgin)
        </para>
 
        <para>
-        This improves concurrency and reduces the probability of deadlocks.
-        UPDATEs on non-key columns use the new SELECT FOR NO KEY UPDATE lock
-        type, and foreign key checks use the new SELECT FOR KEY SHARE lock mode.
+        This change improves concurrency and reduces the probability of
+        deadlocks when updating tables involved in a foreign-key constraint.
+        <command>UPDATE</>s that do not change any columns referenced in a
+        foreign key now take the new <literal>NO KEY UPDATE</> lock mode on
+        the row, while foreign key checks use the new <literal>KEY SHARE</>
+        lock mode, which does not conflict with <literal>NO KEY UPDATE</>.
+        So there is no blocking unless a foreign-key column is changed.
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Add configuration variable lock_timeout to limit lock wait duration
+        Add configuration variable <link
+        linkend="guc-lock-timeout"><varname>lock_timeout</></link> to
+        allow limiting how long a session will wait to acquire any one lock
         (Zolt&aacute;n B&ouml;sz&ouml;rm&eacute;nyi)
        </para>
       </listitem>
 
-      <listitem>
-       <para>
-        Add cache of local locks (Jeff Janes)
-       </para>
-
-       <para>
-        This speeds lock release at statement completion in transactions
-        that hold many locks; it is particularly useful for pg_dump.
-       </para>
-      </listitem>
-
      </itemizedlist>
 
     </sect4>
 
       <listitem>
        <para>
-        Add SP-GiST support for range data types (Alexander Korotkov)
+        Add <link linkend="rangetypes-indexing"><acronym>SP-GiST</></link>
+        support for range data types (Alexander Korotkov)
+       </para>
+      </listitem>
+
+      <listitem>
+       <para>
+        Allow <link linkend="GiST"><acronym>GiST</></link> indexes to be
+        unlogged (Jeevan Chalke)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Allow unlogged GiST indexes (Jeevan Chalke)
+        Improve performance of <acronym>GiST</> index insertion by randomizing
+        the choice of which page to descend to when there are multiple equally
+        good alternatives (Heikki Linnakangas)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Improve concurrency of hash indexes (Robert Haas)
+        Improve concurrency of hash index operations (Robert Haas)
        </para>
       </listitem>
 
 
       <listitem>
        <para>
-        Collect and use histograms for range types (Alexander Korotkov)
+        Collect and use histograms of upper and lower bounds, as well as range
+        lengths, for <link linkend="rangetypes">range types</link>
+        (Alexander Korotkov)
+       </para>
+      </listitem>
+
+      <listitem>
+       <para>
+        Improve optimizer's cost estimation for index access (Tom Lane)
+       </para>
+      </listitem>
+
+      <listitem>
+       <para>
+        Improve optimizer's hash table size estimate for
+        doing <literal>DISTINCT</> via hash aggregation (Tom Lane)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Reduce optimizer overhead by discarding plans with unneeded cheaper
-        startup costs (Tom Lane)
+        Suppress no-op Result and Limit plan nodes
+        (Kyotaro Horiguchi, Amit Kapila, Tom Lane)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Improve optimizer cost estimation for index access (Tom Lane)
+        Reduce optimizer overhead by not keeping plans on the basis of cheap
+        startup cost when the optimizer only cares about total cost overall
+        (Tom Lane)
        </para>
       </listitem>
 
 
       <listitem>
        <para>
-        Add COPY FREEZE option to avoid the overhead of later marking
-        tuples as committed (Simon Riggs, Jeff Davis)
+        Add <link linkend="SQL-COPY"><command>COPY FREEZE</></link>
+        option to avoid the overhead of marking tuples as frozen later
+        (Simon Riggs, Jeff Davis)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Improve performance of NUMERIC calculations (Kyotaro Horiguchi)
+        Improve performance of <link
+        linkend="datatype-numeric"><type>NUMERIC</></link> calculations
+        (Kyotaro Horiguchi)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Improve grouping of sessions waiting for commit_delay (Peter
-        Geoghegan)
+        Improve synchronization of sessions waiting for <link
+        linkend="guc-commit-delay"><varname>commit_delay</></link>
+        (Peter Geoghegan)
        </para>
 
        <para>
-        This improves the usefulness and behavior of commit_delay.
-        BACKWARD COMPATIBILITY
+        This greatly improves the usefulness of <varname>commit_delay</>.
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Allow in-memory sorts to use their full memory allocation (Jeff Janes)
-       </para>
-
-       <para>
-        Users who have set work_mem based on the previous behavior should
-        revisit that setting.
+        Improve performance of the <link
+        linkend="SQL-CREATETABLE"><command>CREATE TEMPORARY TABLE ... ON
+        COMMIT DELETE ROWS</></link> option by not truncating such temporary
+        tables in transactions that haven't touched any temporary tables
+        (Heikki Linnakangas)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Improve performance for transactions creating, rebuilding, or
-        dropping many relations (Jeff Janes, Tomas Vondra)
+        Make vacuum recheck visibility after it has removed expired tuples
+        (Pavan Deolasee)
        </para>
-      </listitem>
 
-      <listitem>
        <para>
-        Improve performance of the CREATE TEMPORARY TABLE ... ON COMMIT
-        DELETE ROWS clause by only issuing delete if the temporary table
-        was accessed (Heikki Linnakangas)
+        This increases the chance of a page being marked as all-visible.
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Have vacuum recheck visibility after it has removed expired tuples
-        (Pavan Deolasee)
+        Add per-resource-owner lock caches (Jeff Janes)
        </para>
 
        <para>
-        This increases the chance of a page being marked as all-visible.
+        This speeds up lock bookkeeping at statement completion in
+        multi-statement transactions that hold many locks; it is particularly
+        useful for <application>pg_dump</>.
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Split pgstat file in per-database and global files (Tomas Vondra)
+        Avoid scanning the entire relation cache at commit of a transaction
+        that creates a new relation (Jeff Janes)
+       </para>
+
+       <para>
+        This speeds up sessions that create many tables in successive
+        small transactions, such as a <application>pg_restore</> run.
        </para>
+      </listitem>
 
+      <listitem>
        <para>
-        This reduces the statistics management read and write overhead.
+        Improve performance of transactions that drop many relations
+        (Tomas Vondra)
        </para>
       </listitem>
 
 
       <listitem>
        <para>
-        Add optional ability to checksum data pages and report corruption
-        (Simon Riggs, Jeff Davis, Greg Smith)
+        Add optional ability to <link
+        linkend="app-initdb-data-checksums">checksum</link> data pages and
+        report corruption (Simon Riggs, Jeff Davis, Greg Smith, Ants Aasma)
+       </para>
+
+       <para>
+        The checksum option can be set during <link
+        linkend="APP-INITDB">initdb</link>.
+       </para>
+      </listitem>
+
+      <listitem>
+       <para>
+        Split the <link linkend="monitoring-stats">statistics collector's</link>
+        data file into separate global and per-database files (Tomas Vondra)
        </para>
 
        <para>
-        The checksum option can be set during initdb.
+        This reduces the I/O required for statistics tracking.
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Allow pg_terminate_backend() to terminate other backends with
-        the same role (Dan Farina)
+        Fix the statistics collector to operate properly in cases where the
+        system clock goes backwards (Tom Lane)
        </para>
 
        <para>
-        Previously, only superusers could terminate other sessions.
+        Previously, statistics collection would stop until the time again
+        reached the latest time previously recorded.
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Allow the statistics collector to operate properly in cases where
-        the system clock goes backwards (Tom Lane)
+        Emit an informative message to postmaster standard error when we
+        are about to stop logging there
+        (Tom Lane)
        </para>
 
        <para>
-        Previously statistics collection would stop until the time again
-        reached the previously-stored latest time.
+        This should help reduce user confusion about where to look for log
+        output in common configurations that log to standard error only during
+        postmaster startup.
        </para>
       </listitem>
 
 
       <listitem>
        <para>
-        Improve LDAP error reporting and documentation (Peter Eisentraut)
+        When an authentication failure occurs, log the relevant
+        <link linkend="auth-pg-hba-conf"><filename>pg_hba.conf</></link>
+        line, to ease debugging of unintended failures
+        (Magnus Hagander)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Add support for LDAP authentication to be specified in URL format
-        (Peter Eisentraut)
+        Improve <link linkend="auth-ldap"><acronym>LDAP</></link> error
+        reporting and documentation (Peter Eisentraut)
+       </para>
+      </listitem>
+
+      <listitem>
+       <para>
+        Add support for specifying <acronym>LDAP</> authentication parameters
+        in <acronym>URL</> format, per RFC 4516 (Peter Eisentraut)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Change the ssl_ciphers parameter to start with DEFAULT, rather
-        than ALL, then remove insecure ciphers (Magnus Hagander)
+        Change the <link
+        linkend="guc-ssl-ciphers"><varname>ssl_ciphers</></link> parameter
+        to start with <literal>DEFAULT</>, rather than <literal>ALL</>,
+        then remove insecure ciphers (Magnus Hagander)
        </para>
 
        <para>
-        It is assumed DEFAULT is more appropriate cipher set.
+        This should yield a more appropriate SSL cipher set.
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Parse/load pg_ident.conf once, not during each connection (Amit
-        Kapila)
+        Parse and load <link
+        linkend="auth-username-maps"><filename>pg_ident.conf</></link>
+        once, not during each connection (Amit Kapila)
        </para>
 
        <para>
-        This is similar to how pg_hba.conf is processed.
+        This is similar to how <filename>pg_hba.conf</> is processed.
        </para>
       </listitem>
 
 
       <listitem>
        <para>
-        Dramatically reduce System V shared memory usage (Robert Haas)
+        Greatly reduce System V <link linkend="sysvipc">shared
+        memory</link> requirements (Robert Haas)
        </para>
 
        <para>
-        Instead, on Unix-like systems, mmap() is used for shared memory.
-        This eliminates the requirement of increasing System V shared
-        memory kernel parameters.
+        On Unix-like systems, <function>mmap()</> is now used for most
+        of <productname>PostgreSQL</>'s shared memory.  For most users, this
+        will eliminate any need to adjust kernel parameters for shared memory.
        </para>
       </listitem>
 
        </para>
 
        <para>
-        This renames configuration parameter unix_socket_directory to
-        unix_socket_directories, which accepts a list of directories.
+        The configuration parameter
+        <varname>unix_socket_directory</> is replaced by <link
+        linkend="guc-unix-socket-directories"><varname>unix_socket_directories</></link>,
+        which accepts a list of directories.
        </para>
       </listitem>
 
        </para>
 
        <para>
-        The directory is specified as include_dir in server configuration file.
+        Such a directory is specified with <link
+        linkend="config-includes"><varname>include_dir</></link> in the server
+        configuration file.
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Increase the maximum initdb-configured value for shared_buffers
+        Increase the maximum <link
+        linkend="APP-INITDB">initdb</link>-configured value for <link
+        linkend="guc-shared-buffers"><varname>shared_buffers</></link>
         to 128MB (Robert Haas)
        </para>
 
        <para>
-        This is the maximum value initdb attempts to set in
-        postgresql.conf;  the previous value was 32MB.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Require superuser privileges to set commit_delay because it
-        can now potentially delay other sessions (Simon Riggs)
-        BACKWARD COMPATIBILITY
-       </para>
-      </listitem>
-
-
-      <listitem>
-       <para>
-        Remove the external PID file on postmaster exit (Peter Eisentraut)
+        This is the maximum value that initdb will attempt to set in <link
+        linkend="config-setting-configuration-file"><filename>postgresql.conf</></link>;
+        the previous maximum was 32MB.
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Have "session id" in log_line_prefix (%c) always output four hex
-        digits after the period (Bruce Momjian) COMPATIBILITY
+        Remove the <link linkend="guc-external-pid-file">external
+        <acronym>PID</> file</link>, if any, on postmaster exit
+        (Peter Eisentraut)
        </para>
       </listitem>
 
 
       <listitem>
        <para>
-        Allow a streaming replication standbys to follow a timeline switch (Heikki Linnakangas)
+        Allow a streaming replication standby to <link
+        linkend="protocol-replication">follow a timeline switch</link>
+        (Heikki Linnakangas)
        </para>
 
        <para>
-        This allows streaming standbys to feed from newly-promoted slaves.
-        Previously slaves required access to a WAL archive directory to
-        accomplish this.
+        This allows streaming standby servers to receive WAL data from a slave
+        newly promoted to master status.  Previously, other standbys would
+        require a resync to begin following the new master.
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Add SQL functions pg_backup_in_progress() and pg_backup_start_time() (Gilles Darold)
+        Add <acronym>SQL</> functions <link
+        linkend="functions-admin-backup"><function>pg_is_in_backup()</></link>
+        and <link
+        linkend="functions-admin-backup"><function>pg_backup_start_time()</></link>
+        (Gilles Darold)
        </para>
 
        <para>
 
       <listitem>
        <para>
-        Improve performance of streaming log shipping with
-        synchronous_commit disabled (Andres Freund)
+        Improve performance of streaming log shipping with <link
+        linkend="guc-synchronous-commit"><varname>synchronous_commit</></link>
+        disabled (Andres Freund)
        </para>
       </listitem>
 
 
       <listitem>
        <para>
-        Add the last checkpoint's redo location to pg_controldata's output
-        (Fujii Masao)
-       </para>
-
-       <para>
-        This information is useful for determining the WAL files needed for
-        restore.
+        Add the last checkpoint's redo location to <link
+        linkend="APP-PGCONTROLDATA"><application>pg_controldata</></link>'s
+        output (Fujii Masao)
        </para>
-      </listitem>
 
-      <listitem>
        <para>
-        Allow tooling like pg_receivexlog to run on computers with different
-        architectures (Heikki Linnakangas)
+        This information is useful for determining which <acronym>WAL</>
+        files are needed for restore.
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Have pg_basebackup --write-recovery-conf output a minimal
-        recovery.conf (Zolt&aacute;n B&ouml;sz&ouml;rm&eacute;nyi, Magnus Hagander)
-       </para>
-
-       <para>
-        This simplifies setting up a standby server.
+        Allow tools like <link
+        linkend="app-pgreceivewal"><application>pg_receivexlog</></link>
+        to run on computers with different architectures (Heikki
+        Linnakangas)
        </para>
-      </listitem>
 
-      <listitem>
        <para>
-        Allow pg_receivexlog and pg_basebackup -X to handle streaming
-        timeline switches (Heikki Linnakangas)
+        WAL files can still only be replayed on servers with the same
+        architecture as the primary; but they can now be transmitted to and
+        stored on machines of any architecture, since the
+        streaming replication protocol is now machine-independent.
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Add wal_receiver_timeout parameter to control the WAL receiver
-        timeout (Amit Kapila)
+        Make <link
+        linkend="app-pgbasebackup"><application>pg_basebackup</></link>
+        <option>--write-recovery-conf</> output a
+        minimal <filename>recovery.conf</> file (Zolt&aacute;n
+        B&ouml;sz&ouml;rm&eacute;nyi, Magnus Hagander)
        </para>
 
        <para>
-        This allows more rapid detection of connection failure. No longer set
-        wal_receiver_status_interval?
+        This simplifies setting up a standby server.
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Rename replication_timeout to wal_sender_timeout (Amit Kapila)
-       </para>
-
-       <para>
-        BACKWARD COMPATIBILITY
-        This setting controls the WAL sender timeout.
+        Allow <link
+        linkend="app-pgreceivewal"><application>pg_receivexlog</></link>
+        and <link
+        linkend="app-pgbasebackup"><application>pg_basebackup</></link>
+        <option>--xlog-method</> to handle streaming timeline switches
+        (Heikki Linnakangas)
        </para>
       </listitem>
 
-     </itemizedlist>
-
-    <sect4>
-     <title>Write-Ahead Log (WAL)</title>
-
-     <itemizedlist>
-
       <listitem>
        <para>
-        Store WAL in a continuous stream, rather than skipping the last
-        16MB segment every 4GB (Heikki Linnakangas)  BACKWARD COMPATIBLE BREAK
+        Add <link
+        linkend="guc-wal-receiver-timeout"><varname>wal_receiver_timeout</></link>
+        parameter to control the <acronym>WAL</> receiver's timeout
+        (Amit Kapila)
        </para>
 
        <para>
-        Previously, WAL files ending in FF were not used.  If you have
-        WAL backup or restore scripts that took that skipping into account,
-        they need to be adjusted.
+        This allows more rapid detection of connection failure.
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Change the WAL record format to allow splitting the record header
-        across pages (Heikki Linnakangas)
+        Change the <link linkend="wal"><acronym>WAL</></link> record format to
+        allow splitting the record header across pages (Heikki Linnakangas)
        </para>
 
        <para>
-        The new format is slightly more compact.
+        The new format is slightly more compact, and is more efficient to
+        write.
        </para>
       </listitem>
 
      </itemizedlist>
 
-    </sect4>
-
    </sect3>
 
    <sect3>
 
       <listitem>
        <para>
-        Implement SQL-standard LATERAL for FROM-clause subqueries and
-        function calls (Tom Lane)
+        Implement <acronym>SQL</>-standard <link
+        linkend="queries-lateral"><literal>LATERAL</></link> option for
+        <literal>FROM</>-clause subqueries and function calls (Tom Lane)
        </para>
 
        <para>
-        This is useful in allowing FROM subqueries and functions to reference
-        output from tables in the FROM clause. The LATERAL keyword is optional
-        for functions.
+        This feature allows subqueries and functions in <literal>FROM</> to
+        reference columns from other tables in the <literal>FROM</>
+        clause. The <literal>LATERAL</> keyword is optional for functions.
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Add support for piping COPY and psql \copy to/from an external program (Etsuro
-        Fujita)
+        Add support for piping <link
+        linkend="SQL-COPY"><command>COPY</></link> and <link
+        linkend="APP-PSQL"><application>psql</></link> <command>\copy</>
+        data to/from an external program (Etsuro Fujita)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Improve query string error location reporting (Tom Lane)
-       </para>
-
-       <para>
-        Only CREATE SCHEMA ... IF NOT EXISTS?  If so, remove it.
+        Allow a multirow <link
+        linkend="SQL-VALUES"><literal>VALUES</></link> clause in a rule
+        to reference <literal>OLD</>/<literal>NEW</> (Tom Lane)
        </para>
       </listitem>
 
 
       <listitem>
        <para>
-        Add support to event triggers (Dimitri Fontaine, Robert Haas,
-        &Aacute;lvaro Herrera)
+        Add support for <link linkend="event-triggers">event triggers</link>
+        (Dimitri Fontaine, Robert Haas, &Aacute;lvaro Herrera)
        </para>
 
        <para>
-        This allows C functions to be called when specific commands are run.
+        This allows server-side functions written in event-enabled
+        languages to be called when DDL commands are run.
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Allow a multi-row VALUES clause in rules to reference OLD/NEW (Tom Lane)
+        Allow <link linkend="SQL-CREATEFOREIGNDATAWRAPPER">foreign data
+        wrappers</link> to support writes (inserts/updates/deletes) on foreign
+        tables (KaiGai Kohei)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Add CREATE SCHEMA ... IF NOT EXISTS clause (Fabr&iacute;zio de
-        Royes Mello)
+        Add <link linkend="SQL-CREATESCHEMA"><command>CREATE SCHEMA ... IF
+        NOT EXISTS</></link> clause (Fabr&iacute;zio de Royes Mello)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Throw an error if expiring tuple is again updated or deleted (Kevin Grittner)
-        DETAILS?  BACKWARD INCOMPATIBILITY
+        Make <link linkend="SQL-REASSIGN-OWNED"><command>REASSIGN
+        OWNED</></link> also change ownership of shared objects
+        (&Aacute;lvaro Herrera)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Have REASSIGN OWNED also change ownership of shared objects (&Aacute;lvaro
-        Herrera)
+        Make <link linkend="sql-createaggregate"><command>CREATE
+        AGGREGATE</></link> complain if the given initial value string is not
+        valid input for the transition datatype (Tom Lane)
        </para>
       </listitem>
 
-     </itemizedlist>
-
-    <sect4>
-     <title><link linkend="SQL-CREATETABLE"><command>CREATE TABLE</></link></title>
-
-     <itemizedlist>
-
       <listitem>
        <para>
-        No longer output messages about implicit index and sequence creation (Robert Haas)
+        Suppress <link linkend="SQL-CREATETABLE"><command>CREATE
+        TABLE</></link>'s messages about implicit index and sequence creation
+        (Robert Haas)
        </para>
 
        <para>
-        These messages now appear with DEBUG1-level output.
+        These messages now appear at <literal>DEBUG1</> verbosity, so that
+        they will not be shown by default.
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Allow CREATE TABLE IF NOT EXISTS to succeed for a non-existent schema
-        (Bruce Momjian)
+        Allow <link linkend="SQL-DROPTABLE"><command>DROP TABLE IF
+        EXISTS</></link> to succeed when a non-existent schema is specified
+        in the table name (Bruce Momjian)
        </para>
 
        <para>
        </para>
       </listitem>
 
-     </itemizedlist>
-
-    </sect4>
-
-    <sect4>
-     <title>Constraints</title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Change ON UPDATE SET NULL/SET DEFAULT foreign key actions to affect
-        all referenced columns, not just those referenced in the UPDATE
-        (Tom Lane)
-       </para>
-
-       <para>
-        Previously only columns referenced in the UPDATE were set to null or DEFAULT.
-        BACKWARD COMPATIBILITY CHANGE
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Provide clients with constraint violation details as separate fields
-        (Pavel Stehule)
-       </para>
-
-       <para>
-        This allows clients to retrieve table, column, data type, or constraint
-        name error details. Previously such information had to be extracted from
-        error strings. Client language support is required to access these
-        fields.
-       </para>
-      </listitem>
-
       <listitem>
        <para>
-        Internally store default foreign key matches (non-FULL, non-PARTIAL) as "simple" (Tom Lane)
+        Provide clients with <link
+        linkend="libpq-pqresulterrorfield">constraint violation details</link>
+        as separate fields (Pavel Stehule)
        </para>
 
        <para>
-        These were previously stored as "&lt;unspecified&gt;".
-        This changes the value stored in system column
-        pg_constraint.confmatchtype.  BACKWARD COMPATIBILITY CHANGE
+        This allows clients to retrieve table, column, data type, or
+        constraint name error details.  Previously such information had to be
+        extracted from error strings.  Client library support is required to
+        access these fields.
        </para>
       </listitem>
 
      </itemizedlist>
 
-    </sect4>
-
     <sect4>
      <title><command>ALTER</></title>
 
 
       <listitem>
        <para>
-        Add the ALTER TYPE ... IF NOT EXISTS clause when adding enumerated type labels (Andrew
-        Dunstan)
+        Support <literal>IF NOT EXISTS</> option in <link
+        linkend="SQL-ALTERTYPE"><command>ALTER TYPE ... ADD VALUE</></link>
+        (Andrew Dunstan)
        </para>
 
        <para>
-        This is useful for conditional label creation in transaction blocks.
+        This is useful for conditionally adding values to enumerated types.
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Add ALTER ROLE ALL SET to add settings to all users (Peter Eisentraut)
+        Add <link linkend="SQL-ALTERROLE"><command>ALTER ROLE ALL
+        SET</></link> to establish settings for all users (Peter Eisentraut)
        </para>
 
        <para>
-        This allows settings to apply to all users in all databases. ALTER
-        DATABASE SET already allowed addition of settings for all users in a
-        single database.  postgresql.conf has a similar effect.
+        This allows settings to apply to all users in all databases. <link
+        linkend="SQL-ALTERDATABASE"><command>ALTER DATABASE SET</></link>
+        already allowed addition of settings for all users in a single
+        database.  <filename>postgresql.conf</> has a similar effect.
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Add support for ALTER RULE ... RENAME (Ali Dar)
+        Add support for <link linkend="SQL-ALTERRULE"><command>ALTER RULE
+        ... RENAME</></link> (Ali Dar)
        </para>
       </listitem>
 
 
       <listitem>
        <para>
-        Add a materialized view relations (Kevin Grittner)
+        Add <link linkend="SQL-CREATEMATERIALIZEDVIEW">materialized
+        views</link> (Kevin Grittner)
        </para>
 
        <para>
         Unlike ordinary views, where the base tables are read on every access,
         materialized views create physical tables at creation or refresh time.
-        Access to the materialized view reads from these materialized physical
-        tables. There is no facility for incrementally refreshing materialized
-        views or auto-accessing them via base table access.
+        Access to the materialized view then reads from its physical
+        table. There is not yet any facility for incrementally refreshing
+        materialized views or auto-accessing them via base table access.
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Make simple views auto-updatable (Dean Rasheed)
+        Make simple views <link
+        linkend="SQL-CREATEVIEW-updatable-views">auto-updatable</link>
+        (Dean Rasheed)
        </para>
 
        <para>
-        Simple views that reference some or all columns from a single base table
-        are now updatable by default. More complex views can be made updatable
-        using INSTEAD OF triggers or INSTEAD rules.
+        Simple views that reference some or all columns from a
+        single base table are now updatable by default. More
+        complex views can be made updatable using <link
+        linkend="SQL-CREATETRIGGER"><literal>INSTEAD OF</></link> triggers
+        or <link linkend="SQL-CREATERULE"><literal>INSTEAD</></link> rules.
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Allow views and rules to handle cases where referenced tables are
-        renamed, or columns are renamed, added, or dropped (Tom Lane)
-        HOW DOES IT HANDLE A DROPPED REFERENCED COLUMN?
+        Add <link linkend="SQL-CREATEVIEW"><command>CREATE RECURSIVE
+        VIEW</></link> syntax (Peter Eisentraut)
        </para>
-      </listitem>
 
-      <listitem>
        <para>
-        Add CREATE RECURSIVE VIEW syntax (Peter Eisentraut)
+        Internally this is translated into <command>CREATE VIEW ... WITH
+        RECURSIVE ...</>.
        </para>
+      </listitem>
 
+      <listitem>
        <para>
-        Internally this is translated into CREATE VIEW ... WITH RECURSIVE.
+        Improve view/rule printing code to handle cases where referenced
+        tables are renamed, or columns are renamed, added, or dropped
+        (Tom Lane)
        </para>
-      </listitem>
 
-      <listitem>
        <para>
-        When converting a table to a view, remove its system columns (Tom Lane)
-        KEEP?
+        Table and column renamings can produce cases where, if we merely
+        substitute the new name into the original text of a rule or view, the
+        result is ambiguous.  This change fixes the rule-dumping code to insert
+        manufactured table and column aliases when needed to preserve the
+        original semantics.
        </para>
       </listitem>
 
 
       <listitem>
        <para>
-        Increase the maximum length of large objects from 2GB to 4TB (Nozomi
-        Anzai, Yugo Nagata)
+        Increase the maximum size of <link linkend="largeObjects">large
+        objects</link> from 2GB to 4TB (Nozomi Anzai, Yugo Nagata)
        </para>
 
        <para>
-        This change includes new libpq and server-side 64-bit-enabled functions.
+        This change includes adding 64-bit-capable large object access
+        functions, both in the server and in libpq.
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Allow text timezone designations, e.g. "America/Chicago" when using the
-        ISO "T" timestamptz format (Bruce Momjian)
+        Allow text <link linkend="datatype-timezones">timezone
+        designations</link>, e.g. <quote>America/Chicago</>, in the
+        <quote>T</> field of <acronym>ISO</>-format <type>timestamptz</type>
+        input (Bruce Momjian)
        </para>
       </listitem>
 
     </itemizedlist>
 
    <sect4>
-    <title>JSON</title>
+    <title><link linkend="datatype-json"><type>JSON</></link></title>
 
     <itemizedlist>
 
       <listitem>
        <para>
-        Add operators and functions to extract values from JSON data strings
-        (Andrew Dunstan)
+        Add <link linkend="functions-json">operators and functions</link>
+        to extract elements from <type>JSON</> values (Andrew Dunstan)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Allow JSON data strings to be converted into records (Andrew Dunstan)
+        Allow <type>JSON</> values to be <link
+        linkend="functions-json">converted into records</link>
+        (Andrew Dunstan)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Add functions to convert values, records, and hstore data to JSON (Andrew Dunstan)
+        Add <link linkend="functions-json">functions</link> to convert
+        scalars, records, and <type>hstore</> values to <type>JSON</> (Andrew
+        Dunstan)
        </para>
       </listitem>
 
 
       <listitem>
        <para>
-        Add array_remove() and array_replace() functions (Marco Nenciarini, Gabriele Bartolini)
+        Add <link
+        linkend="array-functions-table"><function>array_remove()</></link>
+        and <link
+        linkend="array-functions-table"><function>array_replace()</></link>
+        functions (Marco Nenciarini, Gabriele Bartolini)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Allow concat() and format() to properly expand VARIADIC-labeled
-        arguments (Pavel Stehule)
+        Allow <link
+        linkend="functions-string-other"><function>concat()</></link>
+        and <link
+        linkend="functions-string-format"><function>format()</></link>
+        to properly expand <literal>VARIADIC</>-labeled arguments
+        (Pavel Stehule)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Improve format() to handle field width and left/right alignment
-        (Pavel Stehule)
+        Improve <link
+        linkend="functions-string-format"><function>format()</></link>
+        to provide field width and left/right alignment options (Pavel Stehule)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Have to_char(), to_date(), and to_timestamp() properly handle
-        negative century designations (CC) (Bruce Momjian)
+        Make <link
+        linkend="functions-formatting-table"><function>to_char()</></link>,
+        <link
+        linkend="functions-formatting-table"><function>to_date()</></link>,
+        and <link
+        linkend="functions-formatting-table"><function>to_timestamp()</></link>
+        handle negative (BC) century values properly
+        (Bruce Momjian)
        </para>
 
        <para>
-        Previously the behavior was either wrong or inconsistent with
-        positive/AD handling, e.g. format mask 'IYYY-IW-DY'.
+        Previously the behavior was either wrong or inconsistent
+        with positive/<acronym>AD</> handling, e.g. with the format mask
+        <quote>IYYY-IW-DY</>.
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Have to_date() and to_timestamp() return proper results when mixing
-        ISO and Gregorian week/day designations (Bruce Momjian)
+        Make <link
+        linkend="functions-formatting-table"><function>to_date()</></link>
+        and <link
+        linkend="functions-formatting-table"><function>to_timestamp()</></link>
+        return proper results when mixing <acronym>ISO</> and Gregorian
+        week/day designations (Bruce Momjian)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Cause pg_get_viewdef() to default to wrapping after every SELECT
-        target list and FROM entry (Marko Tiikkaja)
-       </para>
-
-       <para>
-        This causes view output, like from pg_dump, to be more narrow.
+        Cause <link
+        linkend="functions-info-catalog-table"><function>pg_get_viewdef()</></link>
+        to start a new line by default after each <literal>SELECT</> target
+        list entry and <literal>FROM</> entry (Marko Tiikkaja)
        </para>
-      </listitem>
 
-      <listitem>
        <para>
-        Have map_sql_value_to_xml_value() properly expand domains (Pavel
-        Stehule)
+        This reduces line length in view printing, for instance in <link
+        linkend="APP-PGDUMP"><application>pg_dump</></link> output.
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Force cached functions to be replanned if the search_path changes (Tom Lane)
+        Fix <function>map_sql_value_to_xml_value()</> to print values of
+        domain types the same way their base type would be printed
+        (Pavel Stehule)
        </para>
 
        <para>
-        Previously functions already run in the current session ignored
-        search_path changes.
-        (Bruce Momjian)
+        There are special formatting rules for certain built-in types such as
+        <type>boolean</>; these rules now also apply to domains over these
+        types.
        </para>
       </listitem>
 
    <sect3>
     <title>Server-Side Languages</title>
 
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Allow SPI functions to access the number of rows processed by COPY (Pavel
-        Stehule)
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
     <sect4>
      <title><link linkend="plpgsql">PL/pgSQL</link> Server-Side Language</title>
 
 
       <listitem>
        <para>
-        Allow PL/pgSQL to use RETURN with a composite-type expressions (Asif
-        Rehman)
+        Allow PL/pgSQL to use <literal>RETURN</> with a composite-type
+        expression (Asif Rehman)
+       </para>
+
+       <para>
+        Previously, in a function returning a composite type,
+        <literal>RETURN</> could only reference a variable of that type.
        </para>
+      </listitem>
 
+      <listitem>
        <para>
-        Previously RETURN could only reference composite-type variables.
+        Allow PL/pgSQL to access <link
+        linkend="plpgsql-exception-diagnostics">constraint violation
+        details</link> as separate fields (Pavel Stehule)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Allow PL/pgSQL to access the number of rows processed by COPY (Pavel
-        Stehule)
+        Allow PL/pgSQL to access the number of rows processed by
+        <link linkend="SQL-COPY"><command>COPY</></link> (Pavel Stehule)
        </para>
 
        <para>
-        The command is GET DIAGNOSTICS x = ROW_COUNT.
+        A <command>COPY</> executed in a PL/pgSQL function now updates the
+        value retrieved by <link
+        linkend="plpgsql-statements-diagnostics"><command>GET DIAGNOSTICS
+        x = ROW_COUNT</></link>.
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Allow greater flexibility in where keywords can be used in PL/pgSQL (Tom Lane)
+        Allow unreserved keywords to be used as identifiers everywhere in
+        PL/pgSQL (Tom Lane)
+       </para>
+
+       <para>
+        In certain places in the PL/pgSQL grammar, keywords had to be quoted
+        to be used as identifiers, even if they were nominally unreserved.
        </para>
       </listitem>
 
        </para>
 
        <para>
-        This allows plpy.debug(rv) to output something reasonable.
+        This allows <literal>plpy.debug(rv)</literal> to output something reasonable.
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Have PL/Python convert oid values to a proper Python numeric type (Peter Eisentraut)
+        Make PL/Python convert OID values to a proper Python numeric type
+        (Peter Eisentraut)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Handle SPIErrors raised explicitly with PL/Python's RAISE the same as
-        as internal SPI errors (Oskari Saarenmaa and Jan Urbanski)
+        Handle <link linkend="spi"><acronym>SPI</></link> errors raised
+        explicitly (with PL/Python's <literal>RAISE</>) the same as
+        internal <acronym>SPI</> errors (Oskari Saarenmaa and Jan Urbanski)
        </para>
       </listitem>
 
    </sect3>
 
    <sect3>
-    <title>Client Applications</title>
+    <title>Server Programming Interface (<link linkend="spi">SPI</link>)</title>
 
-    <itemizedlist>
+     <itemizedlist>
 
       <listitem>
        <para>
-        Add command-line utility pg_isready to check if the server is ready
-        to accept connections (Phil Sorber)
+        Prevent leakage of <acronym>SPI</> tuple tables during subtransaction
+        abort (Tom Lane)
        </para>
-      </listitem>
 
-      <listitem>
        <para>
-        Support multiple --table arguments for pg_restore, clusterdb,
-        reindexdb, and vacuumdb (Josh Kupershmidt)
+        At the end of any failed subtransaction, the core SPI code now
+        releases any SPI tuple tables that were created during that
+        subtransaction.  This avoids the need for SPI-using code to keep track
+        of such tuple tables and release them manually in error-recovery code.
+        Failure to do so caused a number of transaction-lifespan memory leakage
+        issues in PL/pgSQL and perhaps other SPI clients.  <link
+        linkend="spi-spi-freetupletable"><function>SPI_freetuptable()</></link>
+        now protects itself against multiple freeing requests, so any existing
+        code that did take care to clean up shouldn't be broken by this change.
        </para>
+      </listitem>
 
+      <listitem>
        <para>
-        This is similar to the pg_dump --table support.
+        Allow <acronym>SPI</> functions to access the number of rows processed
+        by <link linkend="SQL-COPY"><command>COPY</></link> (Pavel Stehule)
        </para>
       </listitem>
 
+     </itemizedlist>
+
+   </sect3>
+
+   <sect3>
+    <title>Client Applications</title>
+
+    <itemizedlist>
+
       <listitem>
        <para>
-        Add -d option to pg_dumpall, pg_basebackup, pg_receivexlog to
-        specify the connection string (Amit Kapila)
+        Add command-line utility <link
+        linkend="app-pg-isready"><application>pg_isready</></link> to
+        check if the server is ready to accept connections (Phil Sorber)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Allow pg_ctl --idempotent to a 'success' return code if the requested
-        start/stop action fails, but the cluster is already in the requested
-        state (Peter Eisentraut)
+        Support multiple <option>--table</> arguments for <link
+        linkend="APP-PGRESTORE"><application>pg_restore</></link>,
+        <link linkend="APP-CLUSTERDB"><application>clusterdb</></link>,
+        <link linkend="APP-REINDEXDB"><application>reindexdb</></link>,
+        and <link linkend="APP-VACUUMDB"><application>vacuumdb</></link>
+        (Josh Kupershmidt)
+       </para>
+
+       <para>
+        This is similar to the way <link
+        linkend="APP-PGDUMP"><application>pg_dump</></link>'s
+        <option>--table</> option works.
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Change pg_ctl to return an error code if start fails because the
-        server is already running (Peter Eisentraut)                                        
+        Add <option>--dbname</> option to <link
+        linkend="APP-PG-DUMPALL"><application>pg_dumpall</></link>, <link
+        linkend="app-pgbasebackup"><application>pg_basebackup</></link>, and
+        <link
+        linkend="app-pgreceivewal"><application>pg_receivexlog</></link>
+        to allow specifying a connection string (Amit Kapila)
        </para>
       </listitem>
+
       <listitem>
        <para>
-        Add libpq function PQconninfo() to return connection information
-        (Zolt&aacute;n B&ouml;sz&ouml;rm&eacute;nyi, Magnus Hagander)
+        Add libpq function <link
+        linkend="libpq-pqconninfo"><function>PQconninfo()</></link>
+        to return connection information (Zolt&aacute;n
+        B&ouml;sz&ouml;rm&eacute;nyi, Magnus Hagander)
        </para>
       </listitem>
 
 
       <listitem>
        <para>
-        Adjust function cost settings so psql tab completion and pattern
-        searching is more efficient (Tom Lane)
+        Adjust function cost settings so <application>psql</> tab
+        completion and pattern searching are more efficient (Tom Lane)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Improve psql tab completion (Jeff Janes, Peter Eisentraut)
+        Improve <application>psql</>'s tab completion coverage (Jeff Janes,
+        Dean Rasheed, Peter Eisentraut, Magnus Hagander)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Allow the psql --single-transaction mode to work when reading from
-        standard input (Fabien Coelho, Robert Haas)
+        Allow the <application>psql</> <option>--single-transaction</>
+        mode to work when reading from standard input (Fabien Coelho,
+        Robert Haas)
        </para>
 
        <para>
 
       <listitem>
        <para>
-        Remove psql warning when connecting to an older server (Peter Eisentraut)
+        Remove <application>psql</> warning when connecting to an older
+        server (Peter Eisentraut)
        </para>
 
        <para>
-        The warning when connecting to a newer server was retained.
+        A warning is still issued when connecting to a server of a newer major
+        version than <application>psql</>'s.
        </para>
       </listitem>
 
      </itemizedlist>
 
     <sect5>
-     <title>Backslash Commands</title>
+     <title><link linkend="APP-PSQL-meta-commands">Backslash Commands</link></title>
 
      <itemizedlist>
 
       <listitem>
        <para>
-        Add psql \watch command to repeatedly execute commands (Will
-        Leinweber)
+        Add <application>psql</> command <command>\watch</> to repeatedly
+        execute a SQL command (Will Leinweber)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Add psql command \gset to store query results in psql variables
-        (Pavel Stehule)
+        Add <application>psql</> command <command>\gset</> to store query
+        results in <application>psql</> variables (Pavel Stehule)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Add SSL information to psql's \conninfo command (Alastair Turner)
+        Add <acronym>SSL</> information to <application>psql</>'s
+        <command>\conninfo</> command (Alastair Turner)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Add "Security" label to psql \df+ output (Jon Erdman)
+        Add <quote>Security</> column to <application>psql</>'s
+        <command>\df+</> output (Jon Erdman)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Allow psql \l to accept a database name pattern (Peter Eisentraut)
+        Allow <application>psql</> command <command>\l</> to accept a database
+        name pattern (Peter Eisentraut)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        In psql, do not allow \connect to use defaults if there is no active
-        connection (Bruce Momjian)
+        In <application>psql</>, do not allow <command>\connect</> to
+        use defaults if there is no active connection (Bruce Momjian)
        </para>
 
        <para>
 
       <listitem>
        <para>
-        Properly reset state if psql's "\g file" command failed (Tom Lane)
+        Properly reset state after failure of a SQL command executed with
+        <application>psql</>'s <literal>\g</> <replaceable>file</>
+        (Tom Lane)
        </para>
 
        <para>
-        Previously failed commands discarded output from subsequent commands.
+        Previously, the output from subsequent SQL commands would unexpectedly
+        continue to go to the same file.
        </para>
       </listitem>
 
 
       <listitem>
        <para>
-        Add a 'latex-longtable' output format to psql (Bruce Momjian)
+        Add a <literal>latex-longtable</> output format to
+        <application>psql</> (Bruce Momjian)
        </para>
 
        <para>
-        Longtable allows tables to span multiple pages.
+        This format allows tables to span multiple pages.
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Add a border=3 output mode to the psql 'latex' format (Bruce Momjian)
+        Add a <literal>border=3</> output mode to the <application>psql</>
+        <literal>latex</> format (Bruce Momjian)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        In psql tuples-only and expanded modes, no longer output "(No rows)"
-        (Peter Eisentraut)
+        In <application>psql</>'s tuples-only and expanded output modes, no
+        longer emit <quote>(No rows)</> for zero rows (Peter Eisentraut)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        In psql, no longer print an empty line for unaligned, expanded
-        output for zero rows (Peter Eisentraut)
+        In <application>psql</>'s unaligned, expanded output mode, no longer
+        print an empty line for zero rows (Peter Eisentraut)
        </para>
       </listitem>
 
 
       <listitem>
        <para>
-        Add pg_dump --jobs to dump in parallel when using directory
-        output format  (Joachim Wieland)
+        Add <application>pg_dump</> <option>--jobs</> option to dump tables in
+        parallel (Joachim Wieland)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Have pg_dump output functions in a predictable order (Joel Jacobson)
+        Make <application>pg_dump</> output functions in a more predictable
+        order (Joel Jacobson)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Fix tar files emitted by pg_dump and pg_basebackup to be POSIX
-        conformant (Brian Weaver, Tom Lane)
+        Fix tar files emitted by <application>pg_dump</>
+        to be <acronym>POSIX</> conformant (Brian Weaver, Tom Lane)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Add -d/--dbname option to pg_dump, for consistency with other client
-        commands (Heikki Linnakangas)
+        Add <option>--dbname</> option to <application>pg_dump</>, for
+        consistency with other client commands (Heikki Linnakangas)
        </para>
 
        <para>
 
       <listitem>
        <para>
-        Have initdb fsync the newly created data directory (Jeff Davis)
+        Make initdb fsync the newly created data directory (Jeff Davis)
        </para>
 
        <para>
-        This can be disabled by using --nosync.
+        This insures data integrity in event of a system crash shortly after
+        initdb.  This can be disabled by using <option>--nosync</>.
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Add initdb --sync-only option to sync the data directory to durable
+        Add initdb <option>--sync-only</> option to sync the data directory to durable
         storage (Bruce Momjian)
        </para>
 
        <para>
-        This is used by pg_upgrade.
+        This is used by <link
+        linkend="pgupgrade"><application>pg_upgrade</></link>.
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Have initdb issue a warning about placing the data directory at the
-        top of file system mount points (Bruce Momjian)
+        Make initdb issue a warning about placing the data directory at the
+        top of a file system mount point (Bruce Momjian)
        </para>
       </listitem>
 
 
       <listitem>
        <para>
-        Add an embedded list interface (Andres Freund)
+        Add infrastructure to allow plug-in <link
+        linkend="bgworker">background worker processes</link>
+        (&Aacute;lvaro Herrera)
+       </para>
+      </listitem>
+
+      <listitem>
+       <para>
+        Create a centralized timeout <acronym>API</> (Zolt&aacute;n
+        B&ouml;sz&ouml;rm&eacute;nyi)
+       </para>
+      </listitem>
+
+      <listitem>
+       <para>
+        Create libpgcommon and move <function>pg_malloc()</> and other
+        functions there (&Aacute;lvaro Herrera, Andres Freund)
+       </para>
+
+       <para>
+        This allows libpgport to be used solely for portability-related code.
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Add infrastructure to better support plug-in background worker
-        processes  (&Aacute;lvaro Herrera)
+        Add support for list links embedded in larger structs (Andres Freund)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Create a centralized timeout API (Zolt&aacute;n B&ouml;sz&ouml;rm&eacute;nyi)
+        Use <literal>SA_RESTART</> for all signals,
+        including <literal>SIGALRM</> (Tom Lane)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Create libpgcommon and move pg_malloc() and other functions there
-        (&Aacute;lvaro Herrera, Andres Freund)
+        Ensure that the correct text domain is used when
+        translating <function>errcontext()</> messages
+        (Heikki Linnakangas)
        </para>
+      </listitem>
 
+      <listitem>
        <para>
-        This allows libpgport to be used solely for porting code.
+        Standardize naming of client-side memory allocation functions (Tom Lane)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Standardize on naming of client-side memory allocation functions (Tom Lane)
+        Provide support for <quote>static assertions</> that will fail at
+        compile time if some compile-time-constant condition is not met
+        (Andres Freund, Tom Lane)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Add compiler designations to indicate some ereport() and elog()
-        calls do not return (Peter Eisentraut, Andres Freund, Tom Lane,
-        Heikki Linnakangas)
+        Support <function>Assert()</> in client-side code (Andrew Dunstan)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Allow options to be passed to the regression test output comparison
-        utility via PG_REGRESS_DIFF_OPTS (Peter Eisentraut)
+        Add decoration to inform the C compiler that some <function>ereport()</>
+        and <function>elog()</> calls do not return (Peter Eisentraut,
+        Andres Freund, Tom Lane, Heikki Linnakangas)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Add isolation tests for CREATE INDEX CONCURRENTLY (Abhijit Menon-Sen)
+        Allow options to be passed to the regression
+        test output comparison utility via <link
+        linkend="regress-evaluation"><envar>PG_REGRESS_DIFF_OPTS</></link>
+        (Peter Eisentraut)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Remove typedefs for int2/int4 as they are better represented as int16/int32 (Peter Eisentraut)
+        Add isolation tests for <link
+        linkend="SQL-CREATEINDEX"><command>CREATE INDEX
+        CONCURRENTLY</></link> (Abhijit Menon-Sen)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Fix install-strip on Mac OS X (Peter Eisentraut)
+        Remove typedefs for <type>int2</>/<type>int4</> as they are better
+        represented as <type>int16</>/<type>int32</> (Peter Eisentraut)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Remove configure flag --disable-shared, as it is no longer used (Bruce Momjian)
+        Fix <link linkend="install">install-strip</link> on Mac <productname>OS
+        X</> (Peter Eisentraut)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Rewrite pgindent in Perl (Andrew Dunstan)
+        Remove <link linkend="configure">configure</link> flag
+        <option>--disable-shared</>, as it is no longer supported
+        (Bruce Momjian)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Add emacs macro to match Postgres perltidy formatting (Peter
-        Eisentraut)
+        Rewrite pgindent in <application>Perl</> (Andrew Dunstan)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Run tool to check the keyword list when the backend grammar is changed (Tom Lane)
+        Provide Emacs macro to set Perl formatting to
+        match <productname>PostgreSQL</>'s perltidy settings (Peter Eisentraut)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Centralize flex and bison 'make' rules (Peter Eisentraut)
+        Run tool to check the keyword list whenever the backend grammar is
+        changed (Tom Lane)
        </para>
+      </listitem>
 
+      <listitem>
        <para>
-        This is useful for pgxs authors.
+        Change the way <literal>UESCAPE</> is lexed, to significantly reduce
+        the size of the lexer tables (Heikki Linnakangas)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Add Assert() functionality to client-side code for frontend code (Andrew Dunstan)
+        Centralize <application>flex</> and <application>bison</>
+        <application>make</> rules (Peter Eisentraut)
+       </para>
+
+       <para>
+        This is useful for <application>pgxs</> authors.
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Change many internal many backend functions to return OIDs rather
-        than void (Dimitri Fontaine)
+        Change many internal backend functions to return object <type>OID</>s
+        rather than void (Dimitri Fontaine)
        </para>
 
        <para>
 
       <listitem>
        <para>
-        Add function pg_identify_object() to dump an object in
-        machine-readable format (&Aacute;lvaro Herrera)
+        Add function <link
+        linkend="functions-info-catalog-table"><function>pg_identify_object()</></link>
+        to produce a machine-readable description of a database object
+        (&Aacute;lvaro Herrera)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Add post-ALTER-object server hooks (KaiGai Kohei)
+        Add post-<command>ALTER</>-object server hooks (KaiGai Kohei)
        </para>
       </listitem>
 
 
       <listitem>
        <para>
-        Improve ability to detect official timezone abbreviation changes
+        Provide a tool to help detect timezone abbreviation changes when
+        updating the <filename>src/timezone/data</> files
         (Tom Lane)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Add pkg-config support libpq and ecpg libraries (Peter Eisentraut)
+        Add <application>pkg-config</> support for <application>libpq</>
+        and <application>ecpg</> libraries (Peter Eisentraut)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Remove src/tool/backend, now that the content is on the Postgres
-        wiki (Bruce Momjian)
+        Remove <filename>src/tools/backend</>, now that the content is on
+        the <productname>PostgreSQL</> wiki (Bruce Momjian)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Split out WAL reading as an independent facility (Heikki
-        Linnakangas, Andres Freund)
+        Split out <link linkend="wal"><acronym>WAL</></link> reading as
+        an independent facility (Heikki Linnakangas, Andres Freund)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Use a 64-bit integer to represent WAL positions (XLogRecPtr)
-        instead of two 32-bit integers (Heikki Linnakangas)
+        Use a 64-bit integer to represent <link
+        linkend="wal"><acronym>WAL</></link> positions
+        (<structname>XLogRecPtr</>) instead of two 32-bit integers
+        (Heikki Linnakangas)
        </para>
 
        <para>
-        Generally, tools that need to read the WAL format will need to
-        be adjusted.
+        Generally, tools that need to read the <acronym>WAL</> format
+        will need to be adjusted.
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Allow PL/Python to support platform-specific include directories (Peter Eisentraut)
+        Allow <link linkend="plpython">PL/Python</link> to support
+        platform-specific include directories (Peter Eisentraut)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Allow PL/Python on OS X to build against custom versions of Python
+        Allow <link linkend="plpython">PL/Python</link> on <productname>OS
+        X</> to build against custom versions of <application>Python</>
         (Peter Eisentraut)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Add a Postgres foreign data wrapper contrib module (Shigeru
-        Hanada, KaiGai Kohei)
+        Add a <link linkend="postgres-fdw"><productname>Postgres</> foreign
+        data wrapper</link> contrib module to allow access to
+        other <productname>Postgres</> servers (Shigeru Hanada)
        </para>
 
        <para>
-        This foreign data wrapper allows writes;  potentially other
-        foreign data wrappers can now support writes.
+        This foreign data wrapper supports writes.
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Add pg_xlogdump contrib program (Andres Freund)
+        Add <link linkend="pgwaldump"><application>pg_xlogdump</></link>
+        contrib program (Andres Freund)
        </para>
       </listitem>
 
       <listitem>
        <para>
         Add support for indexing of regular-expression searches in
-        contrib/pg_trgm (Alexander Korotkov)
+        <link linkend="pgtrgm"><productname>pg_trgm</></link>
+        (Alexander Korotkov)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Improve pg_trgm handling of multibyte characters (Tom Lane)
+        Improve <link linkend="pgtrgm"><productname>pg_trgm</></link>'s
+        handling of multibyte characters (Tom Lane)
        </para>
-      </listitem>
 
-      <listitem>
        <para>
-        Add function to report the size of the GIN pending index insertion
-        list (Fujii Masao)
+        On a platform that does not have the wcstombs() or towlower() library
+        functions, this could result in an incompatible change in the contents
+        of <productname>pg_trgm</> indexes for non-ASCII data.  In such cases,
+        <command>REINDEX</> those indexes to ensure correct search results.
        </para>
+      </listitem>
 
+      <listitem>
        <para>
-        The function is pgstatginindex() in pgstattuple.
+        Add a <link linkend="pgstattuple">pgstattuple</link> function to report
+        the size of the pending-insertions list of a <acronym>GIN</> index
+        (Fujii Masao)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Have oid2name, pgbench, and vacuumlo set fallback_application_name (Amit Kapila)
+        Make <link linkend="oid2name"><application>oid2name</></link>,
+        <link linkend="pgbench"><application>pgbench</></link>, and
+        <link linkend="vacuumlo"><application>vacuumlo</></link> set
+        <varname>fallback_application_name</> (Amit Kapila)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Improve output of pg_test_timing (Bruce Momjian)
+        Improve output of <link
+        linkend="pgtesttiming"><application>pg_test_timing</></link>
+        (Bruce Momjian)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Improve output of pg_test_fsync (Peter Geoghegan)
+        Improve output of <link
+        linkend="pgtestfsync"><application>pg_test_fsync</></link>
+        (Peter Geoghegan)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Improve dblink option validator (Tom Lane)
+        Create a dedicated foreign data wrapper, with its own option validator
+        function, for <link linkend="dblink">dblink</link> (Shigeru Hanada)
        </para>
 
        <para>
-        Details?
+        When using this FDW to define the target of a <application>dblink</>
+        connection, instead of using a hard-wired list of connection options,
+        the underlying <application>libpq</> library is consulted to see what
+        connection options it supports.
        </para>
       </listitem>
 
 
       <listitem>
        <para>
-        Allow pg_upgrade --jobs to do parallelism (Bruce Momjian)
+        Allow <application>pg_upgrade</> to do dumps and restores in
+        parallel (Bruce Momjian, Andrew Dunstan)
        </para>
 
        <para>
         This allows parallel schema dump/restore of databases, as well as
-        parallel copy/link of data files per tablespace.
+        parallel copy/link of data files per tablespace.  Use the
+        <option>--jobs</> option to specify the level of parallelism.
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Have pg_upgrade create unix-domain sockets in the current directory
-        (Bruce Momjian, Tom Lane)
+        Make <application>pg_upgrade</> create Unix-domain sockets in
+        the current directory (Bruce Momjian, Tom Lane)
        </para>
 
        <para>
 
       <listitem>
        <para>
-        Have pg_upgrade --check mode properly detect the location of
-        non-default socket directories (Bruce Momjian, Tom Lane)
+        Make <application>pg_upgrade</> <option>--check</> mode properly
+        detect the location of non-default socket directories (Bruce
+        Momjian, Tom Lane)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Improve performance of pg_upgrade for databases with many tables (Bruce Momjian)
+        Improve performance of <application>pg_upgrade</> for databases
+        with many tables (Bruce Momjian)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Increase pg_upgrade logging content by showing executed command
-        (&Aacute;lvaro Herrera)
+        Improve <application>pg_upgrade</>'s logs by showing
+        executed commands (&Aacute;lvaro Herrera)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Improve pg_upgrade's status display during copy/link (Bruce Momjian)
+        Improve <application>pg_upgrade</>'s status display during
+        copy/link (Bruce Momjian)
        </para>
       </listitem>
 
 
       <listitem>
        <para>
-        Add --foreign-keys option to pgbench (Jeff Janes)
+        Add <option>--foreign-keys</> option to <application>pgbench</>
+        (Jeff Janes)
        </para>
 
        <para>
-        This adds foreign key constraints to tables, for use in foreign
-        key performance testing.
+        This adds foreign key constraints to the standard tables created by
+        <application>pgbench</>, for use in foreign key performance testing.
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Allow pgbench to aggregate performance statistics and produce output
-        every --aggregate-interval specified seconds (Tomas Vondra)
+        Allow <application>pgbench</> to aggregate performance statistics
+        and produce output every <option>--aggregate-interval</>
+        seconds (Tomas Vondra)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Add pg_bench --sampling-rate option to control the percentage of
-        transactions logged (Tomas Vondra)
+        Add <application>pgbench</> <option>--sampling-rate</> option
+        to control the percentage of transactions logged (Tomas Vondra)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Reduce and improve the status message output of pgbench's
-        initialization mode (Robert Haas, Peter Eisentraut)
+        Reduce and improve the status message output of
+        <application>pgbench</>'s initialization mode (Robert Haas,
+        Peter Eisentraut)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Add pgbench -q mode to print one output line every five seconds (Tomas Vondra)
+        Add <application>pgbench</> <option>-q</> mode to print one output
+        line every five seconds (Tomas Vondra)
        </para>
+      </listitem>
 
+      <listitem>
        <para>
-        Output pgbench elapsed and estimated remaining time during
-        initialization logging (Tomas Vondra)
+        Output <application>pgbench</> elapsed and estimated remaining
+        time during initialization (Tomas Vondra)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Allow pgbench to use a larger scale factor (Greg Smith)
+        Allow <application>pgbench</> to use much larger scale factors,
+        by changing relevant columns from <type>integer</> to <type>bigint</>
+        when the requested scale factor exceeds 20000
+        (Greg Smith)
        </para>
       </listitem>
 
 
       <listitem>
        <para>
-        Allow EPUB-format documentation to be created (Peter Eisentraut)
+        Allow <productname>EPUB</>-format documentation to be created
+        (Peter Eisentraut)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Update FreeBSD kernel configuration documentation (Brad Davis)
+        Update <productname>FreeBSD</> kernel configuration documentation
+        (Brad Davis)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Improve WINDOW function documentation (Bruce Momjian, Tom Lane)
+        Improve <link linkend="tutorial-window"><literal>WINDOW</>
+        function</link> documentation (Bruce Momjian, Florian Pflug)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Add instructions for setting up the documentation tool chain on
-        Mac OS X (Peter Eisentraut)
+        Add <link linkend="docguide-toolsets">instructions</link> for setting
+        up the documentation tool chain on <productname>macOS</>
+        (Peter Eisentraut)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Improve commit_delay documentation (Peter Geoghegan)
+        Improve <link
+        linkend="guc-commit-delay"><varname>commit_delay</></link>
+        documentation (Peter Geoghegan)
        </para>
       </listitem>