diff --git a/doc/src/sgml/filelist.sgml b/doc/src/sgml/filelist.sgml
index 5902f979c89823e00b903a4be5c8449bbe2f73f9..0c2c16591bff93ee0fee1aea184e1a1049e77a1b 100644
--- a/doc/src/sgml/filelist.sgml
+++ b/doc/src/sgml/filelist.sgml
@@ -165,17 +165,6 @@
 
 <!ENTITY release    SYSTEM "release.sgml">
 <!ENTITY release-9.4    SYSTEM "release-9.4.sgml">
-<!ENTITY release-9.3    SYSTEM "release-9.3.sgml">
-<!ENTITY release-9.2    SYSTEM "release-9.2.sgml">
-<!ENTITY release-9.1    SYSTEM "release-9.1.sgml">
-<!ENTITY release-9.0    SYSTEM "release-9.0.sgml">
-<!ENTITY release-8.4    SYSTEM "release-8.4.sgml">
-<!ENTITY release-8.3    SYSTEM "release-8.3.sgml">
-<!ENTITY release-8.2    SYSTEM "release-8.2.sgml">
-<!ENTITY release-8.1    SYSTEM "release-8.1.sgml">
-<!ENTITY release-8.0    SYSTEM "release-8.0.sgml">
-<!ENTITY release-7.4    SYSTEM "release-7.4.sgml">
-<!ENTITY release-old    SYSTEM "release-old.sgml">
 
 <!ENTITY acronyms   SYSTEM "acronyms.sgml">
 
diff --git a/doc/src/sgml/release-7.4.sgml b/doc/src/sgml/release-7.4.sgml
deleted file mode 100644
index 1b5796c95892167ab1fc57c96b6f334dee1896c0..0000000000000000000000000000000000000000
--- a/doc/src/sgml/release-7.4.sgml
+++ /dev/null
@@ -1,4622 +0,0 @@
-<!-- doc/src/sgml/release-7.4.sgml -->
-<!-- See header comment in release.sgml about typical markup -->
-
- <sect1 id="release-7-4-30">
-  <title>Release 7.4.30</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2010-10-04</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 7.4.29.
-   For information about new features in the 7.4 major release, see
-   <xref linkend="release-7-4">.
-  </para>
-
-  <para>
-   This is expected to be the last <productname>PostgreSQL</> release
-   in the 7.4.X series.  Users are encouraged to update to a newer
-   release branch soon.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 7.4.30</title>
-
-   <para>
-    A dump/restore is not required for those running 7.4.X.
-    However, if you are upgrading from a version earlier than 7.4.26,
-    see <xref linkend="release-7-4-26">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Use a separate interpreter for each calling SQL userid in PL/Perl and
-      PL/Tcl (Tom Lane)
-     </para>
-
-     <para>
-      This change prevents security problems that can be caused by subverting
-      Perl or Tcl code that will be executed later in the same session under
-      another SQL user identity (for example, within a <literal>SECURITY
-      DEFINER</> function).  Most scripting languages offer numerous ways that
-      that might be done, such as redefining standard functions or operators
-      called by the target function.  Without this change, any SQL user with
-      Perl or Tcl language usage rights can do essentially anything with the
-      SQL privileges of the target function's owner.
-     </para>
-
-     <para>
-      The cost of this change is that intentional communication among Perl
-      and Tcl functions becomes more difficult.  To provide an escape hatch,
-      PL/PerlU and PL/TclU functions continue to use only one interpreter
-      per session.  This is not considered a security issue since all such
-      functions execute at the trust level of a database superuser already.
-     </para>
-
-     <para>
-      It is likely that third-party procedural languages that claim to offer
-      trusted execution have similar security issues.  We advise contacting
-      the authors of any PL you are depending on for security-critical
-      purposes.
-     </para>
-
-     <para>
-      Our thanks to Tim Bunce for pointing out this issue (CVE-2010-3433).
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent possible crashes in <function>pg_get_expr()</> by disallowing
-      it from being called with an argument that is not one of the system
-      catalog columns it's intended to be used with
-      (Heikki Linnakangas, Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <quote>cannot handle unplanned sub-select</quote> error (Tom Lane)
-     </para>
-
-     <para>
-      This occurred when a sub-select contains a join alias reference that
-      expands into an expression containing another sub-select.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Take care to fsync the contents of lockfiles (both
-      <filename>postmaster.pid</> and the socket lockfile) while writing them
-      (Tom Lane)
-     </para>
-
-     <para>
-      This omission could result in corrupted lockfile contents if the
-      machine crashes shortly after postmaster start.  That could in turn
-      prevent subsequent attempts to start the postmaster from succeeding,
-      until the lockfile is manually removed.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve <filename>contrib/dblink</>'s handling of tables containing
-      dropped columns (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix connection leak after <quote>duplicate connection name</quote>
-      errors in <filename>contrib/dblink</> (Itagaki Takahiro)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update build infrastructure and documentation to reflect the source code
-      repository's move from CVS to Git (Magnus Hagander and others)
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-7-4-29">
-  <title>Release 7.4.29</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2010-05-17</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 7.4.28.
-   For information about new features in the 7.4 major release, see
-   <xref linkend="release-7-4">.
-  </para>
-
-  <para>
-   The <productname>PostgreSQL</> community will stop releasing updates
-   for the 7.4.X release series in July 2010.
-   Users are encouraged to update to a newer release branch soon.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 7.4.29</title>
-
-   <para>
-    A dump/restore is not required for those running 7.4.X.
-    However, if you are upgrading from a version earlier than 7.4.26,
-    see <xref linkend="release-7-4-26">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Enforce restrictions in <literal>plperl</> using an opmask applied to
-      the whole interpreter, instead of using <filename>Safe.pm</>
-      (Tim Bunce, Andrew Dunstan)
-     </para>
-
-     <para>
-      Recent developments have convinced us that <filename>Safe.pm</> is too
-      insecure to rely on for making <literal>plperl</> trustable.  This
-      change removes use of <filename>Safe.pm</> altogether, in favor of using
-      a separate interpreter with an opcode mask that is always applied.
-      Pleasant side effects of the change include that it is now possible to
-      use Perl's <literal>strict</> pragma in a natural way in
-      <literal>plperl</>, and that Perl's <literal>$a</> and <literal>$b</>
-      variables work as expected in sort routines, and that function
-      compilation is significantly faster.  (CVE-2010-1169)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent PL/Tcl from executing untrustworthy code from
-      <structname>pltcl_modules</> (Tom)
-     </para>
-
-     <para>
-      PL/Tcl's feature for autoloading Tcl code from a database table
-      could be exploited for trojan-horse attacks, because there was no
-      restriction on who could create or insert into that table.  This change
-      disables the feature unless <structname>pltcl_modules</> is owned by a
-      superuser.  (However, the permissions on the table are not checked, so
-      installations that really need a less-than-secure modules table can
-      still grant suitable privileges to trusted non-superusers.)  Also,
-      prevent loading code into the unrestricted <quote>normal</> Tcl
-      interpreter unless we are really going to execute a <literal>pltclu</>
-      function.  (CVE-2010-1170)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Do not allow an unprivileged user to reset superuser-only parameter
-      settings (Alvaro)
-     </para>
-
-     <para>
-      Previously, if an unprivileged user ran <literal>ALTER USER ... RESET
-      ALL</> for himself, or <literal>ALTER DATABASE ... RESET ALL</> for
-      a database he owns, this would remove all special parameter settings
-      for the user or database, even ones that are only supposed to be
-      changeable by a superuser.  Now, the <command>ALTER</> will only
-      remove the parameters that the user has permission to change.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid possible crash during backend shutdown if shutdown occurs
-      when a <literal>CONTEXT</> addition would be made to log entries (Tom)
-     </para>
-
-     <para>
-      In some cases the context-printing function would fail because the
-      current transaction had already been rolled back when it came time
-      to print a log message.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update pl/perl's <filename>ppport.h</> for modern Perl versions
-      (Andrew)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix assorted memory leaks in pl/python (Andreas Freund, Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure that <filename>contrib/pgstattuple</> functions respond to cancel
-      interrupts promptly (Tatsuhito Kasahara)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make server startup deal properly with the case that
-      <function>shmget()</> returns <literal>EINVAL</> for an existing
-      shared memory segment (Tom)
-     </para>
-
-     <para>
-      This behavior has been observed on BSD-derived kernels including OS X.
-      It resulted in an entirely-misleading startup failure complaining that
-      the shared memory request size was too large.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-7-4-28">
-  <title>Release 7.4.28</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2010-03-15</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 7.4.27.
-   For information about new features in the 7.4 major release, see
-   <xref linkend="release-7-4">.
-  </para>
-
-  <para>
-   The <productname>PostgreSQL</> community will stop releasing updates
-   for the 7.4.X release series in July 2010.
-   Users are encouraged to update to a newer release branch soon.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 7.4.28</title>
-
-   <para>
-    A dump/restore is not required for those running 7.4.X.
-    However, if you are upgrading from a version earlier than 7.4.26,
-    see <xref linkend="release-7-4-26">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Add new configuration parameter <varname>ssl_renegotiation_limit</> to
-      control how often we do session key renegotiation for an SSL connection
-      (Magnus)
-     </para>
-
-     <para>
-      This can be set to zero to disable renegotiation completely, which may
-      be required if a broken SSL library is used.  In particular, some
-      vendors are shipping stopgap patches for CVE-2009-3555 that cause
-      renegotiation attempts to fail.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <function>substring()</> for <type>bit</> types treat any negative
-      length as meaning <quote>all the rest of the string</> (Tom)
-     </para>
-
-     <para>
-      The previous coding treated only -1 that way, and would produce an
-      invalid result value for other negative values, possibly leading to
-      a crash (CVE-2010-0442).
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix some cases of pathologically slow regular expression matching (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      When reading <filename>pg_hba.conf</> and related files, do not treat
-      <literal>@something</> as a file inclusion request if the <literal>@</>
-      appears inside quote marks; also, never treat <literal>@</> by itself
-      as a file inclusion request (Tom)
-     </para>
-
-     <para>
-      This prevents erratic behavior if a role or database name starts with
-      <literal>@</>.  If you need to include a file whose path name
-      contains spaces, you can still do so, but you must write
-      <literal>@"/path to/file"</> rather than putting the quotes around
-      the whole construct.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent infinite loop on some platforms if a directory is named as
-      an inclusion target in <filename>pg_hba.conf</> and related files
-      (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure PL/Tcl initializes the Tcl interpreter fully (Tom)
-     </para>
-
-     <para>
-      The only known symptom of this oversight is that the Tcl
-      <literal>clock</> command misbehaves if using Tcl 8.5 or later.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent crash in <filename>contrib/dblink</> when too many key
-      columns are specified to a <function>dblink_build_sql_*</> function
-      (Rushabh Lathia, Joe Conway)
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-7-4-27">
-  <title>Release 7.4.27</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2009-12-14</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 7.4.26.
-   For information about new features in the 7.4 major release, see
-   <xref linkend="release-7-4">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 7.4.27</title>
-
-   <para>
-    A dump/restore is not required for those running 7.4.X.
-    However, if you are upgrading from a version earlier than 7.4.26,
-    see <xref linkend="release-7-4-26">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Protect against indirect security threats caused by index functions
-      changing session-local state (Gurjeet Singh, Tom)
-     </para>
-
-     <para>
-      This change prevents allegedly-immutable index functions from possibly
-      subverting a superuser's session (CVE-2009-4136).
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Reject SSL certificates containing an embedded null byte in the common
-      name (CN) field (Magnus)
-     </para>
-
-     <para>
-      This prevents unintended matching of a certificate to a server or client
-      name during SSL validation (CVE-2009-4034).
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible crash during backend-startup-time cache initialization (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent signals from interrupting <literal>VACUUM</> at unsafe times
-      (Alvaro)
-     </para>
-
-     <para>
-      This fix prevents a PANIC if a <literal>VACUUM FULL</> is canceled
-      after it's already committed its tuple movements, as well as transient
-      errors if a plain <literal>VACUUM</> is interrupted after having
-      truncated the table.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible crash due to integer overflow in hash table size
-      calculation (Tom)
-     </para>
-
-     <para>
-      This could occur with extremely large planner estimates for the size of
-      a hashjoin's result.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix very rare crash in <type>inet</>/<type>cidr</> comparisons (Chris
-      Mikkelson)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix PAM password processing to be more robust (Tom)
-     </para>
-
-     <para>
-      The previous code is known to fail with the combination of the Linux
-      <literal>pam_krb5</> PAM module with Microsoft Active Directory as the
-      domain controller.  It might have problems elsewhere too, since it was
-      making unjustified assumptions about what arguments the PAM stack would
-      pass to it.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make the postmaster ignore any <literal>application_name</> parameter in
-      connection request packets, to improve compatibility with future libpq
-      versions (Tom)
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-7-4-26">
-  <title>Release 7.4.26</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2009-09-09</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 7.4.25.
-   For information about new features in the 7.4 major release, see
-   <xref linkend="release-7-4">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 7.4.26</title>
-
-   <para>
-    A dump/restore is not required for those running 7.4.X.
-    However, if you have any hash indexes on <type>interval</> columns,
-    you must <command>REINDEX</> them after updating to 7.4.26.
-    Also, if you are upgrading from a version earlier than 7.4.11,
-    see <xref linkend="release-7-4-11">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Disallow <command>RESET ROLE</> and <command>RESET SESSION
-      AUTHORIZATION</> inside security-definer functions (Tom, Heikki)
-     </para>
-
-     <para>
-      This covers a case that was missed in the previous patch that
-      disallowed <command>SET ROLE</> and <command>SET SESSION
-      AUTHORIZATION</> inside security-definer functions.
-      (See CVE-2007-6600)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix handling of sub-SELECTs appearing in the arguments of
-      an outer-level aggregate function (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix hash calculation for data type <type>interval</> (Tom)
-     </para>
-
-     <para>
-      This corrects wrong results for hash joins on interval values.
-      It also changes the contents of hash indexes on interval columns.
-      If you have any such indexes, you must <command>REINDEX</> them
-      after updating.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix overflow for <literal>INTERVAL '<replaceable>x</> ms'</literal>
-      when <replaceable>x</> is more than 2 million and integer
-      datetimes are in use (Alex Hunsaker)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix calculation of distance between a point and a line segment (Tom)
-     </para>
-
-     <para>
-      This led to incorrect results from a number of geometric operators.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <type>money</> data type to work in locales where currency
-      amounts have no fractional digits, e.g. Japan (Itagaki Takahiro)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Properly round datetime input like
-      <literal>00:12:57.9999999999999999999999999999</> (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix poor choice of page split point in GiST R-tree operator classes
-      (Teodor)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix portability issues in plperl initialization (Andrew Dunstan)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve robustness of <application>libpq</>'s code to recover
-      from errors during <command>COPY FROM STDIN</> (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid including conflicting readline and editline header files
-      when both libraries are installed (Zdenek Kotala)
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-7-4-25">
-  <title>Release 7.4.25</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2009-03-16</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 7.4.24.
-   For information about new features in the 7.4 major release, see
-   <xref linkend="release-7-4">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 7.4.25</title>
-
-   <para>
-    A dump/restore is not required for those running 7.4.X.
-    However, if you are upgrading from a version earlier than 7.4.11,
-    see <xref linkend="release-7-4-11">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Prevent error recursion crashes when encoding conversion fails (Tom)
-     </para>
-
-     <para>
-      This change extends fixes made in the last two minor releases for
-      related failure scenarios.  The previous fixes were narrowly tailored
-      for the original problem reports, but we have now recognized that
-      <emphasis>any</> error thrown by an encoding conversion function could
-      potentially lead to infinite recursion while trying to report the
-      error.  The solution therefore is to disable translation and encoding
-      conversion and report the plain-ASCII form of any error message,
-      if we find we have gotten into a recursive error reporting situation.
-      (CVE-2009-0922)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Disallow <command>CREATE CONVERSION</> with the wrong encodings
-      for the specified conversion function (Heikki)
-     </para>
-
-     <para>
-      This prevents one possible scenario for encoding conversion failure.
-      The previous change is a backstop to guard against other kinds of
-      failures in the same area.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix core dump when <function>to_char()</> is given format codes that
-      are inappropriate for the type of the data argument (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Add <literal>MUST</> (Mauritius Island Summer Time) to the default list
-      of known timezone abbreviations (Xavier Bugaud)
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-7-4-24">
-  <title>Release 7.4.24</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2009-02-02</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 7.4.23.
-   For information about new features in the 7.4 major release, see
-   <xref linkend="release-7-4">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 7.4.24</title>
-
-   <para>
-    A dump/restore is not required for those running 7.4.X.
-    However, if you are upgrading from a version earlier than 7.4.11,
-    see <xref linkend="release-7-4-11">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Improve handling of URLs in <function>headline()</> function (Teodor)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve handling of overlength headlines in <function>headline()</>
-      function (Teodor)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent possible Assert failure or misconversion if an encoding
-      conversion is created with the wrong conversion function for the
-      specified pair of encodings (Tom, Heikki)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid unnecessary locking of small tables in <command>VACUUM</>
-      (Heikki)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix uninitialized variables in <filename>contrib/tsearch2</>'s
-      <function>get_covers()</> function (Teodor)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix bug in <function>to_char()</>'s handling of <literal>TH</>
-      format codes (Andreas Scherbaum)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make all documentation reference <literal>pgsql-bugs</> and/or
-      <literal>pgsql-hackers</> as appropriate, instead of the
-      now-decommissioned <literal>pgsql-ports</> and <literal>pgsql-patches</>
-      mailing lists (Tom)
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-7-4-23">
-  <title>Release 7.4.23</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2008-11-03</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 7.4.22.
-   For information about new features in the 7.4 major release, see
-   <xref linkend="release-7-4">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 7.4.23</title>
-
-   <para>
-    A dump/restore is not required for those running 7.4.X.
-    However, if you are upgrading from a version earlier than 7.4.11,
-    see <xref linkend="release-7-4-11">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Fix backend crash when the client encoding cannot represent a localized
-      error message (Tom)
-     </para>
-
-     <para>
-      We have addressed similar issues before, but it would still fail if
-      the <quote>character has no equivalent</> message itself couldn't
-      be converted.  The fix is to disable localization and send the plain
-      ASCII error message when we detect such a situation.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix incorrect tsearch2 headline generation when single query
-      item matches first word of text (Sushant Sinha)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix improper display of fractional seconds in interval values when
-      using a non-ISO datestyle in an <option>--enable-integer-datetimes</>
-      build (Ron Mayer)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure <function>SPI_getvalue</> and <function>SPI_getbinval</>
-      behave correctly when the passed tuple and tuple descriptor have
-      different numbers of columns (Tom)
-     </para>
-
-     <para>
-      This situation is normal when a table has had columns added or removed,
-      but these two functions didn't handle it properly.
-      The only likely consequence is an incorrect error indication.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>ecpg</>'s parsing of <command>CREATE USER</> (Michael)
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-7-4-22">
-  <title>Release 7.4.22</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2008-09-22</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 7.4.21.
-   For information about new features in the 7.4 major release, see
-   <xref linkend="release-7-4">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 7.4.22</title>
-
-   <para>
-    A dump/restore is not required for those running 7.4.X.
-    However, if you are upgrading from a version earlier than 7.4.11,
-    see <xref linkend="release-7-4-11">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Fix datetime input functions to correctly detect integer overflow when
-      running on a 64-bit platform (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve performance of writing very long log messages to syslog (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix bug in backwards scanning of a cursor on a <literal>SELECT DISTINCT
-      ON</> query (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix planner to estimate that <literal>GROUP BY</> expressions yielding
-      boolean results always result in two groups, regardless of the
-      expressions' contents (Tom)
-     </para>
-
-     <para>
-      This is very substantially more accurate than the regular <literal>GROUP
-      BY</> estimate for certain boolean tests like <replaceable>col</>
-      <literal>IS NULL</>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve <application>pg_dump</> and <application>pg_restore</>'s
-      error reporting after failure to send a SQL command (Tom)
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-7-4-21">
-  <title>Release 7.4.21</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2008-06-12</para>
-  </formalpara>
-
-  <para>
-   This release contains one serious bug fix over 7.4.20.
-   For information about new features in the 7.4 major release, see
-   <xref linkend="release-7-4">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 7.4.21</title>
-
-   <para>
-    A dump/restore is not required for those running 7.4.X.
-    However, if you are upgrading from a version earlier than 7.4.11,
-    see <xref linkend="release-7-4-11">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Make <function>pg_get_ruledef()</> parenthesize negative constants (Tom)
-     </para>
-
-     <para>
-      Before this fix, a negative constant in a view or rule might be dumped
-      as, say, <literal>-42::integer</>, which is subtly incorrect: it should
-      be <literal>(-42)::integer</> due to operator precedence rules.
-      Usually this would make little difference, but it could interact with
-      another recent patch to cause
-      <productname>PostgreSQL</> to reject what had been a valid
-      <command>SELECT DISTINCT</> view query.  Since this could result in
-      <application>pg_dump</> output failing to reload, it is being treated
-      as a high-priority fix.  The only released versions in which dump
-      output is actually incorrect are 8.3.1 and 8.2.7.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-7-4-20">
-  <title>Release 7.4.20</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>never released</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 7.4.19.
-   For information about new features in the 7.4 major release, see
-   <xref linkend="release-7-4">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 7.4.20</title>
-
-   <para>
-    A dump/restore is not required for those running 7.4.X.
-    However, if you are upgrading from a version earlier than 7.4.11,
-    see <xref linkend="release-7-4-11">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Fix conversions between ISO-8859-5 and other encodings to handle
-      Cyrillic <quote>Yo</> characters (<literal>e</> and <literal>E</> with
-      two dots) (Sergey Burladyan)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix a few datatype input functions
-      that were allowing unused bytes in their results to contain
-      uninitialized, unpredictable values (Tom)
-     </para>
-
-     <para>
-      This could lead to failures in which two apparently identical literal
-      values were not seen as equal, resulting in the parser complaining
-      about unmatched <literal>ORDER BY</> and <literal>DISTINCT</>
-      expressions.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix a corner case in regular-expression substring matching
-      (<literal>substring(<replaceable>string</> from
-      <replaceable>pattern</>)</literal>) (Tom)
-     </para>
-
-     <para>
-      The problem occurs when there is a match to the pattern overall but
-      the user has specified a parenthesized subexpression and that
-      subexpression hasn't got a match.  An example is
-      <literal>substring('foo' from 'foo(bar)?')</>.
-      This should return NULL, since <literal>(bar)</> isn't matched, but
-      it was mistakenly returning the whole-pattern match instead (ie,
-      <literal>foo</>).
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix incorrect result from <application>ecpg</>'s
-      <function>PGTYPEStimestamp_sub()</> function (Michael)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <literal>DatumGetBool</> macro to not fail with <application>gcc</>
-      4.3 (Tom)
-     </para>
-
-     <para>
-      This problem affects <quote>old style</> (V0) C functions that
-      return boolean.  The fix is already in 8.3, but the need to
-      back-patch it was not realized at the time.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix longstanding <command>LISTEN</>/<command>NOTIFY</>
-      race condition (Tom)
-     </para>
-
-     <para>
-      In rare cases a session that had just executed a
-      <command>LISTEN</> might not get a notification, even though
-      one would be expected because the concurrent transaction executing
-      <command>NOTIFY</> was observed to commit later.
-     </para>
-
-     <para>
-      A side effect of the fix is that a transaction that has executed
-      a not-yet-committed <command>LISTEN</> command will not see any
-      row in <structname>pg_listener</> for the <command>LISTEN</>,
-      should it choose to look; formerly it would have.  This behavior
-      was never documented one way or the other, but it is possible that
-      some applications depend on the old behavior.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix display of constant expressions in <literal>ORDER BY</>
-      and <literal>GROUP BY</> (Tom)
-     </para>
-
-     <para>
-      An explicitly casted constant would be shown incorrectly.  This could
-      for example lead to corruption of a view definition during
-      dump and reload.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>libpq</> to handle NOTICE messages correctly
-      during COPY OUT (Tom)
-     </para>
-
-     <para>
-      This failure has only been observed to occur when a user-defined
-      datatype's output routine issues a NOTICE, but there is no
-      guarantee it couldn't happen due to other causes.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-7-4-19">
-  <title>Release 7.4.19</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2008-01-07</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 7.4.18,
-   including fixes for significant security issues.
-   For information about new features in the 7.4 major release, see
-   <xref linkend="release-7-4">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 7.4.19</title>
-
-   <para>
-    A dump/restore is not required for those running 7.4.X.  However,
-    if you are upgrading from a version earlier than 7.4.11,
-    see <xref linkend="release-7-4-11">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Prevent functions in indexes from executing with the privileges of
-      the user running <command>VACUUM</>, <command>ANALYZE</>, etc (Tom)
-     </para>
-
-     <para>
-      Functions used in index expressions and partial-index
-      predicates are evaluated whenever a new table entry is made.  It has
-      long been understood that this poses a risk of trojan-horse code
-      execution if one modifies a table owned by an untrustworthy user.
-      (Note that triggers, defaults, check constraints, etc. pose the
-      same type of risk.)  But functions in indexes pose extra danger
-      because they will be executed by routine maintenance operations
-      such as <command>VACUUM FULL</>, which are commonly performed
-      automatically under a superuser account.  For example, a nefarious user
-      can execute code with superuser privileges by setting up a
-      trojan-horse index definition and waiting for the next routine vacuum.
-      The fix arranges for standard maintenance operations
-      (including <command>VACUUM</>, <command>ANALYZE</>, <command>REINDEX</>,
-      and <command>CLUSTER</>) to execute as the table owner rather than
-      the calling user, using the same privilege-switching mechanism already
-      used for <literal>SECURITY DEFINER</> functions.  To prevent bypassing
-      this security measure, execution of <command>SET SESSION
-      AUTHORIZATION</> and <command>SET ROLE</> is now forbidden within a
-      <literal>SECURITY DEFINER</> context.  (CVE-2007-6600)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Repair assorted bugs in the regular-expression package (Tom, Will Drewry)
-     </para>
-
-     <para>
-      Suitably crafted regular-expression patterns could cause crashes,
-      infinite or near-infinite looping, and/or massive memory consumption,
-      all of which pose denial-of-service hazards for applications that
-      accept regex search patterns from untrustworthy sources.
-      (CVE-2007-4769, CVE-2007-4772, CVE-2007-6067)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Require non-superusers who use <filename>/contrib/dblink</> to use only
-      password authentication, as a security measure (Joe)
-     </para>
-
-     <para>
-      The fix that appeared for this in 7.4.18 was incomplete, as it plugged
-      the hole for only some <filename>dblink</> functions.  (CVE-2007-6601,
-      CVE-2007-3278)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix planner failure in some cases of <literal>WHERE false AND var IN
-      (SELECT ...)</> (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix potential crash in <function>translate()</> when using a multibyte
-      database encoding (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix PL/Python to not crash on long exception messages (Alvaro)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      <application>ecpg</> parser fixes (Michael)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <filename>contrib/tablefunc</>'s <function>crosstab()</> handle
-      NULL rowid as a category in its own right, rather than crashing (Joe)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <type>tsvector</> and <type>tsquery</> output routines to
-      escape backslashes correctly (Teodor, Bruce)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix crash of <function>to_tsvector()</> on huge input strings (Teodor)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Require a specific version of <productname>Autoconf</> to be used
-      when re-generating the <command>configure</> script (Peter)
-     </para>
-
-     <para>
-      This affects developers and packagers only.  The change was made
-      to prevent accidental use of untested combinations of
-      <productname>Autoconf</> and <productname>PostgreSQL</> versions.
-      You can remove the version check if you really want to use a
-      different <productname>Autoconf</> version, but it's
-      your responsibility whether the result works or not.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-7-4-18">
-  <title>Release 7.4.18</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2007-09-17</para>
-  </formalpara>
-
-  <para>
-   This release contains fixes from 7.4.17.
-   For information about new features in the 7.4 major release, see
-   <xref linkend="release-7-4">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 7.4.18</title>
-
-   <para>
-    A dump/restore is not required for those running 7.4.X.  However,
-    if you are upgrading from a version earlier than 7.4.11,
-    see <xref linkend="release-7-4-11">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Prevent index corruption when a transaction inserts rows and
-      then aborts close to the end of a concurrent <command>VACUUM</>
-      on the same table (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <command>CREATE DOMAIN ... DEFAULT NULL</> work properly (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix excessive logging of <acronym>SSL</> error messages (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix crash when <varname>log_min_error_statement</> logging runs out
-      of memory (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent <command>CLUSTER</> from failing
-      due to attempting to process temporary tables of other sessions (Alvaro)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Require non-superusers who use <filename>/contrib/dblink</> to use only
-      password authentication, as a security measure (Joe)
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-7-4-17">
-  <title>Release 7.4.17</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2007-04-23</para>
-  </formalpara>
-
-  <para>
-   This release contains fixes from 7.4.16,
-   including a security fix.
-   For information about new features in the 7.4 major release, see
-   <xref linkend="release-7-4">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 7.4.17</title>
-
-   <para>
-    A dump/restore is not required for those running 7.4.X.  However,
-    if you are upgrading from a version earlier than 7.4.11,
-    see <xref linkend="release-7-4-11">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-    <para>
-     Support explicit placement of the temporary-table schema within
-     <varname>search_path</>, and disable searching it for functions
-     and operators (Tom)
-    </para>
-    <para>
-     This is needed to allow a security-definer function to set a
-     truly secure value of <varname>search_path</>.  Without it,
-     an unprivileged SQL user can use temporary objects to execute code
-     with the privileges of the security-definer function (CVE-2007-2138).
-     See <command>CREATE FUNCTION</> for more information.
-    </para>
-    </listitem>
-
-    <listitem>
-    <para>
-     <filename>/contrib/tsearch2</> crash fixes (Teodor)
-    </para>
-    </listitem>
-
-    <listitem>
-    <para>
-     Fix potential-data-corruption bug in how <command>VACUUM FULL</> handles
-     <command>UPDATE</> chains (Tom, Pavan Deolasee)
-    </para>
-    </listitem>
-
-    <listitem>
-    <para>
-     Fix PANIC during enlargement of a hash index (bug introduced in 7.4.15)
-     (Tom)
-    </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-7-4-16">
-  <title>Release 7.4.16</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2007-02-05</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 7.4.15, including
-   a security fix.
-   For information about new features in the 7.4 major release, see
-   <xref linkend="release-7-4">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 7.4.16</title>
-
-   <para>
-    A dump/restore is not required for those running 7.4.X.  However,
-    if you are upgrading from a version earlier than 7.4.11,
-    see <xref linkend="release-7-4-11">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-    <para>
-     Remove security vulnerability that allowed connected users
-     to read backend memory (Tom)
-    </para>
-    <para>
-     The vulnerability involves suppressing the normal check that a SQL
-     function returns the data type it's declared to, or changing the
-     data type of a table column used in a SQL function (CVE-2007-0555).
-     This error can easily be exploited to cause a backend crash, and in
-     principle might be used to read database content that the user
-     should not be able to access.
-    </para>
-    </listitem>
-
-    <listitem>
-    <para>
-     Fix rare bug wherein btree index page splits could fail
-     due to choosing an infeasible split point (Heikki Linnakangas)
-    </para>
-    </listitem>
-
-    <listitem>
-    <para>
-     Fix for rare Assert() crash triggered by <literal>UNION</> (Tom)
-    </para>
-    </listitem>
-
-    <listitem>
-    <para>
-     Tighten security of multi-byte character processing for UTF8 sequences
-     over three bytes long (Tom)
-    </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-7-4-15">
-  <title>Release 7.4.15</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2007-01-08</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 7.4.14.
-   For information about new features in the 7.4 major release, see
-   <xref linkend="release-7-4">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 7.4.15</title>
-
-   <para>
-    A dump/restore is not required for those running 7.4.X.  However,
-    if you are upgrading from a version earlier than 7.4.11,
-    see <xref linkend="release-7-4-11">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Improve handling of <function>getaddrinfo()</> on AIX (Tom)
-     </para>
-
-     <para>
-      This fixes a problem with starting the statistics collector,
-      among other things.
-     </para>
-    </listitem>
-
-     <listitem>
-      <para>
-       Fix <quote>failed to re-find parent key</> errors in
-       <command>VACUUM</> (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Fix bugs affecting multi-gigabyte hash indexes (Tom)
-      </para>
-     </listitem>
-
-    <listitem>
-     <para>
-      Fix error when constructing an <literal>ARRAY[]</> made up of multiple
-      empty elements (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      <function>to_number()</> and <function>to_char(numeric)</>
-      are now <literal>STABLE</>, not <literal>IMMUTABLE</>, for
-      new <application>initdb</> installs (Tom)
-     </para>
-
-     <para>
-      This is because <varname>lc_numeric</> can potentially
-      change the output of these functions.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve index usage of regular expressions that use parentheses (Tom)
-     </para>
-
-     <para>
-      This improves <application>psql</> <literal>\d</> performance also.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-7-4-14">
-  <title>Release 7.4.14</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2006-10-16</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 7.4.13.
-   For information about new features in the 7.4 major release, see
-   <xref linkend="release-7-4">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 7.4.14</title>
-
-   <para>
-    A dump/restore is not required for those running 7.4.X.  However,
-    if you are upgrading from a version earlier than 7.4.11,
-    see <xref linkend="release-7-4-11">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-<itemizedlist>
-<listitem><para>Fix core dump when an untyped literal is taken as
-ANYARRAY</para></listitem>
-<listitem><para>Fix <function>string_to_array()</> to handle overlapping
- matches for the separator string</para>
-<para>For example, <literal>string_to_array('123xx456xxx789', 'xx')</>.
-</para></listitem>
-<listitem><para>Fix corner cases in pattern matching for
- <application>psql</>'s <literal>\d</> commands</para></listitem>
-<listitem><para>Fix index-corrupting bugs in /contrib/ltree
- (Teodor)</para></listitem>
-<listitem><para>Fix backslash escaping in /contrib/dbmirror</para></listitem>
-<listitem><para>Adjust regression tests for recent changes in US DST laws
-</para> </listitem>
-</itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-7-4-13">
-  <title>Release 7.4.13</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2006-05-23</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 7.4.12,
-   including patches for extremely serious security issues.
-   For information about new features in the 7.4 major release, see
-   <xref linkend="release-7-4">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 7.4.13</title>
-
-   <para>
-    A dump/restore is not required for those running 7.4.X.  However,
-    if you are upgrading from a version earlier than 7.4.11,
-    see <xref linkend="release-7-4-11">.
-   </para>
-
-   <para>
-    Full security against the SQL-injection attacks described in
-    CVE-2006-2313 and CVE-2006-2314 might require changes in application
-    code.  If you have applications that embed untrustworthy strings
-    into SQL commands, you should examine them as soon as possible to
-    ensure that they are using recommended escaping techniques.  In
-    most cases, applications should be using subroutines provided by
-    libraries or drivers (such as <application>libpq</>'s
-    <function>PQescapeStringConn()</>) to perform string escaping,
-    rather than relying on <foreignphrase>ad hoc</> code to do it.
-   </para>
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-<itemizedlist>
-<listitem><para>Change the server to reject invalidly-encoded multibyte
-characters in all cases (Tatsuo, Tom)</para>
-<para>While <productname>PostgreSQL</> has been moving in this direction for
-some time, the checks are now applied uniformly to all encodings and all
-textual input, and are now always errors not merely warnings.  This change
-defends against SQL-injection attacks of the type described in CVE-2006-2313.
-</para></listitem>
-
-<listitem><para>Reject unsafe uses of <literal>\'</> in string literals</para>
-<para>As a server-side defense against SQL-injection attacks of the type
-described in CVE-2006-2314, the server now only accepts <literal>''</> and not
-<literal>\'</> as a representation of ASCII single quote in SQL string
-literals.  By default, <literal>\'</> is rejected only when
-<varname>client_encoding</> is set to a client-only encoding (SJIS, BIG5, GBK,
-GB18030, or UHC), which is the scenario in which SQL injection is possible.
-A new configuration parameter <varname>backslash_quote</> is available to
-adjust this behavior when needed.  Note that full security against
-CVE-2006-2314 might require client-side changes; the purpose of
-<varname>backslash_quote</> is in part to make it obvious that insecure
-clients are insecure.
-</para></listitem>
-
-<listitem><para>Modify <application>libpq</>'s string-escaping routines to be
-aware of encoding considerations and
-<varname>standard_conforming_strings</></para>
-<para>This fixes <application>libpq</>-using applications for the security
-issues described in CVE-2006-2313 and CVE-2006-2314, and also future-proofs
-them against the planned changeover to SQL-standard string literal syntax.
-Applications that use multiple <productname>PostgreSQL</> connections
-concurrently should migrate to <function>PQescapeStringConn()</> and
-<function>PQescapeByteaConn()</> to ensure that escaping is done correctly
-for the settings in use in each database connection.  Applications that
-do string escaping <quote>by hand</> should be modified to rely on library
-routines instead.
-</para></listitem>
-
-<listitem><para>Fix some incorrect encoding conversion functions</para>
-<para><function>win1251_to_iso</>, <function>alt_to_iso</>,
-<function>euc_tw_to_big5</>, <function>euc_tw_to_mic</>,
-<function>mic_to_euc_tw</> were all broken to varying
-extents.
-</para></listitem>
-
-<listitem><para>Clean up stray remaining uses of <literal>\'</> in strings
-(Bruce, Jan)</para></listitem>
-
-<listitem><para>Fix bug that sometimes caused OR'd index scans to
-miss rows they should have returned</para></listitem>
-
-<listitem><para>Fix WAL replay for case where a btree index has been
-truncated</para></listitem>
-
-<listitem><para>Fix <literal>SIMILAR TO</> for patterns involving
-<literal>|</> (Tom)</para></listitem>
-
-<listitem><para>Fix server to use custom DH SSL parameters correctly (Michael
-Fuhr)</para></listitem>
-
-<listitem><para>Fix for Bonjour on Intel Macs (Ashley Clark)</para></listitem>
-
-<listitem><para>Fix various minor memory leaks</para></listitem>
-</itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-7-4-12">
-  <title>Release 7.4.12</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2006-02-14</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 7.4.11.
-   For information about new features in the 7.4 major release, see
-   <xref linkend="release-7-4">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 7.4.12</title>
-
-   <para>
-    A dump/restore is not required for those running 7.4.X.  However,
-    if you are upgrading from a version earlier than 7.4.11,
-    see <xref linkend="release-7-4-11">.
-   </para>
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-<itemizedlist>
-
-<listitem><para>Fix potential crash in <command>SET
-SESSION AUTHORIZATION</> (CVE-2006-0553)</para>
-<para>An unprivileged user could crash the server process, resulting in
-momentary denial of service to other users, if the server has been compiled
-with Asserts enabled (which is not the default).
-Thanks to Akio Ishida for reporting this problem.
-</para></listitem>
-
-<listitem><para>Fix bug with row visibility logic in self-inserted
-rows (Tom)</para>
-<para>Under rare circumstances a row inserted by the current command
-could be seen as already valid, when it should not be.  Repairs bug
-created in 7.4.9 and 7.3.11 releases.
-</para></listitem>
-
-<listitem><para>Fix race condition that could lead to <quote>file already
-exists</> errors during pg_clog file creation
-(Tom)</para></listitem>
-
-<listitem><para>Properly check <literal>DOMAIN</> constraints for
-<literal>UNKNOWN</> parameters in prepared statements
-(Neil)</para></listitem>
-
-<listitem><para>Fix to allow restoring dumps that have cross-schema
-references to custom operators (Tom)</para></listitem>
-
-<listitem><para>Portability fix for testing presence of <function>finite</>
-and <function>isinf</> during configure (Tom)</para></listitem>
-
-</itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-7-4-11">
-  <title>Release 7.4.11</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2006-01-09</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 7.4.10.
-   For information about new features in the 7.4 major release, see
-   <xref linkend="release-7-4">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 7.4.11</title>
-
-   <para>
-    A dump/restore is not required for those running 7.4.X.  However,
-    if you are upgrading from a version earlier than 7.4.8,
-    see <xref linkend="release-7-4-8">.
-    Also, you might need to <command>REINDEX</> indexes on textual
-    columns after updating, if you are affected by the locale or
-    <application>plperl</> issues described below.
-   </para>
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-<itemizedlist>
-
-<listitem><para>Fix for protocol-level Describe messages issued
-outside a transaction or in a failed transaction (Tom)</para></listitem>
-
-<listitem><para>Fix character string comparison for locales that consider
-different character combinations as equal, such as Hungarian (Tom)</para>
-<para>This might require <command>REINDEX</> to fix existing indexes on
-textual columns.</para></listitem>
-
-<listitem><para>Set locale environment variables during postmaster startup
-to ensure that <application>plperl</> won't change the locale later</para>
-<para>This fixes a problem that occurred if the <application>postmaster</> was
-started with environment variables specifying a different locale than what
-<application>initdb</> had been told.  Under these conditions, any use of
-<application>plperl</> was likely to lead to corrupt indexes.  You might need
-<command>REINDEX</> to fix existing indexes on
-textual columns if this has happened to you.</para></listitem>
-
-<listitem><para>Fix longstanding bug in strpos() and regular expression
-handling in certain rarely used Asian multi-byte character sets (Tatsuo)
-</para></listitem>
-
-<listitem><para>Fix bug in <filename>/contrib/pgcrypto</> gen_salt,
-which caused it not to use all available salt space for MD5 and
-XDES algorithms (Marko Kreen, Solar Designer)</para>
-<para>Salts for Blowfish and standard DES are unaffected.</para></listitem>
-
-<listitem><para>Fix <filename>/contrib/dblink</> to throw an error,
-rather than crashing, when the number of columns specified is different from
-what's actually returned by the query (Joe)</para></listitem>
-
-</itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-7-4-10">
-  <title>Release 7.4.10</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2005-12-12</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 7.4.9.
-   For information about new features in the 7.4 major release, see
-   <xref linkend="release-7-4">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 7.4.10</title>
-
-   <para>
-    A dump/restore is not required for those running 7.4.X.  However,
-    if you are upgrading from a version earlier than 7.4.8,
-    see <xref linkend="release-7-4-8">.
-   </para>
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-<itemizedlist>
-
-<listitem><para>Fix race condition in transaction log management</para>
-<para>There was a narrow window in which an I/O operation could be initiated
-for the wrong page, leading to an Assert failure or data
-corruption.</para>
-</listitem>
-
-<listitem><para>Prevent failure if client sends Bind protocol message
-when current transaction is already aborted</para></listitem>
-
-<listitem><para><filename>/contrib/ltree</> fixes (Teodor)</para></listitem>
-
-<listitem><para>AIX and HPUX compile fixes (Tom)</para></listitem>
-
-<listitem><para>Fix longstanding planning error for outer joins</para>
-<para>This bug sometimes caused a bogus error <quote>RIGHT JOIN is
-only supported with merge-joinable join conditions</>.</para></listitem>
-
-<listitem><para>Prevent core dump in <application>pg_autovacuum</> when a
-table has been dropped</para></listitem>
-</itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-7-4-9">
-  <title>Release 7.4.9</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2005-10-04</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 7.4.8.
-   For information about new features in the 7.4 major release, see
-   <xref linkend="release-7-4">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 7.4.9</title>
-
-   <para>
-    A dump/restore is not required for those running 7.4.X.  However,
-    if you are upgrading from a version earlier than 7.4.8,
-    see <xref linkend="release-7-4-8">.
-   </para>
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-<itemizedlist>
-<listitem><para>Fix error that allowed <command>VACUUM</> to remove
-<literal>ctid</> chains too soon, and add more checking in code that follows
-<literal>ctid</> links</para>
-<para>This fixes a long-standing problem that could cause crashes in very rare
-circumstances.</para></listitem>
-<listitem><para>Fix <type>CHAR()</> to properly pad spaces to the specified
-length when using a multiple-byte character set (Yoshiyuki Asaba)</para>
-<para>In prior releases, the padding of <type>CHAR()</> was incorrect
-because it only padded to the specified number of bytes without
-considering how many characters were stored.</para></listitem>
-<listitem><para>Fix the sense of the test for read-only transaction
-in <command>COPY</></para>
-<para>The code formerly prohibited <command>COPY TO</>, where it should
-prohibit <command>COPY FROM</>.
-</para></listitem>
-<listitem><para>Fix planning problem with outer-join ON clauses that reference
-only the inner-side relation</para></listitem>
-<listitem><para>Further fixes for <literal>x FULL JOIN y ON true</> corner
-cases</para></listitem>
-<listitem><para>Make <function>array_in</> and <function>array_recv</> more
-paranoid about validating their OID parameter</para></listitem>
-<listitem><para>Fix missing rows in queries like <literal>UPDATE a=... WHERE
-a...</> with GiST index on column <literal>a</></para></listitem>
-<listitem><para>Improve robustness of datetime parsing</para></listitem>
-<listitem><para>Improve checking for partially-written WAL
-pages</para></listitem>
-<listitem><para>Improve robustness of signal handling when SSL is
-enabled</para></listitem>
-<listitem><para>Don't try to open more than <literal>max_files_per_process</>
-files during postmaster startup</para></listitem>
-<listitem><para>Various memory leakage fixes</para></listitem>
-<listitem><para>Various portability improvements</para></listitem>
-<listitem><para>Fix PL/pgSQL to handle <literal>var := var</> correctly when
-the variable is of pass-by-reference type</para></listitem>
-<listitem><para>Update <filename>contrib/tsearch2</> to use current Snowball
-code</para></listitem>
-</itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-7-4-8">
-  <title>Release 7.4.8</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2005-05-09</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 7.4.7, including several
-   security-related issues.
-   For information about new features in the 7.4 major release, see
-   <xref linkend="release-7-4">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 7.4.8</title>
-
-   <para>
-    A dump/restore is not required for those running 7.4.X.  However,
-    it is one possible way of handling two significant security problems
-    that have been found in the initial contents of 7.4.X system
-    catalogs.  A dump/initdb/reload sequence using 7.4.8's initdb will
-    automatically correct these problems.
-   </para>
-
-   <para>
-    The larger security problem is that the built-in character set encoding
-    conversion functions can be invoked from SQL commands by unprivileged
-    users, but the functions were not designed for such use and are not
-    secure against malicious choices of arguments.  The fix involves changing
-    the declared parameter list of these functions so that they can no longer
-    be invoked from SQL commands.  (This does not affect their normal use
-    by the encoding conversion machinery.)
-   </para>
-
-   <para>
-    The lesser problem is that the <filename>contrib/tsearch2</> module
-    creates several functions that are misdeclared to return
-    <type>internal</> when they do not accept <type>internal</> arguments.
-    This breaks type safety for all functions using <type>internal</>
-    arguments.
-   </para>
-
-   <para>
-    It is strongly recommended that all installations repair these errors,
-    either by initdb or by following the manual repair procedures given
-    below.  The errors at least allow unprivileged database users to crash
-    their server process, and might allow unprivileged users to gain the
-    privileges of a database superuser.
-   </para>
-
-   <para>
-    If you wish not to do an initdb, perform the following procedures instead.
-    As the database superuser, do:
-
-<programlisting>
-BEGIN;
-UPDATE pg_proc SET proargtypes[3] = 'internal'::regtype
-WHERE pronamespace = 11 AND pronargs = 5
-     AND proargtypes[2] = 'cstring'::regtype;
--- The command should report having updated 90 rows;
--- if not, rollback and investigate instead of committing!
-COMMIT;
-</programlisting>
-
-    Next, if you have installed <filename>contrib/tsearch2</>, do:
-
-<programlisting>
-BEGIN;
-UPDATE pg_proc SET proargtypes[0] = 'internal'::regtype
-WHERE oid IN (
-   'dex_init(text)'::regprocedure,
-   'snb_en_init(text)'::regprocedure,
-   'snb_ru_init(text)'::regprocedure,
-   'spell_init(text)'::regprocedure,
-   'syn_init(text)'::regprocedure
-);
--- The command should report having updated 5 rows;
--- if not, rollback and investigate instead of committing!
-COMMIT;
-</programlisting>
-
-    If this command fails with a message like <quote>function
-    "dex_init(text)" does not exist</>, then either <filename>tsearch2</>
-    is not installed in this database, or you already did the update.
-   </para>
-
-   <para>
-    The above procedures must be carried out in <emphasis>each</> database
-    of an installation, including <literal>template1</>, and ideally
-    including <literal>template0</> as well.  If you do not fix the
-    template databases then any subsequently created databases will contain
-    the same errors.  <literal>template1</> can be fixed in the same way
-    as any other database, but fixing <literal>template0</> requires
-    additional steps.  First, from any database issue:
-<programlisting>
-UPDATE pg_database SET datallowconn = true WHERE datname = 'template0';
-</programlisting>
-     Next connect to <literal>template0</> and perform the above repair
-     procedures.  Finally, do:
-<programlisting>
--- re-freeze template0:
-VACUUM FREEZE;
--- and protect it against future alterations:
-UPDATE pg_database SET datallowconn = false WHERE datname = 'template0';
-</programlisting>
-   </para>
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-<itemizedlist>
-<listitem><para>Change encoding function signature to prevent
-misuse</para></listitem>
-<listitem><para>Change <filename>contrib/tsearch2</> to avoid unsafe use of
-<type>INTERNAL</> function results</para></listitem>
-<listitem><para>Repair ancient race condition that allowed a transaction to be
-seen as committed for some purposes (eg SELECT FOR UPDATE) slightly sooner
-than for other purposes</para>
-<para>This is an extremely serious bug since it could lead to apparent
-data inconsistencies being briefly visible to applications.</para></listitem>
-<listitem><para>Repair race condition between relation extension and
-VACUUM</para>
-<para>This could theoretically have caused loss of a page's worth of
-freshly-inserted data, although the scenario seems of very low probability.
-There are no known cases of it having caused more than an Assert failure.
-</para></listitem>
-<listitem><para>Fix comparisons of <type>TIME WITH TIME ZONE</> values</para>
-<para>
-The comparison code was wrong in the case where the
-<literal>--enable-integer-datetimes</> configuration switch had been used.
-NOTE: if you have an index on a <type>TIME WITH TIME ZONE</> column,
-it will need to be <command>REINDEX</>ed after installing this update, because
-the fix corrects the sort order of column values.
-</para></listitem>
-<listitem><para>Fix <function>EXTRACT(EPOCH)</> for
-<type>TIME WITH TIME ZONE</> values</para></listitem>
-<listitem><para>Fix mis-display of negative fractional seconds in
-<type>INTERVAL</> values</para>
-<para>
-This error only occurred when the
-<literal>--enable-integer-datetimes</> configuration switch had been used.
-</para></listitem>
-<listitem><para>Ensure operations done during backend shutdown are counted by
-statistics collector</para>
-<para>
-This is expected to resolve reports of <application>pg_autovacuum</>
-not vacuuming the system catalogs often enough &mdash; it was not being
-told about catalog deletions caused by temporary table removal during
-backend exit.
-</para></listitem>
-<listitem><para>Additional buffer overrun checks in plpgsql
-(Neil)</para></listitem>
-<listitem><para>Fix pg_dump to dump trigger names containing <literal>%</>
-correctly (Neil)</para></listitem>
-<listitem><para>Fix <filename>contrib/pgcrypto</> for newer OpenSSL builds
-(Marko Kreen)</para></listitem>
-<listitem><para>Still more 64-bit fixes for
-<filename>contrib/intagg</></para></listitem>
-<listitem><para>Prevent incorrect optimization of functions returning
-<type>RECORD</></para></listitem>
-<listitem><para>Prevent <function>to_char(interval)</> from dumping core for
-month-related formats</para></listitem>
-<listitem><para>Prevent crash on <literal>COALESCE(NULL,NULL)</></para></listitem>
-<listitem><para>Fix <function>array_map</> to call PL functions correctly</para></listitem>
-<listitem><para>Fix permission checking in <command>ALTER DATABASE RENAME</></para></listitem>
-<listitem><para>Fix <command>ALTER LANGUAGE RENAME</></para></listitem>
-<listitem><para>Make <function>RemoveFromWaitQueue</> clean up after itself</para>
-<para>
-This fixes a lock management error that would only be visible if a transaction
-was kicked out of a wait for a lock (typically by query cancel) and then the
-holder of the lock released it within a very narrow window.
-</para></listitem>
-<listitem><para>Fix problem with untyped parameter appearing in
-<command>INSERT ... SELECT</></para></listitem>
-<listitem><para>Fix <command>CLUSTER</> failure after
-<command>ALTER TABLE SET WITHOUT OIDS</></para></listitem>
-</itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-7-4-7">
-  <title>Release 7.4.7</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2005-01-31</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 7.4.6, including several
-   security-related issues.
-   For information about new features in the 7.4 major release, see
-   <xref linkend="release-7-4">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 7.4.7</title>
-
-   <para>
-    A dump/restore is not required for those running 7.4.X.
-   </para>
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-<itemizedlist>
-<listitem><para>Disallow <command>LOAD</> to non-superusers</para>
-<para>
-On platforms that will automatically execute initialization functions of a
-shared library (this includes at least Windows and ELF-based Unixen),
-<command>LOAD</> can be used to make the server execute arbitrary code.
-Thanks to NGS Software for reporting this.</para></listitem>
-<listitem><para>Check that creator of an aggregate function has the right to
-execute the specified transition functions</para>
-<para>
-This oversight made it possible to bypass denial of EXECUTE
-permission on a function.</para></listitem>
-<listitem><para>Fix security and 64-bit issues in
-contrib/intagg</para></listitem>
-<listitem><para>Add needed STRICT marking to some contrib functions (Kris
-Jurka)</para></listitem>
-<listitem><para>Avoid buffer overrun when plpgsql cursor declaration has too
-many parameters (Neil)</para></listitem>
-<listitem><para>Fix planning error for FULL and RIGHT outer joins</para>
-<para>
-The result of the join was mistakenly supposed to be sorted the same as the
-left input.  This could not only deliver mis-sorted output to the user, but
-in case of nested merge joins could give outright wrong answers.
-</para></listitem>
-<listitem><para>Fix plperl for quote marks in tuple fields</para></listitem>
-<listitem><para>Fix display of negative intervals in SQL and GERMAN
-datestyles</para></listitem>
-<listitem><para>Make age(timestamptz) do calculation in local timezone not
-GMT</para></listitem>
-</itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-7-4-6">
-  <title>Release 7.4.6</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2004-10-22</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 7.4.5.
-   For information about new features in the 7.4 major release, see
-   <xref linkend="release-7-4">.
-  </para>
-
-
-  <sect2>
-   <title>Migration to Version 7.4.6</title>
-
-   <para>
-    A dump/restore is not required for those running 7.4.X.
-   </para>
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-<itemizedlist>
-<listitem><para>Repair possible failure to update hint bits on disk</para>
-<para>
-Under rare circumstances this oversight could lead to
-<quote>could not access transaction status</> failures, which qualifies
-it as a potential-data-loss bug.
-</para></listitem>
-<listitem><para>Ensure that hashed outer join does not miss tuples</para>
-<para>
-Very large left joins using a hash join plan could fail to output unmatched
-left-side rows given just the right data distribution.
-</para></listitem>
-<listitem><para>Disallow running <application>pg_ctl</> as root</para>
-<para>
-This is to guard against any possible security issues.
-</para></listitem>
-<listitem><para>Avoid using temp files in <filename>/tmp</> in <command>make_oidjoins_check</command></para>
-<para>
-This has been reported as a security issue, though it's hardly worthy of
-concern since there is no reason for non-developers to use this script anyway.
-</para></listitem>
-<listitem><para>Prevent forced backend shutdown from re-emitting prior command
-result</para>
-<para>
-In rare cases, a client might think that its last command had succeeded when
-it really had been aborted by forced database shutdown.
-</para></listitem>
-<listitem><para>Repair bug in <function>pg_stat_get_backend_idset</function></para>
-<para>
-This could lead to misbehavior in some of the system-statistics views.
-</para></listitem>
-<listitem><para>Fix small memory leak in postmaster</para></listitem>
-<listitem><para>Fix <quote>expected both swapped tables to have TOAST
-tables</> bug</para>
-<para>
-This could arise in cases such as CLUSTER after ALTER TABLE DROP COLUMN.
-</para></listitem>
-<listitem><para>Prevent <literal>pg_ctl restart</> from adding <literal>-D</> multiple times</para></listitem>
-<listitem><para>Fix problem with NULL values in GiST indexes</para></listitem>
-<listitem><para><literal>::</> is no longer interpreted as a variable in an
-ECPG prepare statement</para></listitem>
-</itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-7-4-5">
-  <title>Release 7.4.5</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2004-08-18</para>
-  </formalpara>
-
-  <para>
-   This release contains one serious bug fix over 7.4.4.
-   For information about new features in the 7.4 major release, see
-   <xref linkend="release-7-4">.
-  </para>
-
-
-  <sect2>
-   <title>Migration to Version 7.4.5</title>
-
-   <para>
-    A dump/restore is not required for those running 7.4.X.
-   </para>
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-<itemizedlist>
-<listitem><para>Repair possible crash during concurrent B-tree index insertions</para>
-<para>
-This patch fixes a rare case in which concurrent insertions into a B-tree index
-could result in a server panic.  No permanent damage would result, but it's
-still worth a re-release.  The bug does not exist in pre-7.4 releases.
-</para></listitem>
-</itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-7-4-4">
-  <title>Release 7.4.4</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2004-08-16</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 7.4.3.
-   For information about new features in the 7.4 major release, see
-   <xref linkend="release-7-4">.
-  </para>
-
-
-  <sect2>
-   <title>Migration to Version 7.4.4</title>
-
-   <para>
-    A dump/restore is not required for those running 7.4.X.
-   </para>
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-<itemizedlist>
-<listitem><para>Prevent possible loss of committed transactions during crash</para>
-<para>
-Due to insufficient interlocking between transaction commit and checkpointing,
-it was possible for transactions committed just before the most recent
-checkpoint to be lost, in whole or in part, following a database crash and
-restart.  This is a serious bug that has existed
-since <productname>PostgreSQL</productname> 7.1.
-</para></listitem>
-<listitem><para>Check HAVING restriction before evaluating result list of an
-aggregate plan</para></listitem>
-<listitem><para>Avoid crash when session's current user ID is deleted</para></listitem>
-<listitem><para>Fix hashed crosstab for zero-rows case (Joe)</para></listitem>
-<listitem><para>Force cache update after renaming a column in a foreign key</para></listitem>
-<listitem><para>Pretty-print UNION queries correctly</para></listitem>
-<listitem><para>Make psql handle <literal>\r\n</> newlines properly in COPY IN</para></listitem>
-<listitem><para><application>pg_dump</> handled ACLs with grant options incorrectly</para></listitem>
-<listitem><para>Fix thread support for OS X and Solaris</para></listitem>
-<listitem><para>Updated JDBC driver (build 215) with various fixes</para></listitem>
-<listitem><para>ECPG fixes</para></listitem>
-<listitem><para>Translation updates (various contributors)</para></listitem>
-</itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-7-4-3">
-  <title>Release 7.4.3</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2004-06-14</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 7.4.2.
-   For information about new features in the 7.4 major release, see
-   <xref linkend="release-7-4">.
-  </para>
-
-
-  <sect2>
-   <title>Migration to Version 7.4.3</title>
-
-   <para>
-    A dump/restore is not required for those running 7.4.X.
-   </para>
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-<itemizedlist>
-<listitem><para>Fix temporary memory leak when using non-hashed aggregates (Tom)</para></listitem>
-<listitem><para>ECPG fixes, including some for Informix compatibility (Michael)</para></listitem>
-<listitem><para>Fixes for compiling with thread-safety, particularly Solaris (Bruce)</para></listitem>
-<listitem><para>Fix error in COPY IN termination when using the old network protocol (ljb)</para></listitem>
-<listitem><para>Several important fixes in pg_autovacuum, including fixes for
-large tables, unsigned oids, stability, temp tables, and debug mode
-(Matthew T. O'Connor)</para></listitem>
-<listitem><para>Fix problem with reading tar-format dumps on NetBSD and BSD/OS (Bruce)</para></listitem>
-<listitem><para>Several JDBC fixes</para></listitem>
-<listitem><para>Fix ALTER SEQUENCE RESTART where last_value equals the restart value (Tom)</para></listitem>
-<listitem><para>Repair failure to recalculate nested sub-selects (Tom)</para></listitem>
-<listitem><para>Fix problems with non-constant expressions in LIMIT/OFFSET</para></listitem>
-<listitem><para>Support FULL JOIN with no join clause, such as X FULL JOIN Y ON TRUE (Tom)</para></listitem>
-<listitem><para>Fix another zero-column table bug (Tom)</para></listitem>
-<listitem><para>Improve handling of non-qualified identifiers in GROUP BY clauses in sub-selects (Tom)</para>
-<para>
-Select-list aliases within the sub-select will now take precedence over
-names from outer query levels.
-</para></listitem>
-<listitem><para>Do not generate <quote>NATURAL CROSS JOIN</> when decompiling rules (Tom)</para></listitem>
-<listitem><para>Add checks for invalid field length in binary COPY (Tom)</para>
-<para>
- This fixes a difficult-to-exploit security hole.
-</para></listitem>
-<listitem><para>Avoid locking conflict between <command>ANALYZE</command> and <command>LISTEN</command>/<command>NOTIFY</command></para></listitem>
-<listitem><para>Numerous translation updates (various contributors)</para></listitem>
-</itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-7-4-2">
-  <title>Release 7.4.2</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2004-03-08</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 7.4.1.
-   For information about new features in the 7.4 major release, see
-   <xref linkend="release-7-4">.
-  </para>
-
-
-  <sect2>
-   <title>Migration to Version 7.4.2</title>
-
-   <para>
-    A dump/restore is not required for those running 7.4.X.  However,
-    it might be advisable as the easiest method of incorporating fixes for
-    two errors that have been found in the initial contents of 7.4.X system
-    catalogs.  A dump/initdb/reload sequence using 7.4.2's initdb will
-    automatically correct these problems.
-   </para>
-
-   <para>
-    The more severe of the two errors is that data type <type>anyarray</>
-    has the wrong alignment label; this is a problem because the
-    <structname>pg_statistic</> system catalog uses <type>anyarray</>
-    columns.  The mislabeling can cause planner misestimations and even
-    crashes when planning queries that involve <literal>WHERE</> clauses on
-    double-aligned columns (such as <type>float8</> and <type>timestamp</>).
-    It is strongly recommended that all installations repair this error,
-    either by initdb or by following the manual repair procedure given
-    below.
-   </para>
-
-   <para>
-    The lesser error is that the system view <structname>pg_settings</>
-    ought to be marked as having public update access, to allow
-    <literal>UPDATE pg_settings</> to be used as a substitute for
-    <command>SET</>.  This can also be fixed either by initdb or manually,
-    but it is not necessary to fix unless you want to use <literal>UPDATE
-    pg_settings</>.
-   </para>
-
-   <para>
-    If you wish not to do an initdb, the following procedure will work
-    for fixing <structname>pg_statistic</>.  As the database superuser,
-    do:
-
-<programlisting>
--- clear out old data in pg_statistic:
-DELETE FROM pg_statistic;
-VACUUM pg_statistic;
--- this should update 1 row:
-UPDATE pg_type SET typalign = 'd' WHERE oid = 2277;
--- this should update 6 rows:
-UPDATE pg_attribute SET attalign = 'd' WHERE atttypid = 2277;
---
--- At this point you MUST start a fresh backend to avoid a crash!
---
--- repopulate pg_statistic:
-ANALYZE;
-</programlisting>
-
-    This can be done in a live database, but beware that all backends
-    running in the altered database must be restarted before it is safe to
-    repopulate <structname>pg_statistic</>.
-   </para>
-
-   <para>
-    To repair the <structname>pg_settings</> error, simply do:
-<programlisting>
-GRANT SELECT, UPDATE ON pg_settings TO PUBLIC;
-</programlisting>
-   </para>
-
-   <para>
-    The above procedures must be carried out in <emphasis>each</> database
-    of an installation, including <literal>template1</>, and ideally
-    including <literal>template0</> as well.  If you do not fix the
-    template databases then any subsequently created databases will contain
-    the same errors.  <literal>template1</> can be fixed in the same way
-    as any other database, but fixing <literal>template0</> requires
-    additional steps.  First, from any database issue:
-<programlisting>
-UPDATE pg_database SET datallowconn = true WHERE datname = 'template0';
-</programlisting>
-     Next connect to <literal>template0</> and perform the above repair
-     procedures.  Finally, do:
-<programlisting>
--- re-freeze template0:
-VACUUM FREEZE;
--- and protect it against future alterations:
-UPDATE pg_database SET datallowconn = false WHERE datname = 'template0';
-</programlisting>
-   </para>
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-<para>
-   Release 7.4.2 incorporates all the fixes included in release 7.3.6,
-   plus the following fixes:
-</para>
-
-<itemizedlist>
-<listitem><para>Fix <structname>pg_statistics</> alignment bug that could crash optimizer</para>
-<para>See above for details about this problem.</para></listitem>
-<listitem><para>Allow non-super users to update <structname>pg_settings</></para></listitem>
-<listitem><para>Fix several optimizer bugs, most of which led to
-<quote>variable not found in subplan target lists</> errors</para></listitem>
-<listitem><para>Avoid out-of-memory failure during startup of large multiple
-index scan</para></listitem>
-<listitem><para>Fix multibyte problem that could lead to <quote>out of
-memory</> error during <command>COPY IN</></para></listitem>
-<listitem><para>Fix problems with <command>SELECT INTO</> / <command>CREATE
-TABLE AS</> from tables without OIDs</para></listitem>
-<listitem><para>Fix problems with <filename>alter_table</> regression test
-during parallel testing</para></listitem>
-<listitem><para>Fix problems with hitting open file limit, especially on OS X (Tom)</para></listitem>
-<listitem><para>Partial fix for Turkish-locale issues</para>
-<para>initdb will succeed now in Turkish locale, but there are still some
-inconveniences associated with the <literal>i/I</> problem.</para></listitem>
-<listitem><para>Make pg_dump set client encoding on restore</para></listitem>
-<listitem><para>Other minor pg_dump fixes</para></listitem>
-<listitem><para>Allow ecpg to again use C keywords as column names (Michael)</para></listitem>
-<listitem><para>Added ecpg <literal>WHENEVER NOT_FOUND</> to
-<literal>SELECT/INSERT/UPDATE/DELETE</> (Michael)</para></listitem>
-<listitem><para>Fix ecpg crash for queries calling set-returning functions (Michael)</para></listitem>
-<listitem><para>Various other ecpg fixes (Michael)</para></listitem>
-<listitem><para>Fixes for Borland compiler</para></listitem>
-<listitem><para>Thread build improvements (Bruce)</para></listitem>
-<listitem><para>Various other build fixes</para></listitem>
-<listitem><para>Various JDBC fixes</para></listitem>
-</itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-7-4-1">
-  <title>Release 7.4.1</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2003-12-22</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 7.4.
-   For information about new features in the 7.4 major release, see
-   <xref linkend="release-7-4">.
-  </para>
-
-
-  <sect2>
-   <title>Migration to Version 7.4.1</title>
-
-   <para>
-    A dump/restore is <emphasis>not</emphasis> required for those
-    running 7.4.
-   </para>
-
-   <para>
-    If you want to install the fixes in the information schema
-    you need to reload it into the database.
-    This is either accomplished by initializing a new cluster
-    by running <command>initdb</command>, or by running the following
-    sequence of SQL commands in each database (ideally including
-    <literal>template1</literal>) as a superuser in
-    <application>psql</application>, after installing the new release:
-<programlisting>
-DROP SCHEMA information_schema CASCADE;
-\i /usr/local/pgsql/share/information_schema.sql
-</programlisting>
-    Substitute your installation path in the second command.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-<itemizedlist>
-<listitem><para>Fixed bug in <command>CREATE SCHEMA</command> parsing in ECPG (Michael)</para></listitem>
-<listitem><para>Fix compile error when <option>--enable-thread-safety</option> and <option>--with-perl</option> are used together (Peter)</para></listitem>
-<listitem><para>Fix for subqueries that used hash joins (Tom)</para>
-<para>
-   Certain subqueries that used hash joins would crash because of
-   improperly shared structures.
-</para></listitem>
-<listitem><para>Fix free space map compaction bug (Tom)</para>
-<para>
-   This fixes a bug where compaction of the free space map could lead
-   to a database server shutdown.
-</para>
-</listitem>
-<listitem><para>Fix for Borland compiler build of libpq (Bruce)</para></listitem>
-<listitem><para>Fix <function>netmask()</function> and <function>hostmask()</function> to return the maximum-length masklen (Tom)</para>
-<para>
-   Fix these functions to return values consistent with pre-7.4
-   releases.
-</para>
-</listitem>
-<listitem><para>Several <filename>contrib/pg_autovacuum</filename> fixes</para>
-<para>
-   Fixes include improper variable initialization, missing vacuum after
-   <command>TRUNCATE</command>, and duration computation overflow for long vacuums.
-</para>
-</listitem>
-<listitem><para>Allow compile of <filename>contrib/cube</filename> under Cygwin (Jason Tishler)</para></listitem>
-<listitem><para>Fix Solaris use of password file when no passwords are defined (Tom)</para>
-<para>
-   Fix crash on Solaris caused by use of any type of password
-   authentication when no passwords were defined.
-</para>
-</listitem>
-<listitem><para>JDBC fix for thread problems, other fixes</para></listitem>
-<listitem><para>Fix for <type>bytea</type> index lookups (Joe)</para></listitem>
-<listitem><para>Fix information schema for bit data types (Peter)</para></listitem>
-<listitem><para>Force zero_damaged_pages to be on during recovery from WAL</para></listitem>
-<listitem><para>Prevent some obscure cases of <quote>variable not in subplan target lists</quote></para></listitem>
-<listitem><para>Make <function>PQescapeBytea</function> and <function>byteaout</function> consistent with each other (Joe)</para></listitem>
-<listitem><para>Escape <type>bytea</type> output for bytes &gt; 0x7e(Joe)</para>
-<para>
- If different client encodings are used for <type>bytea</type> output and input, it
- is possible for <type>bytea</type> values to be corrupted by the differing
- encodings.  This fix escapes all bytes that might be affected.
-</para>
-</listitem>
-<listitem><para>Added missing <function>SPI_finish()</function> calls to dblink's <function>get_tuple_of_interest()</function> (Joe)</para></listitem>
-<listitem><para>New Czech FAQ</para></listitem>
-<listitem><para>Fix information schema view <literal>constraint_column_usage</literal> for foreign keys (Peter)</para></listitem>
-<listitem><para>ECPG fixes (Michael)</para></listitem>
-<listitem><para>Fix bug with multiple <literal>IN</literal> subqueries and joins in the subqueries (Tom)</para></listitem>
-<listitem><para>Allow <literal>COUNT('x')</literal> to work (Tom)</para></listitem>
-<listitem><para>Install ECPG include files for Informix compatibility into separate directory (Peter)</para>
-<para>
- Some names of ECPG include files for Informix compatibility conflicted with operating system include files.
- By installing them in their own directory, name conflicts have been reduced.
-</para>
-</listitem>
-<listitem><para>Fix SSL memory leak (Neil)</para>
-<para>
- This release fixes a bug in 7.4 where SSL didn't free all memory it allocated.
-</para>
-</listitem>
-<listitem><para>Prevent <filename>pg_service.conf</filename> from using service name as default dbname (Bruce)</para></listitem>
-<listitem><para>Fix local ident authentication on FreeBSD (Tom)</para></listitem>
-</itemizedlist>
-
- </sect2>
-</sect1>
-
-<sect1 id="release-7-4">
- <title>Release 7.4</title>
-
- <formalpara>
-  <title>Release date:</title>
-  <para>2003-11-17</para>
- </formalpara>
-
- <sect2>
-  <title>Overview</title>
-
-  <para>
-   Major changes in this release:
-  </para>
-
-  <variablelist>
-   <varlistentry>
-    <term>
-     <literal>IN</literal> / <literal>NOT IN</literal> subqueries are
-     now much more efficient
-    </term>
-
-    <listitem>
-     <para>
-      In previous releases, <literal>IN</literal>/<literal>NOT
-      IN</literal> subqueries were joined to the upper query by
-      sequentially scanning the subquery looking for a match.  The
-      7.4 code uses the same sophisticated techniques used by
-      ordinary joins and so is much faster.  An
-      <literal>IN</literal> will now usually be as fast as or faster
-      than an equivalent <literal>EXISTS</literal> subquery; this
-      reverses the conventional wisdom that applied to previous
-      releases.
-     </para>
-    </listitem>
-   </varlistentry>
-
-   <varlistentry>
-    <term>
-     Improved <literal>GROUP BY</literal> processing by using hash buckets
-    </term>
-
-    <listitem>
-     <para>
-      In previous releases, rows to be grouped had to be sorted
-      first.  The 7.4 code can do <literal>GROUP BY</literal>
-      without sorting, by accumulating results into a hash table
-      with one entry per group.  It will still use the sort
-      technique, however, if the hash table is estimated to be too
-      large to fit in <varname>sort_mem</>.
-     </para>
-    </listitem>
-   </varlistentry>
-
-   <varlistentry>
-    <term>
-     New multikey hash join capability
-    </term>
-
-    <listitem>
-     <para>
-      In previous releases, hash joins could only occur on single
-      keys.  This release allows multicolumn hash joins.
-     </para>
-    </listitem>
-   </varlistentry>
-
-   <varlistentry>
-    <term>
-     Queries using the explicit <literal>JOIN</literal> syntax are
-     now better optimized
-    </term>
-
-    <listitem>
-     <para>
-      Prior releases evaluated queries using the explicit
-      <literal>JOIN</literal> syntax only in the order implied by
-      the syntax. 7.4 allows full optimization of these queries,
-      meaning the optimizer considers all possible join orderings
-      and chooses the most efficient.  Outer joins, however, must
-      still follow the declared ordering.
-     </para>
-    </listitem>
-   </varlistentry>
-
-   <varlistentry>
-    <term>
-     Faster and more powerful regular expression code
-    </term>
-
-    <listitem>
-     <para>
-      The entire regular expression module has been replaced with a
-      new version by Henry Spencer, originally written for Tcl.  The
-      code greatly improves performance and supports several flavors
-      of regular expressions.
-     </para>
-    </listitem>
-   </varlistentry>
-
-   <varlistentry>
-    <term>
-     Function-inlining for simple SQL functions
-    </term>
-
-    <listitem>
-     <para>
-      Simple SQL functions can now be inlined by including their SQL
-      in the main query.  This improves performance by eliminating
-      per-call overhead.  That means simple SQL functions now
-      behave like macros.
-     </para>
-    </listitem>
-   </varlistentry>
-
-   <varlistentry>
-    <term>
-     Full support for IPv6 connections and IPv6 address data types
-    </term>
-
-    <listitem>
-     <para>
-      Previous releases allowed only IPv4 connections, and the IP
-      data types only supported IPv4 addresses. This release adds
-      full IPv6 support in both of these areas.
-     </para>
-    </listitem>
-   </varlistentry>
-
-   <varlistentry>
-    <term>
-     Major improvements in SSL performance and reliability
-    </term>
-
-    <listitem>
-     <para>
-      Several people very familiar with the SSL API have overhauled
-      our SSL code to improve SSL key negotiation and error
-      recovery.
-     </para>
-    </listitem>
-   </varlistentry>
-
-   <varlistentry>
-    <term>
-     Make free space map efficiently reuse empty index pages,
-     and other free space management improvements
-    </term>
-
-    <listitem>
-     <para>
-      In previous releases, B-tree index pages that were left empty
-      because of deleted rows could only be reused by rows with
-      index values similar to the rows originally indexed on that
-      page. In 7.4, <command>VACUUM</command> records empty index
-      pages and allows them to be reused for any future index rows.
-     </para>
-    </listitem>
-   </varlistentry>
-
-   <varlistentry>
-    <term>
-     SQL-standard information schema
-    </term>
-
-    <listitem>
-     <para>
-      The information schema provides a standardized and stable way
-      to access information about the schema objects defined in a
-      database.
-     </para>
-    </listitem>
-   </varlistentry>
-
-   <varlistentry>
-    <term>
-     Cursors conform more closely to the SQL standard
-    </term>
-
-    <listitem>
-     <para>
-      The commands <command>FETCH</command> and
-      <command>MOVE</command> have been overhauled to conform more
-      closely to the SQL standard.
-     </para>
-    </listitem>
-   </varlistentry>
-
-   <varlistentry>
-    <term>
-     Cursors can exist outside transactions
-    </term>
-
-    <listitem>
-     <para>
-      These cursors are also called holdable cursors.
-     </para>
-    </listitem>
-   </varlistentry>
-
-   <varlistentry>
-    <term>
-     New client-to-server protocol
-    </term>
-
-    <listitem>
-     <para>
-      The new protocol adds error codes, more status information,
-      faster startup, better support for binary data transmission,
-      parameter values separated from SQL commands, prepared
-      statements available at the protocol level, and cleaner
-      recovery from <command>COPY</command> failures.  The older
-      protocol is still supported by both server and clients.
-     </para>
-    </listitem>
-   </varlistentry>
-
-   <varlistentry>
-    <term>
-     <application>libpq</application> and
-     <application>ECPG</application> applications are now fully
-     thread-safe
-    </term>
-
-    <listitem>
-     <para>
-      While previous <application>libpq</application> releases
-      already supported threads, this release improves thread safety
-      by fixing some non-thread-safe code that was used during
-      database connection startup.  The <command>configure</command>
-      option <option>--enable-thread-safety</option> must be used to
-      enable this feature.
-     </para>
-    </listitem>
-   </varlistentry>
-
-   <varlistentry>
-    <term>
-     New version of full-text indexing
-    </term>
-
-    <listitem>
-     <para>
-      A new full-text indexing suite is available in
-      <filename>contrib/tsearch2</filename>.
-     </para>
-    </listitem>
-   </varlistentry>
-
-   <varlistentry>
-    <term>
-     New autovacuum tool
-    </term>
-
-    <listitem>
-     <para>
-      The new autovacuum tool in
-      <filename>contrib/autovacuum</filename> monitors the database
-      statistics tables for
-      <command>INSERT</command>/<command>UPDATE</command>/<command>DELETE</command>
-      activity and automatically vacuums tables when needed.
-     </para>
-    </listitem>
-   </varlistentry>
-
-   <varlistentry>
-    <term>
-     Array handling has been improved and moved into the server core
-    </term>
-
-    <listitem>
-     <para>
-      Many array limitations have been removed, and arrays behave
-      more like fully-supported data types.
-     </para>
-    </listitem>
-   </varlistentry>
-
-  </variablelist>
- </sect2>
-
- <sect2>
-  <title>Migration to Version 7.4</title>
-
-  <para>
-   A dump/restore using <application>pg_dump</application> is
-   required for those wishing to migrate data from any previous
-   release.
-  </para>
-
-  <para>
-   Observe the following incompatibilities:
-  </para>
-
-  <itemizedlist>
-   <listitem>
-    <para>
-     The server-side autocommit setting was removed and
-     reimplemented in client applications and languages.
-     Server-side autocommit was causing too many problems with
-     languages and applications that wanted to control their own
-     autocommit behavior, so autocommit was removed from the server
-     and added to individual client APIs as appropriate.
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>
-     Error message wording has changed substantially in this
-     release.  Significant effort was invested to make the messages
-     more consistent and user-oriented.  If your applications try to
-     detect different error conditions by parsing the error message,
-     you are strongly encouraged to use the new error code facility instead.
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>
-     Inner joins using the explicit <literal>JOIN</literal> syntax
-     might behave differently because they are now better
-     optimized.
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>
-     A number of server configuration parameters have been renamed
-     for clarity, primarily those related to
-     logging.
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>
-     <literal>FETCH 0</literal> or <literal>MOVE 0</literal> now
-     does nothing.  In prior releases, <literal>FETCH 0</literal>
-     would fetch all remaining rows, and <literal>MOVE 0</literal>
-     would move to the end of the cursor.
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>
-     <command>FETCH</command> and <command>MOVE</command> now return
-     the actual number of rows fetched/moved, or zero if at the
-     beginning/end of the cursor.  Prior releases would return the
-     row count passed to the command, not the number of rows
-     actually fetched or moved.
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>
-     <command>COPY</command> now can process files that use
-     carriage-return or carriage-return/line-feed end-of-line
-     sequences. Literal carriage-returns and line-feeds are no
-     longer accepted in data values; use <literal>\r</literal> and
-     <literal>\n</literal> instead.
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>
-     Trailing spaces are now trimmed when converting from type
-     <type>char(<replaceable>n</>)</type> to
-     <type>varchar(<replaceable>n</>)</type> or <type>text</type>.
-     This is what most people always expected to happen anyway.
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>
-     The data type <type>float(<replaceable>p</>)</type> now
-     measures <replaceable>p</> in binary digits, not decimal
-     digits.  The new behavior follows the SQL standard.
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>
-     Ambiguous date values now must match the ordering specified by
-     the <varname>datestyle</varname> setting.  In prior releases, a
-     date specification of <literal>10/20/03</> was interpreted as a
-     date in October even if <varname>datestyle</> specified that
-     the day should be first.  7.4 will throw an error if a date
-     specification is invalid for the current setting of
-     <varname>datestyle</>.
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>
-     The functions <function>oidrand</function>,
-     <function>oidsrand</function>, and
-     <function>userfntest</function> have been removed.  These
-     functions were determined to be no longer useful.
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>
-     String literals specifying time-varying date/time values, such
-     as <literal>'now'</literal> or <literal>'today'</literal> will
-     no longer work as expected in column default expressions; they
-     now cause the time of the table creation to be the default, not
-     the time of the insertion.  Functions such as
-     <function>now()</>, <function>current_timestamp</>, or
-     <function>current_date</function> should be used instead.
-    </para>
-
-    <para>
-     In previous releases, there was special code so that strings
-     such as <literal>'now'</literal> were interpreted at
-     <command>INSERT</> time and not at table creation time, but
-     this work around didn't cover all cases.  Release 7.4 now
-     requires that defaults be defined properly using functions such
-     as <function>now()</> or <function>current_timestamp</>. These
-     will work in all situations.
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>
-     The dollar sign (<literal>$</>) is no longer allowed in
-     operator names.  It can instead be a non-first character in
-     identifiers.  This was done to improve compatibility with other
-     database systems, and to avoid syntax problems when parameter
-     placeholders (<literal>$<replaceable>n</></>) are written
-     adjacent to operators.
-    </para>
-   </listitem>
-
-  </itemizedlist>
- </sect2>
-
- <sect2>
-  <title>Changes</title>
-
-  <para>
-   Below you will find a detailed account of the changes between
-   release 7.4 and the previous major release.
-  </para>
-
- <sect3>
-  <title>Server Operation Changes</title>
-
-  <itemizedlist>
-   <listitem>
-    <para>
-     Allow IPv6 server connections (Nigel Kukard, Johan Jordaan,
-     Bruce, Tom, Kurt Roeckx, Andrew Dunstan)
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>
-     Fix SSL to handle errors cleanly (Nathan Mueller)
-    </para>
-    <para>
-     In prior releases, certain SSL API error reports were not
-     handled correctly.  This release fixes those problems.
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>
-     SSL protocol security and performance improvements (Sean Chittenden)
-    </para>
-    <para>
-     SSL key renegotiation was happening too frequently, causing poor
-     SSL performance.  Also, initial key handling was improved.
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>
-     Print lock information when a deadlock is detected (Tom)
-    </para>
-    <para>
-     This allows easier debugging of deadlock situations.
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>
-     Update <filename>/tmp</filename> socket modification times
-     regularly to avoid their removal (Tom)
-    </para>
-    <para>
-     This should help prevent <filename>/tmp</filename> directory
-     cleaner administration scripts from removing server socket
-     files.
-    </para>
-   </listitem>
-
-   <listitem><para>Enable PAM for Mac OS X (Aaron Hillegass)</para></listitem>
-
-   <listitem>
-    <para>Make B-tree indexes fully WAL-safe (Tom)</para>
-    <para>
-     In prior releases, under certain rare cases, a server crash
-     could cause B-tree indexes to become corrupt. This release
-     removes those last few rare cases.
-    </para>
-   </listitem>
-
-   <listitem><para>Allow B-tree index compaction and empty page reuse (Tom)</para></listitem>
-
-   <listitem>
-    <para>
-     Fix inconsistent index lookups during split of first root page (Tom)
-    </para>
-    <para>
-     In prior releases, when a single-page index split into two
-     pages, there was a brief period when another database session
-     could miss seeing an index entry.  This release fixes that rare
-     failure case.
-    </para>
-   </listitem>
-
-   <listitem><para>Improve free space map allocation logic (Tom)</para></listitem>
-
-   <listitem>
-    <para>Preserve free space information between server restarts (Tom)</para>
-    <para>
-     In prior releases, the free space map was not saved when the
-     postmaster was stopped, so newly started servers had no free
-     space information. This release saves the free space map, and
-     reloads it when the server is restarted.
-    </para>
-   </listitem>
-
-   <listitem><para>Add start time to <literal>pg_stat_activity</literal> (Neil)</para></listitem>
-   <listitem><para>New code to detect corrupt disk pages; erase with <varname>zero_damaged_pages</varname> (Tom)</para></listitem>
-   <listitem><para>New client/server protocol: faster, no username length limit, allow clean exit from <command>COPY</command> (Tom)</para></listitem>
-   <listitem><para>Add transaction status, table ID, column ID to client/server protocol (Tom)</para></listitem>
-   <listitem><para>Add binary I/O to client/server protocol (Tom)</para></listitem>
-   <listitem><para>Remove autocommit server setting; move to client applications (Tom)</para></listitem>
-   <listitem><para>New error message wording, error codes, and three levels of error detail (Tom, Joe, Peter)</para></listitem>
-  </itemizedlist>
- </sect3>
-
- <sect3>
-  <title>Performance Improvements</title>
-
-  <itemizedlist>
-   <listitem><para>Add hashing for <literal>GROUP BY</literal> aggregates (Tom)</para></listitem>
-   <listitem><para>Make nested-loop joins be smarter about multicolumn indexes (Tom)</para></listitem>
-   <listitem><para>Allow multikey hash joins (Tom)</para></listitem>
-   <listitem><para>Improve constant folding (Tom)</para></listitem>
-   <listitem><para>Add ability to inline simple SQL functions (Tom)</para></listitem>
-
-   <listitem>
-    <para>Reduce memory usage for queries using complex functions (Tom)</para>
-    <para>
-     In prior releases, functions returning allocated memory would
-     not free it until the query completed. This release allows the
-     freeing of function-allocated memory when the function call
-     completes, reducing the total memory used by functions.
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>Improve GEQO optimizer performance (Tom)</para>
-    <para>
-     This release fixes several inefficiencies in the way the GEQO optimizer
-     manages potential query paths.
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>
-     Allow <literal>IN</>/<literal>NOT IN</> to be handled via hash
-     tables (Tom)
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>
-     Improve <literal>NOT IN (<replaceable>subquery</>)</literal>
-     performance (Tom)
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>
-     Allow most <literal>IN</literal> subqueries to be processed as
-     joins (Tom)
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>
-     Pattern matching operations can use indexes regardless of
-     locale (Peter)
-    </para>
-    <para>
-     There is no way for non-ASCII locales to use the standard
-     indexes for <literal>LIKE</literal> comparisons. This release
-     adds a way to create a special index for
-     <literal>LIKE</literal>.
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>Allow the postmaster to preload libraries using <varname>preload_libraries</varname> (Joe)</para>
-    <para>
-     For shared libraries that require a long time to load, this
-     option is available so the library can be preloaded in the
-     postmaster and inherited by all database sessions.
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>
-     Improve optimizer cost computations, particularly for subqueries (Tom)
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>
-     Avoid sort when subquery <literal>ORDER BY</literal> matches upper query (Tom)
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>
-     Deduce that <literal>WHERE a.x = b.y AND b.y = 42</literal> also
-     means <literal>a.x = 42</literal> (Tom)
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>
-     Allow hash/merge joins on complex joins (Tom)
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>
-     Allow hash joins for more data types (Tom)
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>
-     Allow join optimization of explicit inner joins, disable with
-     <varname>join_collapse_limit</varname> (Tom)
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>
-     Add parameter <varname>from_collapse_limit</varname> to control
-     conversion of subqueries to joins (Tom)
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>
-     Use faster and more powerful regular expression code from Tcl
-     (Henry Spencer, Tom)
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>
-     Use bit-mapped relation sets in the optimizer (Tom)
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>Improve connection startup time (Tom)</para>
-    <para>
-     The new client/server protocol requires fewer network packets to
-     start a database session.
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>
-     Improve trigger/constraint performance (Stephan)
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>
-     Improve speed of <literal>col IN (const, const, const, ...)</literal> (Tom)
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>
-     Fix hash indexes which were broken in rare cases (Tom)
-    </para>
-   </listitem>
-
-   <listitem><para>Improve hash index concurrency and speed (Tom)</para>
-    <para>
-     Prior releases suffered from poor hash index performance,
-     particularly for high concurrency situations. This release fixes
-     that, and the development group is interested in reports
-     comparing B-tree and hash index performance.
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>Align shared buffers on 32-byte boundary for copy speed improvement (Manfred Spraul)</para>
-    <para>
-     Certain CPU's perform faster data copies when addresses are
-     32-byte aligned.
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>Data type <type>numeric</type> reimplemented for better performance (Tom)</para>
-    <para>
-     <type>numeric</type> used to be stored in base 100. The new code
-     uses base 10000, for significantly better performance.
-    </para>
-   </listitem>
-  </itemizedlist>
- </sect3>
-
- <sect3>
-  <title>Server Configuration Changes</title>
-
-  <itemizedlist>
-   <listitem>
-    <para>Rename server parameter <varname>server_min_messages</> to <varname>log_min_messages</> (Bruce)</para>
-    <para>
-     This was done so most parameters that control the server logs
-     begin with <literal>log_</>.
-    </para>
-   </listitem>
-
-   <listitem><para>Rename <varname>show_*_stats</> to <varname>log_*_stats</> (Bruce)</para></listitem>
-   <listitem><para>Rename <varname>show_source_port</> to <varname>log_source_port</> (Bruce)</para></listitem>
-   <listitem><para>Rename <varname>hostname_lookup</> to <varname>log_hostname</> (Bruce)</para></listitem>
-
-   <listitem>
-    <para>Add <varname>checkpoint_warning</> to warn of excessive checkpointing (Bruce)</para>
-    <para>
-     In prior releases, it was difficult to determine if checkpoint
-     was happening too frequently. This feature adds a warning to the
-     server logs when excessive checkpointing happens.
-    </para>
-   </listitem>
-
-   <listitem><para>New read-only server parameters for localization (Tom)</para></listitem>
-
-   <listitem>
-    <para>
-     Change debug server log messages to output as <literal>DEBUG</>
-     rather than <literal>LOG</> (Bruce)
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>Prevent server log variables from being turned off by non-superusers (Bruce)</para>
-    <para>
-     This is a security feature so non-superusers cannot disable
-     logging that was enabled by the administrator.
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>
-     <varname>log_min_messages</>/<varname>client_min_messages</> now
-     controls <varname>debug_*</> output (Bruce)
-    </para>
-    <para>
-     This centralizes client debug information so all debug output
-     can be sent to either the client or server logs.
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>Add Mac OS X Rendezvous server support (Chris Campbell)</para>
-    <para>
-     This allows Mac OS X hosts to query the network for available
-     <productname>PostgreSQL</productname> servers.
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>
-     Add ability to print only slow statements using
-     <varname>log_min_duration_statement</varname>
-     (Christopher)
-    </para>
-    <para>
-     This is an often requested debugging feature that allows
-     administrators to see only slow queries in their server logs.
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>Allow <filename>pg_hba.conf</filename> to accept netmasks in CIDR format (Andrew Dunstan)</para>
-    <para>
-     This allows administrators to merge the host IP address and
-     netmask fields into a single CIDR field in <filename>pg_hba.conf</filename>.
-    </para>
-   </listitem>
-
-   <listitem><para>New read-only parameter <varname>is_superuser</varname> (Tom)</para></listitem>
-
-   <listitem>
-    <para>New parameter <varname>log_error_verbosity</varname> to control error detail (Tom)</para>
-    <para>
-     This works with the new error reporting feature to supply
-     additional error information like hints, file names and line
-     numbers.
-    </para>
-   </listitem>
-
-   <listitem>
-    <para><literal>postgres --describe-config</literal> now dumps server config variables (Aizaz Ahmed, Peter)</para>
-    <para>
-     This option is useful for administration tools that need to know
-     the configuration variable names and their minimums, maximums,
-     defaults, and descriptions.
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>
-     Add new columns in <literal>pg_settings</literal>:
-     <literal>context</>, <literal>type</>, <literal>source</>,
-     <literal>min_val</>, <literal>max_val</> (Joe)
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>
-     Make default <varname>shared_buffers</> 1000 and
-     <varname>max_connections</> 100, if possible (Tom)
-    </para>
-    <para>
-     Prior versions defaulted to 64 shared buffers so <productname>PostgreSQL</productname>
-     would start on even very old systems. This release tests the
-     amount of shared memory allowed by the platform and selects more
-     reasonable default values if possible.  Of course, users are
-     still encouraged to evaluate their resource load and size
-     <varname>shared_buffers</varname> accordingly.
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>
-     New <filename>pg_hba.conf</filename> record type
-     <literal>hostnossl</> to prevent SSL connections (Jon
-     Jensen)
-    </para>
-    <para>
-     In prior releases, there was no way to prevent SSL connections
-     if both the client and server supported SSL. This option allows
-     that capability.
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>
-     Remove parameter <varname>geqo_random_seed</varname>
-     (Tom)
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>
-     Add server parameter <varname>regex_flavor</varname> to control regular expression processing (Tom)
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>
-     Make <command>pg_ctl</command> better handle nonstandard ports (Greg)
-    </para>
-   </listitem>
-  </itemizedlist>
- </sect3>
-
- <sect3>
-  <title>Query Changes</title>
-
-  <itemizedlist>
-   <listitem><para>New SQL-standard information schema (Peter)</para></listitem>
-   <listitem><para>Add read-only transactions (Peter)</para></listitem>
-   <listitem><para>Print key name and value in foreign-key violation messages (Dmitry Tkach)</para></listitem>
-
-   <listitem>
-    <para>Allow users to see their own queries in <literal>pg_stat_activity</literal> (Kevin Brown)</para>
-    <para>
-     In prior releases, only the superuser could see query strings
-     using <literal>pg_stat_activity</literal>. Now ordinary users
-     can see their own query strings.
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>Fix aggregates in subqueries to match SQL standard (Tom)</para>
-    <para>
-     The SQL standard says that an aggregate function appearing
-     within a nested subquery belongs to the outer query if its
-     argument contains only outer-query variables.  Prior
-     <productname>PostgreSQL</productname> releases did not handle
-     this fine point correctly.
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>Add option to prevent auto-addition of tables referenced in query (Nigel J. Andrews)</para>
-    <para>
-     By default, tables mentioned in the query are automatically
-     added to the <literal>FROM</> clause if they are not already
-     there.  This is compatible with historic
-     <productname>POSTGRES</productname> behavior but is contrary to
-     the SQL standard.  This option allows selecting
-     standard-compatible behavior.
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>Allow <literal>UPDATE ... SET col = DEFAULT</literal> (Rod)</para>
-    <para>
-     This allows <command>UPDATE</command> to set a column to its
-     declared default value.
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>Allow expressions to be used in <literal>LIMIT</>/<literal>OFFSET</> (Tom)</para>
-    <para>
-     In prior releases, <literal>LIMIT</>/<literal>OFFSET</> could
-     only use constants, not expressions.
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>Implement <literal>CREATE TABLE AS EXECUTE</literal> (Neil, Peter)</para>
-   </listitem>
-  </itemizedlist>
- </sect3>
-
- <sect3>
-  <title>Object Manipulation Changes</title>
-
-  <itemizedlist>
-   <listitem>
-    <para>Make <command>CREATE SEQUENCE</command> grammar more conforming to SQL:2003 (Neil)</para>
-   </listitem>
-
-   <listitem>
-    <para>Add statement-level triggers (Neil)</para>
-    <para>
-     While this allows a trigger to fire at the end of a statement,
-     it does not allow the trigger to access all rows modified by the
-     statement.  This capability is planned for a future release.
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>Add check constraints for domains (Rod)</para>
-    <para>
-     This greatly increases the usefulness of domains by allowing
-     them to use check constraints.
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>Add <command>ALTER DOMAIN</command> (Rod)</para>
-    <para>
-     This allows manipulation of existing domains.
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>Fix several zero-column table bugs (Tom)</para>
-    <para>
-     <productname>PostgreSQL</productname> supports zero-column tables. This fixes various bugs
-     that occur when using such tables.
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>Have <literal>ALTER TABLE ... ADD PRIMARY KEY</literal> add not-null constraint (Rod)</para>
-    <para>
-     In prior releases, <literal>ALTER TABLE ... ADD
-     PRIMARY</literal> would add a unique index, but not a not-null
-     constraint.  That is fixed in this release.
-    </para>
-   </listitem>
-
-   <listitem><para>Add <literal>ALTER TABLE ... WITHOUT OIDS</literal> (Rod)</para>
-    <para>
-     This allows control over whether new and updated rows will have
-     an OID column.  This is most useful for saving storage space.
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>
-     Add <literal>ALTER SEQUENCE</literal> to modify minimum, maximum,
-     increment, cache, cycle values (Rod)
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>Add <literal>ALTER TABLE ... CLUSTER ON</literal> (Alvaro Herrera)</para>
-    <para>
-     This command is used by <command>pg_dump</command> to record the
-     cluster column for each table previously clustered. This
-     information is used by database-wide cluster to cluster all
-     previously clustered tables.
-    </para>
-   </listitem>
-
-   <listitem><para>Improve automatic type casting for domains (Rod, Tom)</para></listitem>
-   <listitem><para>Allow dollar signs in identifiers, except as first character (Tom)</para></listitem>
-   <listitem><para>Disallow dollar signs in operator names, so <literal>x=$1</> works (Tom)</para></listitem>
-
-   <listitem>
-    <para>
-     Allow copying table schema using <literal>LIKE
-     <replaceable>subtable</replaceable></literal>, also SQL:2003
-     feature <literal>INCLUDING DEFAULTS</literal> (Rod)
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>
-     Add <literal>WITH GRANT OPTION</literal> clause to
-     <command>GRANT</command> (Peter)
-    </para>
-    <para>
-     This enabled <command>GRANT</command> to give other users the
-     ability to grant privileges on an object.
-    </para>
-   </listitem>
-  </itemizedlist>
- </sect3>
-
- <sect3>
-  <title>Utility Command Changes</title>
-
-  <itemizedlist>
-   <listitem>
-    <para>Add <literal>ON COMMIT</literal> clause to <command>CREATE TABLE</command> for temporary tables (Gavin)</para>
-    <para>
-     This adds the ability for a table to be dropped or all rows
-     deleted on transaction commit.
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>Allow cursors outside transactions using <literal>WITH HOLD</literal> (Neil)</para>
-    <para>
-     In previous releases, cursors were removed at the end of the
-     transaction that created them. Cursors can now be created with
-     the <literal>WITH HOLD</literal> option, which allows them to
-     continue to be accessed after the creating transaction has
-     committed.
-    </para>
-   </listitem>
-
-   <listitem>
-    <para><literal>FETCH 0</literal> and <literal>MOVE 0 </literal> now do nothing (Bruce)</para>
-    <para>
-     In previous releases, <literal>FETCH 0</literal> fetched all
-     remaining rows, and <literal>MOVE 0</literal> moved to the end
-     of the cursor.
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>
-     Cause <command>FETCH</command> and <command>MOVE</command> to
-     return the number of rows fetched/moved, or zero if at the
-     beginning/end of cursor, per SQL standard (Bruce)
-    </para>
-    <para>
-     In prior releases, the row count returned by
-     <command>FETCH</command> and <command>MOVE</command> did not
-     accurately reflect the number of rows processed.
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>Properly handle <literal>SCROLL</literal> with cursors, or
-    report an error (Neil)</para>
-    <para>
-     Allowing random access (both forward and backward scrolling) to
-     some kinds of queries cannot be done without some additional
-     work. If <literal>SCROLL</literal> is specified when the cursor
-     is created, this additional work will be performed. Furthermore,
-     if the cursor has been created with <literal>NO SCROLL</literal>,
-     no random access is allowed.
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>
-     Implement SQL-compatible options <literal>FIRST</>,
-     <literal>LAST</>, <literal>ABSOLUTE <replaceable>n</></>,
-     <literal>RELATIVE <replaceable>n</></> for
-     <command>FETCH</command> and <command>MOVE</command> (Tom)
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>Allow <command>EXPLAIN</command> on <command>DECLARE CURSOR</command> (Tom)</para>
-   </listitem>
-
-   <listitem>
-    <para>Allow <command>CLUSTER</command> to use index marked as pre-clustered by default (Alvaro Herrera)</para>
-   </listitem>
-
-   <listitem>
-    <para>Allow <command>CLUSTER</command> to cluster all tables (Alvaro Herrera)</para>
-    <para>
-     This allows all previously clustered tables in a database to be
-     reclustered with a single command.
-    </para>
-   </listitem>
-
-   <listitem><para>Prevent <command>CLUSTER</command> on partial indexes (Tom)</para></listitem>
-
-   <listitem><para>Allow DOS and Mac line-endings in <command>COPY</> files (Bruce)</para></listitem>
-
-   <listitem>
-    <para>
-     Disallow literal carriage return as a data value,
-     backslash-carriage-return and <literal>\r</> are still allowed
-     (Bruce)
-    </para>
-   </listitem>
-
-   <listitem>
-    <para><command>COPY</> changes (binary, <literal>\.</>) (Tom)</para>
-   </listitem>
-
-   <listitem>
-    <para>Recover from <command>COPY</command> failure cleanly (Tom)</para>
-   </listitem>
-
-   <listitem>
-    <para>Prevent possible memory leaks in <command>COPY</command> (Tom)</para>
-   </listitem>
-
-   <listitem>
-    <para>Make <command>TRUNCATE</command> transaction-safe (Rod)</para>
-    <para>
-     <command>TRUNCATE</command> can now be used inside a
-     transaction. If the transaction aborts, the changes made by the
-     <command>TRUNCATE</command> are automatically rolled back.
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>
-     Allow prepare/bind of utility commands like
-     <command>FETCH</command> and <command>EXPLAIN</command> (Tom)
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>Add <command>EXPLAIN EXECUTE</command> (Neil)</para>
-   </listitem>
-
-   <listitem>
-    <para>Improve <command>VACUUM</command> performance on indexes by reducing WAL traffic (Tom)</para>
-   </listitem>
-
-   <listitem>
-    <para>Functional indexes have been generalized into indexes on expressions (Tom)</para>
-    <para>
-     In prior releases, functional indexes only supported a simple
-     function applied to one or more column names.  This release
-     allows any type of scalar expression.
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>
-     Have <command>SHOW TRANSACTION ISOLATION</command> match input
-     to <command>SET TRANSACTION ISOLATION</command>
-     (Tom)
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>
-      Have <command>COMMENT ON DATABASE</command> on nonlocal
-      database generate a warning, rather than an error (Rod)
-     </para>
-
-    <para>
-     Database comments are stored in database-local tables so
-     comments on a database have to be stored in each database.
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>
-     Improve reliability of <command>LISTEN</>/<command>NOTIFY</> (Tom)
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>Allow <command>REINDEX</command> to reliably reindex nonshared system catalog indexes (Tom)</para>
-    <para>
-     This allows system tables to be reindexed without the
-     requirement of a standalone session, which was necessary in
-     previous releases. The only tables that now require a standalone
-     session for reindexing are the global system tables
-     <literal>pg_database</>, <literal>pg_shadow</>, and
-     <literal>pg_group</>.
-    </para>
-   </listitem>
-  </itemizedlist>
- </sect3>
-
- <sect3>
-  <title>Data Type and Function Changes</title>
-
-  <itemizedlist>
-   <listitem>
-    <para>
-     New server parameter <varname>extra_float_digits</varname> to
-     control precision display of floating-point numbers (Pedro
-     Ferreira, Tom)
-    </para>
-    <para>
-     This controls output precision which was causing regression
-     testing problems.
-    </para>
-   </listitem>
-
-   <listitem><para>Allow <literal>+1300</literal> as a numeric time-zone specifier, for FJST (Tom)</para></listitem>
-
-   <listitem>
-    <para>
-     Remove rarely used functions <function>oidrand</>,
-     <function>oidsrand</>, and <function>userfntest</> functions
-     (Neil)
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>Add <function>md5()</> function to main server, already in <filename>contrib/pgcrypto</filename> (Joe)</para>
-    <para>
-     An MD5 function was frequently requested. For more complex
-     encryption capabilities, use
-     <filename>contrib/pgcrypto</filename>.
-    </para>
-   </listitem>
-
-   <listitem><para>Increase date range of <type>timestamp</type> (John Cochran)</para></listitem>
-
-   <listitem>
-    <para>
-     Change <literal>EXTRACT(EPOCH FROM timestamp)</literal> so
-     <type>timestamp without time zone</type> is assumed to be in
-     local time, not GMT (Tom)
-    </para>
-   </listitem>
-
-   <listitem><para>Trap division by zero in case the operating system doesn't prevent it (Tom)</para></listitem>
-   <listitem><para>Change the <type>numeric</type> data type internally to base 10000 (Tom)</para></listitem>
-   <listitem><para>New <function>hostmask()</function> function (Greg Wickham)</para></listitem>
-   <listitem><para>Fixes for <function>to_char()</function> and <function>to_timestamp()</function> (Karel)</para></listitem>
-
-   <listitem>
-    <para>
-     Allow functions that can take any argument data type and return
-     any data type, using <type>anyelement</type> and
-     <type>anyarray</type> (Joe)
-    </para>
-    <para>
-     This allows the creation of functions that can work with any
-     data type.
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>
-     Arrays can now be specified as <literal>ARRAY[1,2,3]</literal>,
-     <literal>ARRAY[['a','b'],['c','d']]</literal>, or
-     <literal>ARRAY[ARRAY[ARRAY[2]]]</literal> (Joe)
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>
-     Allow proper comparisons for arrays, including <literal>ORDER
-     BY</literal> and <literal>DISTINCT</literal> support
-     (Joe)
-    </para>
-   </listitem>
-
-   <listitem><para>Allow indexes on array columns (Joe)</para></listitem>
-   <listitem><para>Allow array concatenation with <literal>||</literal> (Joe)</para></listitem>
-
-   <listitem>
-    <para>
-     Allow <literal>WHERE</literal> qualification
-     <literal><replaceable>expr</> <replaceable>op</> ANY/SOME/ALL
-     (<replaceable>array_expr</>)</literal> (Joe)
-    </para>
-    <para>
-     This allows arrays to behave like a list of values, for purposes
-     like <literal>SELECT * FROM tab WHERE col IN
-     (array_val)</literal>.
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>
-     New array functions <function>array_append</>,
-     <function>array_cat</>, <function>array_lower</>,
-     <function>array_prepend</>, <function>array_to_string</>,
-     <function>array_upper</>, <function>string_to_array</> (Joe)
-    </para>
-   </listitem>
-
-   <listitem><para>Allow user defined aggregates to use polymorphic functions (Joe)</para></listitem>
-   <listitem><para>Allow assignments to empty arrays (Joe)</para></listitem>
-
-   <listitem>
-    <para>
-     Allow 60 in seconds fields of <type>time</type>,
-     <type>timestamp</type>, and <type>interval</type> input values
-     (Tom)
-    </para>
-    <para>
-     Sixty-second values are needed for leap seconds.
-    </para>
-   </listitem>
-
-   <listitem><para>Allow <type>cidr</type> data type to be cast to <type>text</type> (Tom)</para></listitem>
-
-   <listitem><para>Disallow invalid time zone names in SET TIMEZONE</para></listitem>
-
-   <listitem>
-    <para>
-     Trim trailing spaces when <type>char</type> is cast to
-     <type>varchar</> or <type>text</> (Tom)
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>
-     Make <type>float(<replaceable>p</>)</> measure the precision
-     <replaceable>p</> in binary digits, not decimal digits
-     (Tom)
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>Add IPv6 support to the <type>inet</type> and <type>cidr</type> data types (Michael Graff)</para>
-   </listitem>
-
-   <listitem>
-    <para>Add <function>family()</function> function to report whether address is IPv4 or IPv6 (Michael Graff)</para>
-   </listitem>
-
-   <listitem>
-    <para>
-     Have <literal>SHOW datestyle</literal> generate output similar
-     to that used by <literal>SET datestyle</literal> (Tom)
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>
-     Make <literal>EXTRACT(TIMEZONE)</literal> and <literal>SET/SHOW
-     TIME ZONE</literal> follow the SQL convention for the sign of
-     time zone offsets, i.e., positive is east from UTC (Tom)
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>Fix <literal>date_trunc('quarter', ...)</literal> (B&ouml;jthe Zolt&aacute;n)</para>
-    <para>
-     Prior releases returned an incorrect value for this function call.
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>Make <function>initcap()</function> more compatible with Oracle (Mike Nolan)</para>
-    <para>
-     <function>initcap()</function> now uppercases a letter appearing
-     after any non-alphanumeric character, rather than only after
-     whitespace.
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>Allow only <varname>datestyle</varname> field order for date values not in ISO-8601 format (Greg)</para>
-   </listitem>
-
-   <listitem>
-    <para>
-     Add new <varname>datestyle</varname> values <literal>MDY</>,
-     <literal>DMY</>, and <literal>YMD</> to set input field order;
-     honor <literal>US</> and <literal>European</> for backward
-     compatibility (Tom)
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>
-     String literals like <literal>'now'</literal> or
-     <literal>'today'</literal> will no longer work as a column
-     default. Use functions such as <function>now()</function>,
-     <function>current_timestamp</function> instead.  (change
-     required for prepared statements) (Tom)
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>Treat NaN as larger than any other value in <function>min()</>/<function>max()</> (Tom)</para>
-    <para>
-     NaN was already sorted after ordinary numeric values for most
-     purposes, but <function>min()</> and <function>max()</> didn't
-     get this right.
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>Prevent interval from suppressing <literal>:00</literal>
-    seconds display</para>
-   </listitem>
-
-   <listitem>
-    <para>
-     New functions <function>pg_get_triggerdef(prettyprint)</function>
-     and <function>pg_conversion_is_visible()</function> (Christopher)
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>Allow time to be specified as <literal>040506</> or <literal>0405</> (Tom)</para>
-   </listitem>
-
-   <listitem>
-    <para>
-     Input date order must now be <literal>YYYY-MM-DD</literal> (with 4-digit year) or
-     match <varname>datestyle</varname>
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>
-     Make <function>pg_get_constraintdef</function> support
-     unique, primary-key, and check constraints (Christopher)
-    </para>
-   </listitem>
-  </itemizedlist>
- </sect3>
-
- <sect3>
-  <title>Server-Side Language Changes</title>
-
-  <itemizedlist>
-   <listitem>
-    <para>
-     Prevent PL/pgSQL crash when <literal>RETURN NEXT</literal> is
-     used on a zero-row record variable (Tom)
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>
-     Make PL/Python's <function>spi_execute</function> interface
-     handle null values properly (Andrew Bosma)
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>Allow PL/pgSQL to declare variables of composite types without <literal>%ROWTYPE</literal> (Tom)</para>
-   </listitem>
-
-   <listitem>
-    <para>Fix PL/Python's <function>_quote()</function> function to handle big integers</para>
-   </listitem>
-
-   <listitem>
-    <para>Make PL/Python an untrusted language, now called <literal>plpythonu</literal> (Kevin Jacobs, Tom)</para>
-    <para>
-     The Python language no longer supports a restricted execution
-     environment, so the trusted version of PL/Python was removed. If
-     this situation changes, a version of PL/Python that can be used
-     by non-superusers will be readded.
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>Allow polymorphic PL/pgSQL functions (Joe, Tom)</para>
-   </listitem>
-
-   <listitem>
-    <para>Allow polymorphic SQL functions (Joe)</para>
-   </listitem>
-
-   <listitem>
-    <para>
-     Improved compiled function caching mechanism in PL/pgSQL with
-     full support for polymorphism (Joe)
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>
-     Add new parameter <literal>$0</> in PL/pgSQL representing the
-     function's actual return type (Joe)
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>
-     Allow PL/Tcl and PL/Python to use the same trigger on multiple tables (Tom)
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>
-     Fixed PL/Tcl's <function>spi_prepare</function> to accept fully
-     qualified type names in the parameter type list
-     (Jan)
-    </para>
-   </listitem>
-  </itemizedlist>
- </sect3>
-
- <sect3>
-  <title>psql Changes</title>
-
-  <itemizedlist>
-   <listitem>
-    <para>Add <literal>\pset pager always</literal> to always use pager (Greg)</para>
-    <para>
-     This forces the pager to be used even if the number of rows is
-     less than the screen height.  This is valuable for rows that
-     wrap across several screen rows.
-    </para>
-   </listitem>
-
-   <listitem><para>Improve tab completion (Rod, Ross Reedstrom, Ian Barwick)</para></listitem>
-   <listitem><para>Reorder <literal>\?</> help into groupings (Harald Armin Massa, Bruce)</para></listitem>
-   <listitem><para>Add backslash commands for listing schemas, casts, and conversions (Christopher)</para></listitem>
-
-   <listitem>
-    <para>
-     <command>\encoding</> now changes based on the server parameter
-     <varname>client_encoding</varname> (Tom)
-    </para>
-    <para>
-     In previous versions, <command>\encoding</command> was not aware
-     of encoding changes made using <literal>SET
-     client_encoding</literal>.
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>Save editor buffer into readline history (Ross)</para>
-    <para>
-     When <command>\e</> is used to edit a query, the result is saved
-     in the readline history for retrieval using the up arrow.
-    </para>
-   </listitem>
-
-   <listitem><para>Improve <command>\d</command> display (Christopher)</para></listitem>
-   <listitem><para>Enhance HTML mode to be more standards-conforming (Greg)</para></listitem>
-
-   <listitem>
-    <para>New <command>\set AUTOCOMMIT off</command> capability (Tom)</para>
-    <para>
-     This takes the place of the removed server parameter <varname>autocommit</varname>.
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>New <command>\set VERBOSITY</command> to control error detail (Tom)</para>
-    <para>
-     This controls the new error reporting details.
-    </para>
-   </listitem>
-
-   <listitem><para>New prompt escape sequence <literal>%x</literal> to show transaction status (Tom)</para></listitem>
-   <listitem><para>Long options for <application>psql</application> are now available on all platforms</para></listitem>
-  </itemizedlist>
- </sect3>
-
- <sect3>
-  <title>pg_dump Changes</title>
-
-  <itemizedlist>
-   <listitem><para>Multiple pg_dump fixes, including tar format and large objects</para></listitem>
-   <listitem><para>Allow pg_dump to dump specific schemas (Neil)</para></listitem>
-
-   <listitem>
-    <para>Make pg_dump preserve column storage characteristics (Christopher)</para>
-    <para>
-     This preserves <literal>ALTER TABLE ... SET STORAGE</literal> information.
-    </para>
-   </listitem>
-
-   <listitem><para>Make pg_dump preserve <command>CLUSTER</command> characteristics (Christopher)</para></listitem>
-
-   <listitem>
-    <para>
-     Have pg_dumpall use <command>GRANT</>/<command>REVOKE</> to dump database-level privileges (Tom)
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>
-     Allow pg_dumpall to support the options <option>-a</>,
-     <option>-s</>, <option>-x</> of pg_dump (Tom)
-    </para>
-   </listitem>
-
-   <listitem><para>Prevent pg_dump from lowercasing identifiers specified on the command line (Tom)</para></listitem>
-
-   <listitem>
-    <para>
-     pg_dump options <option>--use-set-session-authorization</option>
-     and <option>--no-reconnect</option> now do nothing, all dumps
-     use <command>SET SESSION AUTHORIZATION</command>
-    </para>
-    <para>
-     pg_dump no longer reconnects to switch users, but instead always
-     uses <command>SET SESSION AUTHORIZATION</command>. This will
-     reduce password prompting during restores.
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>Long options for <application>pg_dump</application> are now available on all platforms</para>
-    <para>
-     <productname>PostgreSQL</productname> now includes its own
-     long-option processing routines.
-    </para>
-   </listitem>
-  </itemizedlist>
- </sect3>
-
- <sect3>
-  <title>libpq Changes</title>
-
-  <itemizedlist>
-   <listitem>
-    <para>
-     Add function <function>PQfreemem</function> for freeing memory on
-     Windows, suggested for <command>NOTIFY</command> (Bruce)
-    </para>
-    <para>
-     Windows requires that memory allocated in a library be freed by
-     a function in the same library, hence
-     <function>free()</function> doesn't work for freeing memory
-     allocated by libpq. <function>PQfreemem</function> is the proper
-     way to free libpq memory, especially on Windows, and is
-     recommended for other platforms as well.
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>Document service capability, and add sample file (Bruce)</para>
-    <para>
-     This allows clients to look up connection information in a
-     central file on the client machine.
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>
-     Make <function>PQsetdbLogin</function> have the same defaults as
-     <function>PQconnectdb</function> (Tom)
-    </para>
-   </listitem>
-
-   <listitem><para>Allow libpq to cleanly fail when result sets are too large (Tom)</para></listitem>
-
-   <listitem>
-    <para>
-     Improve performance of function <function>PQunescapeBytea</function> (Ben Lamb)
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>
-     Allow thread-safe libpq with <filename>configure</filename>
-     option <option>--enable-thread-safety</option> (Lee Kindness,
-     Philip Yarra)
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>
-     Allow function <function>pqInternalNotice</function> to accept a
-     format string and arguments instead of just a preformatted
-     message (Tom, Sean Chittenden)
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>
-     Control SSL negotiation with <literal>sslmode</literal> values
-     <literal>disable</literal>, <literal>allow</literal>,
-     <literal>prefer</literal>, and <literal>require</literal> (Jon
-     Jensen)
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>Allow new error codes and levels of text (Tom)</para>
-   </listitem>
-
-   <listitem>
-    <para>Allow access to the underlying table and column of a query result (Tom)</para>
-    <para>
-     This is helpful for query-builder applications that want to know
-     the underlying table and column names associated with a specific
-     result set.
-    </para>
-   </listitem>
-
-   <listitem><para>Allow access to the current transaction status (Tom)</para></listitem>
-   <listitem><para>Add ability to pass binary data directly to the server (Tom)</para></listitem>
-
-   <listitem>
-    <para>
-     Add function <function>PQexecPrepared</function> and
-     <function>PQsendQueryPrepared</function> functions which perform
-     bind/execute of previously prepared statements (Tom)
-     </para>
-    </listitem>
-  </itemizedlist>
- </sect3>
-
- <sect3>
-  <title>JDBC Changes</title>
-
-  <itemizedlist>
-   <listitem><para>Allow <function>setNull</function> on updateable result sets</para></listitem>
-   <listitem><para>Allow <function>executeBatch</function> on a prepared statement (Barry)</para></listitem>
-   <listitem><para>Support SSL connections (Barry)</para></listitem>
-   <listitem><para>Handle schema names in result sets (Paul Sorenson)</para></listitem>
-   <listitem><para>Add refcursor support (Nic Ferrier)</para></listitem>
-  </itemizedlist>
- </sect3>
-
- <sect3>
-  <title>Miscellaneous Interface Changes</title>
-
-  <itemizedlist>
-   <listitem>
-    <para>Prevent possible memory leak or core dump during libpgtcl shutdown (Tom)</para>
-   </listitem>
-   <listitem>
-    <para>Add Informix compatibility to ECPG (Michael)</para>
-    <para>
-     This allows ECPG to process embedded C programs that were
-     written using certain Informix extensions.
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>Add type <type>decimal</type> to ECPG that is fixed length, for Informix (Michael)</para>
-   </listitem>
-
-   <listitem>
-    <para>
-     Allow thread-safe embedded SQL programs with
-     <filename>configure</filename> option
-     <option>--enable-thread-safety</option> (Lee Kindness, Bruce)
-    </para>
-    <para>
-     This allows multiple threads to access the database at the same
-     time.
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>Moved Python client PyGreSQL to <ulink url="http://www.pygresql.org"></ulink> (Marc)</para>
-   </listitem>
-  </itemizedlist>
- </sect3>
-
- <sect3>
-  <title>Source Code Changes</title>
-
-  <itemizedlist>
-   <listitem><para>Prevent need for separate platform geometry regression result files (Tom)</para></listitem>
-   <listitem><para>Improved PPC locking primitive (Reinhard Max)</para></listitem>
-   <listitem><para>New function <function>palloc0</function> to allocate and clear memory (Bruce)</para></listitem>
-   <listitem><para>Fix locking code for s390x CPU (64-bit) (Tom)</para></listitem>
-   <listitem><para>Allow OpenBSD to use local ident credentials (William Ahern)</para></listitem>
-   <listitem><para>Make query plan trees read-only to executor (Tom)</para></listitem>
-   <listitem><para>Add Darwin startup scripts (David Wheeler)</para></listitem>
-   <listitem><para>Allow libpq to compile with Borland C++ compiler (Lester Godwin, Karl Waclawek)</para></listitem>
-   <listitem><para>Use our own version of <function>getopt_long()</function> if needed (Peter)</para></listitem>
-   <listitem><para>Convert administration scripts to C (Peter)</para></listitem>
-   <listitem><para> Bison &gt;= 1.85 is now required to build the <productname>PostgreSQL</> grammar, if building from CVS</para></listitem>
-   <listitem><para>Merge documentation into one book (Peter)</para></listitem>
-   <listitem><para>Add Windows compatibility functions (Bruce)</para></listitem>
-   <listitem><para>Allow client interfaces to compile under MinGW (Bruce)</para></listitem>
-   <listitem><para>New <function>ereport()</function> function for error reporting (Tom)</para></listitem>
-   <listitem><para>Support Intel compiler on Linux (Peter)</para></listitem>
-   <listitem><para>Improve Linux startup scripts (Slawomir Sudnik, Darko Prenosil)</para></listitem>
-   <listitem><para>Add support for AMD Opteron and Itanium (Jeffrey W. Baker, Bruce)</para></listitem>
-   <listitem>
-    <para>Remove <option>--enable-recode</option> option from <command>configure</command></para>
-    <para>
-     This was no longer needed now that we have <command>CREATE CONVERSION</command>.
-    </para>
-   </listitem>
-   <listitem>
-    <para>Generate a compile error if spinlock code is not found (Bruce)</para>
-    <para>
-     Platforms without spinlock code will now fail to compile, rather
-     than silently using semaphores. This failure can be disabled
-     with a new <command>configure</command> option.
-    </para>
-   </listitem>
-  </itemizedlist>
- </sect3>
-
- <sect3>
-  <title>Contrib Changes</title>
-
-  <itemizedlist>
-   <listitem><para>Change dbmirror license to BSD</para></listitem>
-   <listitem><para>Improve earthdistance (Bruno Wolff III)</para></listitem>
-   <listitem><para>Portability improvements to pgcrypto (Marko Kreen)</para></listitem>
-   <listitem><para>Prevent crash in xml (John Gray, Michael Richards)</para></listitem>
-   <listitem><para>Update oracle</para></listitem>
-   <listitem><para>Update mysql</para></listitem>
-   <listitem><para>Update cube (Bruno Wolff III)</para></listitem>
-   <listitem><para>Update earthdistance to use cube (Bruno Wolff III)</para></listitem>
-   <listitem><para>Update btree_gist (Oleg)</para></listitem>
-   <listitem><para>New tsearch2 full-text search module (Oleg, Teodor)</para></listitem>
-   <listitem><para>Add hash-based crosstab function to tablefuncs (Joe)</para></listitem>
-   <listitem><para>Add serial column to order <function>connectby()</> siblings in tablefuncs (Nabil Sayegh,Joe)</para></listitem>
-   <listitem><para>Add named persistent connections to dblink (Shridhar Daithanka)</para></listitem>
-   <listitem><para>New pg_autovacuum allows automatic <command>VACUUM</command> (Matthew T. O'Connor)</para></listitem>
-   <listitem><para>Make pgbench honor environment variables <envar>PGHOST</>, <envar>PGPORT</>, <envar>PGUSER</> (Tatsuo)</para></listitem>
-   <listitem><para>Improve intarray (Teodor Sigaev)</para></listitem>
-   <listitem><para>Improve pgstattuple (Rod)</para></listitem>
-   <listitem><para>Fix bug in <function>metaphone()</function> in fuzzystrmatch</para></listitem>
-   <listitem><para>Improve adddepend (Rod)</para></listitem>
-   <listitem><para>Update spi/timetravel (B&ouml;jthe Zolt&aacute;n)</para></listitem>
-   <listitem><para>Fix dbase <option>-s</> option and improve non-ASCII handling (Thomas Behr, M&aacute;rcio Smiderle)</para></listitem>
-   <listitem><para>Remove array module because features now included by default (Joe)</para></listitem>
-  </itemizedlist>
- </sect3>
- </sect2>
-</sect1>
diff --git a/doc/src/sgml/release-8.0.sgml b/doc/src/sgml/release-8.0.sgml
deleted file mode 100644
index 4f04024d2e6041431a1a253fc2c1ea8f63a58f4f..0000000000000000000000000000000000000000
--- a/doc/src/sgml/release-8.0.sgml
+++ /dev/null
@@ -1,5421 +0,0 @@
-<!-- doc/src/sgml/release-8.0.sgml -->
-<!-- See header comment in release.sgml about typical markup -->
-
- <sect1 id="release-8-0-26">
-  <title>Release 8.0.26</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2010-10-04</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.0.25.
-   For information about new features in the 8.0 major release, see
-   <xref linkend="release-8-0">.
-  </para>
-
-  <para>
-   This is expected to be the last <productname>PostgreSQL</> release
-   in the 8.0.X series.  Users are encouraged to update to a newer
-   release branch soon.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.0.26</title>
-
-   <para>
-    A dump/restore is not required for those running 8.0.X.
-    However, if you are upgrading from a version earlier than 8.0.22,
-    see <xref linkend="release-8-0-22">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Use a separate interpreter for each calling SQL userid in PL/Perl and
-      PL/Tcl (Tom Lane)
-     </para>
-
-     <para>
-      This change prevents security problems that can be caused by subverting
-      Perl or Tcl code that will be executed later in the same session under
-      another SQL user identity (for example, within a <literal>SECURITY
-      DEFINER</> function).  Most scripting languages offer numerous ways that
-      that might be done, such as redefining standard functions or operators
-      called by the target function.  Without this change, any SQL user with
-      Perl or Tcl language usage rights can do essentially anything with the
-      SQL privileges of the target function's owner.
-     </para>
-
-     <para>
-      The cost of this change is that intentional communication among Perl
-      and Tcl functions becomes more difficult.  To provide an escape hatch,
-      PL/PerlU and PL/TclU functions continue to use only one interpreter
-      per session.  This is not considered a security issue since all such
-      functions execute at the trust level of a database superuser already.
-     </para>
-
-     <para>
-      It is likely that third-party procedural languages that claim to offer
-      trusted execution have similar security issues.  We advise contacting
-      the authors of any PL you are depending on for security-critical
-      purposes.
-     </para>
-
-     <para>
-      Our thanks to Tim Bunce for pointing out this issue (CVE-2010-3433).
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent possible crashes in <function>pg_get_expr()</> by disallowing
-      it from being called with an argument that is not one of the system
-      catalog columns it's intended to be used with
-      (Heikki Linnakangas, Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <quote>cannot handle unplanned sub-select</quote> error (Tom Lane)
-     </para>
-
-     <para>
-      This occurred when a sub-select contains a join alias reference that
-      expands into an expression containing another sub-select.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Defend against functions returning setof record where not all the
-      returned rows are actually of the same rowtype (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Take care to fsync the contents of lockfiles (both
-      <filename>postmaster.pid</> and the socket lockfile) while writing them
-      (Tom Lane)
-     </para>
-
-     <para>
-      This omission could result in corrupted lockfile contents if the
-      machine crashes shortly after postmaster start.  That could in turn
-      prevent subsequent attempts to start the postmaster from succeeding,
-      until the lockfile is manually removed.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid recursion while assigning XIDs to heavily-nested
-      subtransactions (Andres Freund, Robert Haas)
-     </para>
-
-     <para>
-      The original coding could result in a crash if there was limited
-      stack space.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <varname>log_line_prefix</>'s <literal>%i</> escape,
-      which could produce junk early in backend startup (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible data corruption in <command>ALTER TABLE ... SET
-      TABLESPACE</> when archiving is enabled (Jeff Davis)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Allow <command>CREATE DATABASE</> and <command>ALTER DATABASE ... SET
-      TABLESPACE</> to be interrupted by query-cancel (Guillaume Lelarge)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      In PL/Python, defend against null pointer results from
-      <function>PyCObject_AsVoidPtr</> and <function>PyCObject_FromVoidPtr</>
-      (Peter Eisentraut)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve <filename>contrib/dblink</>'s handling of tables containing
-      dropped columns (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix connection leak after <quote>duplicate connection name</quote>
-      errors in <filename>contrib/dblink</> (Itagaki Takahiro)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <filename>contrib/dblink</> to handle connection names longer than
-      62 bytes correctly (Itagaki Takahiro)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update build infrastructure and documentation to reflect the source code
-      repository's move from CVS to Git (Magnus Hagander and others)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2010l
-      for DST law changes in Egypt and Palestine; also historical corrections
-      for Finland.
-     </para>
-
-     <para>
-      This change also adds new names for two Micronesian timezones:
-      Pacific/Chuuk is now preferred over Pacific/Truk (and the preferred
-      abbreviation is CHUT not TRUT) and Pacific/Pohnpei is preferred over
-      Pacific/Ponape.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-0-25">
-  <title>Release 8.0.25</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2010-05-17</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.0.24.
-   For information about new features in the 8.0 major release, see
-   <xref linkend="release-8-0">.
-  </para>
-
-  <para>
-   The <productname>PostgreSQL</> community will stop releasing updates
-   for the 8.0.X release series in July 2010.
-   Users are encouraged to update to a newer release branch soon.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.0.25</title>
-
-   <para>
-    A dump/restore is not required for those running 8.0.X.
-    However, if you are upgrading from a version earlier than 8.0.22,
-    see <xref linkend="release-8-0-22">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Enforce restrictions in <literal>plperl</> using an opmask applied to
-      the whole interpreter, instead of using <filename>Safe.pm</>
-      (Tim Bunce, Andrew Dunstan)
-     </para>
-
-     <para>
-      Recent developments have convinced us that <filename>Safe.pm</> is too
-      insecure to rely on for making <literal>plperl</> trustable.  This
-      change removes use of <filename>Safe.pm</> altogether, in favor of using
-      a separate interpreter with an opcode mask that is always applied.
-      Pleasant side effects of the change include that it is now possible to
-      use Perl's <literal>strict</> pragma in a natural way in
-      <literal>plperl</>, and that Perl's <literal>$a</> and <literal>$b</>
-      variables work as expected in sort routines, and that function
-      compilation is significantly faster.  (CVE-2010-1169)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent PL/Tcl from executing untrustworthy code from
-      <structname>pltcl_modules</> (Tom)
-     </para>
-
-     <para>
-      PL/Tcl's feature for autoloading Tcl code from a database table
-      could be exploited for trojan-horse attacks, because there was no
-      restriction on who could create or insert into that table.  This change
-      disables the feature unless <structname>pltcl_modules</> is owned by a
-      superuser.  (However, the permissions on the table are not checked, so
-      installations that really need a less-than-secure modules table can
-      still grant suitable privileges to trusted non-superusers.)  Also,
-      prevent loading code into the unrestricted <quote>normal</> Tcl
-      interpreter unless we are really going to execute a <literal>pltclu</>
-      function.  (CVE-2010-1170)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Do not allow an unprivileged user to reset superuser-only parameter
-      settings (Alvaro)
-     </para>
-
-     <para>
-      Previously, if an unprivileged user ran <literal>ALTER USER ... RESET
-      ALL</> for himself, or <literal>ALTER DATABASE ... RESET ALL</> for
-      a database he owns, this would remove all special parameter settings
-      for the user or database, even ones that are only supposed to be
-      changeable by a superuser.  Now, the <command>ALTER</> will only
-      remove the parameters that the user has permission to change.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid possible crash during backend shutdown if shutdown occurs
-      when a <literal>CONTEXT</> addition would be made to log entries (Tom)
-     </para>
-
-     <para>
-      In some cases the context-printing function would fail because the
-      current transaction had already been rolled back when it came time
-      to print a log message.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update pl/perl's <filename>ppport.h</> for modern Perl versions
-      (Andrew)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix assorted memory leaks in pl/python (Andreas Freund, Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent infinite recursion in <application>psql</> when expanding
-      a variable that refers to itself (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure that <filename>contrib/pgstattuple</> functions respond to cancel
-      interrupts promptly (Tatsuhito Kasahara)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make server startup deal properly with the case that
-      <function>shmget()</> returns <literal>EINVAL</> for an existing
-      shared memory segment (Tom)
-     </para>
-
-     <para>
-      This behavior has been observed on BSD-derived kernels including OS X.
-      It resulted in an entirely-misleading startup failure complaining that
-      the shared memory request size was too large.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2010j
-      for DST law changes in Argentina, Australian Antarctic, Bangladesh,
-      Mexico, Morocco, Pakistan, Palestine, Russia, Syria, Tunisia;
-      also historical corrections for Taiwan.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-0-24">
-  <title>Release 8.0.24</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2010-03-15</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.0.23.
-   For information about new features in the 8.0 major release, see
-   <xref linkend="release-8-0">.
-  </para>
-
-  <para>
-   The <productname>PostgreSQL</> community will stop releasing updates
-   for the 8.0.X release series in July 2010.
-   Users are encouraged to update to a newer release branch soon.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.0.24</title>
-
-   <para>
-    A dump/restore is not required for those running 8.0.X.
-    However, if you are upgrading from a version earlier than 8.0.22,
-    see <xref linkend="release-8-0-22">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Add new configuration parameter <varname>ssl_renegotiation_limit</> to
-      control how often we do session key renegotiation for an SSL connection
-      (Magnus)
-     </para>
-
-     <para>
-      This can be set to zero to disable renegotiation completely, which may
-      be required if a broken SSL library is used.  In particular, some
-      vendors are shipping stopgap patches for CVE-2009-3555 that cause
-      renegotiation attempts to fail.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible crashes when trying to recover from a failure in
-      subtransaction start (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix server memory leak associated with use of savepoints and a client
-      encoding different from server's encoding (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <function>substring()</> for <type>bit</> types treat any negative
-      length as meaning <quote>all the rest of the string</> (Tom)
-     </para>
-
-     <para>
-      The previous coding treated only -1 that way, and would produce an
-      invalid result value for other negative values, possibly leading to
-      a crash (CVE-2010-0442).
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix integer-to-bit-string conversions to handle the first fractional
-      byte correctly when the output bit width is wider than the given
-      integer by something other than a multiple of 8 bits (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix some cases of pathologically slow regular expression matching (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix the <literal>STOP WAL LOCATION</> entry in backup history files to
-      report the next WAL segment's name when the end location is exactly at a
-      segment boundary (Itagaki Takahiro)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      When reading <filename>pg_hba.conf</> and related files, do not treat
-      <literal>@something</> as a file inclusion request if the <literal>@</>
-      appears inside quote marks; also, never treat <literal>@</> by itself
-      as a file inclusion request (Tom)
-     </para>
-
-     <para>
-      This prevents erratic behavior if a role or database name starts with
-      <literal>@</>.  If you need to include a file whose path name
-      contains spaces, you can still do so, but you must write
-      <literal>@"/path to/file"</> rather than putting the quotes around
-      the whole construct.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent infinite loop on some platforms if a directory is named as
-      an inclusion target in <filename>pg_hba.conf</> and related files
-      (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix plpgsql failure in one case where a composite column is set to NULL
-      (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Add <literal>volatile</> markings in PL/Python to avoid possible
-      compiler-specific misbehavior (Zdenek Kotala)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure PL/Tcl initializes the Tcl interpreter fully (Tom)
-     </para>
-
-     <para>
-      The only known symptom of this oversight is that the Tcl
-      <literal>clock</> command misbehaves if using Tcl 8.5 or later.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent crash in <filename>contrib/dblink</> when too many key
-      columns are specified to a <function>dblink_build_sql_*</> function
-      (Rushabh Lathia, Joe Conway)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix assorted crashes in <filename>contrib/xml2</> caused by sloppy
-      memory management (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2010e
-      for DST law changes in Bangladesh, Chile, Fiji, Mexico, Paraguay, Samoa.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-0-23">
-  <title>Release 8.0.23</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2009-12-14</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.0.22.
-   For information about new features in the 8.0 major release, see
-   <xref linkend="release-8-0">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.0.23</title>
-
-   <para>
-    A dump/restore is not required for those running 8.0.X.
-    However, if you are upgrading from a version earlier than 8.0.22,
-    see <xref linkend="release-8-0-22">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Protect against indirect security threats caused by index functions
-      changing session-local state (Gurjeet Singh, Tom)
-     </para>
-
-     <para>
-      This change prevents allegedly-immutable index functions from possibly
-      subverting a superuser's session (CVE-2009-4136).
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Reject SSL certificates containing an embedded null byte in the common
-      name (CN) field (Magnus)
-     </para>
-
-     <para>
-      This prevents unintended matching of a certificate to a server or client
-      name during SSL validation (CVE-2009-4034).
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible crash during backend-startup-time cache initialization (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent signals from interrupting <literal>VACUUM</> at unsafe times
-      (Alvaro)
-     </para>
-
-     <para>
-      This fix prevents a PANIC if a <literal>VACUUM FULL</> is canceled
-      after it's already committed its tuple movements, as well as transient
-      errors if a plain <literal>VACUUM</> is interrupted after having
-      truncated the table.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible crash due to integer overflow in hash table size
-      calculation (Tom)
-     </para>
-
-     <para>
-      This could occur with extremely large planner estimates for the size of
-      a hashjoin's result.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix very rare crash in <type>inet</>/<type>cidr</> comparisons (Chris
-      Mikkelson)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix premature drop of temporary files used for a cursor that is accessed
-      within a subtransaction (Heikki)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix PAM password processing to be more robust (Tom)
-     </para>
-
-     <para>
-      The previous code is known to fail with the combination of the Linux
-      <literal>pam_krb5</> PAM module with Microsoft Active Directory as the
-      domain controller.  It might have problems elsewhere too, since it was
-      making unjustified assumptions about what arguments the PAM stack would
-      pass to it.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix rare crash in exception processing in PL/Python (Peter)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure <application>psql</>'s flex module is compiled with the correct
-      system header definitions (Tom)
-     </para>
-
-     <para>
-      This fixes build failures on platforms where
-      <literal>--enable-largefile</> causes incompatible changes in the
-      generated code.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make the postmaster ignore any <literal>application_name</> parameter in
-      connection request packets, to improve compatibility with future libpq
-      versions (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2009s
-      for DST law changes in Antarctica, Argentina, Bangladesh, Fiji,
-      Novokuznetsk, Pakistan, Palestine, Samoa, Syria; also historical
-      corrections for Hong Kong.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-0-22">
-  <title>Release 8.0.22</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2009-09-09</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.0.21.
-   For information about new features in the 8.0 major release, see
-   <xref linkend="release-8-0">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.0.22</title>
-
-   <para>
-    A dump/restore is not required for those running 8.0.X.
-    However, if you have any hash indexes on <type>interval</> columns,
-    you must <command>REINDEX</> them after updating to 8.0.22.
-    Also, if you are upgrading from a version earlier than 8.0.6,
-    see <xref linkend="release-8-0-6">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Disallow <command>RESET ROLE</> and <command>RESET SESSION
-      AUTHORIZATION</> inside security-definer functions (Tom, Heikki)
-     </para>
-
-     <para>
-      This covers a case that was missed in the previous patch that
-      disallowed <command>SET ROLE</> and <command>SET SESSION
-      AUTHORIZATION</> inside security-definer functions.
-      (See CVE-2007-6600)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix handling of sub-SELECTs appearing in the arguments of
-      an outer-level aggregate function (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix hash calculation for data type <type>interval</> (Tom)
-     </para>
-
-     <para>
-      This corrects wrong results for hash joins on interval values.
-      It also changes the contents of hash indexes on interval columns.
-      If you have any such indexes, you must <command>REINDEX</> them
-      after updating.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Treat <function>to_char(..., 'TH')</> as an uppercase ordinal
-      suffix with <literal>'HH'</>/<literal>'HH12'</> (Heikki)
-     </para>
-
-     <para>
-      It was previously handled as <literal>'th'</> (lowercase).
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix overflow for <literal>INTERVAL '<replaceable>x</> ms'</literal>
-      when <replaceable>x</> is more than 2 million and integer
-      datetimes are in use (Alex Hunsaker)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix calculation of distance between a point and a line segment (Tom)
-     </para>
-
-     <para>
-      This led to incorrect results from a number of geometric operators.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <type>money</> data type to work in locales where currency
-      amounts have no fractional digits, e.g. Japan (Itagaki Takahiro)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Properly round datetime input like
-      <literal>00:12:57.9999999999999999999999999999</> (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix poor choice of page split point in GiST R-tree operator classes
-      (Teodor)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix portability issues in plperl initialization (Andrew Dunstan)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>pg_ctl</> to not go into an infinite loop if
-      <filename>postgresql.conf</> is empty (Jeff Davis)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <filename>contrib/xml2</>'s <function>xslt_process()</> to
-      properly handle the maximum number of parameters (twenty) (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve robustness of <application>libpq</>'s code to recover
-      from errors during <command>COPY FROM STDIN</> (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid including conflicting readline and editline header files
-      when both libraries are installed (Zdenek Kotala)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2009l
-      for DST law changes in Bangladesh, Egypt, Jordan, Pakistan,
-      Argentina/San_Luis, Cuba, Jordan (historical correction only),
-      Mauritius, Morocco, Palestine, Syria, Tunisia.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-0-21">
-  <title>Release 8.0.21</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2009-03-16</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.0.20.
-   For information about new features in the 8.0 major release, see
-   <xref linkend="release-8-0">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.0.21</title>
-
-   <para>
-    A dump/restore is not required for those running 8.0.X.
-    However, if you are upgrading from a version earlier than 8.0.6,
-    see <xref linkend="release-8-0-6">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Prevent error recursion crashes when encoding conversion fails (Tom)
-     </para>
-
-     <para>
-      This change extends fixes made in the last two minor releases for
-      related failure scenarios.  The previous fixes were narrowly tailored
-      for the original problem reports, but we have now recognized that
-      <emphasis>any</> error thrown by an encoding conversion function could
-      potentially lead to infinite recursion while trying to report the
-      error.  The solution therefore is to disable translation and encoding
-      conversion and report the plain-ASCII form of any error message,
-      if we find we have gotten into a recursive error reporting situation.
-      (CVE-2009-0922)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Disallow <command>CREATE CONVERSION</> with the wrong encodings
-      for the specified conversion function (Heikki)
-     </para>
-
-     <para>
-      This prevents one possible scenario for encoding conversion failure.
-      The previous change is a backstop to guard against other kinds of
-      failures in the same area.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix core dump when <function>to_char()</> is given format codes that
-      are inappropriate for the type of the data argument (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Add <literal>MUST</> (Mauritius Island Summer Time) to the default list
-      of known timezone abbreviations (Xavier Bugaud)
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-0-20">
-  <title>Release 8.0.20</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2009-02-02</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.0.19.
-   For information about new features in the 8.0 major release, see
-   <xref linkend="release-8-0">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.0.20</title>
-
-   <para>
-    A dump/restore is not required for those running 8.0.X.
-    However, if you are upgrading from a version earlier than 8.0.6,
-    see <xref linkend="release-8-0-6">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Improve handling of URLs in <function>headline()</> function (Teodor)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve handling of overlength headlines in <function>headline()</>
-      function (Teodor)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent possible Assert failure or misconversion if an encoding
-      conversion is created with the wrong conversion function for the
-      specified pair of encodings (Tom, Heikki)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid unnecessary locking of small tables in <command>VACUUM</>
-      (Heikki)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix uninitialized variables in <filename>contrib/tsearch2</>'s
-      <function>get_covers()</> function (Teodor)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make all documentation reference <literal>pgsql-bugs</> and/or
-      <literal>pgsql-hackers</> as appropriate, instead of the
-      now-decommissioned <literal>pgsql-ports</> and <literal>pgsql-patches</>
-      mailing lists (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2009a (for
-      Kathmandu and historical DST corrections in Switzerland, Cuba)
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-0-19">
-  <title>Release 8.0.19</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2008-11-03</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.0.18.
-   For information about new features in the 8.0 major release, see
-   <xref linkend="release-8-0">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.0.19</title>
-
-   <para>
-    A dump/restore is not required for those running 8.0.X.
-    However, if you are upgrading from a version earlier than 8.0.6,
-    see <xref linkend="release-8-0-6">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Fix backend crash when the client encoding cannot represent a localized
-      error message (Tom)
-     </para>
-
-     <para>
-      We have addressed similar issues before, but it would still fail if
-      the <quote>character has no equivalent</> message itself couldn't
-      be converted.  The fix is to disable localization and send the plain
-      ASCII error message when we detect such a situation.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible crash when deeply nested functions are invoked from
-      a trigger (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure an error is reported when a newly-defined PL/pgSQL trigger
-      function is invoked as a normal function (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix incorrect tsearch2 headline generation when single query
-      item matches first word of text (Sushant Sinha)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix improper display of fractional seconds in interval values when
-      using a non-ISO datestyle in an <option>--enable-integer-datetimes</>
-      build (Ron Mayer)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure <function>SPI_getvalue</> and <function>SPI_getbinval</>
-      behave correctly when the passed tuple and tuple descriptor have
-      different numbers of columns (Tom)
-     </para>
-
-     <para>
-      This situation is normal when a table has had columns added or removed,
-      but these two functions didn't handle it properly.
-      The only likely consequence is an incorrect error indication.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>ecpg</>'s parsing of <command>CREATE USER</> (Michael)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix recent breakage of <literal>pg_ctl restart</> (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2008i (for
-      DST law changes in Argentina, Brazil, Mauritius, Syria)
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-0-18">
-  <title>Release 8.0.18</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2008-09-22</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.0.17.
-   For information about new features in the 8.0 major release, see
-   <xref linkend="release-8-0">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.0.18</title>
-
-   <para>
-    A dump/restore is not required for those running 8.0.X.
-    However, if you are upgrading from a version earlier than 8.0.6,
-    see <xref linkend="release-8-0-6">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Widen local lock counters from 32 to 64 bits (Tom)
-     </para>
-
-     <para>
-      This responds to reports that the counters could overflow in
-      sufficiently long transactions, leading to unexpected <quote>lock is
-      already held</> errors.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Add checks in executor startup to ensure that the tuples produced by an
-      <command>INSERT</> or <command>UPDATE</> will match the target table's
-      current rowtype (Tom)
-     </para>
-
-     <para>
-      <command>ALTER COLUMN TYPE</>, followed by re-use of a previously
-      cached plan, could produce this type of situation.  The check protects
-      against data corruption and/or crashes that could ensue.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix datetime input functions to correctly detect integer overflow when
-      running on a 64-bit platform (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve performance of writing very long log messages to syslog (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix bug in backwards scanning of a cursor on a <literal>SELECT DISTINCT
-      ON</> query (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix planner to estimate that <literal>GROUP BY</> expressions yielding
-      boolean results always result in two groups, regardless of the
-      expressions' contents (Tom)
-     </para>
-
-     <para>
-      This is very substantially more accurate than the regular <literal>GROUP
-      BY</> estimate for certain boolean tests like <replaceable>col</>
-      <literal>IS NULL</>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix PL/Tcl to behave correctly with Tcl 8.5, and to be more careful
-      about the encoding of data sent to or from Tcl (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix PL/Python to work with Python 2.5
-     </para>
-
-     <para>
-      This is a back-port of fixes made during the 8.2 development cycle.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve <application>pg_dump</> and <application>pg_restore</>'s
-      error reporting after failure to send a SQL command (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>pg_ctl</> to properly preserve postmaster
-      command-line arguments across a <literal>restart</> (Bruce)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2008f (for
-      DST law changes in Argentina, Bahamas, Brazil, Mauritius, Morocco,
-      Pakistan, Palestine, and Paraguay)
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-0-17">
-  <title>Release 8.0.17</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2008-06-12</para>
-  </formalpara>
-
-  <para>
-   This release contains one serious bug fix over 8.0.16.
-   For information about new features in the 8.0 major release, see
-   <xref linkend="release-8-0">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.0.17</title>
-
-   <para>
-    A dump/restore is not required for those running 8.0.X.
-    However, if you are upgrading from a version earlier than 8.0.6,
-    see <xref linkend="release-8-0-6">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Make <function>pg_get_ruledef()</> parenthesize negative constants (Tom)
-     </para>
-
-     <para>
-      Before this fix, a negative constant in a view or rule might be dumped
-      as, say, <literal>-42::integer</>, which is subtly incorrect: it should
-      be <literal>(-42)::integer</> due to operator precedence rules.
-      Usually this would make little difference, but it could interact with
-      another recent patch to cause
-      <productname>PostgreSQL</> to reject what had been a valid
-      <command>SELECT DISTINCT</> view query.  Since this could result in
-      <application>pg_dump</> output failing to reload, it is being treated
-      as a high-priority fix.  The only released versions in which dump
-      output is actually incorrect are 8.3.1 and 8.2.7.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-0-16">
-  <title>Release 8.0.16</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>never released</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.0.15.
-   For information about new features in the 8.0 major release, see
-   <xref linkend="release-8-0">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.0.16</title>
-
-   <para>
-    A dump/restore is not required for those running 8.0.X.
-    However, if you are upgrading from a version earlier than 8.0.6,
-    see <xref linkend="release-8-0-6">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Fix <command>ALTER TABLE ADD COLUMN ... PRIMARY KEY</> so that the new
-      column is correctly checked to see if it's been initialized to all
-      non-nulls (Brendan Jurd)
-     </para>
-
-     <para>
-      Previous versions neglected to check this requirement at all.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible <command>CREATE TABLE</> failure when inheriting the
-      <quote>same</> constraint from multiple parent relations that
-      inherited that constraint from a common ancestor (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix conversions between ISO-8859-5 and other encodings to handle
-      Cyrillic <quote>Yo</> characters (<literal>e</> and <literal>E</> with
-      two dots) (Sergey Burladyan)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix a few datatype input functions
-      that were allowing unused bytes in their results to contain
-      uninitialized, unpredictable values (Tom)
-     </para>
-
-     <para>
-      This could lead to failures in which two apparently identical literal
-      values were not seen as equal, resulting in the parser complaining
-      about unmatched <literal>ORDER BY</> and <literal>DISTINCT</>
-      expressions.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix a corner case in regular-expression substring matching
-      (<literal>substring(<replaceable>string</> from
-      <replaceable>pattern</>)</literal>) (Tom)
-     </para>
-
-     <para>
-      The problem occurs when there is a match to the pattern overall but
-      the user has specified a parenthesized subexpression and that
-      subexpression hasn't got a match.  An example is
-      <literal>substring('foo' from 'foo(bar)?')</>.
-      This should return NULL, since <literal>(bar)</> isn't matched, but
-      it was mistakenly returning the whole-pattern match instead (ie,
-      <literal>foo</>).
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2008c (for
-      DST law changes in Morocco, Iraq, Choibalsan, Pakistan, Syria, Cuba,
-      Argentina/San_Luis, and Chile)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix incorrect result from <application>ecpg</>'s
-      <function>PGTYPEStimestamp_sub()</> function (Michael)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix core dump in <filename>contrib/xml2</>'s
-      <function>xpath_table()</> function when the input query returns a
-      NULL value (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <filename>contrib/xml2</>'s makefile to not override
-      <literal>CFLAGS</> (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <literal>DatumGetBool</> macro to not fail with <application>gcc</>
-      4.3 (Tom)
-     </para>
-
-     <para>
-      This problem affects <quote>old style</> (V0) C functions that
-      return boolean.  The fix is already in 8.3, but the need to
-      back-patch it was not realized at the time.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix longstanding <command>LISTEN</>/<command>NOTIFY</>
-      race condition (Tom)
-     </para>
-
-     <para>
-      In rare cases a session that had just executed a
-      <command>LISTEN</> might not get a notification, even though
-      one would be expected because the concurrent transaction executing
-      <command>NOTIFY</> was observed to commit later.
-     </para>
-
-     <para>
-      A side effect of the fix is that a transaction that has executed
-      a not-yet-committed <command>LISTEN</> command will not see any
-      row in <structname>pg_listener</> for the <command>LISTEN</>,
-      should it choose to look; formerly it would have.  This behavior
-      was never documented one way or the other, but it is possible that
-      some applications depend on the old behavior.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix rare crash when an error occurs during a query using a hash index
-      (Heikki)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix input of datetime values for February 29 in years BC (Tom)
-     </para>
-
-     <para>
-      The former coding was mistaken about which years were leap years.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <quote>unrecognized node type</> error in some variants of
-      <command>ALTER OWNER</> (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>pg_ctl</> to correctly extract the postmaster's port
-      number from command-line options (Itagaki Takahiro, Tom)
-     </para>
-
-     <para>
-      Previously, <literal>pg_ctl start -w</> could try to contact the
-      postmaster on the wrong port, leading to bogus reports of startup
-      failure.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Use <option>-fwrapv</> to defend against possible misoptimization
-      in recent <application>gcc</> versions (Tom)
-     </para>
-
-     <para>
-      This is known to be necessary when building <productname>PostgreSQL</>
-      with <application>gcc</> 4.3 or later.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix display of constant expressions in <literal>ORDER BY</>
-      and <literal>GROUP BY</> (Tom)
-     </para>
-
-     <para>
-      An explicitly casted constant would be shown incorrectly.  This could
-      for example lead to corruption of a view definition during
-      dump and reload.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>libpq</> to handle NOTICE messages correctly
-      during COPY OUT (Tom)
-     </para>
-
-     <para>
-      This failure has only been observed to occur when a user-defined
-      datatype's output routine issues a NOTICE, but there is no
-      guarantee it couldn't happen due to other causes.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-0-15">
-  <title>Release 8.0.15</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2008-01-07</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.0.14,
-   including fixes for significant security issues.
-   For information about new features in the 8.0 major release, see
-   <xref linkend="release-8-0">.
-  </para>
-
-  <para>
-   This is the last 8.0.X release for which the <productname>PostgreSQL</>
-   community will produce binary packages for <productname>Windows</>.
-   Windows users are encouraged to move to 8.2.X or later,
-   since there are Windows-specific fixes in 8.2.X that
-   are impractical to back-port.  8.0.X will continue to
-   be supported on other platforms.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.0.15</title>
-
-   <para>
-    A dump/restore is not required for those running 8.0.X.  However,
-    if you are upgrading from a version earlier than 8.0.6,
-    see <xref linkend="release-8-0-6">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Prevent functions in indexes from executing with the privileges of
-      the user running <command>VACUUM</>, <command>ANALYZE</>, etc (Tom)
-     </para>
-
-     <para>
-      Functions used in index expressions and partial-index
-      predicates are evaluated whenever a new table entry is made.  It has
-      long been understood that this poses a risk of trojan-horse code
-      execution if one modifies a table owned by an untrustworthy user.
-      (Note that triggers, defaults, check constraints, etc. pose the
-      same type of risk.)  But functions in indexes pose extra danger
-      because they will be executed by routine maintenance operations
-      such as <command>VACUUM FULL</>, which are commonly performed
-      automatically under a superuser account.  For example, a nefarious user
-      can execute code with superuser privileges by setting up a
-      trojan-horse index definition and waiting for the next routine vacuum.
-      The fix arranges for standard maintenance operations
-      (including <command>VACUUM</>, <command>ANALYZE</>, <command>REINDEX</>,
-      and <command>CLUSTER</>) to execute as the table owner rather than
-      the calling user, using the same privilege-switching mechanism already
-      used for <literal>SECURITY DEFINER</> functions.  To prevent bypassing
-      this security measure, execution of <command>SET SESSION
-      AUTHORIZATION</> and <command>SET ROLE</> is now forbidden within a
-      <literal>SECURITY DEFINER</> context.  (CVE-2007-6600)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Repair assorted bugs in the regular-expression package (Tom, Will Drewry)
-     </para>
-
-     <para>
-      Suitably crafted regular-expression patterns could cause crashes,
-      infinite or near-infinite looping, and/or massive memory consumption,
-      all of which pose denial-of-service hazards for applications that
-      accept regex search patterns from untrustworthy sources.
-      (CVE-2007-4769, CVE-2007-4772, CVE-2007-6067)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Require non-superusers who use <filename>/contrib/dblink</> to use only
-      password authentication, as a security measure (Joe)
-     </para>
-
-     <para>
-      The fix that appeared for this in 8.0.14 was incomplete, as it plugged
-      the hole for only some <filename>dblink</> functions.  (CVE-2007-6601,
-      CVE-2007-3278)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2007k
-      (in particular, recent Argentina changes) (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix planner failure in some cases of <literal>WHERE false AND var IN
-      (SELECT ...)</> (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Preserve the tablespace of indexes that are
-      rebuilt by <command>ALTER TABLE ... ALTER COLUMN TYPE</> (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make archive recovery always start a new WAL timeline, rather than only
-      when a recovery stop time was used (Simon)
-     </para>
-
-     <para>
-      This avoids a corner-case risk of trying to overwrite an existing
-      archived copy of the last WAL segment, and seems simpler and cleaner
-      than the original definition.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <command>VACUUM</> not use all of <varname>maintenance_work_mem</>
-      when the table is too small for it to be useful (Alvaro)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix potential crash in <function>translate()</> when using a multibyte
-      database encoding (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix PL/Perl to cope when platform's Perl defines type <literal>bool</>
-      as <literal>int</> rather than <literal>char</> (Tom)
-     </para>
-
-     <para>
-      While this could theoretically happen anywhere, no standard build of
-      Perl did things this way ... until <productname>Mac OS X</> 10.5.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix PL/Python to not crash on long exception messages (Alvaro)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>pg_dump</> to correctly handle inheritance child tables
-      that have default expressions different from their parent's (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      <application>ecpg</> parser fixes (Michael)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <filename>contrib/tablefunc</>'s <function>crosstab()</> handle
-      NULL rowid as a category in its own right, rather than crashing (Joe)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <type>tsvector</> and <type>tsquery</> output routines to
-      escape backslashes correctly (Teodor, Bruce)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix crash of <function>to_tsvector()</> on huge input strings (Teodor)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Require a specific version of <productname>Autoconf</> to be used
-      when re-generating the <command>configure</> script (Peter)
-     </para>
-
-     <para>
-      This affects developers and packagers only.  The change was made
-      to prevent accidental use of untested combinations of
-      <productname>Autoconf</> and <productname>PostgreSQL</> versions.
-      You can remove the version check if you really want to use a
-      different <productname>Autoconf</> version, but it's
-      your responsibility whether the result works or not.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-0-14">
-  <title>Release 8.0.14</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2007-09-17</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.0.13.
-   For information about new features in the 8.0 major release, see
-   <xref linkend="release-8-0">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.0.14</title>
-
-   <para>
-    A dump/restore is not required for those running 8.0.X.  However,
-    if you are upgrading from a version earlier than 8.0.6,
-    see <xref linkend="release-8-0-6">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Prevent index corruption when a transaction inserts rows and
-      then aborts close to the end of a concurrent <command>VACUUM</>
-      on the same table (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <command>CREATE DOMAIN ... DEFAULT NULL</> work properly (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix excessive logging of <acronym>SSL</> error messages (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix logging so that log messages are never interleaved when using
-      the syslogger process (Andrew)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix crash when <varname>log_min_error_statement</> logging runs out
-      of memory (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix incorrect handling of some foreign-key corner cases (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent <command>CLUSTER</> from failing
-      due to attempting to process temporary tables of other sessions (Alvaro)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update the time zone database rules, particularly New Zealand's upcoming changes (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Windows socket improvements (Magnus)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Suppress timezone name (<literal>%Z</>) in log timestamps on Windows
-      because of possible encoding mismatches (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Require non-superusers who use <filename>/contrib/dblink</> to use only
-      password authentication, as a security measure (Joe)
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-0-13">
-  <title>Release 8.0.13</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2007-04-23</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.0.12,
-   including a security fix.
-   For information about new features in the 8.0 major release, see
-   <xref linkend="release-8-0">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.0.13</title>
-
-   <para>
-    A dump/restore is not required for those running 8.0.X.  However,
-    if you are upgrading from a version earlier than 8.0.6,
-    see <xref linkend="release-8-0-6">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-    <para>
-     Support explicit placement of the temporary-table schema within
-     <varname>search_path</>, and disable searching it for functions
-     and operators (Tom)
-    </para>
-    <para>
-     This is needed to allow a security-definer function to set a
-     truly secure value of <varname>search_path</>.  Without it,
-     an unprivileged SQL user can use temporary objects to execute code
-     with the privileges of the security-definer function (CVE-2007-2138).
-     See <command>CREATE FUNCTION</> for more information.
-    </para>
-    </listitem>
-
-    <listitem>
-    <para>
-     <filename>/contrib/tsearch2</> crash fixes (Teodor)
-    </para>
-    </listitem>
-
-    <listitem>
-    <para>
-     Fix potential-data-corruption bug in how <command>VACUUM FULL</> handles
-     <command>UPDATE</> chains (Tom, Pavan Deolasee)
-    </para>
-    </listitem>
-
-    <listitem>
-    <para>
-     Fix PANIC during enlargement of a hash index (bug introduced in 8.0.10)
-     (Tom)
-    </para>
-    </listitem>
-
-    <listitem>
-    <para>
-     Fix POSIX-style timezone specs to follow new USA DST rules (Tom)
-    </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-0-12">
-  <title>Release 8.0.12</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2007-02-07</para>
-  </formalpara>
-
-  <para>
-   This release contains one fix from 8.0.11.
-   For information about new features in the 8.0 major release, see
-   <xref linkend="release-8-0">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.0.12</title>
-
-   <para>
-    A dump/restore is not required for those running 8.0.X.  However,
-    if you are upgrading from a version earlier than 8.0.6,
-    see <xref linkend="release-8-0-6">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-    <para>
-     Remove overly-restrictive check for type length in constraints and
-     functional indexes(Tom)
-    </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-0-11">
-  <title>Release 8.0.11</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2007-02-05</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.0.10, including
-   a security fix.
-   For information about new features in the 8.0 major release, see
-   <xref linkend="release-8-0">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.0.11</title>
-
-   <para>
-    A dump/restore is not required for those running 8.0.X.  However,
-    if you are upgrading from a version earlier than 8.0.6,
-    see <xref linkend="release-8-0-6">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-    <para>
-     Remove security vulnerabilities that allowed connected users
-     to read backend memory (Tom)
-    </para>
-    <para>
-     The vulnerabilities involve suppressing the normal check that a SQL
-     function returns the data type it's declared to, and changing the
-     data type of a table column (CVE-2007-0555, CVE-2007-0556).  These
-     errors can easily be exploited to cause a backend crash, and in
-     principle might be used to read database content that the user
-     should not be able to access.
-    </para>
-    </listitem>
-
-    <listitem>
-    <para>
-     Fix rare bug wherein btree index page splits could fail
-     due to choosing an infeasible split point (Heikki Linnakangas)
-    </para>
-    </listitem>
-
-    <listitem>
-    <para>
-     Fix for rare Assert() crash triggered by <literal>UNION</> (Tom)
-    </para>
-    </listitem>
-
-    <listitem>
-    <para>
-     Tighten security of multi-byte character processing for UTF8 sequences
-     over three bytes long (Tom)
-    </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-0-10">
-  <title>Release 8.0.10</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2007-01-08</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.0.9.
-   For information about new features in the 8.0 major release, see
-   <xref linkend="release-8-0">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.0.10</title>
-
-   <para>
-    A dump/restore is not required for those running 8.0.X.  However,
-    if you are upgrading from a version earlier than 8.0.6,
-    see <xref linkend="release-8-0-6">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Improve handling of <function>getaddrinfo()</> on AIX (Tom)
-     </para>
-
-     <para>
-      This fixes a problem with starting the statistics collector,
-      among other things.
-     </para>
-    </listitem>
-
-     <listitem>
-      <para>
-       Fix <quote>failed to re-find parent key</> errors in
-       <command>VACUUM</> (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Fix race condition for truncation of a large relation across a
-       gigabyte boundary by <command>VACUUM</> (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Fix bugs affecting multi-gigabyte hash indexes (Tom)
-      </para>
-     </listitem>
-
-    <listitem>
-     <para>
-      Fix possible deadlock in Windows signal handling (Teodor)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix error when constructing an <literal>ARRAY[]</> made up of multiple
-      empty elements (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix ecpg memory leak during connection (Michael)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      <function>to_number()</> and <function>to_char(numeric)</>
-      are now <literal>STABLE</>, not <literal>IMMUTABLE</>, for
-      new <application>initdb</> installs (Tom)
-     </para>
-
-     <para>
-      This is because <varname>lc_numeric</> can potentially
-      change the output of these functions.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve index usage of regular expressions that use parentheses (Tom)
-     </para>
-
-     <para>
-      This improves <application>psql</> <literal>\d</> performance also.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update timezone database
-     </para>
-
-     <para>
-      This affects Australian and Canadian daylight-savings rules in
-      particular.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-0-9">
-  <title>Release 8.0.9</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2006-10-16</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.0.8.
-   For information about new features in the 8.0 major release, see
-   <xref linkend="release-8-0">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.0.9</title>
-
-   <para>
-    A dump/restore is not required for those running 8.0.X.  However,
-    if you are upgrading from a version earlier than 8.0.6,
-    see <xref linkend="release-8-0-6">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-<itemizedlist>
-<listitem><para>Fix crash when referencing <literal>NEW</> row
-values in rule WHERE expressions (Tom)</para></listitem>
-<listitem><para>Fix core dump when an untyped literal is taken as
-ANYARRAY</para></listitem>
-<listitem><para>Fix mishandling of AFTER triggers when query contains a SQL
-function returning multiple rows (Tom)</para></listitem>
-<listitem><para>Fix <command>ALTER TABLE ... TYPE</> to recheck
-<literal>NOT NULL</> for <literal>USING</> clause (Tom)</para></listitem>
-<listitem><para>Fix <function>string_to_array()</> to handle overlapping
- matches for the separator string</para>
-<para>For example, <literal>string_to_array('123xx456xxx789', 'xx')</>.
-</para></listitem>
-<listitem><para>Fix corner cases in pattern matching for
- <application>psql</>'s <literal>\d</> commands</para></listitem>
-<listitem><para>Fix index-corrupting bugs in /contrib/ltree
- (Teodor)</para></listitem>
-<listitem><para>Numerous robustness fixes in <application>ecpg</> (Joachim
-Wieland)</para></listitem>
-<listitem><para>Fix backslash escaping in /contrib/dbmirror</para></listitem>
-<listitem><para>Fix instability of statistics collection on Win32 (Tom, Andrew)</para></listitem>
-<listitem><para>Fixes for <systemitem class="osname">AIX</> and
-<productname>Intel</> compilers (Tom)</para></listitem>
-</itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-0-8">
-  <title>Release 8.0.8</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2006-05-23</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.0.7,
-   including patches for extremely serious security issues.
-   For information about new features in the 8.0 major release, see
-   <xref linkend="release-8-0">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.0.8</title>
-
-   <para>
-    A dump/restore is not required for those running 8.0.X.  However,
-    if you are upgrading from a version earlier than 8.0.6,
-    see <xref linkend="release-8-0-6">.
-   </para>
-
-   <para>
-    Full security against the SQL-injection attacks described in
-    CVE-2006-2313 and CVE-2006-2314 might require changes in application
-    code.  If you have applications that embed untrustworthy strings
-    into SQL commands, you should examine them as soon as possible to
-    ensure that they are using recommended escaping techniques.  In
-    most cases, applications should be using subroutines provided by
-    libraries or drivers (such as <application>libpq</>'s
-    <function>PQescapeStringConn()</>) to perform string escaping,
-    rather than relying on <foreignphrase>ad hoc</> code to do it.
-   </para>
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-<itemizedlist>
-<listitem><para>Change the server to reject invalidly-encoded multibyte
-characters in all cases (Tatsuo, Tom)</para>
-<para>While <productname>PostgreSQL</> has been moving in this direction for
-some time, the checks are now applied uniformly to all encodings and all
-textual input, and are now always errors not merely warnings.  This change
-defends against SQL-injection attacks of the type described in CVE-2006-2313.
-</para></listitem>
-
-<listitem><para>Reject unsafe uses of <literal>\'</> in string literals</para>
-<para>As a server-side defense against SQL-injection attacks of the type
-described in CVE-2006-2314, the server now only accepts <literal>''</> and not
-<literal>\'</> as a representation of ASCII single quote in SQL string
-literals.  By default, <literal>\'</> is rejected only when
-<varname>client_encoding</> is set to a client-only encoding (SJIS, BIG5, GBK,
-GB18030, or UHC), which is the scenario in which SQL injection is possible.
-A new configuration parameter <varname>backslash_quote</> is available to
-adjust this behavior when needed.  Note that full security against
-CVE-2006-2314 might require client-side changes; the purpose of
-<varname>backslash_quote</> is in part to make it obvious that insecure
-clients are insecure.
-</para></listitem>
-
-<listitem><para>Modify <application>libpq</>'s string-escaping routines to be
-aware of encoding considerations and
-<varname>standard_conforming_strings</></para>
-<para>This fixes <application>libpq</>-using applications for the security
-issues described in CVE-2006-2313 and CVE-2006-2314, and also future-proofs
-them against the planned changeover to SQL-standard string literal syntax.
-Applications that use multiple <productname>PostgreSQL</> connections
-concurrently should migrate to <function>PQescapeStringConn()</> and
-<function>PQescapeByteaConn()</> to ensure that escaping is done correctly
-for the settings in use in each database connection.  Applications that
-do string escaping <quote>by hand</> should be modified to rely on library
-routines instead.
-</para></listitem>
-
-<listitem><para>Fix some incorrect encoding conversion functions</para>
-<para><function>win1251_to_iso</>, <function>alt_to_iso</>,
-<function>euc_tw_to_big5</>, <function>euc_tw_to_mic</>,
-<function>mic_to_euc_tw</> were all broken to varying
-extents.
-</para></listitem>
-
-<listitem><para>Clean up stray remaining uses of <literal>\'</> in strings
-(Bruce, Jan)</para></listitem>
-
-<listitem><para>Fix bug that sometimes caused OR'd index scans to
-miss rows they should have returned</para></listitem>
-
-<listitem><para>Fix WAL replay for case where a btree index has been
-truncated</para></listitem>
-
-<listitem><para>Fix <literal>SIMILAR TO</> for patterns involving
-<literal>|</> (Tom)</para></listitem>
-
-<listitem><para>Fix <command>SELECT INTO</> and <command>CREATE TABLE AS</> to
-create tables in the default tablespace, not the base directory (Kris
-Jurka)</para></listitem>
-
-<listitem><para>Fix server to use custom DH SSL parameters correctly (Michael
-Fuhr)</para></listitem>
-
-<listitem><para>Fix for Bonjour on Intel Macs (Ashley Clark)</para></listitem>
-
-<listitem><para>Fix various minor memory leaks</para></listitem>
-
-<listitem><para>Fix problem with password prompting on some Win32 systems
-(Robert Kinberg)</para></listitem>
-</itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-0-7">
-  <title>Release 8.0.7</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2006-02-14</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.0.6.
-   For information about new features in the 8.0 major release, see
-   <xref linkend="release-8-0">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.0.7</title>
-
-   <para>
-    A dump/restore is not required for those running 8.0.X.  However,
-    if you are upgrading from a version earlier than 8.0.6,
-    see <xref linkend="release-8-0-6">.
-   </para>
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-<itemizedlist>
-
-<listitem><para>Fix potential crash in <command>SET
-SESSION AUTHORIZATION</> (CVE-2006-0553)</para>
-<para>An unprivileged user could crash the server process, resulting in
-momentary denial of service to other users, if the server has been compiled
-with Asserts enabled (which is not the default).
-Thanks to Akio Ishida for reporting this problem.
-</para></listitem>
-
-<listitem><para>Fix bug with row visibility logic in self-inserted
-rows (Tom)</para>
-<para>Under rare circumstances a row inserted by the current command
-could be seen as already valid, when it should not be.  Repairs bug
-created in 8.0.4, 7.4.9, and 7.3.11 releases.
-</para></listitem>
-
-<listitem><para>Fix race condition that could lead to <quote>file already
-exists</> errors during pg_clog and pg_subtrans file creation
-(Tom)</para></listitem>
-
-<listitem><para>Fix cases that could lead to crashes if a cache-invalidation
-message arrives at just the wrong time (Tom)</para></listitem>
-
-<listitem><para>Properly check <literal>DOMAIN</> constraints for
-<literal>UNKNOWN</> parameters in prepared statements
-(Neil)</para></listitem>
-
-<listitem><para>Ensure <command>ALTER COLUMN TYPE</> will process
-<literal>FOREIGN KEY</>, <literal>UNIQUE</>, and <literal>PRIMARY KEY</>
-constraints in the proper order (Nakano Yoshihisa)</para></listitem>
-
-<listitem><para>Fixes to allow restoring dumps that have cross-schema
-references to custom operators or operator classes (Tom)</para></listitem>
-
-<listitem><para>Allow <application>pg_restore</> to continue properly after a
-<command>COPY</> failure; formerly it tried to treat the remaining
-<command>COPY</> data as SQL commands (Stephen Frost)</para></listitem>
-
-<listitem><para>Fix <application>pg_ctl</> <literal>unregister</> crash
-when the  data directory is not specified (Magnus)</para></listitem>
-
-<listitem><para>Fix <application>ecpg</> crash on AMD64 and PPC
-(Neil)</para></listitem>
-
-<listitem><para>Recover properly if error occurs during argument passing
-in <application>PL/python</> (Neil)</para></listitem>
-
-<listitem><para>Fix <application>PL/perl</>'s handling of locales on
-Win32 to match the backend (Andrew)</para></listitem>
-
-<listitem><para>Fix crash when <literal>log_min_messages</> is set to
-<literal>DEBUG3</> or above in <filename>postgresql.conf</> on Win32
-(Bruce)</para></listitem>
-
-<listitem><para>Fix <application>pgxs</> <literal>-L</> library path
-specification for Win32, Cygwin, OS X, AIX (Bruce)</para></listitem>
-
-<listitem><para>Check that SID is enabled while checking for Win32 admin
-privileges (Magnus)</para></listitem>
-
-<listitem><para>Properly reject out-of-range date inputs (Kris
-Jurka)</para></listitem>
-
-<listitem><para>Portability fix for testing presence of <function>finite</>
-and <function>isinf</> during configure (Tom)</para></listitem>
-
-</itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-0-6">
-  <title>Release 8.0.6</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2006-01-09</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.0.5.
-   For information about new features in the 8.0 major release, see
-   <xref linkend="release-8-0">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.0.6</title>
-
-   <para>
-    A dump/restore is not required for those running 8.0.X.  However,
-    if you are upgrading from a version earlier than 8.0.3,
-    see <xref linkend="release-8-0-3">.
-    Also, you might need to <command>REINDEX</> indexes on textual
-    columns after updating, if you are affected by the locale or
-    <application>plperl</> issues described below.
-   </para>
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-<itemizedlist>
-
-<listitem><para>Fix Windows code so that postmaster will continue rather
-than exit if there is no more room in ShmemBackendArray (Magnus)</para>
-<para>The previous behavior could lead to a denial-of-service situation if too
-many connection requests arrive close together.  This applies
-<emphasis>only</> to the Windows port.</para></listitem>
-
-<listitem><para>Fix bug introduced in 8.0 that could allow ReadBuffer
-to return an already-used page as new, potentially causing loss of
-recently-committed data (Tom)</para></listitem>
-
-<listitem><para>Fix for protocol-level Describe messages issued
-outside a transaction or in a failed transaction (Tom)</para></listitem>
-
-<listitem><para>Fix character string comparison for locales that consider
-different character combinations as equal, such as Hungarian (Tom)</para>
-<para>This might require <command>REINDEX</> to fix existing indexes on
-textual columns.</para></listitem>
-
-<listitem><para>Set locale environment variables during postmaster startup
-to ensure that <application>plperl</> won't change the locale later</para>
-<para>This fixes a problem that occurred if the <application>postmaster</> was
-started with environment variables specifying a different locale than what
-<application>initdb</> had been told.  Under these conditions, any use of
-<application>plperl</> was likely to lead to corrupt indexes.  You might need
-<command>REINDEX</> to fix existing indexes on
-textual columns if this has happened to you.</para></listitem>
-
-<listitem><para>Allow more flexible relocation of installation
-directories (Tom)</para>
-<para>Previous releases supported relocation only if all installation
-directory paths were the same except for the last component.</para></listitem>
-
-<listitem><para>Fix longstanding bug in strpos() and regular expression
-handling in certain rarely used Asian multi-byte character sets (Tatsuo)
-</para></listitem>
-
-<listitem><para>Various fixes for functions returning <literal>RECORD</>s
-(Tom) </para></listitem>
-
-<listitem><para>Fix bug in <filename>/contrib/pgcrypto</> gen_salt,
-which caused it not to use all available salt space for MD5 and
-XDES algorithms (Marko Kreen, Solar Designer)</para>
-<para>Salts for Blowfish and standard DES are unaffected.</para></listitem>
-
-<listitem><para>Fix <filename>/contrib/dblink</> to throw an error,
-rather than crashing, when the number of columns specified is different from
-what's actually returned by the query (Joe)</para></listitem>
-
-</itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-0-5">
-  <title>Release 8.0.5</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2005-12-12</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.0.4.
-   For information about new features in the 8.0 major release, see
-   <xref linkend="release-8-0">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.0.5</title>
-
-   <para>
-    A dump/restore is not required for those running 8.0.X.  However,
-    if you are upgrading from a version earlier than 8.0.3,
-    see <xref linkend="release-8-0-3">.
-   </para>
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-<itemizedlist>
-
-<listitem><para>Fix race condition in transaction log management</para>
-<para>There was a narrow window in which an I/O operation could be initiated
-for the wrong page, leading to an Assert failure or data
-corruption.</para>
-</listitem>
-
-<listitem><para>Fix bgwriter problems after recovering from errors
-(Tom)</para>
-<para>
-The background writer was found to leak buffer pins after write errors.
-While not fatal in itself, this might lead to mysterious blockages of
-later VACUUM commands.
-</para>
-</listitem>
-
-<listitem><para>Prevent failure if client sends Bind protocol message
-when current transaction is already aborted</para></listitem>
-
-<listitem><para><filename>/contrib/ltree</> fixes (Teodor)</para></listitem>
-
-<listitem><para>AIX and HPUX compile fixes (Tom)</para></listitem>
-
-<listitem><para>Retry file reads and writes after Windows
-NO_SYSTEM_RESOURCES error (Qingqing Zhou)</para></listitem>
-
-<listitem><para>Fix intermittent failure when <varname>log_line_prefix</>
-includes <literal>%i</></para></listitem>
-
-<listitem><para>Fix <application>psql</> performance issue with long scripts
-on Windows (Merlin Moncure)</para></listitem>
-
-<listitem><para>Fix missing updates of <filename>pg_group</> flat
-file</para></listitem>
-
-<listitem><para>Fix longstanding planning error for outer joins</para>
-<para>This bug sometimes caused a bogus error <quote>RIGHT JOIN is
-only supported with merge-joinable join conditions</>.</para></listitem>
-
-<listitem><para>Postpone timezone initialization until after
-<filename>postmaster.pid</> is created</para>
-<para>This avoids confusing startup scripts that expect the pid file to appear
-quickly.</para></listitem>
-
-<listitem><para>Prevent core dump in <application>pg_autovacuum</> when a
-table has been dropped</para></listitem>
-
-<listitem><para>Fix problems with whole-row references (<literal>foo.*</>)
-to subquery results</para></listitem>
-</itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-0-4">
-  <title>Release 8.0.4</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2005-10-04</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.0.3.
-   For information about new features in the 8.0 major release, see
-   <xref linkend="release-8-0">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.0.4</title>
-
-   <para>
-    A dump/restore is not required for those running 8.0.X.  However,
-    if you are upgrading from a version earlier than 8.0.3,
-    see <xref linkend="release-8-0-3">.
-   </para>
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-<itemizedlist>
-<listitem><para>Fix error that allowed <command>VACUUM</> to remove
-<literal>ctid</> chains too soon, and add more checking in code that follows
-<literal>ctid</> links</para>
-<para>This fixes a long-standing problem that could cause crashes in very rare
-circumstances.</para></listitem>
-<listitem><para>Fix <type>CHAR()</> to properly pad spaces to the specified
-length when using a multiple-byte character set (Yoshiyuki Asaba)</para>
-<para>In prior releases, the padding of <type>CHAR()</> was incorrect
-because it only padded to the specified number of bytes without
-considering how many characters were stored.</para></listitem>
-<listitem><para>Force a checkpoint before committing <command>CREATE
-DATABASE</></para>
-<para>This should fix recent reports of <quote>index is not a btree</>
-failures when a crash occurs shortly after <command>CREATE
-DATABASE</>.</para></listitem>
-<listitem><para>Fix the sense of the test for read-only transaction
-in <command>COPY</></para>
-<para>The code formerly prohibited <command>COPY TO</>, where it should
-prohibit <command>COPY FROM</>.
-</para></listitem>
-<listitem><para>Handle consecutive embedded newlines in <command>COPY</>
-CSV-mode input</para></listitem>
-<listitem><para>Fix <function>date_trunc(week)</> for dates near year
-end</para></listitem>
-<listitem><para>Fix planning problem with outer-join ON clauses that reference
-only the inner-side relation</para></listitem>
-<listitem><para>Further fixes for <literal>x FULL JOIN y ON true</> corner
-cases</para></listitem>
-<listitem><para>Fix overenthusiastic optimization of <literal>x IN (SELECT
-DISTINCT ...)</> and related cases</para></listitem>
-<listitem><para>Fix mis-planning of queries with small <literal>LIMIT</>
-values due to poorly thought out <quote>fuzzy</> cost
-comparison</para></listitem>
-<listitem><para>Make <function>array_in</> and <function>array_recv</> more
-paranoid about validating their OID parameter</para></listitem>
-<listitem><para>Fix missing rows in queries like <literal>UPDATE a=... WHERE
-a...</> with GiST index on column <literal>a</></para></listitem>
-<listitem><para>Improve robustness of datetime parsing</para></listitem>
-<listitem><para>Improve checking for partially-written WAL
-pages</para></listitem>
-<listitem><para>Improve robustness of signal handling when SSL is
-enabled</para></listitem>
-<listitem><para>Improve MIPS and M68K spinlock code</para></listitem>
-<listitem><para>Don't try to open more than <literal>max_files_per_process</>
-files during postmaster startup</para></listitem>
-<listitem><para>Various memory leakage fixes</para></listitem>
-<listitem><para>Various portability improvements</para></listitem>
-<listitem><para>Update timezone data files</para></listitem>
-<listitem><para>Improve handling of DLL load failures on Windows</para></listitem>
-<listitem><para>Improve random-number generation on Windows</para></listitem>
-<listitem><para>Make <literal>psql -f filename</> return a nonzero exit code
-when opening the file fails</para></listitem>
-<listitem><para>Change <application>pg_dump</> to handle inherited check
-constraints more reliably</para></listitem>
-<listitem><para>Fix password prompting in <application>pg_restore</> on
-Windows</para></listitem>
-<listitem><para>Fix PL/pgSQL to handle <literal>var := var</> correctly when
-the variable is of pass-by-reference type</para></listitem>
-<listitem><para>Fix PL/Perl <literal>%_SHARED</> so it's actually
-shared</para></listitem>
-<listitem><para>Fix <filename>contrib/pg_autovacuum</> to allow sleep
-intervals over 2000 sec</para></listitem>
-<listitem><para>Update <filename>contrib/tsearch2</> to use current Snowball
-code</para></listitem>
-</itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-0-3">
-  <title>Release 8.0.3</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2005-05-09</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.0.2, including several
-   security-related issues.
-   For information about new features in the 8.0 major release, see
-   <xref linkend="release-8-0">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.0.3</title>
-
-   <para>
-    A dump/restore is not required for those running 8.0.X.  However,
-    it is one possible way of handling two significant security problems
-    that have been found in the initial contents of 8.0.X system
-    catalogs.  A dump/initdb/reload sequence using 8.0.3's initdb will
-    automatically correct these problems.
-   </para>
-
-   <para>
-    The larger security problem is that the built-in character set encoding
-    conversion functions can be invoked from SQL commands by unprivileged
-    users, but the functions were not designed for such use and are not
-    secure against malicious choices of arguments.  The fix involves changing
-    the declared parameter list of these functions so that they can no longer
-    be invoked from SQL commands.  (This does not affect their normal use
-    by the encoding conversion machinery.)
-   </para>
-
-   <para>
-    The lesser problem is that the <filename>contrib/tsearch2</> module
-    creates several functions that are improperly declared to return
-    <type>internal</> when they do not accept <type>internal</> arguments.
-    This breaks type safety for all functions using <type>internal</>
-    arguments.
-   </para>
-
-   <para>
-    It is strongly recommended that all installations repair these errors,
-    either by initdb or by following the manual repair procedure given
-    below.  The errors at least allow unprivileged database users to crash
-    their server process, and might allow unprivileged users to gain the
-    privileges of a database superuser.
-   </para>
-
-   <para>
-    If you wish not to do an initdb, perform the same manual repair
-    procedures shown in the <link linkend="release-7-4-8">7.4.8 release
-    notes</link>.
-   </para>
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-<itemizedlist>
-<listitem><para>Change encoding function signature to prevent
-misuse</para></listitem>
-<listitem><para>Change <filename>contrib/tsearch2</> to avoid unsafe use of
-<type>INTERNAL</> function results</para></listitem>
-<listitem><para>Guard against incorrect second parameter to
-<function>record_out</></para></listitem>
-<listitem><para>Repair ancient race condition that allowed a transaction to be
-seen as committed for some purposes (eg SELECT FOR UPDATE) slightly sooner
-than for other purposes</para>
-<para>This is an extremely serious bug since it could lead to apparent
-data inconsistencies being briefly visible to applications.</para></listitem>
-<listitem><para>Repair race condition between relation extension and
-VACUUM</para>
-<para>This could theoretically have caused loss of a page's worth of
-freshly-inserted data, although the scenario seems of very low probability.
-There are no known cases of it having caused more than an Assert failure.
-</para></listitem>
-<listitem><para>Fix comparisons of <type>TIME WITH TIME ZONE</> values</para>
-<para>
-The comparison code was wrong in the case where the
-<literal>--enable-integer-datetimes</> configuration switch had been used.
-NOTE: if you have an index on a <type>TIME WITH TIME ZONE</> column,
-it will need to be <command>REINDEX</>ed after installing this update, because
-the fix corrects the sort order of column values.
-</para></listitem>
-<listitem><para>Fix <function>EXTRACT(EPOCH)</> for
-<type>TIME WITH TIME ZONE</> values</para></listitem>
-<listitem><para>Fix mis-display of negative fractional seconds in
-<type>INTERVAL</> values</para>
-<para>
-This error only occurred when the
-<literal>--enable-integer-datetimes</> configuration switch had been used.
-</para></listitem>
-<listitem><para>Fix pg_dump to dump trigger names containing <literal>%</>
-correctly (Neil)</para></listitem>
-<listitem><para>Still more 64-bit fixes for
-<filename>contrib/intagg</></para></listitem>
-<listitem><para>Prevent incorrect optimization of functions returning
-<type>RECORD</></para></listitem>
-<listitem><para>Prevent crash on <literal>COALESCE(NULL,NULL)</></para></listitem>
-<listitem><para>Fix Borland makefile for libpq</para></listitem>
-<listitem><para>Fix <filename>contrib/btree_gist</> for <type>timetz</> type
-(Teodor)</para></listitem>
-<listitem><para>Make <command>pg_ctl</> check the PID found in
-<filename>postmaster.pid</> to see if it is still a live
-process</para></listitem>
-<listitem><para>Fix <command>pg_dump</>/<command>pg_restore</> problems caused
-by addition of dump timestamps</para></listitem>
-<listitem><para>Fix interaction between materializing holdable cursors and
-firing deferred triggers during transaction commit</para></listitem>
-<listitem><para>Fix memory leak in SQL functions returning pass-by-reference
-data types</para></listitem>
-</itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-0-2">
-  <title>Release 8.0.2</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2005-04-07</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.0.1.
-   For information about new features in the 8.0 major release, see
-   <xref linkend="release-8-0">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.0.2</title>
-
-   <para>
-    A dump/restore is not required for those running 8.0.*.
-    This release updates the major version number of the
-    <productname>PostgreSQL</productname> libraries, so it might be
-    necessary to re-link some user applications if they cannot
-    find the properly-numbered shared library.
-   </para>
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-<itemizedlist>
-<listitem><para>Increment the major version number of all interface
-libraries (Bruce)</para>
-<para>
-This should have been done in 8.0.0.  It is required so 7.4.X versions
-of PostgreSQL client applications, like <application>psql</>,
-can be used on the same machine as 8.0.X applications.  This might require
-re-linking user applications that use these libraries.
-</para></listitem>
-<listitem><para>Add Windows-only <varname>wal_sync_method</> setting of
-<option>fsync_writethrough</> (Magnus, Bruce)</para>
-<para>
-This setting causes <productname>PostgreSQL</productname> to write through
-any disk-drive write cache when writing to WAL.
-This behavior was formerly called <option>fsync</>, but was
-renamed because it acts quite differently from <option>fsync</> on other
-platforms.
-</para>
-</listitem>
-<listitem><para>Enable the <varname>wal_sync_method</> setting of
-<option>open_datasync</> on Windows, and make it the default for that
- platform (Magnus, Bruce)</para>
-<para>
-Because the default is no longer <option>fsync_writethrough</>,
-data loss is possible during a power failure if the disk drive has
-write caching enabled. To turn off the write cache on Windows,
-from the <application>Device Manager</>, choose the drive properties,
-then <literal>Policies</>.
-</para>
-</listitem>
-<listitem><para>New cache management algorithm <acronym>2Q</> replaces
-<acronym>ARC</> (Tom)</para>
-<para>
-This was done to avoid a pending US patent on <acronym>ARC</>.  The
-<acronym>2Q</> code might be a few percentage points slower than
-<acronym>ARC</> for some work loads.  A better cache management algorithm
-will appear in 8.1.
-</para></listitem>
-<listitem><para>Planner adjustments to improve behavior on freshly-created
-tables (Tom)</para></listitem>
-<listitem><para>Allow plpgsql to assign to an element of an array that is
-initially <literal>NULL</> (Tom)</para>
-<para>
-Formerly the array would remain <literal>NULL</>, but now it becomes a
-single-element array.  The main SQL engine was changed to handle
-<command>UPDATE</> of a null array value this way in 8.0, but the similar
-case in plpgsql was overlooked.
-</para>
-</listitem>
-<listitem><para>Convert <literal>\r\n</> and <literal>\r</> to <literal>\n</>
-in plpython function bodies (Michael Fuhr)</para>
-<para>
- This prevents syntax errors when plpython code is written on a Windows or
- Mac client.
-</para>
-</listitem>
-<listitem><para>Allow SPI cursors to handle utility commands that return rows,
-such as <command>EXPLAIN</> (Tom)</para></listitem>
-<listitem><para>Fix <command>CLUSTER</> failure after <command>ALTER TABLE
-SET WITHOUT OIDS</> (Tom)</para></listitem>
-<listitem><para>Reduce memory usage of <command>ALTER TABLE ADD COLUMN</>
-(Neil)</para></listitem>
-<listitem><para>Fix <command>ALTER LANGUAGE RENAME</> (Tom)</para></listitem>
-<listitem><para>Document the Windows-only <literal>register</> and
-<literal>unregister</> options of <application>pg_ctl</> (Magnus)</para></listitem>
-<listitem><para>Ensure operations done during backend shutdown are counted by
-statistics collector</para>
-<para>
-This is expected to resolve reports of <application>pg_autovacuum</>
-not vacuuming the system catalogs often enough &mdash; it was not being
-told about catalog deletions caused by temporary table removal during
-backend exit.
-</para></listitem>
-<listitem><para>Change the Windows default for configuration parameter
-<varname>log_destination</> to <option>eventlog</> (Magnus)</para>
-<para>
-By default, a server running on Windows will now send log output to the
-Windows event logger rather than standard error.
-</para></listitem>
-<listitem><para>Make Kerberos authentication work on Windows (Magnus)</para></listitem>
-<listitem><para>Allow <command>ALTER DATABASE RENAME</> by superusers
-who aren't flagged as having CREATEDB privilege (Tom)</para></listitem>
-<listitem><para>Modify WAL log entries for <command>CREATE</> and
-<command>DROP DATABASE</> to not specify absolute paths (Tom)</para>
-<para>This allows point-in-time recovery on a different machine with possibly
-different database location.  Note that <command>CREATE TABLESPACE</> still
-poses a hazard in such situations.
-</para></listitem>
-<listitem><para>Fix crash from a backend exiting with an open transaction
-that created a table and opened a cursor on it (Tom)</para></listitem>
-<listitem><para>Fix <function>array_map()</> so it can call PL functions
-(Tom)</para></listitem>
-<listitem><para>Several <filename>contrib/tsearch2</> and
-<filename>contrib/btree_gist</> fixes (Teodor)
-</para></listitem>
-<listitem><para>Fix crash of some <filename>contrib/pgcrypto</>
-functions on some platforms (Marko Kreen)</para></listitem>
-<listitem><para>Fix <filename>contrib/intagg</> for 64-bit platforms
-(Tom)</para></listitem>
-<listitem><para>Fix ecpg bugs in parsing of <command>CREATE</> statement
-(Michael)</para></listitem>
-<listitem><para>Work around gcc bug on powerpc and amd64 causing problems in
-ecpg (Christof Petig)</para></listitem>
-<listitem><para>Do not use locale-aware versions of <function>upper()</>,
-<function>lower()</>, and <function>initcap()</> when the locale is
-<literal>C</> (Bruce)</para>
-<para>
- This allows these functions to work on platforms that generate errors
- for non-7-bit data when the locale is <literal>C</>.
-</para></listitem>
-<listitem><para>Fix <function>quote_ident()</> to quote names that match keywords (Tom)</para></listitem>
-<listitem><para>Fix <function>to_date()</> to behave reasonably when
-<literal>CC</> and <literal>YY</> fields are both used (Karel)</para></listitem>
-<listitem><para>Prevent <function>to_char(interval)</> from failing
-when given a zero-month interval (Tom)</para></listitem>
-<listitem><para>Fix wrong week returned by <function>date_trunc('week')</>
-(Bruce)</para>
-<para>
-<function>date_trunc('week')</>
-returned the wrong year for the first few days of January in some years.
-</para></listitem>
-<listitem><para>Use the correct default mask length for class <literal>D</>
-addresses in <type>INET</> data types (Tom)</para></listitem>
-</itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-0-1">
-  <title>Release 8.0.1</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2005-01-31</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.0.0, including several
-   security-related issues.
-   For information about new features in the 8.0 major release, see
-   <xref linkend="release-8-0">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.0.1</title>
-
-   <para>
-    A dump/restore is not required for those running 8.0.0.
-   </para>
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-<itemizedlist>
-<listitem><para>Disallow <command>LOAD</> to non-superusers</para>
-<para>
-On platforms that will automatically execute initialization functions of a
-shared library (this includes at least Windows and ELF-based Unixen),
-<command>LOAD</> can be used to make the server execute arbitrary code.
-Thanks to NGS Software for reporting this.</para></listitem>
-<listitem><para>Check that creator of an aggregate function has the right to
-execute the specified transition functions</para>
-<para>
-This oversight made it possible to bypass denial of EXECUTE
-permission on a function.</para></listitem>
-<listitem><para>Fix security and 64-bit issues in
-contrib/intagg</para></listitem>
-<listitem><para>Add needed STRICT marking to some contrib functions (Kris
-Jurka)</para></listitem>
-<listitem><para>Avoid buffer overrun when plpgsql cursor declaration has too
-many parameters (Neil)</para></listitem>
-<listitem><para>Make <command>ALTER TABLE ADD COLUMN</> enforce domain
-constraints in all cases</para></listitem>
-<listitem><para>Fix planning error for FULL and RIGHT outer joins</para>
-<para>
-The result of the join was mistakenly supposed to be sorted the same as the
-left input.  This could not only deliver mis-sorted output to the user, but
-in case of nested merge joins could give outright wrong answers.
-</para></listitem>
-<listitem><para>Improve planning of grouped aggregate queries</para></listitem>
-<listitem><para><command>ROLLBACK TO <replaceable>savepoint</></command>
-closes cursors created since the savepoint</para></listitem>
-<listitem><para>Fix inadequate backend stack size on Windows</para></listitem>
-<listitem><para>Avoid SHGetSpecialFolderPath() on Windows
-(Magnus)</para></listitem>
-<listitem><para>Fix some problems in running pg_autovacuum as a Windows
-service (Dave Page)</para></listitem>
-<listitem><para>Multiple minor bug fixes in
-pg_dump/pg_restore</para></listitem>
-<listitem><para>Fix ecpg segfault with named structs used in
-typedefs (Michael)</para></listitem>
-</itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-0">
-  <title>Release 8.0</title>
-
-  <formalpara>
-   <title>Release date:</title>
-   <para>2005-01-19</para>
-  </formalpara>
-
-  <sect2>
-   <title>Overview</title>
-
-   <para>
-    Major changes in this release:
-   </para>
-
-   <variablelist>
-    <varlistentry>
-     <term>
-      Microsoft Windows Native Server
-     </term>
-
-     <listitem>
-      <para>
-       This is the first <productname>PostgreSQL</productname> release
-       to run natively on <trademark class="registered">Microsoft Windows</> as
-       a server. It can run as a <productname>Windows</> service. This
-       release supports NT-based Windows releases like
-       <productname>Windows 2000 SP4</>, <productname>Windows XP</>, and
-       <productname>Windows 2003</>. Older releases like
-       <productname>Windows 95</>, <productname>Windows 98</>, and
-       <productname>Windows ME</> are not supported because these operating
-       systems do not have the infrastructure to support
-       <productname>PostgreSQL</productname>. A separate installer
-       project has been created to ease installation on
-       <productname>Windows</> &mdash; see <ulink
-       url="http://www.postgresql.org/ftp/win32/"></ulink>.
-      </para>
-
-      <para>
-       Although tested throughout our release cycle, the Windows port
-       does not have the benefit of years of use in production
-       environments that <productname>PostgreSQL</productname> has on
-       Unix platforms.  Therefore it should be treated with the same
-       level of caution as you would a new product.
-      </para>
-
-      <para>
-       Previous releases required the Unix emulation toolkit
-       <productname>Cygwin</> in order to run the server on Windows
-       operating systems.  <productname>PostgreSQL</productname> has
-       supported native clients on Windows for many years.
-      </para>
-     </listitem>
-    </varlistentry>
-
-    <varlistentry>
-     <term>
-      Savepoints
-     </term>
-
-     <listitem>
-      <para>
-       Savepoints allow specific parts of a transaction to be aborted
-       without affecting the remainder of the transaction. Prior
-       releases had no such capability; there was no way to recover
-       from a statement failure within a transaction except by
-       aborting the whole transaction. This feature is valuable for
-       application writers who require error recovery within a
-       complex transaction.
-      </para>
-     </listitem>
-    </varlistentry>
-
-    <varlistentry>
-     <term>
-      Point-In-Time Recovery
-     </term>
-
-     <listitem>
-      <para>
-       In previous releases there was no way to recover from disk
-       drive failure except to restore from a previous backup or use
-       a standby replication server.  Point-in-time recovery allows
-       continuous backup of the server.  You can recover either to
-       the point of failure or to some transaction in the past.
-      </para>
-     </listitem>
-    </varlistentry>
-
-    <varlistentry>
-     <term>
-      Tablespaces
-     </term>
-
-     <listitem>
-      <para>
-       Tablespaces allow administrators to select different file systems
-       for storage of individual tables, indexes, and databases.
-       This improves performance and control over disk space
-       usage. Prior releases used <application>initlocation</> and
-       manual symlink management for such tasks.
-      </para>
-     </listitem>
-    </varlistentry>
-
-    <varlistentry>
-     <term>
-      Improved Buffer Management, <command>CHECKPOINT</command>,
-      <command>VACUUM</command>
-     </term>
-
-     <listitem>
-      <para>
-       This release has a more intelligent buffer replacement strategy,
-       which will make better use of available shared buffers and
-       improve performance. The performance impact of vacuum and
-       checkpoints is also lessened.
-      </para>
-     </listitem>
-    </varlistentry>
-
-    <varlistentry>
-     <term>
-      Change Column Types
-     </term>
-
-     <listitem>
-      <para>
-       A column's data type can now be changed with <command>ALTER
-       TABLE</command>.
-      </para>
-     </listitem>
-    </varlistentry>
-
-    <varlistentry>
-     <term>
-      New Perl Server-Side Language
-     </term>
-
-     <listitem>
-      <para>
-       A new version of the <application>plperl</> server-side language now
-       supports a persistent shared storage area, triggers, returning records
-       and arrays of records, and SPI calls to access the database.
-      </para>
-     </listitem>
-    </varlistentry>
-
-    <varlistentry>
-     <term>
-       Comma-separated-value (CSV) support in <command>COPY</command>
-     </term>
-
-     <listitem>
-      <para>
-       <command>COPY</command> can now read and write
-       comma-separated-value files. It has the flexibility to
-       interpret nonstandard quoting and separation characters too.
-      </para>
-     </listitem>
-    </varlistentry>
-
-   </variablelist>
-  </sect2>
-
-  <sect2>
-   <title>Migration to Version 8.0</title>
-
-   <para>
-    A dump/restore using <application>pg_dump</application> is
-    required for those wishing to migrate data from any previous
-    release.
-   </para>
-
-   <para>
-    Observe the following incompatibilities:
-   </para>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      In <option>READ COMMITTED</> serialization mode, volatile functions
-      now see the results of concurrent transactions committed up to the
-      beginning of each statement within the function, rather than up to the
-      beginning of the interactive command that called the function.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Functions declared <option>STABLE</> or <option>IMMUTABLE</> always
-      use the snapshot of the calling query, and therefore do not see the
-      effects of actions taken after the calling query starts, whether in
-      their own transaction or other transactions.  Such a function must be
-      read-only, too, meaning that it cannot use any SQL commands other than
-      <command>SELECT</>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Nondeferred <option>AFTER</> triggers are now fired immediately
-      after completion of the triggering query, rather than upon
-      finishing the current interactive command. This makes a
-      difference when the triggering query occurred within a function:
-      the trigger is invoked before the function proceeds to its next
-      operation.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Server configuration parameters <varname>virtual_host</> and
-      <varname>tcpip_socket</> have been replaced with a more general
-      parameter <varname>listen_addresses</>. Also, the server now listens on
-      <literal>localhost</> by default, which eliminates the need for the
-      <literal>-i</> postmaster switch in many scenarios.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Server configuration parameters <varname>SortMem</> and
-      <varname>VacuumMem</> have been renamed to <varname>work_mem</>
-      and <varname>maintenance_work_mem</> to better reflect their
-      use. The original names are still supported in
-      <command>SET</command> and <command>SHOW</command>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Server configuration parameters <varname>log_pid</>,
-      <varname>log_timestamp</>, and <varname>log_source_port</> have been
-      replaced with a more general parameter <varname>log_line_prefix</>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Server configuration parameter <varname>syslog</> has been
-      replaced with a more logical <varname>log_destination</> variable to
-      control the log output destination.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Server configuration parameter <varname>log_statement</> has been
-      changed so it can selectively log just database modification or
-      data definition statements.  Server configuration parameter
-      <varname>log_duration</> now prints only when <varname>log_statement</>
-      prints the query.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Server configuration parameter <varname>max_expr_depth</> parameter has
-      been replaced with <varname>max_stack_depth</> which measures the
-      physical stack size rather than the expression nesting depth. This
-      helps prevent session termination due to stack overflow caused by
-      recursive functions.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      The <function>length()</> function no longer counts trailing spaces in
-      <type>CHAR(n)</> values.
-     </para>
-    </listitem>
-
-   <listitem>
-    <para>
-     Casting an integer to <type>BIT(N)</> selects the rightmost N bits of the
-     integer, not the leftmost N bits as before.
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>
-     Updating an element or slice of a NULL array value now produces
-     a nonnull array result, namely an array containing
-     just the assigned-to positions.
-    </para>
-   </listitem>
-
-    <listitem>
-     <para>
-      Syntax checking of array input values has been tightened up
-      considerably. Junk that was previously allowed in odd places with
-      odd results now causes an error. Empty-string element values
-      must now be written as <literal>""</>, rather than writing nothing.
-      Also changed behavior with respect to whitespace surrounding
-      array elements: trailing whitespace is now ignored, for symmetry
-      with leading whitespace (which has always been ignored).
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Overflow in integer arithmetic operations is now detected and
-      reported as an error.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      The arithmetic operators associated with the single-byte
-      <type>"char"</> data type have been removed.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      The <function>extract()</> function (also called
-      <function>date_part</>) now returns the proper year for BC dates.
-      It previously returned one less than the correct year. The
-      function now also returns the proper values for millennium and
-      century.
-     </para>
-    </listitem>
-
-   <listitem>
-    <para>
-     <type>CIDR</> values now must have their nonmasked bits be zero.
-     For example, we no longer allow
-     <literal>204.248.199.1/31</literal> as a <type>CIDR</> value. Such
-     values should never have been accepted by
-     <productname>PostgreSQL</productname> and will now be rejected.
-    </para>
-   </listitem>
-
-    <listitem>
-     <para>
-      <command>EXECUTE</command> now returns a completion tag that
-      matches the executed statement.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      <application>psql</>'s <command>\copy</> command now reads or
-      writes to the query's <literal>stdin/stdout</>, rather than
-      <application>psql</>'s <literal>stdin/stdout</>. The previous
-      behavior can be accessed via new
-      <option>pstdin</>/<option>pstdout</> parameters.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-     The JDBC client interface has been removed from the core
-     distribution, and is now hosted at <ulink url=
-     "http://jdbc.postgresql.org"></ulink>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-     The Tcl client interface has also been removed. There are several
-     Tcl interfaces now hosted at <ulink url=
-     "http://gborg.postgresql.org"></ulink>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      The server now uses its own time zone database, rather than the
-      one supplied by the operating system. This will provide consistent
-      behavior across all platforms.  In most cases, there should be
-      little noticeable difference in time zone behavior, except that
-      the time zone names used by <command>SET</>/<command>SHOW</>
-      <varname>TimeZone</> might be different from what your platform provides.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      <application>Configure</>'s threading option no longer requires
-      users to run tests or edit configuration files; threading options
-      are now detected automatically.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Now that tablespaces have been implemented,
-      <application>initlocation</> has been removed.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      The API for user-defined GiST indexes has been changed. The
-      Union and PickSplit methods are now passed a pointer to a
-      special <structname>GistEntryVector</structname> structure,
-      rather than a <type>bytea</type>.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-  </sect2>
-
- <sect2>
-  <title>Deprecated Features</title>
-
-  <para>
-    Some aspects of <productname>PostgreSQL</productname>'s behavior
-    have been determined to be suboptimal. For the sake of backward
-    compatibility these have not been removed in 8.0, but they are
-    considered deprecated and will be removed in the next major
-    release.
-    </para>
-
-   <itemizedlist>
-    <listitem>
-     <para>
-      The 8.1 release will remove the <function>to_char()</> function
-      for intervals.
-     </para>
-    </listitem>
-
-     <listitem>
-      <para>
-       The server now warns of empty strings passed to
-       <type>oid</type>/<type>float4</type>/<type>float8</type> data
-       types, but continues to interpret them as zeroes as before.
-       In the next major release, empty strings will be considered
-       invalid input for these data types.
-      </para>
-     </listitem>
-
-    <listitem>
-     <para>
-      By default, tables in <productname>PostgreSQL</productname> 8.0
-      and earlier are created with <type>OID</>s. In the next release,
-      this will <emphasis>not</emphasis> be the case: to create a table
-      that contains <type>OID</>s, the <option>WITH OIDS</> clause must
-      be specified or the <varname>default_with_oids</varname>
-      configuration parameter must be set. Users are encouraged to
-      explicitly specify <option>WITH OIDS</> if their tables
-      require OIDs for compatibility with future releases of
-      <productname>PostgreSQL</productname>.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <para>
-    Below you will find a detailed account of the changes between
-    release 8.0 and the previous major release.
-   </para>
-
-   <sect3>
-    <title>Performance Improvements</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Support cross-data-type index usage (Tom)
-      </para>
-      <para>
-       Before this change, many queries would not use an index if the data
-       types did not match exactly. This improvement makes index usage more
-       intuitive and consistent.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       New buffer replacement strategy that improves caching (Jan)
-      </para>
-      <para>
-       Prior releases used a least-recently-used (LRU) cache to keep
-       recently referenced pages in memory. The LRU algorithm
-       did not consider the number of times a specific cache entry was
-       accessed, so large table scans could force out useful cache pages.
-       The new cache algorithm uses four separate lists to track most
-       recently used and most frequently used cache pages and dynamically
-       optimize their replacement based on the work load. This should
-       lead to much more efficient use of the shared buffer cache.
-       Administrators who have tested shared buffer sizes in the past
-       should retest with this new cache replacement policy.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add subprocess to write dirty buffers periodically to reduce
-       checkpoint writes (Jan)
-      </para>
-      <para>
-       In previous releases, the checkpoint process, which runs every few
-       minutes, would write all dirty buffers to the operating system's
-       buffer cache then flush all dirty operating system buffers to
-       disk. This resulted in a periodic spike in disk usage that often
-       hurt performance. The new code uses a background writer to trickle
-       disk writes at a steady pace so checkpoints have far fewer dirty
-       pages to write to disk. Also, the new code does not issue a global
-       <function>sync()</> call, but instead <function>fsync()</>s just
-       the files written since the last checkpoint. This should improve
-       performance and minimize degradation during checkpoints.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add ability to prolong vacuum to reduce performance impact (Jan)
-      </para>
-      <para>
-       On busy systems, <command>VACUUM</command> performs many I/O
-       requests which can hurt performance for other users. This
-       release allows you to slow down <command>VACUUM</command> to
-       reduce its impact on other users, though this increases the
-       total duration of <command>VACUUM</command>.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Improve B-tree index performance for duplicate keys (Dmitry Tkach, Tom)
-      </para>
-      <para>
-       This improves the way indexes are scanned when many duplicate
-       values exist in the index.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Use dynamically-generated table size estimates while planning (Tom)
-      </para>
-      <para>
-       Formerly the planner estimated table sizes using the values seen
-       by the last <command>VACUUM</command> or <command>ANALYZE</command>,
-       both as to physical table size (number of pages) and number of rows.
-       Now, the current physical table size is obtained from the kernel,
-       and the number of rows is estimated by multiplying the table size
-       by the row density (rows per page) seen by the last
-       <command>VACUUM</command> or <command>ANALYZE</command>.  This should
-       produce more reliable estimates in cases where the table size has
-       changed significantly since the last housekeeping command.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Improved index usage with <literal>OR</> clauses (Tom)
-      </para>
-      <para>
-       This allows the optimizer to use indexes in statements with many OR
-       clauses that would not have been indexed in the past.  It can also use
-       multi-column indexes where the first column is specified and the second
-       column is part of an <literal>OR</> clause.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Improve matching of partial index clauses (Tom)
-      </para>
-      <para>
-       The server is now smarter about using partial indexes in queries
-       involving complex <option>WHERE</> clauses.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Improve performance of the GEQO optimizer (Tom)
-      </para>
-      <para>
-       The GEQO optimizer is used to plan queries involving many tables (by
-       default, twelve or more). This release speeds up the way queries are
-       analyzed to decrease time spent in optimization.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Miscellaneous optimizer improvements
-      </para>
-      <para>
-       There is not room here to list all the minor improvements made, but
-       numerous special cases work better than in prior releases.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Improve lookup speed for C functions (Tom)
-      </para>
-      <para>
-       This release uses a hash table to lookup information for dynamically
-       loaded C functions. This improves their speed so they perform nearly as
-       quickly as functions that are built into the server executable.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add type-specific <command>ANALYZE</command> statistics
-       capability (Mark Cave-Ayland)
-      </para>
-      <para>
-       This feature allows more flexibility in generating statistics
-       for nonstandard data types.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       <command>ANALYZE</command> now collects statistics for
-       expression indexes (Tom)
-      </para>
-      <para>
-       Expression indexes (also called functional indexes) allow users to
-       index not just columns but the results of expressions and function
-       calls. With this release, the optimizer can gather and use statistics
-       about the contents of expression indexes.  This will greatly improve
-       the quality of planning for queries in which an expression index is
-       relevant.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       New two-stage sampling method for <command>ANALYZE</command>
-       (Manfred Koizar)
-      </para>
-      <para>
-       This gives better statistics when the density of valid rows is very
-       different in different regions of a table.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Speed up <command>TRUNCATE</command> (Tom)
-      </para>
-      <para>
-       This buys back some of the performance loss observed in 7.4, while still
-       keeping <command>TRUNCATE</command> transaction-safe.
-      </para>
-     </listitem>
-
-    </itemizedlist>
-   </sect3>
-
-
-   <sect3>
-    <title>Server Changes</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Add WAL file archiving and point-in-time recovery (Simon Riggs)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add tablespaces so admins can control disk layout (Gavin)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add a built-in log rotation program (Andreas Pflug)
-      </para>
-      <para>
-       It is now possible to log server messages conveniently without
-       relying on either <application>syslog</> or an external log
-       rotation program.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add new read-only server configuration parameters to show server
-       compile-time settings: <varname>block_size</>,
-       <varname>integer_datetimes</>, <varname>max_function_args</>,
-       <varname>max_identifier_length</>, <varname>max_index_keys</>  (Joe)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Make quoting of <literal>sameuser</>, <literal>samegroup</>, and
-       <literal>all</> remove special meaning of these terms in
-       <filename>pg_hba.conf</> (Andrew)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Use clearer IPv6 name <literal>::1/128</> for
-       <literal>localhost</> in default <filename>pg_hba.conf</> (Andrew)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Use CIDR format in <filename>pg_hba.conf</> examples (Andrew)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Rename server configuration parameters <varname>SortMem</> and
-       <varname>VacuumMem</> to <varname>work_mem</> and
-       <varname>maintenance_work_mem</> (Old names still supported) (Tom)
-      </para>
-      <para>
-       This change was made to clarify that bulk operations such as index and
-       foreign key creation use <varname>maintenance_work_mem</>, while
-       <varname>work_mem</> is for workspaces used during query execution.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow logging of session disconnections using server configuration
-       <varname>log_disconnections</> (Andrew)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add new server configuration parameter <varname>log_line_prefix</> to
-       allow control of information emitted in each log line (Andrew)
-      </para>
-      <para>
-       Available information includes user name, database name, remote IP
-       address, and session start time.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Remove server configuration parameters <varname>log_pid</>,
-       <varname>log_timestamp</>, <varname>log_source_port</>; functionality
-       superseded by <varname>log_line_prefix</> (Andrew)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Replace the <varname>virtual_host</> and <varname>tcpip_socket</>
-       parameters with a unified <varname>listen_addresses</> parameter
-       (Andrew, Tom)
-      </para>
-      <para>
-       <varname>virtual_host</> could only specify a single IP address to
-       listen on.  <varname>listen_addresses</> allows multiple addresses
-       to be specified.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Listen on localhost by default, which eliminates the need for the
-       <option>-i</> postmaster switch in many scenarios (Andrew)
-      </para>
-      <para>
-       Listening on localhost (<literal>127.0.0.1</>) opens no new
-       security holes but allows configurations like Windows and JDBC,
-       which do not support local sockets, to work without special
-       adjustments.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Remove <varname>syslog</> server configuration parameter, and add more
-       logical <varname>log_destination</> variable to control log output
-       location (Magnus)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Change server configuration parameter <varname>log_statement</> to take
-       values <varname>all</>, <varname>mod</>, <varname>ddl</>, or
-       <varname>none</> to select which queries are logged (Bruce)
-      </para>
-      <para>
-       This allows administrators to log only data definition changes or
-       only data modification statements.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Some logging-related configuration parameters could formerly be adjusted
-       by ordinary users, but only in the <quote>more verbose</> direction.
-       They are now treated more strictly: only superusers can set them.
-       However, a superuser can use <command>ALTER USER</> to provide per-user
-       settings of these values for non-superusers.  Also, it is now possible
-       for superusers to set values of superuser-only configuration parameters
-       via <literal>PGOPTIONS</>.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow configuration files to be placed outside the data directory (mlw)
-      </para>
-      <para>
-       By default, configuration files are kept in the cluster's top directory.
-       With this addition, configuration files can be placed outside the
-       data directory, easing administration.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Plan prepared queries only when first executed so constants can be
-       used for statistics (Oliver Jowett)
-      </para>
-      <para>
-       Prepared statements plan queries once and execute them many
-       times. While prepared queries avoid the overhead of re-planning
-       on each use, the quality of the plan suffers from not knowing the exact
-       parameters to be used in the query.  In this release, planning of
-       unnamed prepared statements is delayed until the first execution,
-       and the actual parameter values of that execution are used as
-       optimization hints.  This allows use of out-of-line parameter passing
-       without incurring a performance penalty.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow <command>DECLARE CURSOR</command> to take parameters
-       (Oliver Jowett)
-      </para>
-      <para>
-       It is now useful to issue <command>DECLARE CURSOR</command> in a
-       <function>Parse</> message with parameters. The parameter values
-       sent at <function>Bind</> time will be substituted into the
-       execution of the cursor's query.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Fix hash joins and aggregates of <type>inet</type> and
-       <type>cidr</type> data types (Tom)
-      </para>
-      <para>
-       Release 7.4 handled hashing of mixed <type>inet</type> and
-       <type>cidr</type> values incorrectly.  (This bug did not exist
-       in prior releases because they wouldn't try to hash either
-       data type.)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Make <varname>log_duration</> print only when <varname>log_statement</>
-       prints the query (Ed L.)
-      </para>
-     </listitem>
-
-    </itemizedlist>
-   </sect3>
-
-
-   <sect3>
-    <title>Query Changes</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Add savepoints (nested transactions) (Alvaro)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Unsupported isolation levels are now accepted and promoted to the
-       nearest supported level (Peter)
-      </para>
-      <para>
-       The SQL specification states that if a database doesn't support a
-       specific isolation level, it should use the next more restrictive level.
-       This change complies with that recommendation.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow <command>BEGIN WORK</command> to specify transaction
-       isolation levels like <command>START TRANSACTION</command> does
-       (Bruce)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Fix table permission checking for cases in which rules generate
-       a query type different from the originally submitted query (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Implement dollar quoting to simplify single-quote usage (Andrew, Tom,
-       David Fetter)
-      </para>
-      <para>
-       In previous releases, because single quotes had to be used to
-       quote a function's body, the use of single quotes inside the
-       function text required use of two single quotes or other error-prone
-       notations. With this release we add the ability to use "dollar
-       quoting" to quote a block of text.  The ability to use different
-       quoting delimiters at different nesting levels greatly simplifies
-       the task of quoting correctly, especially in complex functions.
-       Dollar quoting can be used anywhere quoted text is needed.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Make <literal>CASE val WHEN compval1 THEN ...</> evaluate <literal>val</> only once (Tom)
-      </para>
-      <para>
-       <option>CASE</> no longer evaluates the tested expression multiple
-       times. This has benefits when the expression is complex or is
-       volatile.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Test <option>HAVING</> before computing target list of an
-       aggregate query (Tom)
-      </para>
-      <para>
-       Fixes improper failure of cases such as <literal>SELECT SUM(win)/SUM(lose)
-       ... GROUP BY ... HAVING SUM(lose) &gt; 0</>.  This should work but formerly
-       could fail with divide-by-zero.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Replace <varname>max_expr_depth</> parameter with
-       <varname>max_stack_depth</> parameter, measured in kilobytes of stack
-       size (Tom)
-      </para>
-      <para>
-      This gives us a fairly bulletproof defense against crashing due to
-      runaway recursive functions. Instead of measuring the depth of expression
-      nesting, we now directly measure the size of the execution stack.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow arbitrary row expressions (Tom)
-      </para>
-      <para>
-       This release allows SQL expressions to contain arbitrary composite
-       types, that is, row values. It also allows functions to more easily
-       take rows as arguments and return row values.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow <option>LIKE</>/<option>ILIKE</> to be used as the operator
-       in row and subselect comparisons (Fabien Coelho)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Avoid locale-specific case conversion of basic ASCII letters in
-       identifiers and keywords (Tom)
-      </para>
-      <para>
-       This solves the <quote>Turkish problem</> with mangling of words
-       containing <literal>I</> and  <literal>i</>.  Folding of characters
-       outside the 7-bit-ASCII set is still locale-aware.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Improve syntax error reporting (Fabien, Tom)
-      </para>
-      <para>
-       Syntax error reports are more useful than before.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Change <command>EXECUTE</command> to return a completion tag
-       matching the executed statement (Kris Jurka)
-      </para>
-      <para>
-       Previous releases return an <command>EXECUTE</command> tag for
-       any <command>EXECUTE</command> call. In this release, the tag
-       returned will reflect the command executed.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Avoid emitting <option>NATURAL CROSS JOIN</> in rule listings (Tom)
-      </para>
-      <para>
-       Such a clause makes no logical sense, but in some cases the rule
-       decompiler formerly produced this syntax.
-      </para>
-     </listitem>
-
-    </itemizedlist>
-   </sect3>
-
-
-   <sect3>
-    <title>Object Manipulation Changes</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Add <command>COMMENT ON</> for casts, conversions, languages,
-       operator classes, and large objects (Christopher)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add new server configuration parameter <varname>default_with_oids</> to
-       control whether tables are created with <type>OID</>s by default (Neil)
-      </para>
-      <para>
-       This allows administrators to control whether <command>CREATE
-       TABLE</command> commands create tables with or without <type>OID</>
-       columns by default.  (Note: the current factory default setting for
-       <varname>default_with_oids</> is <literal>TRUE</>, but the default
-       will become <literal>FALSE</> in future releases.)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <option>WITH</> / <option>WITHOUT OIDS</> clause to
-       <command>CREATE TABLE AS</command> (Neil)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow <command>ALTER TABLE DROP COLUMN</> to drop an <type>OID</>
-       column (<command>ALTER TABLE SET WITHOUT OIDS</> still works)
-       (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow composite types as table columns (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow <command>ALTER ... ADD COLUMN</> with defaults and
-       <option>NOT NULL</> constraints; works per SQL spec (Rod)
-      </para>
-      <para>
-       It is now possible for <option>ADD COLUMN</> to create a column
-       that is not initially filled with NULLs, but with a specified
-       default value.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <command>ALTER COLUMN TYPE</> to change column's type (Rod)
-      </para>
-      <para>
-       It is now possible to alter a column's data type without dropping
-       and re-adding the column.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow multiple <command>ALTER</> actions in a single <command>ALTER
-       TABLE</command> command (Rod)
-      </para>
-      <para>
-       This is particularly useful for <command>ALTER</> commands that
-       rewrite the table (which include <option>ALTER COLUMN TYPE</> and
-       <option>ADD COLUMN</> with a default). By grouping
-       <command>ALTER</> commands together, the table need be rewritten
-       only once.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow <command>ALTER TABLE</command> to add <type>SERIAL</type>
-       columns (Tom)
-      </para>
-      <para>
-       This falls out from the new capability of specifying defaults for new
-       columns.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow changing the owners of aggregates, conversions, databases,
-       functions, operators, operator classes, schemas, types, and tablespaces
-       (Christopher, Euler Taveira de Oliveira)
-      </para>
-      <para>
-       Previously this required modifying the system tables directly.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow temporary object creation to be limited to <option>SECURITY
-       DEFINER</> functions (Sean Chittenden)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <option>ALTER TABLE ... SET WITHOUT CLUSTER</> (Christopher)
-      </para>
-      <para>
-       Prior to this release, there was no way to clear an auto-cluster
-       specification except to modify the system tables.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Constraint/Index/<type>SERIAL</> names are now
-       <replaceable>table_column_type</>
-       with numbers appended to guarantee uniqueness within the schema
-       (Tom)
-      </para>
-      <para>
-       The SQL specification states that such names should be unique
-       within a schema.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <function>pg_get_serial_sequence()</> to return a
-       <type>SERIAL</> column's sequence name (Christopher)
-      </para>
-      <para>
-       This allows automated scripts to reliably find the <type>SERIAL</>
-       sequence name.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Warn when primary/foreign key data type mismatch requires costly lookup
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       New <command>ALTER INDEX</> command to allow moving of indexes
-       between tablespaces (Gavin)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Make <command>ALTER TABLE OWNER</> change dependent sequence
-       ownership too (Alvaro)
-      </para>
-     </listitem>
-
-
-    </itemizedlist>
-   </sect3>
-
-
-   <sect3>
-    <title>Utility Command Changes</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Allow <command>CREATE SCHEMA</command> to create triggers,
-       indexes, and sequences (Neil)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <option>ALSO</> keyword to <command>CREATE RULE</command> (Fabien
-       Coelho)
-      </para>
-      <para>
-       This allows <option>ALSO</> to be added to rule creation to contrast it with
-       <option>INSTEAD</> rules.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <option>NOWAIT</> option to <command>LOCK</command> (Tatsuo)
-      </para>
-      <para>
-       This allows the <command>LOCK</command> command to fail if it
-       would have to wait for the requested lock.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow <command>COPY</command> to read and write
-       comma-separated-value (CSV) files (Andrew, Bruce)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Generate error if the <command>COPY</command> delimiter and NULL
-       string conflict (Bruce)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       <command>GRANT</command>/<command>REVOKE</command> behavior
-       follows the SQL spec more closely
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Avoid locking conflict between <command>CREATE INDEX</command>
-       and <command>CHECKPOINT</command> (Tom)
-      </para>
-      <para>
-       In 7.3 and 7.4, a long-running B-tree index build could block concurrent
-       <command>CHECKPOINT</>s from completing, thereby causing WAL bloat because the
-       WAL log could not be recycled.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Database-wide <command>ANALYZE</command> does not hold locks
-       across tables (Tom)
-      </para>
-      <para>
-       This reduces the potential for deadlocks against other backends
-       that want exclusive locks on tables.  To get the benefit of this
-       change, do not execute database-wide <command>ANALYZE</command>
-       inside a transaction block (<command>BEGIN</command> block); it
-       must be able to commit and start a new transaction for each
-       table.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       <command>REINDEX</command> does not exclusively lock the index's
-       parent table anymore
-      </para>
-      <para>
-       The index itself is still exclusively locked, but readers of the
-       table can continue if they are not using the particular index
-       being rebuilt.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Erase MD5 user passwords when a user is renamed (Bruce)
-      </para>
-      <para>
-       <productname>PostgreSQL</productname> uses the user name as salt
-       when encrypting passwords via MD5. When a user's name is changed,
-       the salt will no longer match the stored MD5 password, so the
-       stored password becomes useless.  In this release a notice is
-       generated and the password is cleared.  A new password must then
-       be assigned if the user is to be able to log in with a password.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       New <application>pg_ctl</> <option>kill</> option for Windows (Andrew)
-      </para>
-      <para>
-       Windows does not have a <literal>kill</> command to send signals to
-       backends so this capability was added to <application>pg_ctl</>.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Information schema improvements
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <option>--pwfile</> option to
-       <application>initdb</application> so the initial password can be
-       set by GUI tools (Magnus)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Detect locale/encoding mismatch in
-       <application>initdb</application> (Peter)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <option>register</> command to <application>pg_ctl</> to
-       register Windows operating system service (Dave Page)
-      </para>
-     </listitem>
-
-    </itemizedlist>
-   </sect3>
-
-
-   <sect3>
-    <title>Data Type and Function Changes</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       More complete support for composite types (row types)  (Tom)
-      </para>
-      <para>
-       Composite values can be used in many places where only scalar values
-       worked before.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Reject nonrectangular array values as erroneous (Joe)
-      </para>
-      <para>
-       Formerly, <function>array_in</> would silently build a
-       surprising result.
-      </para>
-     </listitem>
-
-      <listitem>
-       <para>
-        Overflow in integer arithmetic operations is now detected (Tom)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        The arithmetic operators associated with the single-byte
-        <type>"char"</> data type have been removed.
-       </para>
-       <para>
-        Formerly, the parser would select these operators in many situations
-        where an <quote>unable to select an operator</> error would be more
-        appropriate, such as <literal>null * null</>.  If you actually want
-        to do arithmetic on a <type>"char"</> column, you can cast it to
-        integer explicitly.
-       </para>
-      </listitem>
-
-     <listitem>
-       <para>
-        Syntax checking of array input values considerably tightened up (Joe)
-       </para>
-      <para>
-        Junk that was previously allowed in odd places with odd results
-        now causes an <literal>ERROR</>, for example, non-whitespace
-        after the closing right brace.
-       </para>
-     </listitem>
-
-     <listitem>
-       <para>
-        Empty-string array element values must now be written as
-        <literal>""</>, rather than writing nothing (Joe)
-       </para>
-      <para>
-        Formerly, both ways of writing an empty-string element value were
-        allowed, but now a quoted empty string is required.  The case where
-        nothing at all appears will probably be considered to be a NULL
-        element value in some future release.
-       </para>
-     </listitem>
-
-     <listitem>
-       <para>
-        Array element trailing whitespace is now ignored (Joe)
-       </para>
-      <para>
-        Formerly leading whitespace was ignored, but trailing whitespace
-        between an element value and the delimiter or right brace was
-        significant.  Now trailing whitespace is also ignored.
-       </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Emit array values with explicit array bounds when lower bound is not one
-       (Joe)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Accept <literal>YYYY-monthname-DD</> as a date string (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Make <function>netmask</> and <function>hostmask</> functions
-       return maximum-length mask length (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Change factorial function to return <type>numeric</type> (Gavin)
-      </para>
-      <para>
-       Returning <type>numeric</type> allows the factorial function to
-       work for a wider range of input values.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       <function>to_char</>/<function>to_date()</> date conversion
-       improvements (Kurt Roeckx, Fabien Coelho)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Make <function>length()</> disregard trailing spaces in
-       <type>CHAR(n)</> (Gavin)
-      </para>
-      <para>
-       This change was made to improve consistency: trailing spaces are
-       semantically insignificant in <type>CHAR(n)</> data, so they
-       should not be counted by <function>length()</>.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Warn about empty string being passed to
-       <type>OID</>/<type>float4</>/<type>float8</> data types (Neil)
-      </para>
-      <para>
-       8.1 will throw an error instead.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow leading or trailing whitespace in
-       <type>int2</>/<type>int4</>/<type>int8</>/<type>float4</>/<type>float8</>
-       input routines
-       (Neil)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Better support for IEEE <literal>Infinity</> and <literal>NaN</>
-       values in <type>float4</type>/<type>float8</type> (Neil)
-      </para>
-      <para>
-       These should now work on all platforms that support IEEE-compliant
-       floating point arithmetic.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <option>week</> option to <function>date_trunc()</> (Robert Creager)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Fix <function>to_char</function> for <literal>1 BC</>
-       (previously it returned <literal>1 AD</>) (Bruce)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Fix <function>date_part(year)</> for BC dates (previously it
-       returned one less than the correct year) (Bruce)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Fix <function>date_part()</> to return the proper millennium and
-       century (Fabien Coelho)
-      </para>
-      <para>
-       In previous versions, the century and millennium results had a wrong
-       number and started in the wrong year, as compared to standard
-       reckoning of such things.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <function>ceiling()</> as an alias for <function>ceil()</>,
-       and <function>power()</> as an alias for <function>pow()</> for
-       standards compliance (Neil)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Change <function>ln()</>, <function>log()</>,
-       <function>power()</>, and <function>sqrt()</> to emit the correct
-       <literal>SQLSTATE</> error codes for certain error conditions, as
-       specified by SQL:2003 (Neil)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <function>width_bucket()</> function as defined by SQL:2003 (Neil)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <function>generate_series()</> functions to simplify working
-       with numeric sets (Joe)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Fix <function>upper/lower/initcap()</> functions to work with
-       multibyte encodings (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add boolean and bitwise integer <option>AND</>/<option>OR</>
-       aggregates (Fabien Coelho)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       New session information functions to return network addresses for client
-       and server (Sean Chittenden)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add function to determine the area of a closed path (Sean Chittenden)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add function to send cancel request to other backends (Magnus)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <type>interval</> plus <type>datetime</> operators (Tom)
-      </para>
-      <para>
-       The reverse ordering, <type>datetime</> plus <type>interval</>,
-       was already supported, but both are required by the SQL standard.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Casting an integer to <type>BIT(N)</> selects the rightmost N bits
-       of the integer
-       (Tom)
-      </para>
-      <para>
-       In prior releases, the leftmost N bits were selected, but this was
-       deemed unhelpful, not to mention inconsistent with casting from bit
-       to int.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Require <type>CIDR</> values to have all nonmasked bits be zero
-       (Kevin Brintnall)
-      </para>
-     </listitem>
-
-    </itemizedlist>
-   </sect3>
-
-
-   <sect3>
-    <title>Server-Side Language Changes</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       In <literal>READ COMMITTED</> serialization mode, volatile functions
-       now see the results of concurrent transactions committed up to the
-       beginning of each statement within the function, rather than up to the
-       beginning of the interactive command that called the function.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Functions declared <literal>STABLE</> or <literal>IMMUTABLE</> always
-       use the snapshot of the calling query, and therefore do not see the
-       effects of actions taken after the calling query starts, whether in
-       their own transaction or other transactions.  Such a function must be
-       read-only, too, meaning that it cannot use any SQL commands other than
-       <command>SELECT</>.  There is a considerable performance gain from
-       declaring a function <literal>STABLE</> or <literal>IMMUTABLE</>
-       rather than <literal>VOLATILE</>.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Nondeferred <option>AFTER</> triggers are now fired immediately
-       after completion of the triggering query, rather than upon
-       finishing the current interactive command. This makes a difference
-       when the triggering query occurred within a function: the trigger
-       is invoked before the function proceeds to its next operation. For
-       example, if a function inserts a new row into a table, any
-       nondeferred foreign key checks occur before proceeding with the
-       function.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow function parameters to be declared with names (Dennis Bj&ouml;rklund)
-      </para>
-      <para>
-       This allows better documentation of functions.  Whether the names
-       actually do anything depends on the specific function language
-       being used.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow PL/pgSQL parameter names to be referenced in the function (Dennis Bj&ouml;rklund)
-      </para>
-      <para>
-       This basically creates an automatic alias for each named parameter.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Do minimal syntax checking of PL/pgSQL functions at creation time (Tom)
-      </para>
-      <para>
-       This allows us to catch simple syntax errors sooner.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       More support for composite types (row and record variables) in PL/pgSQL
-      </para>
-      <para>
-       For example, it now works to pass a rowtype variable to another function
-       as a single variable.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Default values for PL/pgSQL variables can now reference previously
-       declared variables
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Improve parsing of PL/pgSQL FOR loops (Tom)
-      </para>
-      <para>
-       Parsing is now driven by presence of <literal>".."</> rather than
-       data type of <option>FOR</> variable. This makes no difference for
-       correct functions, but should result in more understandable error
-       messages when a mistake is made.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Major overhaul of PL/Perl server-side language (Command Prompt, Andrew Dunstan)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       In PL/Tcl, SPI commands are now run in subtransactions.  If an error
-       occurs, the subtransaction is cleaned up and the error is reported
-       as an ordinary Tcl error, which can be trapped with <literal>catch</>.
-       Formerly, it was not possible to catch such errors.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Accept <command>ELSEIF</> in PL/pgSQL (Neil)
-      </para>
-      <para>
-       Previously PL/pgSQL only allowed <command>ELSIF</>, but many people
-       are accustomed to spelling this keyword <command>ELSEIF</>.
-      </para>
-     </listitem>
-
-    </itemizedlist>
-   </sect3>
-
-
-   <sect3>
-    <title><application>psql</> Changes</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Improve <application>psql</> information display about database
-       objects (Christopher)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow <application>psql</> to display group membership in
-       <command>\du</> and <command>\dg</> (Markus Bertheau)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Prevent <application>psql</> <command>\dn</command> from showing
-       temporary schemas (Bruce)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow <application>psql</> to handle tilde user expansion for file
-       names (Zach Irmen)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow <application>psql</> to display fancy prompts, including
-       color, via <application>readline</> (Reece Hart, Chet Ramey)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Make <application>psql</> <command>\copy</> match <command>COPY</command> command syntax
-       fully (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Show the location of syntax errors (Fabien Coelho, Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <command>CLUSTER</command> information to <application>psql</>
-       <command>\d</> display
-       (Bruce)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Change <application>psql</> <command>\copy stdin/stdout</> to read
-       from command input/output (Bruce)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <option>pstdin</>/<option>pstdout</> to read from
-       <application>psql</>'s <literal>stdin</>/<literal>stdout</> (Mark
-       Feit)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add global <application>psql</> configuration file, <filename>psqlrc.sample</filename>
-       (Bruce)
-      </para>
-      <para>
-       This allows a central file where global <application>psql</> startup commands can
-       be stored.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Have <application>psql</> <command>\d+</> indicate if the table
-       has an <type>OID</> column (Neil)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       On Windows, use binary mode in <application>psql</> when reading files so control-Z
-       is not seen as end-of-file
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Have <command>\dn+</> show permissions and description for schemas (Dennis
-       Bj&ouml;rklund)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Improve tab completion support (Stefan Kaltenbrunn, Greg Sabino Mullane)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow boolean settings to be set using upper or lower case (Michael Paesold)
-      </para>
-     </listitem>
-
-    </itemizedlist>
-   </sect3>
-
-
-   <sect3>
-    <title><application>pg_dump</> Changes</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Use dependency information to improve the reliability of
-       <application>pg_dump</> (Tom)
-      </para>
-      <para>
-       This should solve the longstanding problems with related objects
-       sometimes being dumped in the wrong order.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Have <application>pg_dump</> output objects in alphabetical order if possible (Tom)
-      </para>
-      <para>
-       This should make it easier to identify changes between
-       dump files.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow <application>pg_restore</> to ignore some SQL errors (Fabien Coelho)
-      </para>
-      <para>
-       This makes <application>pg_restore</>'s behavior similar to the
-       results of feeding a <application>pg_dump</> output script to
-       <application>psql</>. In most cases, ignoring errors and plowing
-       ahead is the most useful thing to do. Also added was a pg_restore
-       option to give the old behavior of exiting on an error.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       <application>pg_restore</> <option>-l</> display now includes
-       objects' schema names
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       New begin/end markers in <application>pg_dump</> text output (Bruce)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add start/stop times for
-       <application>pg_dump</>/<application>pg_dumpall</> in verbose mode
-       (Bruce)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow most <application>pg_dump</> options in
-       <application>pg_dumpall</> (Christopher)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Have <application>pg_dump</> use <command>ALTER OWNER</> rather
-       than <command>SET SESSION AUTHORIZATION</> by default
-       (Christopher)
-      </para>
-     </listitem>
-
-    </itemizedlist>
-   </sect3>
-
-
-   <sect3>
-    <title>libpq Changes</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Make libpq's <option>SIGPIPE</> handling thread-safe (Bruce)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <function>PQmbdsplen()</> which returns the display length
-       of a character (Tatsuo)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add thread locking to <application>SSL</> and
-       <application>Kerberos</> connections (Manfred Spraul)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow <function>PQoidValue()</>, <function>PQcmdTuples()</>, and
-       <function>PQoidStatus()</> to work on <command>EXECUTE</command>
-       commands (Neil)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <function>PQserverVersion()</> to provide more convenient
-       access to the server version number (Greg Sabino Mullane)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <function>PQprepare/PQsendPrepared()</> functions to support
-       preparing statements without necessarily specifying the data types
-       of their parameters (Abhijit Menon-Sen)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Many ECPG improvements, including <command>SET DESCRIPTOR</> (Michael)
-      </para>
-     </listitem>
-
-    </itemizedlist>
-   </sect3>
-
-
-   <sect3>
-    <title>Source Code Changes</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Allow the database server to run natively on Windows (Claudio, Magnus, Andrew)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Shell script commands converted to C versions for Windows support (Andrew)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Create an extension makefile framework (Fabien Coelho, Peter)
-      </para>
-      <para>
-       This simplifies the task of building extensions outside the original
-       source tree.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Support relocatable installations (Bruce)
-      </para>
-      <para>
-       Directory paths for installed files (such as the
-       <filename>/share</> directory) are now computed relative to the
-       actual location of the executables, so that an installation tree
-       can be moved to another place without reconfiguring and
-       rebuilding.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Use <option>--with-docdir</> to choose installation location of documentation; also
-       allow <option>--infodir</> (Peter)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <option>--without-docdir</> to prevent installation of documentation (Peter)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Upgrade to <application>DocBook</> V4.2 SGML (Peter)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       New <literal>PostgreSQL</> <application>CVS</> tag (Marc)
-      </para>
-      <para>
-       This was done to make it easier for organizations to manage their
-       own copies of the <productname>PostgreSQL</productname>
-       <application>CVS</> repository. File version stamps from the master
-       repository will not get munged by checking into or out of a copied
-       repository.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Clarify locking code (Manfred Koizar)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Buffer manager cleanup (Neil)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Decouple platform tests from CPU spinlock code (Bruce, Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add inlined test-and-set code on PA-RISC for <application>gcc</>
-       (ViSolve, Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Improve i386 spinlock code (Manfred Spraul)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Clean up spinlock assembly code to avoid warnings from newer
-       <application>gcc</> releases (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Remove JDBC from source tree; now a separate project
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Remove the libpgtcl client interface; now a separate project
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       More accurately estimate memory and file descriptor usage (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Improvements to the Mac OS X startup scripts (Ray A.)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       New <function>fsync()</> test program (Bruce)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Major documentation improvements (Neil, Peter)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Remove <application>pg_encoding</application>; not needed
-       anymore
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Remove <application>pg_id</application>; not needed anymore
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Remove <application>initlocation</application>; not needed
-       anymore
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Auto-detect thread flags (no more manual testing) (Bruce)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Use Olson's public domain <application>timezone</> library (Magnus)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       With threading enabled, use thread flags on Unixware for
-       backend executables too (Bruce)
-      </para>
-      <para>
-       Unixware cannot mix threaded and nonthreaded object files in the
-       same executable, so everything must be compiled as threaded.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       <application>psql</> now uses a <application>flex</>-generated
-       lexical analyzer to process command strings
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Reimplement the linked list data structure used throughout the
-       backend (Neil)
-      </para>
-      <para>
-       This improves performance by allowing list append and length
-       operations to be more efficient.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow dynamically loaded modules to create their own server configuration
-       parameters (Thomas Hallgren)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       New Brazilian version of FAQ (Euler Taveira de Oliveira)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add French FAQ (Guillaume Lelarge)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       New <application>pgevent</> for Windows logging
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Make libpq and ECPG build as proper shared libraries on OS X (Tom)
-      </para>
-     </listitem>
-
-    </itemizedlist>
-   </sect3>
-
-
-   <sect3>
-    <title>Contrib Changes</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Overhaul of <filename>contrib/dblink</> (Joe)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       <filename>contrib/dbmirror</> improvements (Steven Singer)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       New <filename>contrib/xml2</> (John Gray, Torchbox)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Updated <filename>contrib/mysql</filename>
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       New version of <filename>contrib/btree_gist</> (Teodor)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       New <filename>contrib/trgm</>, trigram matching for
-       <productname>PostgreSQL</productname> (Teodor)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Many <filename>contrib/tsearch2</> improvements (Teodor)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add double metaphone to <filename>contrib/fuzzystrmatch</> (Andrew)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow <filename>contrib/pg_autovacuum</> to run as a Windows service (Dave Page)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add functions to <filename>contrib/dbsize</> (Andreas Pflug)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Removed <filename>contrib/pg_logger</>: obsoleted by integrated logging
-       subprocess
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Removed <filename>contrib/rserv</>: obsoleted by various separate projects
-      </para>
-     </listitem>
-
-    </itemizedlist>
-   </sect3>
-
-  </sect2>
- </sect1>
diff --git a/doc/src/sgml/release-8.1.sgml b/doc/src/sgml/release-8.1.sgml
deleted file mode 100644
index 0db2d91547f79d0bbdfea1d4208cdeeb1852b9da..0000000000000000000000000000000000000000
--- a/doc/src/sgml/release-8.1.sgml
+++ /dev/null
@@ -1,5444 +0,0 @@
-<!-- doc/src/sgml/release-8.1.sgml -->
-<!-- See header comment in release.sgml about typical markup -->
-
- <sect1 id="release-8-1-23">
-  <title>Release 8.1.23</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2010-12-16</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.1.22.
-   For information about new features in the 8.1 major release, see
-   <xref linkend="release-8-1">.
-  </para>
-
-  <para>
-   This is expected to be the last <productname>PostgreSQL</> release
-   in the 8.1.X series.  Users are encouraged to update to a newer
-   release branch soon.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.1.23</title>
-
-   <para>
-    A dump/restore is not required for those running 8.1.X.
-    However, if you are upgrading from a version earlier than 8.1.18,
-    see <xref linkend="release-8-1-18">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Force the default
-      <link linkend="guc-wal-sync-method"><varname>wal_sync_method</></link>
-      to be <literal>fdatasync</> on Linux (Tom Lane, Marti Raudsepp)
-     </para>
-
-     <para>
-      The default on Linux has actually been <literal>fdatasync</> for many
-      years, but recent kernel changes caused <productname>PostgreSQL</> to
-      choose <literal>open_datasync</> instead.  This choice did not result
-      in any performance improvement, and caused outright failures on
-      certain filesystems, notably <literal>ext4</> with the
-      <literal>data=journal</> mount option.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix recovery from base backup when the starting checkpoint WAL record
-      is not in the same WAL segment as its redo point (Jeff Davis)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Add support for detecting register-stack overrun on <literal>IA64</>
-      (Tom Lane)
-     </para>
-
-     <para>
-      The <literal>IA64</> architecture has two hardware stacks.  Full
-      prevention of stack-overrun failures requires checking both.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Add a check for stack overflow in <function>copyObject()</> (Tom Lane)
-     </para>
-
-     <para>
-      Certain code paths could crash due to stack overflow given a
-      sufficiently complex query.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix detection of page splits in temporary GiST indexes (Heikki
-      Linnakangas)
-     </para>
-
-     <para>
-      It is possible to have a <quote>concurrent</> page split in a
-      temporary index, if for example there is an open cursor scanning the
-      index when an insertion is done.  GiST failed to detect this case and
-      hence could deliver wrong results when execution of the cursor
-      continued.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid memory leakage while <command>ANALYZE</>'ing complex index
-      expressions (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure an index that uses a whole-row Var still depends on its table
-      (Tom Lane)
-     </para>
-
-     <para>
-      An index declared like <literal>create index i on t (foo(t.*))</>
-      would not automatically get dropped when its table was dropped.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Do not <quote>inline</> a SQL function with multiple <literal>OUT</>
-      parameters (Tom Lane)
-     </para>
-
-     <para>
-      This avoids a possible crash due to loss of information about the
-      expected result rowtype.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix constant-folding of <literal>COALESCE()</> expressions (Tom Lane)
-     </para>
-
-     <para>
-      The planner would sometimes attempt to evaluate sub-expressions that
-      in fact could never be reached, possibly leading to unexpected errors.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Add print functionality for <structname>InhRelation</> nodes (Tom Lane)
-     </para>
-
-     <para>
-      This avoids a failure when <varname>debug_print_parse</> is enabled
-      and certain types of query are executed.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix incorrect calculation of distance from a point to a horizontal
-      line segment (Tom Lane)
-     </para>
-
-     <para>
-      This bug affected several different geometric distance-measurement
-      operators.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>PL/pgSQL</>'s handling of <quote>simple</>
-      expressions to not fail in recursion or error-recovery cases (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix bug in <filename>contrib/cube</>'s GiST picksplit algorithm
-      (Alexander Korotkov)
-     </para>
-
-     <para>
-      This could result in considerable inefficiency, though not actually
-      incorrect answers, in a GiST index on a <type>cube</> column.
-      If you have such an index, consider <command>REINDEX</>ing it after
-      installing this update.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Don't emit <quote>identifier will be truncated</> notices in
-      <filename>contrib/dblink</> except when creating new connections
-      (Itagaki Takahiro)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix potential coredump on missing public key in
-      <filename>contrib/pgcrypto</> (Marti Raudsepp)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix memory leak in <filename>contrib/xml2</>'s XPath query functions
-      (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2010o
-      for DST law changes in Fiji and Samoa;
-      also historical corrections for Hong Kong.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-1-22">
-  <title>Release 8.1.22</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2010-10-04</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.1.21.
-   For information about new features in the 8.1 major release, see
-   <xref linkend="release-8-1">.
-  </para>
-
-  <para>
-   The <productname>PostgreSQL</> community will stop releasing updates
-   for the 8.1.X release series in November 2010.
-   Users are encouraged to update to a newer release branch soon.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.1.22</title>
-
-   <para>
-    A dump/restore is not required for those running 8.1.X.
-    However, if you are upgrading from a version earlier than 8.1.18,
-    see <xref linkend="release-8-1-18">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Use a separate interpreter for each calling SQL userid in PL/Perl and
-      PL/Tcl (Tom Lane)
-     </para>
-
-     <para>
-      This change prevents security problems that can be caused by subverting
-      Perl or Tcl code that will be executed later in the same session under
-      another SQL user identity (for example, within a <literal>SECURITY
-      DEFINER</> function).  Most scripting languages offer numerous ways that
-      that might be done, such as redefining standard functions or operators
-      called by the target function.  Without this change, any SQL user with
-      Perl or Tcl language usage rights can do essentially anything with the
-      SQL privileges of the target function's owner.
-     </para>
-
-     <para>
-      The cost of this change is that intentional communication among Perl
-      and Tcl functions becomes more difficult.  To provide an escape hatch,
-      PL/PerlU and PL/TclU functions continue to use only one interpreter
-      per session.  This is not considered a security issue since all such
-      functions execute at the trust level of a database superuser already.
-     </para>
-
-     <para>
-      It is likely that third-party procedural languages that claim to offer
-      trusted execution have similar security issues.  We advise contacting
-      the authors of any PL you are depending on for security-critical
-      purposes.
-     </para>
-
-     <para>
-      Our thanks to Tim Bunce for pointing out this issue (CVE-2010-3433).
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent possible crashes in <function>pg_get_expr()</> by disallowing
-      it from being called with an argument that is not one of the system
-      catalog columns it's intended to be used with
-      (Heikki Linnakangas, Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <quote>cannot handle unplanned sub-select</quote> error (Tom Lane)
-     </para>
-
-     <para>
-      This occurred when a sub-select contains a join alias reference that
-      expands into an expression containing another sub-select.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent show_session_authorization() from crashing within autovacuum
-      processes (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Defend against functions returning setof record where not all the
-      returned rows are actually of the same rowtype (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible failure when hashing a pass-by-reference function result
-      (Tao Ma, Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Take care to fsync the contents of lockfiles (both
-      <filename>postmaster.pid</> and the socket lockfile) while writing them
-      (Tom Lane)
-     </para>
-
-     <para>
-      This omission could result in corrupted lockfile contents if the
-      machine crashes shortly after postmaster start.  That could in turn
-      prevent subsequent attempts to start the postmaster from succeeding,
-      until the lockfile is manually removed.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid recursion while assigning XIDs to heavily-nested
-      subtransactions (Andres Freund, Robert Haas)
-     </para>
-
-     <para>
-      The original coding could result in a crash if there was limited
-      stack space.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <varname>log_line_prefix</>'s <literal>%i</> escape,
-      which could produce junk early in backend startup (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible data corruption in <command>ALTER TABLE ... SET
-      TABLESPACE</> when archiving is enabled (Jeff Davis)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Allow <command>CREATE DATABASE</> and <command>ALTER DATABASE ... SET
-      TABLESPACE</> to be interrupted by query-cancel (Guillaume Lelarge)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      In PL/Python, defend against null pointer results from
-      <function>PyCObject_AsVoidPtr</> and <function>PyCObject_FromVoidPtr</>
-      (Peter Eisentraut)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve <filename>contrib/dblink</>'s handling of tables containing
-      dropped columns (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix connection leak after <quote>duplicate connection name</quote>
-      errors in <filename>contrib/dblink</> (Itagaki Takahiro)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <filename>contrib/dblink</> to handle connection names longer than
-      62 bytes correctly (Itagaki Takahiro)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update build infrastructure and documentation to reflect the source code
-      repository's move from CVS to Git (Magnus Hagander and others)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2010l
-      for DST law changes in Egypt and Palestine; also historical corrections
-      for Finland.
-     </para>
-
-     <para>
-      This change also adds new names for two Micronesian timezones:
-      Pacific/Chuuk is now preferred over Pacific/Truk (and the preferred
-      abbreviation is CHUT not TRUT) and Pacific/Pohnpei is preferred over
-      Pacific/Ponape.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-1-21">
-  <title>Release 8.1.21</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2010-05-17</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.1.20.
-   For information about new features in the 8.1 major release, see
-   <xref linkend="release-8-1">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.1.21</title>
-
-   <para>
-    A dump/restore is not required for those running 8.1.X.
-    However, if you are upgrading from a version earlier than 8.1.18,
-    see <xref linkend="release-8-1-18">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Enforce restrictions in <literal>plperl</> using an opmask applied to
-      the whole interpreter, instead of using <filename>Safe.pm</>
-      (Tim Bunce, Andrew Dunstan)
-     </para>
-
-     <para>
-      Recent developments have convinced us that <filename>Safe.pm</> is too
-      insecure to rely on for making <literal>plperl</> trustable.  This
-      change removes use of <filename>Safe.pm</> altogether, in favor of using
-      a separate interpreter with an opcode mask that is always applied.
-      Pleasant side effects of the change include that it is now possible to
-      use Perl's <literal>strict</> pragma in a natural way in
-      <literal>plperl</>, and that Perl's <literal>$a</> and <literal>$b</>
-      variables work as expected in sort routines, and that function
-      compilation is significantly faster.  (CVE-2010-1169)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent PL/Tcl from executing untrustworthy code from
-      <structname>pltcl_modules</> (Tom)
-     </para>
-
-     <para>
-      PL/Tcl's feature for autoloading Tcl code from a database table
-      could be exploited for trojan-horse attacks, because there was no
-      restriction on who could create or insert into that table.  This change
-      disables the feature unless <structname>pltcl_modules</> is owned by a
-      superuser.  (However, the permissions on the table are not checked, so
-      installations that really need a less-than-secure modules table can
-      still grant suitable privileges to trusted non-superusers.)  Also,
-      prevent loading code into the unrestricted <quote>normal</> Tcl
-      interpreter unless we are really going to execute a <literal>pltclu</>
-      function.  (CVE-2010-1170)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Do not allow an unprivileged user to reset superuser-only parameter
-      settings (Alvaro)
-     </para>
-
-     <para>
-      Previously, if an unprivileged user ran <literal>ALTER USER ... RESET
-      ALL</> for himself, or <literal>ALTER DATABASE ... RESET ALL</> for
-      a database he owns, this would remove all special parameter settings
-      for the user or database, even ones that are only supposed to be
-      changeable by a superuser.  Now, the <command>ALTER</> will only
-      remove the parameters that the user has permission to change.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid possible crash during backend shutdown if shutdown occurs
-      when a <literal>CONTEXT</> addition would be made to log entries (Tom)
-     </para>
-
-     <para>
-      In some cases the context-printing function would fail because the
-      current transaction had already been rolled back when it came time
-      to print a log message.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update pl/perl's <filename>ppport.h</> for modern Perl versions
-      (Andrew)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix assorted memory leaks in pl/python (Andreas Freund, Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent infinite recursion in <application>psql</> when expanding
-      a variable that refers to itself (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure that <filename>contrib/pgstattuple</> functions respond to cancel
-      interrupts promptly (Tatsuhito Kasahara)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make server startup deal properly with the case that
-      <function>shmget()</> returns <literal>EINVAL</> for an existing
-      shared memory segment (Tom)
-     </para>
-
-     <para>
-      This behavior has been observed on BSD-derived kernels including OS X.
-      It resulted in an entirely-misleading startup failure complaining that
-      the shared memory request size was too large.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2010j
-      for DST law changes in Argentina, Australian Antarctic, Bangladesh,
-      Mexico, Morocco, Pakistan, Palestine, Russia, Syria, Tunisia;
-      also historical corrections for Taiwan.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-1-20">
-  <title>Release 8.1.20</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2010-03-15</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.1.19.
-   For information about new features in the 8.1 major release, see
-   <xref linkend="release-8-1">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.1.20</title>
-
-   <para>
-    A dump/restore is not required for those running 8.1.X.
-    However, if you are upgrading from a version earlier than 8.1.18,
-    see <xref linkend="release-8-1-18">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Add new configuration parameter <varname>ssl_renegotiation_limit</> to
-      control how often we do session key renegotiation for an SSL connection
-      (Magnus)
-     </para>
-
-     <para>
-      This can be set to zero to disable renegotiation completely, which may
-      be required if a broken SSL library is used.  In particular, some
-      vendors are shipping stopgap patches for CVE-2009-3555 that cause
-      renegotiation attempts to fail.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible crashes when trying to recover from a failure in
-      subtransaction start (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix server memory leak associated with use of savepoints and a client
-      encoding different from server's encoding (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <function>substring()</> for <type>bit</> types treat any negative
-      length as meaning <quote>all the rest of the string</> (Tom)
-     </para>
-
-     <para>
-      The previous coding treated only -1 that way, and would produce an
-      invalid result value for other negative values, possibly leading to
-      a crash (CVE-2010-0442).
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix integer-to-bit-string conversions to handle the first fractional
-      byte correctly when the output bit width is wider than the given
-      integer by something other than a multiple of 8 bits (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix some cases of pathologically slow regular expression matching (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix the <literal>STOP WAL LOCATION</> entry in backup history files to
-      report the next WAL segment's name when the end location is exactly at a
-      segment boundary (Itagaki Takahiro)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix some more cases of temporary-file leakage (Heikki)
-     </para>
-
-     <para>
-      This corrects a problem introduced in the previous minor release.
-      One case that failed is when a plpgsql function returning set is
-      called within another function's exception handler.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      When reading <filename>pg_hba.conf</> and related files, do not treat
-      <literal>@something</> as a file inclusion request if the <literal>@</>
-      appears inside quote marks; also, never treat <literal>@</> by itself
-      as a file inclusion request (Tom)
-     </para>
-
-     <para>
-      This prevents erratic behavior if a role or database name starts with
-      <literal>@</>.  If you need to include a file whose path name
-      contains spaces, you can still do so, but you must write
-      <literal>@"/path to/file"</> rather than putting the quotes around
-      the whole construct.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent infinite loop on some platforms if a directory is named as
-      an inclusion target in <filename>pg_hba.conf</> and related files
-      (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>psql</>'s <literal>numericlocale</> option to not
-      format strings it shouldn't in latex and troff output formats (Heikki)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix plpgsql failure in one case where a composite column is set to NULL
-      (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Add <literal>volatile</> markings in PL/Python to avoid possible
-      compiler-specific misbehavior (Zdenek Kotala)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure PL/Tcl initializes the Tcl interpreter fully (Tom)
-     </para>
-
-     <para>
-      The only known symptom of this oversight is that the Tcl
-      <literal>clock</> command misbehaves if using Tcl 8.5 or later.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent crash in <filename>contrib/dblink</> when too many key
-      columns are specified to a <function>dblink_build_sql_*</> function
-      (Rushabh Lathia, Joe Conway)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix assorted crashes in <filename>contrib/xml2</> caused by sloppy
-      memory management (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2010e
-      for DST law changes in Bangladesh, Chile, Fiji, Mexico, Paraguay, Samoa.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-1-19">
-  <title>Release 8.1.19</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2009-12-14</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.1.18.
-   For information about new features in the 8.1 major release, see
-   <xref linkend="release-8-1">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.1.19</title>
-
-   <para>
-    A dump/restore is not required for those running 8.1.X.
-    However, if you are upgrading from a version earlier than 8.1.18,
-    see <xref linkend="release-8-1-18">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Protect against indirect security threats caused by index functions
-      changing session-local state (Gurjeet Singh, Tom)
-     </para>
-
-     <para>
-      This change prevents allegedly-immutable index functions from possibly
-      subverting a superuser's session (CVE-2009-4136).
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Reject SSL certificates containing an embedded null byte in the common
-      name (CN) field (Magnus)
-     </para>
-
-     <para>
-      This prevents unintended matching of a certificate to a server or client
-      name during SSL validation (CVE-2009-4034).
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible crash during backend-startup-time cache initialization (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent signals from interrupting <literal>VACUUM</> at unsafe times
-      (Alvaro)
-     </para>
-
-     <para>
-      This fix prevents a PANIC if a <literal>VACUUM FULL</> is canceled
-      after it's already committed its tuple movements, as well as transient
-      errors if a plain <literal>VACUUM</> is interrupted after having
-      truncated the table.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible crash due to integer overflow in hash table size
-      calculation (Tom)
-     </para>
-
-     <para>
-      This could occur with extremely large planner estimates for the size of
-      a hashjoin's result.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix very rare crash in <type>inet</>/<type>cidr</> comparisons (Chris
-      Mikkelson)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure that shared tuple-level locks held by prepared transactions are
-      not ignored (Heikki)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix premature drop of temporary files used for a cursor that is accessed
-      within a subtransaction (Heikki)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix PAM password processing to be more robust (Tom)
-     </para>
-
-     <para>
-      The previous code is known to fail with the combination of the Linux
-      <literal>pam_krb5</> PAM module with Microsoft Active Directory as the
-      domain controller.  It might have problems elsewhere too, since it was
-      making unjustified assumptions about what arguments the PAM stack would
-      pass to it.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix processing of ownership dependencies during <literal>CREATE OR
-      REPLACE FUNCTION</> (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure that Perl arrays are properly converted to
-      <productname>PostgreSQL</> arrays when returned by a set-returning
-      PL/Perl function (Andrew Dunstan, Abhijit Menon-Sen)
-     </para>
-
-     <para>
-      This worked correctly already for non-set-returning functions.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix rare crash in exception processing in PL/Python (Peter)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure <application>psql</>'s flex module is compiled with the correct
-      system header definitions (Tom)
-     </para>
-
-     <para>
-      This fixes build failures on platforms where
-      <literal>--enable-largefile</> causes incompatible changes in the
-      generated code.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make the postmaster ignore any <literal>application_name</> parameter in
-      connection request packets, to improve compatibility with future libpq
-      versions (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2009s
-      for DST law changes in Antarctica, Argentina, Bangladesh, Fiji,
-      Novokuznetsk, Pakistan, Palestine, Samoa, Syria; also historical
-      corrections for Hong Kong.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-1-18">
-  <title>Release 8.1.18</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2009-09-09</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.1.17.
-   For information about new features in the 8.1 major release, see
-   <xref linkend="release-8-1">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.1.18</title>
-
-   <para>
-    A dump/restore is not required for those running 8.1.X.
-    However, if you have any hash indexes on <type>interval</> columns,
-    you must <command>REINDEX</> them after updating to 8.1.18.
-    Also, if you are upgrading from a version earlier than 8.1.15,
-    see <xref linkend="release-8-1-15">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Disallow <command>RESET ROLE</> and <command>RESET SESSION
-      AUTHORIZATION</> inside security-definer functions (Tom, Heikki)
-     </para>
-
-     <para>
-      This covers a case that was missed in the previous patch that
-      disallowed <command>SET ROLE</> and <command>SET SESSION
-      AUTHORIZATION</> inside security-definer functions.
-      (See CVE-2007-6600)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix handling of sub-SELECTs appearing in the arguments of
-      an outer-level aggregate function (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix hash calculation for data type <type>interval</> (Tom)
-     </para>
-
-     <para>
-      This corrects wrong results for hash joins on interval values.
-      It also changes the contents of hash indexes on interval columns.
-      If you have any such indexes, you must <command>REINDEX</> them
-      after updating.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Treat <function>to_char(..., 'TH')</> as an uppercase ordinal
-      suffix with <literal>'HH'</>/<literal>'HH12'</> (Heikki)
-     </para>
-
-     <para>
-      It was previously handled as <literal>'th'</> (lowercase).
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix overflow for <literal>INTERVAL '<replaceable>x</> ms'</literal>
-      when <replaceable>x</> is more than 2 million and integer
-      datetimes are in use (Alex Hunsaker)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix calculation of distance between a point and a line segment (Tom)
-     </para>
-
-     <para>
-      This led to incorrect results from a number of geometric operators.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <type>money</> data type to work in locales where currency
-      amounts have no fractional digits, e.g. Japan (Itagaki Takahiro)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Properly round datetime input like
-      <literal>00:12:57.9999999999999999999999999999</> (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix poor choice of page split point in GiST R-tree operator classes
-      (Teodor)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix portability issues in plperl initialization (Andrew Dunstan)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>pg_ctl</> to not go into an infinite loop if
-      <filename>postgresql.conf</> is empty (Jeff Davis)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <filename>contrib/xml2</>'s <function>xslt_process()</> to
-      properly handle the maximum number of parameters (twenty) (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve robustness of <application>libpq</>'s code to recover
-      from errors during <command>COPY FROM STDIN</> (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid including conflicting readline and editline header files
-      when both libraries are installed (Zdenek Kotala)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2009l
-      for DST law changes in Bangladesh, Egypt, Jordan, Pakistan,
-      Argentina/San_Luis, Cuba, Jordan (historical correction only),
-      Mauritius, Morocco, Palestine, Syria, Tunisia.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-1-17">
-  <title>Release 8.1.17</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2009-03-16</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.1.16.
-   For information about new features in the 8.1 major release, see
-   <xref linkend="release-8-1">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.1.17</title>
-
-   <para>
-    A dump/restore is not required for those running 8.1.X.
-    However, if you are upgrading from a version earlier than 8.1.15,
-    see <xref linkend="release-8-1-15">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Prevent error recursion crashes when encoding conversion fails (Tom)
-     </para>
-
-     <para>
-      This change extends fixes made in the last two minor releases for
-      related failure scenarios.  The previous fixes were narrowly tailored
-      for the original problem reports, but we have now recognized that
-      <emphasis>any</> error thrown by an encoding conversion function could
-      potentially lead to infinite recursion while trying to report the
-      error.  The solution therefore is to disable translation and encoding
-      conversion and report the plain-ASCII form of any error message,
-      if we find we have gotten into a recursive error reporting situation.
-      (CVE-2009-0922)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Disallow <command>CREATE CONVERSION</> with the wrong encodings
-      for the specified conversion function (Heikki)
-     </para>
-
-     <para>
-      This prevents one possible scenario for encoding conversion failure.
-      The previous change is a backstop to guard against other kinds of
-      failures in the same area.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix core dump when <function>to_char()</> is given format codes that
-      are inappropriate for the type of the data argument (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix decompilation of <literal>CASE WHEN</> with an implicit coercion
-      (Tom)
-     </para>
-
-     <para>
-      This mistake could lead to Assert failures in an Assert-enabled build,
-      or an <quote>unexpected CASE WHEN clause</> error message in other
-      cases, when trying to examine or dump a view.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible misassignment of the owner of a TOAST table's rowtype (Tom)
-     </para>
-
-     <para>
-      If <command>CLUSTER</> or a rewriting variant of <command>ALTER TABLE</>
-      were executed by someone other than the table owner, the
-      <structname>pg_type</> entry for the table's TOAST table would end up
-      marked as owned by that someone.  This caused no immediate problems,
-      since the permissions on the TOAST rowtype aren't examined by any
-      ordinary database operation.  However, it could lead to unexpected
-      failures if one later tried to drop the role that issued the command
-      (in 8.1 or 8.2), or <quote>owner of data type appears to be invalid</>
-      warnings from <application>pg_dump</> after having done so (in 8.3).
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Clean up PL/pgSQL error status variables fully at block exit
-      (Ashesh Vashi and Dave Page)
-     </para>
-
-     <para>
-      This is not a problem for PL/pgSQL itself, but the omission could cause
-      the PL/pgSQL Debugger to crash while examining the state of a function.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Add <literal>MUST</> (Mauritius Island Summer Time) to the default list
-      of known timezone abbreviations (Xavier Bugaud)
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-1-16">
-  <title>Release 8.1.16</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2009-02-02</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.1.15.
-   For information about new features in the 8.1 major release, see
-   <xref linkend="release-8-1">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.1.16</title>
-
-   <para>
-    A dump/restore is not required for those running 8.1.X.
-    However, if you are upgrading from a version earlier than 8.1.15,
-    see <xref linkend="release-8-1-15">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Fix crash in autovacuum (Alvaro)
-     </para>
-
-     <para>
-      The crash occurs only after vacuuming a whole database for
-      anti-transaction-wraparound purposes, which means that it occurs
-      infrequently and is hard to track down.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve handling of URLs in <function>headline()</> function (Teodor)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve handling of overlength headlines in <function>headline()</>
-      function (Teodor)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent possible Assert failure or misconversion if an encoding
-      conversion is created with the wrong conversion function for the
-      specified pair of encodings (Tom, Heikki)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid unnecessary locking of small tables in <command>VACUUM</>
-      (Heikki)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure that the contents of a holdable cursor don't depend on the
-      contents of TOAST tables (Tom)
-     </para>
-
-     <para>
-      Previously, large field values in a cursor result might be represented
-      as TOAST pointers, which would fail if the referenced table got dropped
-      before the cursor is read, or if the large value is deleted and then
-      vacuumed away.  This cannot happen with an ordinary cursor,
-      but it could with a cursor that is held past its creating transaction.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix uninitialized variables in <filename>contrib/tsearch2</>'s
-      <function>get_covers()</> function (Teodor)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>configure</> script to properly report failure when
-      unable to obtain linkage information for PL/Perl (Andrew)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make all documentation reference <literal>pgsql-bugs</> and/or
-      <literal>pgsql-hackers</> as appropriate, instead of the
-      now-decommissioned <literal>pgsql-ports</> and <literal>pgsql-patches</>
-      mailing lists (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2009a (for
-      Kathmandu and historical DST corrections in Switzerland, Cuba)
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-1-15">
-  <title>Release 8.1.15</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2008-11-03</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.1.14.
-   For information about new features in the 8.1 major release, see
-   <xref linkend="release-8-1">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.1.15</title>
-
-   <para>
-    A dump/restore is not required for those running 8.1.X.
-    However, if you are upgrading from a version earlier than 8.1.2,
-    see <xref linkend="release-8-1-2">.  Also, if you were running a previous
-    8.1.X release, it is recommended to <command>REINDEX</> all GiST
-    indexes after the upgrade.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Fix GiST index corruption due to marking the wrong index entry
-      <quote>dead</> after a deletion (Teodor)
-     </para>
-
-     <para>
-      This would result in index searches failing to find rows they
-      should have found.  Corrupted indexes can be fixed with
-      <command>REINDEX</>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix backend crash when the client encoding cannot represent a localized
-      error message (Tom)
-     </para>
-
-     <para>
-      We have addressed similar issues before, but it would still fail if
-      the <quote>character has no equivalent</> message itself couldn't
-      be converted.  The fix is to disable localization and send the plain
-      ASCII error message when we detect such a situation.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible crash when deeply nested functions are invoked from
-      a trigger (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix mis-expansion of rule queries when a sub-<literal>SELECT</> appears
-      in a function call in <literal>FROM</>,  a multi-row <literal>VALUES</>
-      list, or a <literal>RETURNING</> list (Tom)
-     </para>
-
-     <para>
-      The usual symptom of this problem is an <quote>unrecognized node type</>
-      error.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure an error is reported when a newly-defined PL/pgSQL trigger
-      function is invoked as a normal function (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent possible collision of <structfield>relfilenode</> numbers
-      when moving a table to another tablespace with <command>ALTER SET
-      TABLESPACE</> (Heikki)
-     </para>
-
-     <para>
-      The command tried to re-use the existing filename, instead of
-      picking one that is known unused in the destination directory.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix incorrect tsearch2 headline generation when single query
-      item matches first word of text (Sushant Sinha)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix improper display of fractional seconds in interval values when
-      using a non-ISO datestyle in an <option>--enable-integer-datetimes</>
-      build (Ron Mayer)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure <function>SPI_getvalue</> and <function>SPI_getbinval</>
-      behave correctly when the passed tuple and tuple descriptor have
-      different numbers of columns (Tom)
-     </para>
-
-     <para>
-      This situation is normal when a table has had columns added or removed,
-      but these two functions didn't handle it properly.
-      The only likely consequence is an incorrect error indication.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>ecpg</>'s parsing of <command>CREATE ROLE</> (Michael)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix recent breakage of <literal>pg_ctl restart</> (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2008i (for
-      DST law changes in Argentina, Brazil, Mauritius, Syria)
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-1-14">
-  <title>Release 8.1.14</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2008-09-22</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.1.13.
-   For information about new features in the 8.1 major release, see
-   <xref linkend="release-8-1">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.1.14</title>
-
-   <para>
-    A dump/restore is not required for those running 8.1.X.
-    However, if you are upgrading from a version earlier than 8.1.2,
-    see <xref linkend="release-8-1-2">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Widen local lock counters from 32 to 64 bits (Tom)
-     </para>
-
-     <para>
-      This responds to reports that the counters could overflow in
-      sufficiently long transactions, leading to unexpected <quote>lock is
-      already held</> errors.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible duplicate output of tuples during a GiST index scan (Teodor)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Add checks in executor startup to ensure that the tuples produced by an
-      <command>INSERT</> or <command>UPDATE</> will match the target table's
-      current rowtype (Tom)
-     </para>
-
-     <para>
-      <command>ALTER COLUMN TYPE</>, followed by re-use of a previously
-      cached plan, could produce this type of situation.  The check protects
-      against data corruption and/or crashes that could ensue.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <literal>AT TIME ZONE</> to first try to interpret its timezone
-      argument as a timezone abbreviation, and only try it as a full timezone
-      name if that fails, rather than the other way around as formerly (Tom)
-     </para>
-
-     <para>
-      The timestamp input functions have always resolved ambiguous zone names
-      in this order.  Making <literal>AT TIME ZONE</> do so as well improves
-      consistency, and fixes a compatibility bug introduced in 8.1:
-      in ambiguous cases we now behave the same as 8.0 and before did,
-      since in the older versions <literal>AT TIME ZONE</> accepted
-      <emphasis>only</> abbreviations.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix datetime input functions to correctly detect integer overflow when
-      running on a 64-bit platform (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve performance of writing very long log messages to syslog (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix bug in backwards scanning of a cursor on a <literal>SELECT DISTINCT
-      ON</> query (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix planner bug with nested sub-select expressions (Tom)
-     </para>
-
-     <para>
-      If the outer sub-select has no direct dependency on the parent query,
-      but the inner one does, the outer value might not get recalculated
-      for new parent query rows.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix planner to estimate that <literal>GROUP BY</> expressions yielding
-      boolean results always result in two groups, regardless of the
-      expressions' contents (Tom)
-     </para>
-
-     <para>
-      This is very substantially more accurate than the regular <literal>GROUP
-      BY</> estimate for certain boolean tests like <replaceable>col</>
-      <literal>IS NULL</>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix PL/pgSQL to not fail when a <literal>FOR</> loop's target variable
-      is a record containing composite-type fields (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix PL/Tcl to behave correctly with Tcl 8.5, and to be more careful
-      about the encoding of data sent to or from Tcl (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix PL/Python to work with Python 2.5
-     </para>
-
-     <para>
-      This is a back-port of fixes made during the 8.2 development cycle.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve <application>pg_dump</> and <application>pg_restore</>'s
-      error reporting after failure to send a SQL command (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>pg_ctl</> to properly preserve postmaster
-      command-line arguments across a <literal>restart</> (Bruce)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2008f (for
-      DST law changes in Argentina, Bahamas, Brazil, Mauritius, Morocco,
-      Pakistan, Palestine, and Paraguay)
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-1-13">
-  <title>Release 8.1.13</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2008-06-12</para>
-  </formalpara>
-
-  <para>
-   This release contains one serious and one minor bug fix over 8.1.12.
-   For information about new features in the 8.1 major release, see
-   <xref linkend="release-8-1">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.1.13</title>
-
-   <para>
-    A dump/restore is not required for those running 8.1.X.
-    However, if you are upgrading from a version earlier than 8.1.2,
-    see <xref linkend="release-8-1-2">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Make <function>pg_get_ruledef()</> parenthesize negative constants (Tom)
-     </para>
-
-     <para>
-      Before this fix, a negative constant in a view or rule might be dumped
-      as, say, <literal>-42::integer</>, which is subtly incorrect: it should
-      be <literal>(-42)::integer</> due to operator precedence rules.
-      Usually this would make little difference, but it could interact with
-      another recent patch to cause
-      <productname>PostgreSQL</> to reject what had been a valid
-      <command>SELECT DISTINCT</> view query.  Since this could result in
-      <application>pg_dump</> output failing to reload, it is being treated
-      as a high-priority fix.  The only released versions in which dump
-      output is actually incorrect are 8.3.1 and 8.2.7.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <command>ALTER AGGREGATE ... OWNER TO</> update
-      <structname>pg_shdepend</> (Tom)
-     </para>
-
-     <para>
-      This oversight could lead to problems if the aggregate was later
-      involved in a <command>DROP OWNED</> or <command>REASSIGN OWNED</>
-      operation.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-1-12">
-  <title>Release 8.1.12</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>never released</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.1.11.
-   For information about new features in the 8.1 major release, see
-   <xref linkend="release-8-1">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.1.12</title>
-
-   <para>
-    A dump/restore is not required for those running 8.1.X.
-    However, if you are upgrading from a version earlier than 8.1.2,
-    see <xref linkend="release-8-1-2">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Fix <command>ALTER TABLE ADD COLUMN ... PRIMARY KEY</> so that the new
-      column is correctly checked to see if it's been initialized to all
-      non-nulls (Brendan Jurd)
-     </para>
-
-     <para>
-      Previous versions neglected to check this requirement at all.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible <command>CREATE TABLE</> failure when inheriting the
-      <quote>same</> constraint from multiple parent relations that
-      inherited that constraint from a common ancestor (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix conversions between ISO-8859-5 and other encodings to handle
-      Cyrillic <quote>Yo</> characters (<literal>e</> and <literal>E</> with
-      two dots) (Sergey Burladyan)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix a few datatype input functions
-      that were allowing unused bytes in their results to contain
-      uninitialized, unpredictable values (Tom)
-     </para>
-
-     <para>
-      This could lead to failures in which two apparently identical literal
-      values were not seen as equal, resulting in the parser complaining
-      about unmatched <literal>ORDER BY</> and <literal>DISTINCT</>
-      expressions.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix a corner case in regular-expression substring matching
-      (<literal>substring(<replaceable>string</> from
-      <replaceable>pattern</>)</literal>) (Tom)
-     </para>
-
-     <para>
-      The problem occurs when there is a match to the pattern overall but
-      the user has specified a parenthesized subexpression and that
-      subexpression hasn't got a match.  An example is
-      <literal>substring('foo' from 'foo(bar)?')</>.
-      This should return NULL, since <literal>(bar)</> isn't matched, but
-      it was mistakenly returning the whole-pattern match instead (ie,
-      <literal>foo</>).
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2008c (for
-      DST law changes in Morocco, Iraq, Choibalsan, Pakistan, Syria, Cuba,
-      Argentina/San_Luis, and Chile)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix incorrect result from <application>ecpg</>'s
-      <function>PGTYPEStimestamp_sub()</> function (Michael)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix core dump in <filename>contrib/xml2</>'s
-      <function>xpath_table()</> function when the input query returns a
-      NULL value (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <filename>contrib/xml2</>'s makefile to not override
-      <literal>CFLAGS</> (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <literal>DatumGetBool</> macro to not fail with <application>gcc</>
-      4.3 (Tom)
-     </para>
-
-     <para>
-      This problem affects <quote>old style</> (V0) C functions that
-      return boolean.  The fix is already in 8.3, but the need to
-      back-patch it was not realized at the time.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix longstanding <command>LISTEN</>/<command>NOTIFY</>
-      race condition (Tom)
-     </para>
-
-     <para>
-      In rare cases a session that had just executed a
-      <command>LISTEN</> might not get a notification, even though
-      one would be expected because the concurrent transaction executing
-      <command>NOTIFY</> was observed to commit later.
-     </para>
-
-     <para>
-      A side effect of the fix is that a transaction that has executed
-      a not-yet-committed <command>LISTEN</> command will not see any
-      row in <structname>pg_listener</> for the <command>LISTEN</>,
-      should it choose to look; formerly it would have.  This behavior
-      was never documented one way or the other, but it is possible that
-      some applications depend on the old behavior.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Disallow <command>LISTEN</> and <command>UNLISTEN</> within a
-      prepared transaction (Tom)
-     </para>
-
-     <para>
-      This was formerly allowed but trying to do it had various unpleasant
-      consequences, notably that the originating backend could not exit
-      as long as an <command>UNLISTEN</> remained uncommitted.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix rare crash when an error occurs during a query using a hash index
-      (Heikki)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix input of datetime values for February 29 in years BC (Tom)
-     </para>
-
-     <para>
-      The former coding was mistaken about which years were leap years.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <quote>unrecognized node type</> error in some variants of
-      <command>ALTER OWNER</> (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>pg_ctl</> to correctly extract the postmaster's port
-      number from command-line options (Itagaki Takahiro, Tom)
-     </para>
-
-     <para>
-      Previously, <literal>pg_ctl start -w</> could try to contact the
-      postmaster on the wrong port, leading to bogus reports of startup
-      failure.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Use <option>-fwrapv</> to defend against possible misoptimization
-      in recent <application>gcc</> versions (Tom)
-     </para>
-
-     <para>
-      This is known to be necessary when building <productname>PostgreSQL</>
-      with <application>gcc</> 4.3 or later.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix display of constant expressions in <literal>ORDER BY</>
-      and <literal>GROUP BY</> (Tom)
-     </para>
-
-     <para>
-      An explicitly casted constant would be shown incorrectly.  This could
-      for example lead to corruption of a view definition during
-      dump and reload.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>libpq</> to handle NOTICE messages correctly
-      during COPY OUT (Tom)
-     </para>
-
-     <para>
-      This failure has only been observed to occur when a user-defined
-      datatype's output routine issues a NOTICE, but there is no
-      guarantee it couldn't happen due to other causes.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-1-11">
-  <title>Release 8.1.11</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2008-01-07</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.1.10,
-   including fixes for significant security issues.
-   For information about new features in the 8.1 major release, see
-   <xref linkend="release-8-1">.
-  </para>
-
-  <para>
-   This is the last 8.1.X release for which the <productname>PostgreSQL</>
-   community will produce binary packages for <productname>Windows</>.
-   Windows users are encouraged to move to 8.2.X or later,
-   since there are Windows-specific fixes in 8.2.X that
-   are impractical to back-port.  8.1.X will continue to
-   be supported on other platforms.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.1.11</title>
-
-   <para>
-    A dump/restore is not required for those running 8.1.X.
-    However, if you are upgrading from a version earlier than 8.1.2,
-    see <xref linkend="release-8-1-2">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Prevent functions in indexes from executing with the privileges of
-      the user running <command>VACUUM</>, <command>ANALYZE</>, etc (Tom)
-     </para>
-
-     <para>
-      Functions used in index expressions and partial-index
-      predicates are evaluated whenever a new table entry is made.  It has
-      long been understood that this poses a risk of trojan-horse code
-      execution if one modifies a table owned by an untrustworthy user.
-      (Note that triggers, defaults, check constraints, etc. pose the
-      same type of risk.)  But functions in indexes pose extra danger
-      because they will be executed by routine maintenance operations
-      such as <command>VACUUM FULL</>, which are commonly performed
-      automatically under a superuser account.  For example, a nefarious user
-      can execute code with superuser privileges by setting up a
-      trojan-horse index definition and waiting for the next routine vacuum.
-      The fix arranges for standard maintenance operations
-      (including <command>VACUUM</>, <command>ANALYZE</>, <command>REINDEX</>,
-      and <command>CLUSTER</>) to execute as the table owner rather than
-      the calling user, using the same privilege-switching mechanism already
-      used for <literal>SECURITY DEFINER</> functions.  To prevent bypassing
-      this security measure, execution of <command>SET SESSION
-      AUTHORIZATION</> and <command>SET ROLE</> is now forbidden within a
-      <literal>SECURITY DEFINER</> context.  (CVE-2007-6600)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Repair assorted bugs in the regular-expression package (Tom, Will Drewry)
-     </para>
-
-     <para>
-      Suitably crafted regular-expression patterns could cause crashes,
-      infinite or near-infinite looping, and/or massive memory consumption,
-      all of which pose denial-of-service hazards for applications that
-      accept regex search patterns from untrustworthy sources.
-      (CVE-2007-4769, CVE-2007-4772, CVE-2007-6067)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Require non-superusers who use <filename>/contrib/dblink</> to use only
-      password authentication, as a security measure (Joe)
-     </para>
-
-     <para>
-      The fix that appeared for this in 8.1.10 was incomplete, as it plugged
-      the hole for only some <filename>dblink</> functions.  (CVE-2007-6601,
-      CVE-2007-3278)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2007k
-      (in particular, recent Argentina changes) (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve planner's handling of LIKE/regex estimation in non-C locales
-      (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix planner failure in some cases of <literal>WHERE false AND var IN
-      (SELECT ...)</> (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Preserve the tablespace of indexes that are
-      rebuilt by <command>ALTER TABLE ... ALTER COLUMN TYPE</> (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make archive recovery always start a new WAL timeline, rather than only
-      when a recovery stop time was used (Simon)
-     </para>
-
-     <para>
-      This avoids a corner-case risk of trying to overwrite an existing
-      archived copy of the last WAL segment, and seems simpler and cleaner
-      than the original definition.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <command>VACUUM</> not use all of <varname>maintenance_work_mem</>
-      when the table is too small for it to be useful (Alvaro)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix potential crash in <function>translate()</> when using a multibyte
-      database encoding (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix overflow in <literal>extract(epoch from interval)</> for intervals
-      exceeding 68 years (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix PL/Perl to not fail when a UTF-8 regular expression is used
-      in a trusted function (Andrew)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix PL/Perl to cope when platform's Perl defines type <literal>bool</>
-      as <literal>int</> rather than <literal>char</> (Tom)
-     </para>
-
-     <para>
-      While this could theoretically happen anywhere, no standard build of
-      Perl did things this way ... until <productname>Mac OS X</> 10.5.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix PL/Python to not crash on long exception messages (Alvaro)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>pg_dump</> to correctly handle inheritance child tables
-      that have default expressions different from their parent's (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>libpq</> crash when <varname>PGPASSFILE</> refers
-      to a file that is not a plain file (Martin Pitt)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      <application>ecpg</> parser fixes (Michael)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <filename>contrib/pgcrypto</> defend against
-      <application>OpenSSL</> libraries that fail on keys longer than 128
-      bits; which is the case at least on some Solaris versions (Marko Kreen)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <filename>contrib/tablefunc</>'s <function>crosstab()</> handle
-      NULL rowid as a category in its own right, rather than crashing (Joe)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <type>tsvector</> and <type>tsquery</> output routines to
-      escape backslashes correctly (Teodor, Bruce)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix crash of <function>to_tsvector()</> on huge input strings (Teodor)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Require a specific version of <productname>Autoconf</> to be used
-      when re-generating the <command>configure</> script (Peter)
-     </para>
-
-     <para>
-      This affects developers and packagers only.  The change was made
-      to prevent accidental use of untested combinations of
-      <productname>Autoconf</> and <productname>PostgreSQL</> versions.
-      You can remove the version check if you really want to use a
-      different <productname>Autoconf</> version, but it's
-      your responsibility whether the result works or not.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-1-10">
-  <title>Release 8.1.10</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2007-09-17</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.1.9.
-   For information about new features in the 8.1 major release, see
-   <xref linkend="release-8-1">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.1.10</title>
-
-   <para>
-    A dump/restore is not required for those running 8.1.X.
-    However, if you are upgrading from a version earlier than 8.1.2,
-    see <xref linkend="release-8-1-2">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Prevent index corruption when a transaction inserts rows and
-      then aborts close to the end of a concurrent <command>VACUUM</>
-      on the same table (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <command>CREATE DOMAIN ... DEFAULT NULL</> work properly (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Allow the <type>interval</> data type to accept input consisting only of
-      milliseconds or microseconds (Neil)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Speed up rtree index insertion (Teodor)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix excessive logging of <acronym>SSL</> error messages (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix logging so that log messages are never interleaved when using
-      the syslogger process (Andrew)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix crash when <varname>log_min_error_statement</> logging runs out
-      of memory (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix incorrect handling of some foreign-key corner cases (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent <command>REINDEX</> and <command>CLUSTER</> from failing
-      due to attempting to process temporary tables of other sessions (Alvaro)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update the time zone database rules, particularly New Zealand's upcoming changes (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Windows socket improvements (Magnus)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Suppress timezone name (<literal>%Z</>) in log timestamps on Windows
-      because of possible encoding mismatches (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Require non-superusers who use <filename>/contrib/dblink</> to use only
-      password authentication, as a security measure (Joe)
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-1-9">
-  <title>Release 8.1.9</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2007-04-23</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.1.8,
-   including a security fix.
-   For information about new features in the 8.1 major release, see
-   <xref linkend="release-8-1">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.1.9</title>
-
-   <para>
-    A dump/restore is not required for those running 8.1.X.
-    However, if you are upgrading from a version earlier than 8.1.2,
-    see <xref linkend="release-8-1-2">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-    <para>
-     Support explicit placement of the temporary-table schema within
-     <varname>search_path</>, and disable searching it for functions
-     and operators (Tom)
-    </para>
-    <para>
-     This is needed to allow a security-definer function to set a
-     truly secure value of <varname>search_path</>.  Without it,
-     an unprivileged SQL user can use temporary objects to execute code
-     with the privileges of the security-definer function (CVE-2007-2138).
-     See <command>CREATE FUNCTION</> for more information.
-    </para>
-    </listitem>
-
-    <listitem>
-    <para>
-     <filename>/contrib/tsearch2</> crash fixes (Teodor)
-    </para>
-    </listitem>
-
-    <listitem>
-    <para>
-     Require <command>COMMIT PREPARED</> to be executed in the same
-     database as the transaction was prepared in (Heikki)
-    </para>
-    </listitem>
-
-    <listitem>
-    <para>
-     Fix potential-data-corruption bug in how <command>VACUUM FULL</> handles
-     <command>UPDATE</> chains (Tom, Pavan Deolasee)
-    </para>
-    </listitem>
-
-    <listitem>
-    <para>
-     Planner fixes, including improving outer join and bitmap scan
-     selection logic (Tom)
-    </para>
-    </listitem>
-
-    <listitem>
-    <para>
-     Fix PANIC during enlargement of a hash index (bug introduced in 8.1.6)
-     (Tom)
-    </para>
-    </listitem>
-
-    <listitem>
-    <para>
-     Fix POSIX-style timezone specs to follow new USA DST rules (Tom)
-    </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-1-8">
-  <title>Release 8.1.8</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2007-02-07</para>
-  </formalpara>
-
-  <para>
-   This release contains one fix from 8.1.7.
-   For information about new features in the 8.1 major release, see
-   <xref linkend="release-8-1">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.1.8</title>
-
-   <para>
-    A dump/restore is not required for those running 8.1.X.
-    However, if you are upgrading from a version earlier than 8.1.2,
-    see <xref linkend="release-8-1-2">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-    <para>
-     Remove overly-restrictive check for type length in constraints and
-     functional indexes(Tom)
-    </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-1-7">
-  <title>Release 8.1.7</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2007-02-05</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.1.6, including
-   a security fix.
-   For information about new features in the 8.1 major release, see
-   <xref linkend="release-8-1">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.1.7</title>
-
-   <para>
-    A dump/restore is not required for those running 8.1.X.
-    However, if you are upgrading from a version earlier than 8.1.2,
-    see <xref linkend="release-8-1-2">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-    <para>
-     Remove security vulnerabilities that allowed connected users
-     to read backend memory (Tom)
-    </para>
-    <para>
-     The vulnerabilities involve suppressing the normal check that a SQL
-     function returns the data type it's declared to, and changing the
-     data type of a table column (CVE-2007-0555, CVE-2007-0556).  These
-     errors can easily be exploited to cause a backend crash, and in
-     principle might be used to read database content that the user
-     should not be able to access.
-    </para>
-    </listitem>
-
-    <listitem>
-    <para>
-     Fix rare bug wherein btree index page splits could fail
-     due to choosing an infeasible split point (Heikki Linnakangas)
-    </para>
-    </listitem>
-
-    <listitem>
-    <para>
-     Improve <command>VACUUM</> performance for databases with many tables (Tom)
-    </para>
-    </listitem>
-
-    <listitem>
-    <para>
-     Fix autovacuum to avoid leaving non-permanent transaction IDs in
-     non-connectable databases (Alvaro)
-    </para>
-
-    <para>
-     This bug affects the 8.1 branch only.
-    </para>
-    </listitem>
-
-    <listitem>
-    <para>
-     Fix for rare Assert() crash triggered by <literal>UNION</> (Tom)
-    </para>
-    </listitem>
-
-    <listitem>
-    <para>
-     Tighten security of multi-byte character processing for UTF8 sequences
-     over three bytes long (Tom)
-    </para>
-    </listitem>
-
-    <listitem>
-    <para>
-     Fix bogus <quote>permission denied</> failures occurring on Windows
-     due to attempts to fsync already-deleted files (Magnus, Tom)
-    </para>
-    </listitem>
-
-    <listitem>
-    <para>
-     Fix possible crashes when an already-in-use PL/pgSQL function is
-     updated (Tom)
-    </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-1-6">
-  <title>Release 8.1.6</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2007-01-08</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.1.5.
-   For information about new features in the 8.1 major release, see
-   <xref linkend="release-8-1">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.1.6</title>
-
-   <para>
-    A dump/restore is not required for those running 8.1.X.
-    However, if you are upgrading from a version earlier than 8.1.2,
-    see <xref linkend="release-8-1-2">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Improve handling of <function>getaddrinfo()</> on AIX (Tom)
-     </para>
-
-     <para>
-      This fixes a problem with starting the statistics collector,
-      among other things.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>pg_restore</> to handle a tar-format backup
-      that contains large objects (blobs) with comments (Tom)
-     </para>
-    </listitem>
-
-     <listitem>
-      <para>
-       Fix <quote>failed to re-find parent key</> errors in
-       <command>VACUUM</> (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Clean out <filename>pg_internal.init</> cache files during server
-       restart (Simon)
-      </para>
-
-      <para>
-       This avoids a hazard that the cache files might contain stale
-       data after PITR recovery.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Fix race condition for truncation of a large relation across a
-       gigabyte boundary by <command>VACUUM</> (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Fix bug causing needless deadlock errors on row-level locks (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Fix bugs affecting multi-gigabyte hash indexes (Tom)
-      </para>
-     </listitem>
-
-    <listitem>
-     <para>
-      Fix possible deadlock in Windows signal handling (Teodor)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix error when constructing an <literal>ARRAY[]</> made up of multiple
-      empty elements (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix ecpg memory leak during connection (Michael)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix for Darwin (OS X) compilation (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      <function>to_number()</> and <function>to_char(numeric)</>
-      are now <literal>STABLE</>, not <literal>IMMUTABLE</>, for
-      new <application>initdb</> installs (Tom)
-     </para>
-
-     <para>
-      This is because <varname>lc_numeric</> can potentially
-      change the output of these functions.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve index usage of regular expressions that use parentheses (Tom)
-     </para>
-
-     <para>
-      This improves <application>psql</> <literal>\d</> performance also.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update timezone database
-     </para>
-
-     <para>
-      This affects Australian and Canadian daylight-savings rules in
-      particular.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-1-5">
-  <title>Release 8.1.5</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2006-10-16</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.1.4.
-   For information about new features in the 8.1 major release, see
-   <xref linkend="release-8-1">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.1.5</title>
-
-   <para>
-    A dump/restore is not required for those running 8.1.X.
-    However, if you are upgrading from a version earlier than 8.1.2,
-    see <xref linkend="release-8-1-2">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-<itemizedlist>
-<listitem><para>Disallow aggregate functions in <command>UPDATE</>
-commands, except within sub-SELECTs (Tom)</para>
-<para>The behavior of such an aggregate was unpredictable, and in 8.1.X
-could cause a crash, so it has been disabled.  The SQL standard does not allow
-this either.</para></listitem>
-<listitem><para>Fix core dump when an untyped literal is taken as
-ANYARRAY</para></listitem>
-<listitem><para>Fix core dump in duration logging for extended query protocol
-when a <command>COMMIT</> or <command>ROLLBACK</> is
-executed</para></listitem>
-<listitem><para>Fix mishandling of AFTER triggers when query contains a SQL
-function returning multiple rows (Tom)</para></listitem>
-<listitem><para>Fix <command>ALTER TABLE ... TYPE</> to recheck
-<literal>NOT NULL</> for <literal>USING</> clause (Tom)</para></listitem>
-<listitem><para>Fix <function>string_to_array()</> to handle overlapping
- matches for the separator string</para>
-<para>For example, <literal>string_to_array('123xx456xxx789', 'xx')</>.
-</para></listitem>
-<listitem><para>Fix <function>to_timestamp()</> for
-<literal>AM</>/<literal>PM</> formats (Bruce)</para></listitem>
-<listitem><para>Fix autovacuum's calculation that decides whether
- <command>ANALYZE</> is needed (Alvaro)</para></listitem>
-<listitem><para>Fix corner cases in pattern matching for
- <application>psql</>'s <literal>\d</> commands</para></listitem>
-<listitem><para>Fix index-corrupting bugs in /contrib/ltree
- (Teodor)</para></listitem>
-<listitem><para>Numerous robustness fixes in <application>ecpg</> (Joachim
-Wieland)</para></listitem>
-<listitem><para>Fix backslash escaping in /contrib/dbmirror</para></listitem>
-<listitem><para>Minor fixes in /contrib/dblink and /contrib/tsearch2</para>
-</listitem>
-<listitem><para>Efficiency improvements in hash tables and bitmap index scans
-(Tom)</para></listitem>
-<listitem><para>Fix instability of statistics collection on Windows (Tom, Andrew)</para></listitem>
-<listitem><para>Fix <varname>statement_timeout</> to use the proper
-units on Win32 (Bruce)</para>
-<para>In previous Win32 8.1.X versions, the delay was off by a factor of
-100.</para></listitem>
-<listitem><para>Fixes for <acronym>MSVC</> and <productname>Borland C++</>
-compilers (Hiroshi Saito)</para></listitem>
-<listitem><para>Fixes for <systemitem class="osname">AIX</> and
-<productname>Intel</> compilers (Tom)</para></listitem>
-<listitem><para>Fix rare bug in continuous archiving (Tom)</para></listitem>
-</itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-1-4">
-  <title>Release 8.1.4</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2006-05-23</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.1.3,
-   including patches for extremely serious security issues.
-   For information about new features in the 8.1 major release, see
-   <xref linkend="release-8-1">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.1.4</title>
-
-   <para>
-    A dump/restore is not required for those running 8.1.X.
-    However, if you are upgrading from a version earlier than 8.1.2,
-    see <xref linkend="release-8-1-2">.
-   </para>
-
-   <para>
-    Full security against the SQL-injection attacks described in
-    CVE-2006-2313 and CVE-2006-2314 might require changes in application
-    code.  If you have applications that embed untrustworthy strings
-    into SQL commands, you should examine them as soon as possible to
-    ensure that they are using recommended escaping techniques.  In
-    most cases, applications should be using subroutines provided by
-    libraries or drivers (such as <application>libpq</>'s
-    <function>PQescapeStringConn()</>) to perform string escaping,
-    rather than relying on <foreignphrase>ad hoc</> code to do it.
-   </para>
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-<itemizedlist>
-<listitem><para>Change the server to reject invalidly-encoded multibyte
-characters in all cases (Tatsuo, Tom)</para>
-<para>While <productname>PostgreSQL</> has been moving in this direction for
-some time, the checks are now applied uniformly to all encodings and all
-textual input, and are now always errors not merely warnings.  This change
-defends against SQL-injection attacks of the type described in CVE-2006-2313.
-</para></listitem>
-
-<listitem><para>Reject unsafe uses of <literal>\'</> in string literals</para>
-<para>As a server-side defense against SQL-injection attacks of the type
-described in CVE-2006-2314, the server now only accepts <literal>''</> and not
-<literal>\'</> as a representation of ASCII single quote in SQL string
-literals.  By default, <literal>\'</> is rejected only when
-<varname>client_encoding</> is set to a client-only encoding (SJIS, BIG5, GBK,
-GB18030, or UHC), which is the scenario in which SQL injection is possible.
-A new configuration parameter <varname>backslash_quote</> is available to
-adjust this behavior when needed.  Note that full security against
-CVE-2006-2314 might require client-side changes; the purpose of
-<varname>backslash_quote</> is in part to make it obvious that insecure
-clients are insecure.
-</para></listitem>
-
-<listitem><para>Modify <application>libpq</>'s string-escaping routines to be
-aware of encoding considerations and
-<varname>standard_conforming_strings</></para>
-<para>This fixes <application>libpq</>-using applications for the security
-issues described in CVE-2006-2313 and CVE-2006-2314, and also future-proofs
-them against the planned changeover to SQL-standard string literal syntax.
-Applications that use multiple <productname>PostgreSQL</> connections
-concurrently should migrate to <function>PQescapeStringConn()</> and
-<function>PQescapeByteaConn()</> to ensure that escaping is done correctly
-for the settings in use in each database connection.  Applications that
-do string escaping <quote>by hand</> should be modified to rely on library
-routines instead.
-</para></listitem>
-
-<listitem><para>Fix weak key selection in pgcrypto (Marko Kreen)</para>
-<para>Errors in fortuna PRNG reseeding logic could cause a predictable
-session key to be selected by <function>pgp_sym_encrypt()</> in some cases.
-This only affects non-OpenSSL-using builds.
-</para></listitem>
-
-<listitem><para>Fix some incorrect encoding conversion functions</para>
-<para><function>win1251_to_iso</>, <function>win866_to_iso</>,
-<function>euc_tw_to_big5</>, <function>euc_tw_to_mic</>,
-<function>mic_to_euc_tw</> were all broken to varying
-extents.
-</para></listitem>
-
-<listitem><para>Clean up stray remaining uses of <literal>\'</> in strings
-(Bruce, Jan)</para></listitem>
-
-<listitem><para>Make autovacuum visible in <structname>pg_stat_activity</>
-(Alvaro)</para></listitem>
-
-<listitem><para>Disable <literal>full_page_writes</> (Tom)</para>
-<para>In certain cases, having <literal>full_page_writes</> off would cause
-crash recovery to fail.  A proper fix will appear in 8.2; for now it's just
-disabled.
-</para></listitem>
-
-<listitem><para>Various planner fixes, particularly for bitmap index scans and
-MIN/MAX optimization (Tom)</para></listitem>
-
-<listitem><para>Fix incorrect optimization in merge join (Tom)</para>
-<para>Outer joins could sometimes emit multiple copies of unmatched rows.
-</para></listitem>
-
-<listitem><para>Fix crash from using and modifying a plpgsql function in the
-same transaction</para></listitem>
-
-<listitem><para>Fix WAL replay for case where a B-Tree index has been
-truncated</para></listitem>
-
-<listitem><para>Fix <literal>SIMILAR TO</> for patterns involving
-<literal>|</> (Tom)</para></listitem>
-
-<listitem><para>Fix <command>SELECT INTO</> and <command>CREATE TABLE AS</> to
-create tables in the default tablespace, not the base directory (Kris
-Jurka)</para></listitem>
-
-<listitem><para>Fix server to use custom DH SSL parameters correctly (Michael
-Fuhr)</para></listitem>
-
-<listitem><para>Improve qsort performance (Dann Corbit)</para>
-<para>Currently this code is only used on Solaris.
-</para></listitem>
-
-<listitem><para>Fix for OS/X Bonjour on x86 systems (Ashley Clark)</para></listitem>
-
-<listitem><para>Fix various minor memory leaks</para></listitem>
-
-<listitem><para>Fix problem with password prompting on some Win32 systems
-(Robert Kinberg)</para></listitem>
-
-<listitem><para>Improve <application>pg_dump</>'s handling of default values
-for domains</para></listitem>
-
-<listitem><para>Fix <application>pg_dumpall</> to handle identically-named
-users and groups reasonably (only possible when dumping from a pre-8.1 server)
-(Tom)</para>
-<para>The user and group will be merged into a single role with
-<literal>LOGIN</> permission.  Formerly the merged role wouldn't have
-<literal>LOGIN</> permission, making it unusable as a user.
-</para></listitem>
-
-<listitem><para>Fix <application>pg_restore</> <literal>-n</> to work as
-documented (Tom)</para></listitem>
-</itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-1-3">
-  <title>Release 8.1.3</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2006-02-14</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.1.2,
-   including one very serious security issue.
-   For information about new features in the 8.1 major release, see
-   <xref linkend="release-8-1">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.1.3</title>
-
-   <para>
-    A dump/restore is not required for those running 8.1.X.
-    However, if you are upgrading from a version earlier than 8.1.2,
-    see <xref linkend="release-8-1-2">.
-   </para>
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-<itemizedlist>
-
-<listitem><para>Fix bug that allowed any logged-in user to <command>SET
-ROLE</> to any other database user id (CVE-2006-0553)</para>
-<para>Due to inadequate validity checking, a user could exploit the special
-case that <command>SET ROLE</> normally uses to restore the previous role
-setting after an error.  This allowed ordinary users to acquire superuser
-status, for example.
-The escalation-of-privilege risk exists only in 8.1.0-8.1.2.
-However, in all releases back to 7.3 there is a related bug in <command>SET
-SESSION AUTHORIZATION</> that allows unprivileged users to crash the server,
-if it has been compiled with Asserts enabled (which is not the default).
-Thanks to Akio Ishida for reporting this problem.
-</para></listitem>
-
-<listitem><para>Fix bug with row visibility logic in self-inserted
-rows (Tom)</para>
-<para>Under rare circumstances a row inserted by the current command
-could be seen as already valid, when it should not be.  Repairs bug
-created in 8.0.4, 7.4.9, and 7.3.11 releases.
-</para></listitem>
-
-<listitem><para>Fix race condition that could lead to <quote>file already
-exists</> errors during pg_clog and pg_subtrans file creation
-(Tom)</para></listitem>
-
-<listitem><para>Fix cases that could lead to crashes if a cache-invalidation
-message arrives at just the wrong time (Tom)</para></listitem>
-
-<listitem><para>Properly check <literal>DOMAIN</> constraints for
-<literal>UNKNOWN</> parameters in prepared statements
-(Neil)</para></listitem>
-
-<listitem><para>Ensure <command>ALTER COLUMN TYPE</> will process
-<literal>FOREIGN KEY</>, <literal>UNIQUE</>, and <literal>PRIMARY KEY</>
-constraints in the proper order (Nakano Yoshihisa)</para></listitem>
-
-<listitem><para>Fixes to allow restoring dumps that have cross-schema
-references to custom operators or operator classes (Tom)</para></listitem>
-
-<listitem><para>Allow <application>pg_restore</> to continue properly after a
-<command>COPY</> failure; formerly it tried to treat the remaining
-<command>COPY</> data as SQL commands (Stephen Frost)</para></listitem>
-
-<listitem><para>Fix <application>pg_ctl</> <literal>unregister</> crash
-when the  data directory is not specified (Magnus)</para></listitem>
-
-<listitem><para>Fix <application>libpq</> <function>PQprint</> HTML tags
-(Christoph Zwerschke)</para></listitem>
-
-<listitem><para>Fix <application>ecpg</> crash on AMD64 and PPC
-(Neil)</para></listitem>
-
-<listitem><para>Allow <literal>SETOF</> and <literal>%TYPE</> to be used
-together in function result type declarations</para></listitem>
-
-<listitem><para>Recover properly if error occurs during argument passing
-in <application>PL/python</> (Neil)</para></listitem>
-
-<listitem><para>Fix memory leak in <function>plperl_return_next</>
-(Neil)</para></listitem>
-
-<listitem><para>Fix <application>PL/perl</>'s handling of locales on
-Win32 to match the backend (Andrew)</para></listitem>
-
-<listitem><para>Various optimizer fixes (Tom)</para></listitem>
-
-<listitem><para>Fix crash when <literal>log_min_messages</> is set to
-<literal>DEBUG3</> or above in <filename>postgresql.conf</> on Win32
-(Bruce)</para></listitem>
-
-<listitem><para>Fix <application>pgxs</> <literal>-L</> library path
-specification for Win32, Cygwin, OS X, AIX (Bruce)</para></listitem>
-
-<listitem><para>Check that SID is enabled while checking for Win32 admin
-privileges (Magnus)</para></listitem>
-
-<listitem><para>Properly reject out-of-range date inputs (Kris
-Jurka)</para></listitem>
-
-<listitem><para>Portability fix for testing presence of <function>finite</>
-and <function>isinf</> during configure (Tom)</para></listitem>
-
-<listitem><para>Improve speed of <command>COPY IN</> via libpq, by
-avoiding a kernel call per data line (Alon Goldshuv)</para></listitem>
-
-<listitem><para>Improve speed of <filename>/contrib/tsearch2</> index
-creation (Tom)</para></listitem>
-
-</itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-1-2">
-  <title>Release 8.1.2</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2006-01-09</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.1.1.
-   For information about new features in the 8.1 major release, see
-   <xref linkend="release-8-1">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.1.2</title>
-
-   <para>
-    A dump/restore is not required for those running 8.1.X.
-    However, you might need to <command>REINDEX</> indexes on textual
-    columns after updating, if you are affected by the locale or
-    <application>plperl</> issues described below.
-   </para>
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-<itemizedlist>
-
-<listitem><para>Fix Windows code so that postmaster will continue rather
-than exit if there is no more room in ShmemBackendArray (Magnus)</para>
-<para>The previous behavior could lead to a denial-of-service situation if too
-many connection requests arrive close together.  This applies
-<emphasis>only</> to the Windows port.</para></listitem>
-
-<listitem><para>Fix bug introduced in 8.0 that could allow ReadBuffer
-to return an already-used page as new, potentially causing loss of
-recently-committed data (Tom)</para></listitem>
-
-<listitem><para>Fix for protocol-level Describe messages issued
-outside a transaction or in a failed transaction (Tom)</para></listitem>
-
-<listitem><para>Fix character string comparison for locales that consider
-different character combinations as equal, such as Hungarian (Tom)</para>
-<para>This might require <command>REINDEX</> to fix existing indexes on
-textual columns.</para></listitem>
-
-<listitem><para>Set locale environment variables during postmaster startup
-to ensure that <application>plperl</> won't change the locale later</para>
-<para>This fixes a problem that occurred if the <application>postmaster</> was
-started with environment variables specifying a different locale than what
-<application>initdb</> had been told.  Under these conditions, any use of
-<application>plperl</> was likely to lead to corrupt indexes.  You might need
-<command>REINDEX</> to fix existing indexes on
-textual columns if this has happened to you.</para></listitem>
-
-<listitem><para>Allow more flexible relocation of installation
-directories (Tom)</para>
-<para>Previous releases supported relocation only if all installation
-directory paths were the same except for the last component.</para></listitem>
-
-<listitem><para>Prevent crashes caused by the use of
-<literal>ISO-8859-5</> and <literal>ISO-8859-9</> encodings
-(Tatsuo)</para></listitem>
-
-<listitem><para>Fix longstanding bug in strpos() and regular expression
-handling in certain rarely used Asian multi-byte character sets (Tatsuo)
-</para></listitem>
-
-<listitem><para>Fix bug where COPY CSV mode considered any
-<literal>\.</> to terminate the copy data</para> <para>The new code
-requires <literal>\.</> to appear alone on a line, as per
-documentation.</para></listitem>
-
-<listitem><para>Make COPY CSV mode quote a literal data value of
-<literal>\.</> to ensure it cannot be interpreted as the
-end-of-data marker (Bruce)</para></listitem>
-
-<listitem><para>Various fixes for functions returning <literal>RECORD</>s
-(Tom) </para></listitem>
-
-<listitem><para>Fix processing of <filename>postgresql.conf</> so a
-final line with no newline is processed properly (Tom)
-</para></listitem>
-
-<listitem><para>Fix bug in <filename>/contrib/pgcrypto</> gen_salt,
-which caused it not to use all available salt space for MD5 and
-XDES algorithms (Marko Kreen, Solar Designer)</para>
-<para>Salts for Blowfish and standard DES are unaffected.</para></listitem>
-
-<listitem><para>Fix autovacuum crash when processing expression indexes
-</para></listitem>
-
-<listitem><para>Fix <filename>/contrib/dblink</> to throw an error,
-rather than crashing, when the number of columns specified is different from
-what's actually returned by the query (Joe)</para></listitem>
-
-</itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-1-1">
-  <title>Release 8.1.1</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2005-12-12</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.1.0.
-   For information about new features in the 8.1 major release, see
-   <xref linkend="release-8-1">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.1.1</title>
-
-   <para>
-    A dump/restore is not required for those running 8.1.X.
-   </para>
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-<itemizedlist>
-<listitem><para>Fix incorrect optimizations of outer-join conditions
-(Tom)</para></listitem>
-
-<listitem><para>Fix problems with wrong reported column names in cases
-involving sub-selects flattened by the optimizer (Tom)</para></listitem>
-
-<listitem><para>Fix update failures in scenarios involving CHECK constraints,
-toasted columns, <emphasis>and</> indexes (Tom)</para></listitem>
-
-<listitem><para>Fix bgwriter problems after recovering from errors
-(Tom)</para>
-<para>
-The background writer was found to leak buffer pins after write errors.
-While not fatal in itself, this might lead to mysterious blockages of
-later VACUUM commands.
-</para>
-</listitem>
-
-<listitem><para>Prevent failure if client sends Bind protocol message
-when current transaction is already aborted</para></listitem>
-
-<listitem><para><filename>/contrib/tsearch2</> and <filename>/contrib/ltree</>
-fixes (Teodor)</para></listitem>
-
-<listitem><para>Fix problems with translated error messages in
-languages that require word reordering, such as Turkish; also problems with
-unexpected truncation of output strings and wrong display of the smallest
-possible bigint value (Andrew, Tom)</para>
-<para>
-These problems only appeared on platforms that were using our
-<filename>port/snprintf.c</> code, which includes BSD variants if
-<literal>--enable-nls</> was given, and perhaps others.  In addition,
-a different form of the translated-error-message problem could appear
-on Windows depending on which version of <filename>libintl</> was used.
-</para></listitem>
-
-<listitem><para>Re-allow <literal>AM</>/<literal>PM</>, <literal>HH</>,
-<literal>HH12</>, and <literal>D</> format specifiers for
-<function>to_char(time)</> and <function>to_char(interval)</>.
-(<function>to_char(interval)</> should probably use
-<literal>HH24</>.) (Bruce)</para></listitem>
-
-<listitem><para>AIX, HPUX, and MSVC compile fixes (Tom, Hiroshi
-Saito)</para></listitem>
-
-<listitem><para>Optimizer improvements (Tom)</para></listitem>
-
-<listitem><para>Retry file reads and writes after Windows
-NO_SYSTEM_RESOURCES error (Qingqing Zhou)</para></listitem>
-
-<listitem><para>Prevent <application>autovacuum</> from crashing during
-ANALYZE of expression index (Alvaro)</para></listitem>
-
-<listitem><para>Fix problems with ON COMMIT DELETE ROWS temp
-tables</para></listitem>
-
-<listitem><para>Fix problems when a trigger alters the output of a SELECT
-DISTINCT query</para></listitem>
-
-<listitem><para>Add 8.1.0 release note item on how to migrate invalid
-<literal>UTF-8</> byte sequences (Paul Lindner)</para></listitem>
-</itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-1">
-  <title>Release 8.1</title>
-
-  <formalpara>
-   <title>Release date:</title>
-   <para>2005-11-08</para>
-  </formalpara>
-
-  <sect2>
-   <title>Overview</title>
-
-   <para>
-    Major changes in this release:
-   </para>
-
-   <variablelist>
-
-    <varlistentry>
-     <term>
-      Improve concurrent access to the shared buffer cache (Tom)
-     </term>
-
-     <listitem>
-      <para>
-       Access to the shared buffer cache was identified as a
-       significant scalability problem, particularly on multi-CPU
-       systems. In this release, the way that locking is done in the
-       buffer manager has been overhauled to reduce lock contention
-       and improve scalability. The buffer manager has also been
-       changed to use a <quote>clock sweep</quote> replacement
-       policy.
-      </para>
-     </listitem>
-    </varlistentry>
-
-    <varlistentry>
-     <term>
-      Allow index scans to use an intermediate in-memory bitmap (Tom)
-     </term>
-
-     <listitem>
-      <para>
-       In previous releases, only a single index could be used to do
-       lookups on a table. With this feature, if a query has
-       <command>WHERE tab.col1 = 4 and tab.col2 = 9</>, and there is
-       no multicolumn index on <literal>col1</> and <literal>col2</>,
-       but there is an index on <literal>col1</> and another on
-       <literal>col2</>, it is possible to search both indexes and
-       combine the results in memory, then do heap fetches for only
-       the rows matching both the <literal>col1</> and
-       <literal>col2</> restrictions. This is very useful in
-       environments that have a lot of unstructured queries where it
-       is impossible to create indexes that match all possible access
-       conditions.  Bitmap scans are useful even with a single index,
-       as they reduce the amount of random access needed; a bitmap
-       index scan is efficient for retrieving fairly large fractions
-       of the complete table, whereas plain index scans are not.
-      </para>
-     </listitem>
-    </varlistentry>
-
-    <varlistentry>
-     <term>
-      Add two-phase commit (Heikki Linnakangas, Alvaro, Tom)
-     </term>
-
-     <listitem>
-      <para>
-       Two-phase commit allows transactions to be "prepared" on several
-       computers, and once all computers have successfully prepared
-       their transactions (none failed), all transactions can be
-       committed. Even if a machine crashes after a prepare, the
-       prepared transaction can be committed after the machine is
-       restarted. New syntax includes <command>PREPARE TRANSACTION</> and
-       <command>COMMIT/ROLLBACK PREPARED</>. A new system view
-       <literal>pg_prepared_xacts</> has also been added.
-      </para>
-     </listitem>
-    </varlistentry>
-
-    <varlistentry>
-     <term>
-      Create a new role system that replaces users and groups
-      (Stephen Frost)
-     </term>
-
-     <listitem>
-      <para>
-       Roles are a combination of users and groups. Like users, they
-       can have login capability, and like groups, a role can have
-       other roles as members. Roles basically remove the distinction
-       between users and groups. For example, a role can:
-      </para>
-
-      <itemizedlist>
-
-       <listitem>
-        <para>
-          Have login capability (optionally)
-        </para>
-       </listitem>
-
-       <listitem>
-        <para>
-         Own objects
-        </para>
-       </listitem>
-
-       <listitem>
-        <para>
-         Hold access permissions for database objects
-        </para>
-       </listitem>
-
-       <listitem>
-        <para>
-         Inherit permissions from other roles it is a member of
-        </para>
-       </listitem>
-
-      </itemizedlist>
-      <para>
-       Once a user logs into a role, she obtains capabilities of
-       the login role plus any inherited roles, and can use
-       <command>SET ROLE</> to switch to other roles she is a member of.
-       This feature is a generalization of the SQL standard's concept of
-       roles.
-       This change also replaces <structname>pg_shadow</> and
-       <structname>pg_group</> by new role-capable catalogs
-       <structname>pg_authid</> and <structname>pg_auth_members</>. The old
-       tables are redefined as read-only views on the new role tables.
-      </para>
-     </listitem>
-    </varlistentry>
-
-    <varlistentry>
-     <term>
-      Automatically use indexes for <function>MIN()</> and
-      <function>MAX()</> (Tom)
-     </term>
-
-     <listitem>
-      <para>
-       In previous releases, the only way to use an index for
-       <function>MIN()</> or <function>MAX()</> was to rewrite the
-       query as <command>SELECT col FROM tab ORDER BY col LIMIT 1</>.
-       Index usage now happens automatically.
-      </para>
-     </listitem>
-    </varlistentry>
-
-    <varlistentry>
-     <term>
-      Move <filename>/contrib/pg_autovacuum</> into the main server
-      (Alvaro)
-     </term>
-
-     <listitem>
-      <para>
-       Integrating autovacuum into the server allows it to be
-       automatically started and stopped in sync with the database
-       server, and allows autovacuum to be configured from
-       <filename>postgresql.conf</>.
-      </para>
-     </listitem>
-    </varlistentry>
-
-    <varlistentry>
-     <term>
-      Add shared row level locks using <command>SELECT ... FOR SHARE</>
-      (Alvaro)
-     </term>
-
-     <listitem>
-      <para>
-       While <productname>PostgreSQL</productname>'s MVCC locking
-       allows <command>SELECT</> to never be blocked by writers and
-       therefore does not need shared row locks for typical operations,
-       shared locks are useful for applications that require shared row
-       locking.  In particular this reduces the locking requirements
-       imposed by referential integrity checks.
-      </para>
-     </listitem>
-    </varlistentry>
-
-    <varlistentry>
-     <term>
-      Add dependencies on shared objects, specifically roles
-      (Alvaro)
-     </term>
-
-     <listitem>
-      <para>
-       This extension of the dependency mechanism prevents roles from
-       being dropped while there are still database objects they own.
-       Formerly it was possible to accidentally <quote>orphan</> objects by
-       deleting their owner.  While this could be recovered from, it
-       was messy and unpleasant.
-      </para>
-     </listitem>
-    </varlistentry>
-
-    <varlistentry>
-     <term>
-      Improve performance for partitioned tables (Simon)
-     </term>
-
-     <listitem>
-      <para>
-       The new <varname>constraint_exclusion</varname> configuration
-       parameter avoids lookups on child tables where constraints indicate
-       that no matching rows exist in the child table.
-      </para>
-      <para>
-       This allows for a basic type of table partitioning. If child tables
-       store separate key ranges and this is enforced using appropriate
-       <command>CHECK</> constraints, the optimizer will skip child
-       table accesses when the constraint guarantees no matching rows
-       exist in the child table.
-      </para>
-     </listitem>
-    </varlistentry>
-
-   </variablelist>
-  </sect2>
-
-  <sect2>
-   <title>Migration to Version 8.1</title>
-
-   <para>
-    A dump/restore using <application>pg_dump</application> is required
-    for those wishing to migrate data from any previous release.
-   </para>
-
-   <para>
-    The 8.0 release announced that the <function>to_char()</> function
-    for intervals would be removed in 8.1. However, since no better API
-    has been suggested, <function>to_char(interval)</> has been enhanced in
-    8.1 and will remain in the server.
-   </para>
-
-   <para>
-    Observe the following incompatibilities:
-   </para>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      <varname>add_missing_from</> is now false by default (Neil)
-     </para>
-     <para>
-      By default, we now generate an error if a table is used in a query
-      without a <literal>FROM</> reference.  The old behavior is still
-      available, but the parameter must be set to 'true' to obtain it.
-     </para>
-
-     <para>
-      It might be necessary to set <varname>add_missing_from</> to true
-      in order to load an existing dump file, if the dump contains any
-      views or rules created using the implicit-<literal>FROM</> syntax.
-      This should be a one-time annoyance, because
-      <productname>PostgreSQL</productname> 8.1 will convert
-      such views and rules to standard explicit-<literal>FROM</> syntax.
-      Subsequent dumps will therefore not have the problem.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Cause input of a zero-length string (<literal>''</literal>) for
-      <type>float4</type>/<type>float8</type>/<type>oid</type>
-      to throw an error, rather than treating it as a zero (Neil)
-     </para>
-     <para>
-      This change is consistent with the current handling of
-      zero-length strings for integers. The schedule for this change
-      was announced in 8.0.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      <varname>default_with_oids</> is now false by default (Neil)
-     </para>
-     <para>
-      With this option set to false, user-created tables no longer
-      have an OID column unless <command>WITH OIDS</> is specified in
-      <command>CREATE TABLE</>. Though OIDs have existed in all
-      releases of <productname>PostgreSQL</>, their use is limited
-      because they are only four bytes long and the counter is shared
-      across all installed databases. The preferred way of uniquely
-      identifying rows is via sequences and the <type>SERIAL</> type,
-      which have been supported since <productname>PostgreSQL</> 6.4.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Add <literal>E''</> syntax so eventually ordinary strings can
-      treat backslashes literally (Bruce)
-     </para>
-     <para>
-      Currently <productname>PostgreSQL</productname> processes a
-      backslash in a string literal as introducing a special escape sequence,
-      e.g. <literal>\n</> or <literal>\010</>.
-      While this allows easy entry of special values, it is
-      nonstandard and makes porting of applications from other
-      databases more difficult. For this reason, the
-      <productname>PostgreSQL</productname> project is planning to
-      remove the special meaning of backslashes in strings. For
-      backward compatibility and for users who want special backslash
-      processing, a new string syntax has been created. This new string
-      syntax is formed by writing an <literal>E</> immediately preceding the
-      single quote that starts the string, e.g. <literal>E'hi\n'</>. While
-      this release does not change the handling of backslashes in strings, it
-      does add new configuration parameters to help users migrate applications
-      for future releases:
-     </para>
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        <varname>standard_conforming_strings</> &mdash; does this release
-        treat backslashes literally in ordinary strings?
-       </para>
-      </listitem>
-
-      <listitem>
-      <para>
-       <varname>escape_string_warning</> &mdash; warn about backslashes in
-       ordinary (non-E) strings
-      </para>
-     </listitem>
-
-     </itemizedlist>
-
-     <para>
-      The <varname>standard_conforming_strings</> value is read-only.
-      Applications can retrieve the value to know how backslashes are
-      processed.  (Presence of the parameter can also be taken as an
-      indication that <literal>E''</> string syntax is supported.)
-      In a future release, <varname>standard_conforming_strings</>
-      will be true, meaning backslashes will be treated literally in
-      non-E strings. To prepare for this change, use <literal>E''</>
-      strings in places that need special backslash processing, and
-      turn on <varname>escape_string_warning</> to find additional
-      strings that need to be converted to use <literal>E''</>.
-      Also, use two single-quotes (<literal>''</>) to embed a literal
-      single-quote in a string, rather than the
-      <productname>PostgreSQL</productname>-supported syntax of
-      backslash single-quote (<literal>\'</>).  The former is
-      standards-conforming and does not require the use of the
-      <literal>E''</> string syntax.  You can also use the
-      <literal>$$</> string syntax, which does not treat backslashes
-      specially.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <command>REINDEX DATABASE</> reindex all indexes in the
-      database (Tom)
-     </para>
-     <para>
-      Formerly, <command>REINDEX DATABASE</> reindexed only
-      system tables. This new behavior seems more intuitive. A new
-      command <command>REINDEX SYSTEM</> provides the old functionality
-      of reindexing just the system tables.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Read-only large object descriptors now obey MVCC snapshot semantics
-     </para>
-     <para>
-      When a large object is opened with <literal>INV_READ</> (and not
-      <literal>INV_WRITE</>), the data read from the descriptor will now
-      reflect a <quote>snapshot</> of the large object's state at the
-      time of the transaction snapshot in use by the query that called
-      <function>lo_open()</>.  To obtain the old behavior of always
-      returning the latest committed data, include <literal>INV_WRITE</>
-      in the mode flags for <function>lo_open()</>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Add proper dependencies for arguments of sequence functions (Tom)
-     </para>
-     <para>
-      In previous releases, sequence names passed to <function>nextval()</>,
-      <function>currval()</>, and <function>setval()</> were stored as
-      simple text strings, meaning that renaming or dropping a
-      sequence used in a <literal>DEFAULT</> clause made the clause
-      invalid. This release stores all newly-created sequence function
-      arguments as internal OIDs, allowing them to track sequence
-      renaming, and adding dependency information that prevents
-      improper sequence removal. It also makes such <literal>DEFAULT</>
-      clauses immune to schema renaming and search path changes.
-     </para>
-     <para>
-      Some applications might rely on the old behavior of
-      run-time lookup for sequence names. This can still be done by
-      explicitly casting the argument to <type>text</>, for example
-      <literal>nextval('myseq'::text)</>.
-     </para>
-     <para>
-      Pre-8.1 database dumps loaded into 8.1 will use the old text-based
-      representation and therefore will not have the features of
-      OID-stored arguments. However, it is possible to update a
-      database containing text-based <literal>DEFAULT</> clauses.
-      First, save this query into a file, such as <filename>fixseq.sql</>:
-<programlisting>
-SELECT  'ALTER TABLE ' ||
-   pg_catalog.quote_ident(n.nspname) || '.' ||
-   pg_catalog.quote_ident(c.relname) ||
-   ' ALTER COLUMN ' || pg_catalog.quote_ident(a.attname) ||
-   ' SET DEFAULT ' ||
-   regexp_replace(d.adsrc,
-                  $$val\(\(('[^']*')::text\)::regclass$$,
-                  $$val(\1$$,
-                  'g') ||
-   ';'
-FROM    pg_namespace n, pg_class c, pg_attribute a, pg_attrdef d
-WHERE   n.oid = c.relnamespace AND
-   c.oid = a.attrelid AND
-   a.attrelid = d.adrelid AND
-   a.attnum = d.adnum AND
-   d.adsrc ~ $$val\(\('[^']*'::text\)::regclass$$;
-</programlisting>
-      Next, run the query against a database to find what
-      adjustments are required, like this for database <literal>db1</>:
-<programlisting>
-psql -t -f fixseq.sql db1
-</programlisting>
-      This will show the <command>ALTER TABLE</> commands needed to
-      convert the database to the newer OID-based representation.
-      If the commands look reasonable, run this to update the database:
-<programlisting>
-psql -t -f fixseq.sql db1 | psql -e db1
-</programlisting>
-      This process must be repeated in each database to be updated.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      In <application>psql</application>, treat unquoted
-      <literal>\{digit}+</> sequences as octal (Bruce)
-     </para>
-     <para>
-      In previous releases, <literal>\{digit}+</> sequences were
-      treated as decimal, and only <literal>\0{digit}+</> were treated
-      as octal. This change was made for consistency.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Remove grammar productions for prefix and postfix <literal>%</>
-      and <literal>^</> operators
-      (Tom)
-     </para>
-     <para>
-      These have never been documented and complicated the use of the
-      modulus operator (<literal>%</>) with negative numbers.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <literal>&amp;&lt;</> and <literal>&amp;&gt;</> for polygons
-      consistent with the box "over" operators (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      <command>CREATE LANGUAGE</> can ignore the provided arguments
-      in favor of information from <structname>pg_pltemplate</>
-      (Tom)
-     </para>
-     <para>
-      A new system catalog <structname>pg_pltemplate</> has been defined
-      to carry information about the preferred definitions of procedural
-      languages (such as whether they have validator functions).  When
-      an entry exists in this catalog for the language being created,
-      <command>CREATE LANGUAGE</> will ignore all its parameters except the
-      language name and instead use the catalog information.  This measure
-      was taken because of increasing problems with obsolete language
-      definitions being loaded by old dump files.  As of 8.1,
-      <application>pg_dump</> will dump procedural language definitions as
-      just <command>CREATE LANGUAGE <replaceable>name</></command>, relying
-      on a template entry to exist at load time.  We expect this will be a
-      more future-proof representation.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <function>pg_cancel_backend(int)</function> return a
-      <type>boolean</type> rather than an <type>integer</type> (Neil)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Some users are having problems loading UTF-8 data into 8.1.X.
-      This is because previous versions allowed invalid UTF-8 byte
-      sequences to be entered into the database, and this release
-      properly accepts only valid UTF-8 sequences. One way to correct a
-      dumpfile is to run the command <command>iconv -c -f UTF-8 -t
-      UTF-8 -o cleanfile.sql dumpfile.sql</>. The <literal>-c</> option
-      removes invalid character sequences. A diff of the two files will
-      show the sequences that are invalid. <command>iconv</> reads the
-      entire input file into memory so it might be necessary to use
-      <application>split</> to break up the dump into multiple smaller
-      files for processing.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-  </sect2>
-
-  <sect2>
-   <title>Additional Changes</title>
-
-   <para>
-    Below you will find a detailed account of the additional changes
-    between <productname>PostgreSQL</productname> 8.1 and the
-    previous major release.
-   </para>
-
-   <sect3>
-    <title>Performance Improvements</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Improve GiST and R-tree index performance (Neil)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Improve the optimizer, including auto-resizing of hash joins
-       (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Overhaul internal API in several areas
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Change WAL record CRCs from 64-bit to 32-bit (Tom)
-      </para>
-      <para>
-       We determined that the extra cost of computing 64-bit CRCs was
-       significant, and the gain in reliability too marginal to justify it.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Prevent writing large empty gaps in WAL pages (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Improve spinlock behavior on SMP machines, particularly Opterons (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow nonconsecutive index columns to be used in a multicolumn
-       index (Tom)
-      </para>
-      <para>
-       For example, this allows an index on columns a,b,c to be used in
-       a query with <command>WHERE a = 4 and c = 10</>.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Skip WAL logging for <command>CREATE TABLE AS</> /
-       <command>SELECT INTO</> (Simon)
-      </para>
-      <para>
-       Since a crash during <command>CREATE TABLE AS</> would cause the
-       table to be dropped during recovery, there is no reason to WAL
-       log as the table is loaded.  (Logging still happens if WAL
-       archiving is enabled, however.)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow concurrent GiST index access (Teodor, Oleg)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add configuration parameter <varname>full_page_writes</> to
-       control writing full pages to WAL (Bruce)
-      </para>
-      <para>
-       To prevent partial disk writes from corrupting the database,
-       <productname>PostgreSQL</productname> writes a complete copy of
-       each database disk page to WAL the first time it is modified
-       after a checkpoint. This option turns off that functionality for more
-       speed.  This is safe to use with battery-backed disk caches where
-       partial page writes cannot happen.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Use <literal>O_DIRECT</> if available when using
-       <literal>O_SYNC</> for <varname>wal_sync_method</varname>
-       (Itagaki Takahiro)
-      </para>
-      <para>
-       <literal>O_DIRECT</> causes disk writes to bypass the kernel
-       cache, and for WAL writes, this improves performance.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Improve <command>COPY FROM</> performance (Alon Goldshuv)
-      </para>
-      <para>
-       This was accomplished by reading <command>COPY</> input in
-       larger chunks, rather than character by character.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Improve the performance of <function>COUNT()</function>,
-       <function>SUM</function>, <function>AVG()</function>,
-       <function>STDDEV()</function>, and
-       <function>VARIANCE()</function> (Neil, Tom)
-      </para>
-     </listitem>
-    </itemizedlist>
-   </sect3>
-
-   <sect3>
-    <title>Server Changes</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Prevent problems due to transaction ID (XID) wraparound (Tom)
-      </para>
-      <para>
-       The server will now warn when the transaction counter approaches
-       the wraparound point.  If the counter becomes too close to wraparound,
-       the server will stop accepting queries.  This ensures that data is
-       not lost before needed vacuuming is performed.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Fix problems with object IDs (OIDs) conflicting with existing system
-       objects after the OID counter has wrapped around (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add warning about the need to increase
-       <varname>max_fsm_relations</> and <varname>max_fsm_pages</>
-       during <command>VACUUM</> (Ron Mayer)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <varname>temp_buffers</> configuration parameter to allow
-       users to determine the size of the local buffer area for
-       temporary table access (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add session start time and client IP address to
-       <literal>pg_stat_activity</> (Magnus)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Adjust <literal>pg_stat</> views for bitmap scans (Tom)
-      </para>
-      <para>
-       The meanings of some of the fields have changed slightly.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Enhance <literal>pg_locks</> view (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Log queries for client-side <command>PREPARE</> and
-       <command>EXECUTE</> (Simon)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow Kerberos name and user name case sensitivity to be
-       specified in <filename>postgresql.conf</> (Magnus)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add configuration parameter <varname>krb_server_hostname</> so
-       that the server host name can be specified as part of service
-       principal (Todd Kover)
-      </para>
-      <para>
-       If not set, any service principal matching an entry in the
-       keytab can be used. This is new Kerberos matching behavior in
-       this release.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <varname>log_line_prefix</> options for millisecond
-       timestamps (<literal>%m</>) and remote host (<literal>%h</>) (Ed
-       L.)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add WAL logging for GiST indexes (Teodor, Oleg)
-      </para>
-      <para>
-       GiST indexes are now safe for crash and point-in-time recovery.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Remove old <filename>*.backup</> files when we do
-       <function>pg_stop_backup()</> (Bruce)
-      </para>
-      <para>
-       This prevents a large number of <filename>*.backup</> files from
-       existing in <filename>pg_xlog/</>.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add configuration parameters to control TCP/IP keep-alive
-       times for idle, interval, and count (Oliver Jowett)
-      </para>
-
-      <para>
-       These values can be changed to allow more rapid detection of
-       lost client connections.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add per-user and per-database connection limits (Petr Jelinek)
-      </para>
-      <para>
-       Using <command>ALTER USER</> and <command>ALTER DATABASE</>,
-       limits can now be enforced on the maximum number of sessions that
-       can concurrently connect as a specific user or to a specific database.
-       Setting the limit to zero disables user or database connections.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow more than two gigabytes of shared memory and per-backend
-       work memory on 64-bit machines (Koichi Suzuki)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       New system catalog <structname>pg_pltemplate</> allows overriding
-       obsolete procedural-language definitions in dump files (Tom)
-      </para>
-     </listitem>
-
-    </itemizedlist>
-   </sect3>
-
-
-   <sect3>
-    <title>Query Changes</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Add temporary views (Koju Iijima, Neil)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Fix <command>HAVING</> without any aggregate functions or
-       <command>GROUP BY</> so that the query returns a single group (Tom)
-      </para>
-      <para>
-       Previously, such a case would treat the <command>HAVING</>
-       clause the same as a <command>WHERE</> clause.  This was not per spec.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <command>USING</> clause to allow additional tables to be
-       specified to <command>DELETE</> (Euler Taveira de Oliveira, Neil)
-      </para>
-      <para>
-       In prior releases, there was no clear method for specifying
-       additional tables to be used for joins in a <command>DELETE</>
-       statement. <command>UPDATE</> already has a <literal>FROM</>
-       clause for this purpose.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add support for <literal>\x</> hex escapes in backend and ecpg
-       strings (Bruce)
-      </para>
-      <para>
-       This is just like the standard C <literal>\x</> escape syntax.
-       Octal escapes were already supported.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <command>BETWEEN SYMMETRIC</> query syntax (Pavel Stehule)
-      </para>
-      <para>
-       This feature allows <command>BETWEEN</> comparisons without
-       requiring the first value to be less than the second. For
-       example, <command>2 BETWEEN [ASYMMETRIC] 3 AND 1</> returns
-       false, while <command>2 BETWEEN SYMMETRIC 3 AND 1</> returns
-       true. <command>BETWEEN ASYMMETRIC</> was already supported.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <command>NOWAIT</> option to <command>SELECT ... FOR
-       UPDATE/SHARE</> (Hans-Juergen Schoenig)
-      </para>
-      <para>
-       While the <varname>statement_timeout</> configuration
-       parameter allows a query taking more than a certain amount of
-       time to be canceled, the <command>NOWAIT</> option allows a
-       query to be canceled as soon as a <command>SELECT ... FOR
-       UPDATE/SHARE</> command cannot immediately acquire a row lock.
-      </para>
-     </listitem>
-    </itemizedlist>
-   </sect3>
-
-
-   <sect3>
-    <title>Object Manipulation Changes</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Track dependencies of shared objects (Alvaro)
-      </para>
-      <para>
-       <productname>PostgreSQL</productname> allows global tables
-       (users, databases, tablespaces) to reference information in
-       multiple databases. This addition adds dependency information
-       for global tables, so, for example, user ownership can be
-       tracked across databases, so a user who owns something in any
-       database can no longer be removed. Dependency tracking already
-       existed for database-local objects.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow limited <command>ALTER OWNER</> commands to be performed
-       by the object owner (Stephen Frost)
-      </para>
-      <para>
-       Prior releases allowed only superusers to change object owners.
-       Now, ownership can be transferred if the user executing the command
-       owns the object and would be able to create it as the new owner
-       (that is, the user is a member of the new owning role and that role
-       has the CREATE permission that would be needed to create the object
-       afresh).
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <command>ALTER</> object <command>SET SCHEMA</> capability
-       for some object types (tables, functions, types) (Bernd Helmle)
-      </para>
-      <para>
-       This allows objects to be moved to different schemas.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <command>ALTER TABLE ENABLE/DISABLE TRIGGER</command> to
-       disable triggers (Satoshi Nagayasu)
-      </para>
-     </listitem>
-
-    </itemizedlist>
-   </sect3>
-
-
-   <sect3>
-    <title>Utility Command Changes</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Allow <command>TRUNCATE</> to truncate multiple tables in a
-       single command (Alvaro)
-      </para>
-      <para>
-       Because of referential integrity checks, it is not allowed to
-       truncate a table that is part of a referential integrity
-       constraint. Using this new functionality, <command>TRUNCATE</>
-       can be used to truncate such tables, if both tables involved in
-       a referential integrity constraint are truncated in a single
-       <command>TRUNCATE</> command.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Properly process carriage returns and line feeds in
-       <command>COPY CSV</> mode (Andrew)
-      </para>
-      <para>
-       In release 8.0, carriage returns and line feeds in <command>CSV
-       COPY TO</> were processed in an inconsistent manner. (This was
-       documented on the TODO list.)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <command>COPY WITH CSV HEADER</> to allow a header line as
-       the first line in <command>COPY</> (Andrew)
-      </para>
-      <para>
-       This allows handling of the common <command>CSV</> usage of
-       placing the column names on the first line of the data file. For
-       <command>COPY TO</>, the first line contains the column names,
-       and for <command>COPY FROM</>, the first line is ignored.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       On Windows, display better sub-second precision in
-       <command>EXPLAIN ANALYZE</> (Magnus)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add trigger duration display to <command>EXPLAIN ANALYZE</>
-       (Tom)
-      </para>
-      <para>
-       Prior releases included trigger execution time as part of the
-       total execution time, but did not show it separately.  It is now
-       possible to see how much time is spent in each trigger.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add support for <literal>\x</> hex escapes in <command>COPY</>
-       (Sergey Ten)
-      </para>
-      <para>
-       Previous releases only supported octal escapes.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Make <command>SHOW ALL</> include variable descriptions
-       (Matthias Schmidt)
-      </para>
-      <para>
-       <command>SHOW</> varname still only displays the variable's
-       value and does not include the description.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Make <application>initdb</application> create a new standard
-       database called <literal>postgres</>, and convert utilities to
-       use <literal>postgres</> rather than <literal>template1</> for
-       standard lookups (Dave)
-      </para>
-      <para>
-       In prior releases, <literal>template1</> was used both as a
-       default connection for utilities like
-       <application>createuser</application>, and as a template for
-       new databases. This caused <command>CREATE DATABASE</> to
-       sometimes fail, because a new database cannot be created if
-       anyone else is in the template database. With this change, the
-       default connection database is now <literal>postgres</>,
-       meaning it is much less likely someone will be using
-       <literal>template1</> during <command>CREATE DATABASE</>.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Create new <application>reindexdb</application> command-line
-       utility by moving <filename>/contrib/reindexdb</> into the
-       server (Euler Taveira de Oliveira)
-      </para>
-     </listitem>
-
-    </itemizedlist>
-   </sect3>
-
-
-   <sect3>
-    <title>Data Type and Function Changes</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Add <function>MAX()</> and <function>MIN()</> aggregates for
-       array types (Koju Iijima)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Fix <function>to_date()</> and <function>to_timestamp()</> to
-       behave reasonably when <literal>CC</> and <literal>YY</> fields
-       are both used (Karel Zak)
-      </para>
-      <para>
-       If the format specification contains <literal>CC</> and a year
-       specification is <literal>YYY</> or longer, ignore the
-       <literal>CC</>. If the year specification is <literal>YY</> or
-       shorter, interpret <literal>CC</> as the previous century.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <function>md5(bytea)</> (Abhijit Menon-Sen)
-      </para>
-      <para>
-       <function>md5(text)</> already existed.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add support for <command>numeric ^ numeric</> based on
-       <function>power(numeric, numeric)</>
-      </para>
-      <para>
-       The function already existed, but there was no operator assigned
-       to it.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Fix <type>NUMERIC</> modulus by properly truncating the quotient
-       during computation (Bruce)
-      </para>
-      <para>
-       In previous releases, modulus for large values sometimes
-       returned negative results due to rounding of the quotient.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add a function <function>lastval()</> (Dennis Bj&ouml;rklund)
-      </para>
-      <para>
-       <function>lastval()</> is a simplified version of
-       <function>currval()</>. It automatically determines the proper
-       sequence name based on the most recent <function>nextval()</> or
-       <function>setval()</> call performed by the current session.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <function>to_timestamp(DOUBLE PRECISION) (Michael Glaesemann)</>
-      </para>
-      <para>
-       Converts Unix seconds since 1970 to a <type>TIMESTAMP WITH
-       TIMEZONE</>.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <function>pg_postmaster_start_time()</> function (Euler
-       Taveira de Oliveira, Matthias Schmidt)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow the full use of time zone names in <command>AT TIME
-       ZONE</>, not just the short list previously available (Magnus)
-      </para>
-      <para>
-       Previously, only a predefined list of time zone names were
-       supported by <command>AT TIME ZONE</>. Now any supported time
-       zone name can be used, e.g.:
-<programlisting>
-SELECT CURRENT_TIMESTAMP AT TIME ZONE 'Europe/London';
-</programlisting>
-       In the above query, the time zone used is adjusted based on the
-       daylight saving time rules that were in effect on the supplied
-       date.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <function>GREATEST()</> and <function>LEAST()</> variadic
-       functions (Pavel Stehule)
-      </para>
-      <para>
-       These functions take a variable number of arguments and return
-       the greatest or least value among the arguments.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <function>pg_column_size()</> (Mark Kirkwood)
-      </para>
-      <para>
-       This returns storage size of a column, which might be compressed.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <function>regexp_replace()</> (Atsushi Ogawa)
-      </para>
-      <para>
-       This allows regular expression replacement, like sed. An optional
-       flag argument allows selection of global (replace all) and
-       case-insensitive modes.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Fix interval division and multiplication (Bruce)
-      </para>
-      <para>
-       Previous versions sometimes returned unjustified results, like
-       <command>'4 months'::interval / 5</> returning <command>'1 mon
-       -6 days'</>.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Fix roundoff behavior in timestamp, time, and interval output (Tom)
-      </para>
-      <para>
-       This fixes some cases in which the seconds field would be shown as
-       <literal>60</> instead of incrementing the higher-order fields.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add a separate day field to type <type>interval</> so a one day
-       interval can be distinguished from a 24 hour interval (Michael
-       Glaesemann)
-      </para>
-      <para>
-       Days that contain a daylight saving time adjustment are not 24
-       hours long, but typically 23 or 25 hours.  This change creates a
-       conceptual distinction between intervals of <quote>so many days</>
-       and intervals of <quote>so many hours</>.  Adding
-       <literal>1 day</> to a timestamp now gives the same local time on
-       the next day even if a daylight saving time adjustment occurs
-       between, whereas adding <literal>24 hours</> will give a different
-       local time when this happens.  For example, under US DST rules:
-<programlisting>
-'2005-04-03 00:00:00-05' + '1 day' = '2005-04-04 00:00:00-04'
-'2005-04-03 00:00:00-05' + '24 hours' = '2005-04-04 01:00:00-04'
-</programlisting>
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <function>justify_days()</> and <function>justify_hours()</>
-       (Michael Glaesemann)
-      </para>
-      <para>
-       These functions, respectively, adjust days to an appropriate
-       number of full months and days, and adjust hours to an
-       appropriate number of full days and hours.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Move <filename>/contrib/dbsize</> into the backend, and rename
-       some of the functions (Dave Page, Andreas Pflug)
-      </para>
-      <para>
-       <itemizedlist>
-
-        <listitem>
-         <para>
-           <function>pg_tablespace_size()</>
-         </para>
-        </listitem>
-
-        <listitem>
-         <para>
-          <function>pg_database_size()</>
-         </para>
-        </listitem>
-
-        <listitem>
-         <para>
-          <function>pg_relation_size()</>
-         </para>
-        </listitem>
-
-        <listitem>
-         <para>
-          <function>pg_total_relation_size()</>
-         </para>
-        </listitem>
-
-        <listitem>
-         <para>
-          <function>pg_size_pretty()</>
-         </para>
-        </listitem>
-
-       </itemizedlist>
-      </para>
-      <para>
-       <function>pg_total_relation_size()</> includes indexes and TOAST
-       tables.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add functions for read-only file access to the cluster directory
-       (Dave Page, Andreas Pflug)
-      </para>
-      <para>
-       <itemizedlist>
-
-        <listitem>
-         <para>
-          <function>pg_stat_file()</>
-         </para>
-        </listitem>
-
-        <listitem>
-         <para>
-          <function>pg_read_file()</>
-         </para>
-        </listitem>
-
-        <listitem>
-         <para>
-          <function>pg_ls_dir()</>
-         </para>
-        </listitem>
-
-       </itemizedlist>
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <function>pg_reload_conf()</> to force reloading of the
-       configuration files (Dave Page, Andreas Pflug)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <function>pg_rotate_logfile()</> to force rotation of the
-       server log file (Dave Page, Andreas Pflug)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Change <literal>pg_stat_*</> views to include TOAST tables (Tom)
-      </para>
-     </listitem>
-
-    </itemizedlist>
-   </sect3>
-
-
-   <sect3>
-    <title>Encoding and Locale Changes</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Rename some encodings to be more consistent and to follow
-       international standards (Bruce)
-      </para>
-      <para>
-       <itemizedlist>
-
-        <listitem>
-         <para>
-          <literal>UNICODE</> is now <literal>UTF8</>
-         </para>
-        </listitem>
-
-        <listitem>
-         <para>
-          <literal>ALT</> is now <literal>WIN866</>
-         </para>
-        </listitem>
-
-        <listitem>
-         <para>
-          <literal>WIN</> is now <literal>WIN1251</>
-         </para>
-        </listitem>
-
-        <listitem>
-         <para>
-         <literal>TCVN</> is now <literal>WIN1258</>
-         </para>
-        </listitem>
-
-       </itemizedlist>
-      </para>
-
-      <para>
-       The original names still work.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add support for <literal>WIN1252</> encoding (Roland Volkmann)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add support for four-byte <literal>UTF8</> characters (John
-       Hansen)
-      </para>
-      <para>
-       Previously only one, two, and three-byte <literal>UTF8</> characters
-       were supported. This is particularly important for support for
-       some Chinese character sets.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow direct conversion between <literal>EUC_JP</> and
-       <literal>SJIS</> to improve performance (Atsushi Ogawa)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow the UTF8 encoding to work on Windows (Magnus)
-      </para>
-      <para>
-       This is done by mapping UTF8 to the Windows-native UTF16
-       implementation.
-      </para>
-     </listitem>
-
-    </itemizedlist>
-   </sect3>
-
-
-   <sect3>
-    <title>General Server-Side Language Changes</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Fix <command>ALTER LANGUAGE RENAME</> (Sergey Yatskevich)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow function characteristics, like strictness and volatility,
-       to be modified via <command>ALTER FUNCTION</> (Neil)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Increase the maximum number of function arguments to 100 (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow SQL and PL/pgSQL functions to use <command>OUT</> and
-       <command>INOUT</> parameters (Tom)
-      </para>
-      <para>
-       <command>OUT</> is an alternate way for a function to return
-       values. Instead of using <command>RETURN</>, values can be
-       returned by assigning to parameters declared as <command>OUT</> or
-       <command>INOUT</>.  This is notationally simpler in some cases,
-       particularly so when multiple values need to be returned.
-       While returning multiple values from a function
-       was possible in previous releases, this greatly simplifies the
-       process.  (The feature will be extended to other server-side
-       languages in future releases.)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Move language handler functions into the <literal>pg_catalog</> schema
-      </para>
-      <para>
-       This makes it easier to drop the public schema if desired.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <function>SPI_getnspname()</function> to SPI (Neil)
-      </para>
-     </listitem>
-
-    </itemizedlist>
-   </sect3>
-
-   <sect3>
-    <title>PL/pgSQL Server-Side Language Changes</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Overhaul the memory management of PL/pgSQL functions (Neil)
-      </para>
-      <para>
-       The parsetree of each function is now stored in a separate
-       memory context. This allows this memory to be easily reclaimed
-       when it is no longer needed.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Check function syntax at <command>CREATE FUNCTION</> time,
-       rather than at runtime (Neil)
-      </para>
-      <para>
-       Previously, most syntax errors were reported only when the
-       function was executed.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow <command>OPEN</> to open non-<command>SELECT</> queries
-       like <command>EXPLAIN</> and <command>SHOW</> (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       No longer require functions to issue a <command>RETURN</>
-       statement (Tom)
-      </para>
-      <para>
-       This is a byproduct of the newly added <command>OUT</> and
-       <command>INOUT</> functionality.  <command>RETURN</> can
-       be omitted when it is not needed to provide the function's
-       return value.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add support for an optional <command>INTO</> clause to
-       PL/pgSQL's <command>EXECUTE</> statement (Pavel Stehule, Neil)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Make <command>CREATE TABLE AS</> set <command>ROW_COUNT</> (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Define <literal>SQLSTATE</> and <literal>SQLERRM</> to return
-       the <literal>SQLSTATE</> and error message of the current
-       exception (Pavel Stehule, Neil)
-      </para>
-      <para>
-       These variables are only defined inside exception blocks.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow the parameters to the <command>RAISE</> statement to be
-       expressions (Pavel Stehule, Neil)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add a loop <command>CONTINUE</> statement (Pavel Stehule, Neil)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow block and loop labels (Pavel Stehule)
-      </para>
-     </listitem>
-
-    </itemizedlist>
-   </sect3>
-
-
-   <sect3>
-    <title>PL/Perl Server-Side Language Changes</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Allow large result sets to be returned efficiently (Abhijit
-       Menon-Sen)
-      </para>
-      <para>
-       This allows functions to use <function>return_next()</> to avoid
-       building the entire result set in memory.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow one-row-at-a-time retrieval of query results (Abhijit Menon-Sen)
-      </para>
-      <para>
-       This allows functions to use <function>spi_query()</> and
-       <function>spi_fetchrow()</> to avoid accumulating the entire
-       result set in memory.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Force PL/Perl to handle strings as <literal>UTF8</> if the
-       server encoding is <literal>UTF8</> (David Kamholz)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add a validator function for PL/Perl (Andrew)
-      </para>
-      <para>
-       This allows syntax errors to be reported at definition time,
-       rather than execution time.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow PL/Perl to return a Perl array when the function returns
-       an array type (Andrew)
-      </para>
-      <para>
-       This basically maps <productname>PostgreSQL</productname> arrays
-       to Perl arrays.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow Perl nonfatal warnings to generate <command>NOTICE</>
-       messages (Andrew)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow Perl's <literal>strict</> mode to be enabled (Andrew)
-      </para>
-     </listitem>
-
-    </itemizedlist>
-   </sect3>
-
-
-   <sect3>
-    <title><application>psql</> Changes</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Add <command>\set ON_ERROR_ROLLBACK</> to allow statements in
-       a transaction to error without affecting the rest of the
-       transaction (Greg Sabino Mullane)
-      </para>
-      <para>
-       This is basically implemented by wrapping every statement in a
-       sub-transaction.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add support for <literal>\x</> hex strings in
-       <application>psql</> variables (Bruce)
-      </para>
-      <para>
-       Octal escapes were already supported.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add support for <command>troff -ms</> output format (Roger
-       Leigh)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow the history file location to be controlled by
-       <envar>HISTFILE</> (Andreas Seltenreich)
-      </para>
-      <para>
-       This allows configuration of per-database history storage.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Prevent <command>\x</> (expanded mode) from affecting
-       the output of <command>\d tablename</> (Neil)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <option>-L</> option to <application>psql</application> to
-       log sessions (Lorne Sunley)
-      </para>
-      <para>
-       This option was added because some operating systems do not have
-       simple command-line activity logging functionality.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Make <command>\d</> show the tablespaces of indexes (Qingqing
-       Zhou)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow <application>psql</application> help (<command>\h</>) to
-       make a best guess on the proper help information (Greg Sabino
-       Mullane)
-      </para>
-      <para>
-       This allows the user to just add <command>\h</> to the front of
-       the syntax error query and get help on the supported syntax.
-       Previously any additional query text beyond the command name
-       had to be removed to use <command>\h</>.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <command>\pset numericlocale</> to allow numbers to be
-       output in a locale-aware format (Eugen Nedelcu)
-      </para>
-      <para>
-       For example, using <literal>C</> locale <literal>100000</> would
-       be output as <literal>100,000.0</> while a European locale might
-       output this value as <literal>100.000,0</>.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Make startup banner show both server version number and
-       <application>psql</>'s version number, when they are different (Bruce)
-      </para>
-      <para>
-       Also, a warning will be shown if the server and <application>psql</>
-       are from different major releases.
-      </para>
-     </listitem>
-
-    </itemizedlist>
-   </sect3>
-
-
-   <sect3>
-    <title><application>pg_dump</> Changes</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Add <option>-n</> / <option>--schema</> switch to
-       <application>pg_restore</> (Richard van den Berg)
-      </para>
-      <para>
-       This allows just the objects in a specified schema to be restored.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow <application>pg_dump</> to dump large objects even in
-       text mode (Tom)
-      </para>
-      <para>
-       With this change, large objects are now always dumped; the former
-       <option>-b</> switch is a no-op.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow <application>pg_dump</> to dump a consistent snapshot of
-       large objects (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Dump comments for large objects (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <option>--encoding</> to <application>pg_dump</>
-       (Magnus Hagander)
-      </para>
-      <para>
-       This allows a database to be dumped in an encoding that is
-       different from the server's encoding. This is valuable when
-       transferring the dump to a machine with a different encoding.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Rely on <structname>pg_pltemplate</> for procedural languages (Tom)
-      </para>
-      <para>
-       If the call handler for a procedural language is in the
-       <literal>pg_catalog</> schema, <application>pg_dump</> does not
-       dump the handler.  Instead, it dumps the language using just
-       <command>CREATE LANGUAGE <replaceable>name</></command>,
-       relying on the <structname>pg_pltemplate</> catalog to provide
-       the language's creation parameters at load time.
-      </para>
-     </listitem>
-
-    </itemizedlist>
-   </sect3>
-
-
-   <sect3>
-    <title><application>libpq</application> Changes</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Add a <envar>PGPASSFILE</> environment variable to specify the
-       password file's filename (Andrew)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <function>lo_create()</>, that is similar to
-       <function>lo_creat()</> but allows the OID of the large object
-       to be specified (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Make <application>libpq</application> consistently return an error
-       to the client application on <function>malloc()</function>
-       failure (Neil)
-      </para>
-     </listitem>
-    </itemizedlist>
-   </sect3>
-
-
-   <sect3>
-    <title>Source Code Changes</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Fix <application>pgxs</> to support building against a relocated
-       installation
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add spinlock support for the Itanium processor using Intel
-       compiler (Vikram Kalsi)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add Kerberos 5 support for Windows (Magnus)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add Chinese FAQ (laser@pgsqldb.com)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Rename Rendezvous to Bonjour to match OS/X feature renaming
-       (Bruce)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add support for <literal>fsync_writethrough</literal> on
-       Darwin (Chris Campbell)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Streamline the passing of information within the server, the
-       optimizer, and the lock system (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow <application>pg_config</> to be compiled using MSVC (Andrew)
-      </para>
-      <para>
-       This is required to build DBD::Pg using <application>MSVC</>.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Remove support for Kerberos V4 (Magnus)
-      </para>
-      <para>
-       Kerberos 4 had security vulnerabilities and is no longer
-       maintained.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Code cleanups (Coverity static analysis performed by
-       EnterpriseDB)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Modify <filename>postgresql.conf</> to use documentation defaults
-       <literal>on</>/<literal>off</> rather than
-       <literal>true</>/<literal>false</> (Bruce)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Enhance <application>pg_config</> to be able to report more
-       build-time values (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow <application>libpq</application> to be built thread-safe
-       on Windows (Dave Page)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow IPv6 connections to be used on Windows (Andrew)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add Server Administration documentation about I/O subsystem
-       reliability (Bruce)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Move private declarations from <filename>gist.h</filename> to
-       <filename>gist_private.h</filename> (Neil)
-      </para>
-
-      <para>
-       In previous releases, <filename>gist.h</> contained both the
-       public GiST API (intended for use by authors of GiST index
-       implementations) as well as some private declarations used by
-       the implementation of GiST itself. The latter have been moved
-       to a separate file, <filename>gist_private.h</>. Most GiST
-       index implementations should be unaffected.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Overhaul GiST memory management (Neil)
-      </para>
-
-      <para>
-       GiST methods are now always invoked in a short-lived memory
-       context. Therefore, memory allocated via <function>palloc()</>
-       will be reclaimed automatically, so GiST index implementations
-       do not need to manually release allocated memory via
-       <function>pfree()</>.
-      </para>
-     </listitem>
-    </itemizedlist>
-   </sect3>
-
-
-   <sect3>
-    <title>Contrib Changes</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Add <filename>/contrib/pg_buffercache</> contrib module (Mark
-       Kirkwood)
-      </para>
-      <para>
-       This displays the contents of the buffer cache, for debugging and
-       performance tuning purposes.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Remove <filename>/contrib/array</> because it is obsolete (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Clean up the <filename>/contrib/lo</> module (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Move <filename>/contrib/findoidjoins</> to
-       <filename>/src/tools</> (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Remove the <literal>&lt;&lt;</>, <literal>&gt;&gt;</>,
-       <literal>&amp;&lt;</>, and <literal>&amp;&gt;</> operators from
-       <filename>/contrib/cube</>
-      </para>
-      <para>
-       These operators were not useful.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Improve <filename>/contrib/btree_gist</> (Janko Richter)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Improve <filename>/contrib/pgbench</> (Tomoaki Sato, Tatsuo)
-      </para>
-      <para>
-       There is now a facility for testing with SQL command scripts given
-       by the user, instead of only a hard-wired command sequence.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Improve <filename>/contrib/pgcrypto</> (Marko Kreen)
-      </para>
-
-      <itemizedlist>
-
-       <listitem>
-        <para>
-         Implementation of OpenPGP symmetric-key and public-key encryption
-        </para>
-        <para>
-         Both RSA and Elgamal public-key algorithms are supported.
-        </para>
-       </listitem>
-
-       <listitem>
-        <para>
-         Stand alone build: include SHA256/384/512 hashes, Fortuna PRNG
-        </para>
-       </listitem>
-
-       <listitem>
-        <para>
-         OpenSSL build: support 3DES, use internal AES with OpenSSL &lt; 0.9.7
-        </para>
-       </listitem>
-
-       <listitem>
-        <para>
-         Take build parameters (OpenSSL, zlib) from <filename>configure</> result
-        </para>
-        <para>
-         There is no need to edit the <filename>Makefile</> anymore.
-        </para>
-       </listitem>
-
-       <listitem>
-        <para>
-         Remove support for <filename>libmhash</> and <filename>libmcrypt</>
-        </para>
-       </listitem>
-
-      </itemizedlist>
-     </listitem>
-
-    </itemizedlist>
-   </sect3>
-
-  </sect2>
- </sect1>
diff --git a/doc/src/sgml/release-8.2.sgml b/doc/src/sgml/release-8.2.sgml
deleted file mode 100644
index 8a67cf22ccfb1c67094477abd26edec9f62c4f9a..0000000000000000000000000000000000000000
--- a/doc/src/sgml/release-8.2.sgml
+++ /dev/null
@@ -1,7077 +0,0 @@
-<!-- doc/src/sgml/release-8.2.sgml -->
-<!-- See header comment in release.sgml about typical markup -->
-
- <sect1 id="release-8-2-23">
-  <title>Release 8.2.23</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2011-12-05</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.2.22.
-   For information about new features in the 8.2 major release, see
-   <xref linkend="release-8-2">.
-  </para>
-
-  <para>
-   This is expected to be the last <productname>PostgreSQL</> release
-   in the 8.2.X series.  Users are encouraged to update to a newer
-   release branch soon.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.2.23</title>
-
-   <para>
-    A dump/restore is not required for those running 8.2.X.
-   </para>
-
-   <para>
-    However, a longstanding error was discovered in the definition of the
-    <literal>information_schema.referential_constraints</> view.  If you
-    rely on correct results from that view, you should replace its
-    definition as explained in the first changelog item below.
-   </para>
-
-   <para>
-    Also, if you are upgrading from a version earlier than 8.2.14,
-    see <xref linkend="release-8-2-14">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Fix bugs in <literal>information_schema.referential_constraints</> view
-      (Tom Lane)
-     </para>
-
-     <para>
-      This view was being insufficiently careful about matching the
-      foreign-key constraint to the depended-on primary or unique key
-      constraint.  That could result in failure to show a foreign key
-      constraint at all, or showing it multiple times, or claiming that it
-      depends on a different constraint than the one it really does.
-     </para>
-
-     <para>
-      Since the view definition is installed by <application>initdb</>,
-      merely upgrading will not fix the problem.  If you need to fix this
-      in an existing installation, you can (as a superuser) drop the
-      <literal>information_schema</> schema then re-create it by sourcing
-      <filename><replaceable>SHAREDIR</>/information_schema.sql</filename>.
-      (Run <literal>pg_config --sharedir</> if you're uncertain where
-      <replaceable>SHAREDIR</> is.)  This must be repeated in each database
-      to be fixed.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix TOAST-related data corruption during <literal>CREATE TABLE dest AS
-      SELECT * FROM src</> or <literal>INSERT INTO dest SELECT * FROM src</>
-      (Tom Lane)
-     </para>
-
-     <para>
-      If a table has been modified by <command>ALTER TABLE ADD COLUMN</>,
-      attempts to copy its data verbatim to another table could produce
-      corrupt results in certain corner cases.
-      The problem can only manifest in this precise form in 8.4 and later,
-      but we patched earlier versions as well in case there are other code
-      paths that could trigger the same bug.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix race condition during toast table access from stale syscache entries
-      (Tom Lane)
-     </para>
-
-     <para>
-      The typical symptom was transient errors like <quote>missing chunk
-      number 0 for toast value NNNNN in pg_toast_2619</>, where the cited
-      toast table would always belong to a system catalog.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve locale support in <type>money</> type's input and output
-      (Tom Lane)
-     </para>
-
-     <para>
-      Aside from not supporting all standard
-      <link linkend="guc-lc-monetary"><varname>lc_monetary</></link>
-      formatting options, the input and output functions were inconsistent,
-      meaning there were locales in which dumped <type>money</> values could
-      not be re-read.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Don't let <link
-      linkend="guc-transform-null-equals"><varname>transform_null_equals</></link>
-      affect <literal>CASE foo WHEN NULL ...</> constructs
-      (Heikki Linnakangas)
-     </para>
-
-     <para>
-      <varname>transform_null_equals</> is only supposed to affect
-      <literal>foo = NULL</> expressions written directly by the user, not
-      equality checks generated internally by this form of <literal>CASE</>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Change foreign-key trigger creation order to better support
-      self-referential foreign keys (Tom Lane)
-     </para>
-
-     <para>
-      For a cascading foreign key that references its own table, a row update
-      will fire both the <literal>ON UPDATE</> trigger and the
-      <literal>CHECK</> trigger as one event.  The <literal>ON UPDATE</>
-      trigger must execute first, else the <literal>CHECK</> will check a
-      non-final state of the row and possibly throw an inappropriate error.
-      However, the firing order of these triggers is determined by their
-      names, which generally sort in creation order since the triggers have
-      auto-generated names following the convention
-      <quote>RI_ConstraintTrigger_NNNN</>.  A proper fix would require
-      modifying that convention, which we will do in 9.2, but it seems risky
-      to change it in existing releases.  So this patch just changes the
-      creation order of the triggers.  Users encountering this type of error
-      should drop and re-create the foreign key constraint to get its
-      triggers into the right order.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Preserve blank lines within commands in <application>psql</>'s command
-      history (Robert Haas)
-     </para>
-
-     <para>
-      The former behavior could cause problems if an empty line was removed
-      from within a string literal, for example.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Use the preferred version of <application>xsubpp</> to build PL/Perl,
-      not necessarily the operating system's main copy
-      (David Wheeler and Alex Hunsaker)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Honor query cancel interrupts promptly in <function>pgstatindex()</>
-      (Robert Haas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure VPATH builds properly install all server header files
-      (Peter Eisentraut)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Shorten file names reported in verbose error messages (Peter Eisentraut)
-     </para>
-
-     <para>
-      Regular builds have always reported just the name of the C file
-      containing the error message call, but VPATH builds formerly
-      reported an absolute path name.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix interpretation of Windows timezone names for Central America
-      (Tom Lane)
-     </para>
-
-     <para>
-      Map <quote>Central America Standard Time</> to <literal>CST6</>, not
-      <literal>CST6CDT</>, because DST is generally not observed anywhere in
-      Central America.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2011n
-      for DST law changes in Brazil, Cuba, Fiji, Palestine, Russia, and Samoa;
-      also historical corrections for Alaska and British East Africa.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-2-22">
-  <title>Release 8.2.22</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2011-09-26</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.2.21.
-   For information about new features in the 8.2 major release, see
-   <xref linkend="release-8-2">.
-  </para>
-
-  <para>
-   The <productname>PostgreSQL</> community will stop releasing updates
-   for the 8.2.X release series in December 2011.
-   Users are encouraged to update to a newer release branch soon.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.2.22</title>
-
-   <para>
-    A dump/restore is not required for those running 8.2.X.
-    However, if you are upgrading from a version earlier than 8.2.14,
-    see <xref linkend="release-8-2-14">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Fix multiple bugs in GiST index page split processing (Heikki
-      Linnakangas)
-     </para>
-
-     <para>
-      The probability of occurrence was low, but these could lead to index
-      corruption.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid possibly accessing off the end of memory in <command>ANALYZE</>
-      (Noah Misch)
-     </para>
-
-     <para>
-      This fixes a very-low-probability server crash scenario.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix race condition in relcache init file invalidation (Tom Lane)
-     </para>
-
-     <para>
-      There was a window wherein a new backend process could read a stale init
-      file but miss the inval messages that would tell it the data is stale.
-      The result would be bizarre failures in catalog accesses, typically
-      <quote>could not read block 0 in file ...</> later during startup.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix memory leak at end of a GiST index scan (Tom Lane)
-     </para>
-
-     <para>
-      Commands that perform many separate GiST index scans, such as
-      verification of a new GiST-based exclusion constraint on a table
-      already containing many rows, could transiently require large amounts of
-      memory due to this leak.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix performance problem when constructing a large, lossy bitmap
-      (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix array- and path-creating functions to ensure padding bytes are
-      zeroes (Tom Lane)
-     </para>
-
-     <para>
-      This avoids some situations where the planner will think that
-      semantically-equal constants are not equal, resulting in poor
-      optimization.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Work around gcc 4.6.0 bug that breaks WAL replay (Tom Lane)
-     </para>
-
-     <para>
-      This could lead to loss of committed transactions after a server crash.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix dump bug for <literal>VALUES</> in a view (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Disallow <literal>SELECT FOR UPDATE/SHARE</> on sequences (Tom Lane)
-     </para>
-
-     <para>
-      This operation doesn't work as expected and can lead to failures.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Defend against integer overflow when computing size of a hash table (Tom
-      Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix portability bugs in use of credentials control messages for
-      <quote>peer</> authentication (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix typo in <function>pg_srand48</> seed initialization (Andres Freund)
-     </para>
-
-     <para>
-      This led to failure to use all bits of the provided seed.  This function
-      is not used on most platforms (only those without <function>srandom</>),
-      and the potential security exposure from a less-random-than-expected
-      seed seems minimal in any case.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid integer overflow when the sum of <literal>LIMIT</> and
-      <literal>OFFSET</> values exceeds 2^63 (Heikki Linnakangas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Add overflow checks to <type>int4</> and <type>int8</> versions of
-      <function>generate_series()</> (Robert Haas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix trailing-zero removal in <function>to_char()</> (Marti Raudsepp)
-     </para>
-
-     <para>
-      In a format with <literal>FM</> and no digit positions
-      after the decimal point, zeroes to the left of the decimal point could
-      be removed incorrectly.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <function>pg_size_pretty()</> to avoid overflow for inputs close to
-      2^63 (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>psql</>'s counting of script file line numbers during
-      <literal>COPY</> from a different file (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>pg_restore</>'s direct-to-database mode for
-      <varname>standard_conforming_strings</> (Tom Lane)
-     </para>
-
-     <para>
-      <application>pg_restore</> could emit incorrect commands when restoring
-      directly to a database server from an archive file that had been made
-      with <varname>standard_conforming_strings</> set to <literal>on</>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix write-past-buffer-end and memory leak in <application>libpq</>'s
-      LDAP service lookup code (Albe Laurenz)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      In <application>libpq</>, avoid failures when using nonblocking I/O
-      and an SSL connection (Martin Pihlak, Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve libpq's handling of failures during connection startup
-      (Tom Lane)
-     </para>
-
-     <para>
-      In particular, the response to a server report of <function>fork()</>
-      failure during SSL connection startup is now saner.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <application>ecpglib</> write <type>double</> values with 15 digits
-      precision (Akira Kurosawa)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Apply upstream fix for blowfish signed-character bug (CVE-2011-2483)
-      (Tom Lane)
-     </para>
-
-     <para>
-      <filename>contrib/pg_crypto</>'s blowfish encryption code could give
-      wrong results on platforms where char is signed (which is most),
-      leading to encrypted passwords being weaker than they should be.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix memory leak in <filename>contrib/seg</> (Heikki Linnakangas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <function>pgstatindex()</> to give consistent results for empty
-      indexes (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Allow building with perl 5.14 (Alex Hunsaker)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update configure script's method for probing existence of system
-      functions (Tom Lane)
-     </para>
-
-     <para>
-      The version of autoconf we used in 8.3 and 8.2 could be fooled by
-      compilers that perform link-time optimization.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix assorted issues with build and install file paths containing spaces
-      (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2011i
-      for DST law changes in Canada, Egypt, Russia, Samoa, and South Sudan.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-2-21">
-  <title>Release 8.2.21</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2011-04-18</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.2.20.
-   For information about new features in the 8.2 major release, see
-   <xref linkend="release-8-2">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.2.21</title>
-
-   <para>
-    A dump/restore is not required for those running 8.2.X.
-    However, if you are upgrading from a version earlier than 8.2.14,
-    see <xref linkend="release-8-2-14">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Avoid potential deadlock during catalog cache initialization
-      (Nikhil Sontakke)
-     </para>
-
-     <para>
-      In some cases the cache loading code would acquire share lock on a
-      system index before locking the index's catalog.  This could deadlock
-      against processes trying to acquire exclusive locks in the other,
-      more standard order.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix dangling-pointer problem in <literal>BEFORE ROW UPDATE</> trigger
-      handling when there was a concurrent update to the target tuple
-      (Tom Lane)
-     </para>
-
-     <para>
-      This bug has been observed to result in intermittent <quote>cannot
-      extract system attribute from virtual tuple</> failures while trying to
-      do <literal>UPDATE RETURNING ctid</>.  There is a very small probability
-      of more serious errors, such as generating incorrect index entries for
-      the updated tuple.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Disallow <command>DROP TABLE</> when there are pending deferred trigger
-      events for the table (Tom Lane)
-     </para>
-
-     <para>
-      Formerly the <command>DROP</> would go through, leading to
-      <quote>could not open relation with OID nnn</> errors when the
-      triggers were eventually fired.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix PL/Python memory leak involving array slices (Daniel Popowich)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>pg_restore</> to cope with long lines (over 1KB) in
-      TOC files (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Put in more safeguards against crashing due to division-by-zero
-      with overly enthusiastic compiler optimization (Aurelien Jarno)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Support use of dlopen() in FreeBSD and OpenBSD on MIPS (Tom Lane)
-     </para>
-
-     <para>
-      There was a hard-wired assumption that this system function was not
-      available on MIPS hardware on these systems.  Use a compile-time test
-      instead, since more recent versions have it.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix compilation failures on HP-UX (Heikki Linnakangas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix path separator used by <application>pg_regress</> on Cygwin
-      (Andrew Dunstan)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2011f
-      for DST law changes in Chile, Cuba, Falkland Islands, Morocco, Samoa,
-      and Turkey; also historical corrections for South Australia, Alaska,
-      and Hawaii.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-2-20">
-  <title>Release 8.2.20</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2011-01-31</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.2.19.
-   For information about new features in the 8.2 major release, see
-   <xref linkend="release-8-2">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.2.20</title>
-
-   <para>
-    A dump/restore is not required for those running 8.2.X.
-    However, if you are upgrading from a version earlier than 8.2.14,
-    see <xref linkend="release-8-2-14">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Avoid failures when <command>EXPLAIN</> tries to display a simple-form
-      <literal>CASE</> expression (Tom Lane)
-     </para>
-
-     <para>
-      If the <literal>CASE</>'s test expression was a constant, the planner
-      could simplify the <literal>CASE</> into a form that confused the
-      expression-display code, resulting in <quote>unexpected CASE WHEN
-      clause</> errors.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix assignment to an array slice that is before the existing range
-      of subscripts (Tom Lane)
-     </para>
-
-     <para>
-      If there was a gap between the newly added subscripts and the first
-      pre-existing subscript, the code miscalculated how many entries needed
-      to be copied from the old array's null bitmap, potentially leading to
-      data corruption or crash.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid unexpected conversion overflow in planner for very distant date
-      values (Tom Lane)
-     </para>
-
-     <para>
-      The <type>date</> type supports a wider range of dates than can be
-      represented by the <type>timestamp</> types, but the planner assumed it
-      could always convert a date to timestamp with impunity.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>pg_restore</>'s text output for large objects (BLOBs)
-      when <varname>standard_conforming_strings</> is on (Tom Lane)
-     </para>
-
-     <para>
-      Although restoring directly to a database worked correctly, string
-      escaping was incorrect if <application>pg_restore</> was asked for
-      SQL text output and <varname>standard_conforming_strings</> had been
-      enabled in the source database.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix erroneous parsing of <type>tsquery</> values containing
-      <literal>... &amp; !(subexpression) | ...</literal> (Tom Lane)
-     </para>
-
-     <para>
-      Queries containing this combination of operators were not executed
-      correctly.  The same error existed in <filename>contrib/intarray</>'s
-      <type>query_int</> type and <filename>contrib/ltree</>'s
-      <type>ltxtquery</> type.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix buffer overrun in <filename>contrib/intarray</>'s input function
-      for the <type>query_int</> type (Apple)
-     </para>
-
-     <para>
-      This bug is a security risk since the function's return address could
-      be overwritten.  Thanks to Apple Inc's security team for reporting this
-      issue and supplying the fix.  (CVE-2010-4015)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix bug in <filename>contrib/seg</>'s GiST picksplit algorithm
-      (Alexander Korotkov)
-     </para>
-
-     <para>
-      This could result in considerable inefficiency, though not actually
-      incorrect answers, in a GiST index on a <type>seg</> column.
-      If you have such an index, consider <command>REINDEX</>ing it after
-      installing this update.  (This is identical to the bug that was fixed in
-      <filename>contrib/cube</> in the previous update.)
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-2-19">
-  <title>Release 8.2.19</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2010-12-16</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.2.18.
-   For information about new features in the 8.2 major release, see
-   <xref linkend="release-8-2">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.2.19</title>
-
-   <para>
-    A dump/restore is not required for those running 8.2.X.
-    However, if you are upgrading from a version earlier than 8.2.14,
-    see <xref linkend="release-8-2-14">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Force the default
-      <link linkend="guc-wal-sync-method"><varname>wal_sync_method</></link>
-      to be <literal>fdatasync</> on Linux (Tom Lane, Marti Raudsepp)
-     </para>
-
-     <para>
-      The default on Linux has actually been <literal>fdatasync</> for many
-      years, but recent kernel changes caused <productname>PostgreSQL</> to
-      choose <literal>open_datasync</> instead.  This choice did not result
-      in any performance improvement, and caused outright failures on
-      certain filesystems, notably <literal>ext4</> with the
-      <literal>data=journal</> mount option.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix assorted bugs in WAL replay logic for GIN indexes (Tom Lane)
-     </para>
-
-     <para>
-      This could result in <quote>bad buffer id: 0</> failures or
-      corruption of index contents during replication.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix recovery from base backup when the starting checkpoint WAL record
-      is not in the same WAL segment as its redo point (Jeff Davis)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Add support for detecting register-stack overrun on <literal>IA64</>
-      (Tom Lane)
-     </para>
-
-     <para>
-      The <literal>IA64</> architecture has two hardware stacks.  Full
-      prevention of stack-overrun failures requires checking both.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Add a check for stack overflow in <function>copyObject()</> (Tom Lane)
-     </para>
-
-     <para>
-      Certain code paths could crash due to stack overflow given a
-      sufficiently complex query.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix detection of page splits in temporary GiST indexes (Heikki
-      Linnakangas)
-     </para>
-
-     <para>
-      It is possible to have a <quote>concurrent</> page split in a
-      temporary index, if for example there is an open cursor scanning the
-      index when an insertion is done.  GiST failed to detect this case and
-      hence could deliver wrong results when execution of the cursor
-      continued.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid memory leakage while <command>ANALYZE</>'ing complex index
-      expressions (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure an index that uses a whole-row Var still depends on its table
-      (Tom Lane)
-     </para>
-
-     <para>
-      An index declared like <literal>create index i on t (foo(t.*))</>
-      would not automatically get dropped when its table was dropped.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Do not <quote>inline</> a SQL function with multiple <literal>OUT</>
-      parameters (Tom Lane)
-     </para>
-
-     <para>
-      This avoids a possible crash due to loss of information about the
-      expected result rowtype.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Behave correctly if <literal>ORDER BY</>, <literal>LIMIT</>,
-      <literal>FOR UPDATE</>, or <literal>WITH</> is attached to the
-      <literal>VALUES</> part of <literal>INSERT ... VALUES</> (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix constant-folding of <literal>COALESCE()</> expressions (Tom Lane)
-     </para>
-
-     <para>
-      The planner would sometimes attempt to evaluate sub-expressions that
-      in fact could never be reached, possibly leading to unexpected errors.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Add print functionality for <structname>InhRelation</> nodes (Tom Lane)
-     </para>
-
-     <para>
-      This avoids a failure when <varname>debug_print_parse</> is enabled
-      and certain types of query are executed.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix incorrect calculation of distance from a point to a horizontal
-      line segment (Tom Lane)
-     </para>
-
-     <para>
-      This bug affected several different geometric distance-measurement
-      operators.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>PL/pgSQL</>'s handling of <quote>simple</>
-      expressions to not fail in recursion or error-recovery cases (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>PL/Python</>'s handling of set-returning functions
-      (Jan Urbanski)
-     </para>
-
-     <para>
-      Attempts to call SPI functions within the iterator generating a set
-      result would fail.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix bug in <filename>contrib/cube</>'s GiST picksplit algorithm
-      (Alexander Korotkov)
-     </para>
-
-     <para>
-      This could result in considerable inefficiency, though not actually
-      incorrect answers, in a GiST index on a <type>cube</> column.
-      If you have such an index, consider <command>REINDEX</>ing it after
-      installing this update.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Don't emit <quote>identifier will be truncated</> notices in
-      <filename>contrib/dblink</> except when creating new connections
-      (Itagaki Takahiro)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix potential coredump on missing public key in
-      <filename>contrib/pgcrypto</> (Marti Raudsepp)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix memory leak in <filename>contrib/xml2</>'s XPath query functions
-      (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2010o
-      for DST law changes in Fiji and Samoa;
-      also historical corrections for Hong Kong.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-2-18">
-  <title>Release 8.2.18</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2010-10-04</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.2.17.
-   For information about new features in the 8.2 major release, see
-   <xref linkend="release-8-2">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.2.18</title>
-
-   <para>
-    A dump/restore is not required for those running 8.2.X.
-    However, if you are upgrading from a version earlier than 8.2.14,
-    see <xref linkend="release-8-2-14">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Use a separate interpreter for each calling SQL userid in PL/Perl and
-      PL/Tcl (Tom Lane)
-     </para>
-
-     <para>
-      This change prevents security problems that can be caused by subverting
-      Perl or Tcl code that will be executed later in the same session under
-      another SQL user identity (for example, within a <literal>SECURITY
-      DEFINER</> function).  Most scripting languages offer numerous ways that
-      that might be done, such as redefining standard functions or operators
-      called by the target function.  Without this change, any SQL user with
-      Perl or Tcl language usage rights can do essentially anything with the
-      SQL privileges of the target function's owner.
-     </para>
-
-     <para>
-      The cost of this change is that intentional communication among Perl
-      and Tcl functions becomes more difficult.  To provide an escape hatch,
-      PL/PerlU and PL/TclU functions continue to use only one interpreter
-      per session.  This is not considered a security issue since all such
-      functions execute at the trust level of a database superuser already.
-     </para>
-
-     <para>
-      It is likely that third-party procedural languages that claim to offer
-      trusted execution have similar security issues.  We advise contacting
-      the authors of any PL you are depending on for security-critical
-      purposes.
-     </para>
-
-     <para>
-      Our thanks to Tim Bunce for pointing out this issue (CVE-2010-3433).
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent possible crashes in <function>pg_get_expr()</> by disallowing
-      it from being called with an argument that is not one of the system
-      catalog columns it's intended to be used with
-      (Heikki Linnakangas, Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix Windows shared-memory allocation code
-      (Tsutomu Yamada, Magnus Hagander)
-     </para>
-
-     <para>
-      This bug led to the often-reported <quote>could not reattach to shared
-      memory</quote> error message.  This is a back-patch of a fix that was
-      applied to newer branches some time ago.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Treat exit code 128 (<literal>ERROR_WAIT_NO_CHILDREN</>) as non-fatal on
-      Windows (Magnus Hagander)
-     </para>
-
-     <para>
-      Under high load, Windows processes will sometimes fail at startup with
-      this error code.  Formerly the postmaster treated this as a panic
-      condition and restarted the whole database, but that seems to be
-      an overreaction.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible duplicate scans of <literal>UNION ALL</> member relations
-      (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <quote>cannot handle unplanned sub-select</quote> error (Tom Lane)
-     </para>
-
-     <para>
-      This occurred when a sub-select contains a join alias reference that
-      expands into an expression containing another sub-select.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Reduce PANIC to ERROR in some occasionally-reported btree failure cases,
-      and provide additional detail in the resulting error messages
-      (Tom Lane)
-     </para>
-
-     <para>
-      This should improve the system's robustness with corrupted indexes.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent show_session_authorization() from crashing within autovacuum
-      processes (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Defend against functions returning setof record where not all the
-      returned rows are actually of the same rowtype (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible failure when hashing a pass-by-reference function result
-      (Tao Ma, Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Take care to fsync the contents of lockfiles (both
-      <filename>postmaster.pid</> and the socket lockfile) while writing them
-      (Tom Lane)
-     </para>
-
-     <para>
-      This omission could result in corrupted lockfile contents if the
-      machine crashes shortly after postmaster start.  That could in turn
-      prevent subsequent attempts to start the postmaster from succeeding,
-      until the lockfile is manually removed.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid recursion while assigning XIDs to heavily-nested
-      subtransactions (Andres Freund, Robert Haas)
-     </para>
-
-     <para>
-      The original coding could result in a crash if there was limited
-      stack space.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <varname>log_line_prefix</>'s <literal>%i</> escape,
-      which could produce junk early in backend startup (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible data corruption in <command>ALTER TABLE ... SET
-      TABLESPACE</> when archiving is enabled (Jeff Davis)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Allow <command>CREATE DATABASE</> and <command>ALTER DATABASE ... SET
-      TABLESPACE</> to be interrupted by query-cancel (Guillaume Lelarge)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      In PL/Python, defend against null pointer results from
-      <function>PyCObject_AsVoidPtr</> and <function>PyCObject_FromVoidPtr</>
-      (Peter Eisentraut)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve <filename>contrib/dblink</>'s handling of tables containing
-      dropped columns (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix connection leak after <quote>duplicate connection name</quote>
-      errors in <filename>contrib/dblink</> (Itagaki Takahiro)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <filename>contrib/dblink</> to handle connection names longer than
-      62 bytes correctly (Itagaki Takahiro)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Add <function>hstore(text, text)</>
-      function to <filename>contrib/hstore</> (Robert Haas)
-     </para>
-
-     <para>
-      This function is the recommended substitute for the now-deprecated
-      <literal>=&gt;</> operator.  It was back-patched so that future-proofed
-      code can be used with older server versions.  Note that the patch will
-      be effective only after <filename>contrib/hstore</> is installed or
-      reinstalled in a particular database.  Users might prefer to execute
-      the <command>CREATE FUNCTION</> command by hand, instead.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update build infrastructure and documentation to reflect the source code
-      repository's move from CVS to Git (Magnus Hagander and others)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2010l
-      for DST law changes in Egypt and Palestine; also historical corrections
-      for Finland.
-     </para>
-
-     <para>
-      This change also adds new names for two Micronesian timezones:
-      Pacific/Chuuk is now preferred over Pacific/Truk (and the preferred
-      abbreviation is CHUT not TRUT) and Pacific/Pohnpei is preferred over
-      Pacific/Ponape.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make Windows' <quote>N. Central Asia Standard Time</> timezone map to
-      Asia/Novosibirsk, not Asia/Almaty (Magnus Hagander)
-     </para>
-
-     <para>
-      Microsoft changed the DST behavior of this zone in the timezone update
-      from KB976098. Asia/Novosibirsk is a better match to its new behavior.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-2-17">
-  <title>Release 8.2.17</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2010-05-17</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.2.16.
-   For information about new features in the 8.2 major release, see
-   <xref linkend="release-8-2">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.2.17</title>
-
-   <para>
-    A dump/restore is not required for those running 8.2.X.
-    However, if you are upgrading from a version earlier than 8.2.14,
-    see <xref linkend="release-8-2-14">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Enforce restrictions in <literal>plperl</> using an opmask applied to
-      the whole interpreter, instead of using <filename>Safe.pm</>
-      (Tim Bunce, Andrew Dunstan)
-     </para>
-
-     <para>
-      Recent developments have convinced us that <filename>Safe.pm</> is too
-      insecure to rely on for making <literal>plperl</> trustable.  This
-      change removes use of <filename>Safe.pm</> altogether, in favor of using
-      a separate interpreter with an opcode mask that is always applied.
-      Pleasant side effects of the change include that it is now possible to
-      use Perl's <literal>strict</> pragma in a natural way in
-      <literal>plperl</>, and that Perl's <literal>$a</> and <literal>$b</>
-      variables work as expected in sort routines, and that function
-      compilation is significantly faster.  (CVE-2010-1169)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent PL/Tcl from executing untrustworthy code from
-      <structname>pltcl_modules</> (Tom)
-     </para>
-
-     <para>
-      PL/Tcl's feature for autoloading Tcl code from a database table
-      could be exploited for trojan-horse attacks, because there was no
-      restriction on who could create or insert into that table.  This change
-      disables the feature unless <structname>pltcl_modules</> is owned by a
-      superuser.  (However, the permissions on the table are not checked, so
-      installations that really need a less-than-secure modules table can
-      still grant suitable privileges to trusted non-superusers.)  Also,
-      prevent loading code into the unrestricted <quote>normal</> Tcl
-      interpreter unless we are really going to execute a <literal>pltclu</>
-      function.  (CVE-2010-1170)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible crash if a cache reset message is received during
-      rebuild of a relcache entry (Heikki)
-     </para>
-
-     <para>
-      This error was introduced in 8.2.16 while fixing a related failure.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Do not allow an unprivileged user to reset superuser-only parameter
-      settings (Alvaro)
-     </para>
-
-     <para>
-      Previously, if an unprivileged user ran <literal>ALTER USER ... RESET
-      ALL</> for himself, or <literal>ALTER DATABASE ... RESET ALL</> for
-      a database he owns, this would remove all special parameter settings
-      for the user or database, even ones that are only supposed to be
-      changeable by a superuser.  Now, the <command>ALTER</> will only
-      remove the parameters that the user has permission to change.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid possible crash during backend shutdown if shutdown occurs
-      when a <literal>CONTEXT</> addition would be made to log entries (Tom)
-     </para>
-
-     <para>
-      In some cases the context-printing function would fail because the
-      current transaction had already been rolled back when it came time
-      to print a log message.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update pl/perl's <filename>ppport.h</> for modern Perl versions
-      (Andrew)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix assorted memory leaks in pl/python (Andreas Freund, Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent infinite recursion in <application>psql</> when expanding
-      a variable that refers to itself (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>psql</>'s <literal>\copy</> to not add spaces around
-      a dot within <literal>\copy (select ...)</> (Tom)
-     </para>
-
-     <para>
-      Addition of spaces around the decimal point in a numeric literal would
-      result in a syntax error.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure that <filename>contrib/pgstattuple</> functions respond to cancel
-      interrupts promptly (Tatsuhito Kasahara)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make server startup deal properly with the case that
-      <function>shmget()</> returns <literal>EINVAL</> for an existing
-      shared memory segment (Tom)
-     </para>
-
-     <para>
-      This behavior has been observed on BSD-derived kernels including OS X.
-      It resulted in an entirely-misleading startup failure complaining that
-      the shared memory request size was too large.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid possible crashes in syslogger process on Windows (Heikki)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Deal more robustly with incomplete time zone information in the
-      Windows registry (Magnus)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update the set of known Windows time zone names (Magnus)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2010j
-      for DST law changes in Argentina, Australian Antarctic, Bangladesh,
-      Mexico, Morocco, Pakistan, Palestine, Russia, Syria, Tunisia;
-      also historical corrections for Taiwan.
-     </para>
-
-     <para>
-      Also, add <literal>PKST</> (Pakistan Summer Time) to the default set of
-      timezone abbreviations.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-2-16">
-  <title>Release 8.2.16</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2010-03-15</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.2.15.
-   For information about new features in the 8.2 major release, see
-   <xref linkend="release-8-2">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.2.16</title>
-
-   <para>
-    A dump/restore is not required for those running 8.2.X.
-    However, if you are upgrading from a version earlier than 8.2.14,
-    see <xref linkend="release-8-2-14">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Add new configuration parameter <varname>ssl_renegotiation_limit</> to
-      control how often we do session key renegotiation for an SSL connection
-      (Magnus)
-     </para>
-
-     <para>
-      This can be set to zero to disable renegotiation completely, which may
-      be required if a broken SSL library is used.  In particular, some
-      vendors are shipping stopgap patches for CVE-2009-3555 that cause
-      renegotiation attempts to fail.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible deadlock during backend startup (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible crashes due to not handling errors during relcache reload
-      cleanly (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible crashes when trying to recover from a failure in
-      subtransaction start (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix server memory leak associated with use of savepoints and a client
-      encoding different from server's encoding (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix incorrect WAL data emitted during end-of-recovery cleanup of a GIST
-      index page split (Yoichi Hirai)
-     </para>
-
-     <para>
-      This would result in index corruption, or even more likely an error
-      during WAL replay, if we were unlucky enough to crash during
-      end-of-recovery cleanup after having completed an incomplete GIST
-      insertion.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <function>substring()</> for <type>bit</> types treat any negative
-      length as meaning <quote>all the rest of the string</> (Tom)
-     </para>
-
-     <para>
-      The previous coding treated only -1 that way, and would produce an
-      invalid result value for other negative values, possibly leading to
-      a crash (CVE-2010-0442).
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix integer-to-bit-string conversions to handle the first fractional
-      byte correctly when the output bit width is wider than the given
-      integer by something other than a multiple of 8 bits (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix some cases of pathologically slow regular expression matching (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix the <literal>STOP WAL LOCATION</> entry in backup history files to
-      report the next WAL segment's name when the end location is exactly at a
-      segment boundary (Itagaki Takahiro)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix some more cases of temporary-file leakage (Heikki)
-     </para>
-
-     <para>
-      This corrects a problem introduced in the previous minor release.
-      One case that failed is when a plpgsql function returning set is
-      called within another function's exception handler.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve constraint exclusion processing of boolean-variable cases,
-      in particular make it possible to exclude a partition that has a
-      <quote>bool_column = false</> constraint (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      When reading <filename>pg_hba.conf</> and related files, do not treat
-      <literal>@something</> as a file inclusion request if the <literal>@</>
-      appears inside quote marks; also, never treat <literal>@</> by itself
-      as a file inclusion request (Tom)
-     </para>
-
-     <para>
-      This prevents erratic behavior if a role or database name starts with
-      <literal>@</>.  If you need to include a file whose path name
-      contains spaces, you can still do so, but you must write
-      <literal>@"/path to/file"</> rather than putting the quotes around
-      the whole construct.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent infinite loop on some platforms if a directory is named as
-      an inclusion target in <filename>pg_hba.conf</> and related files
-      (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible infinite loop if <function>SSL_read</> or
-      <function>SSL_write</> fails without setting <varname>errno</> (Tom)
-     </para>
-
-     <para>
-      This is reportedly possible with some Windows versions of
-      <application>openssl</>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>psql</>'s <literal>numericlocale</> option to not
-      format strings it shouldn't in latex and troff output formats (Heikki)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <application>psql</> return the correct exit status (3) when
-      <literal>ON_ERROR_STOP</> and <literal>--single-transaction</> are
-      both specified and an error occurs during the implied <command>COMMIT</>
-      (Bruce)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix plpgsql failure in one case where a composite column is set to NULL
-      (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible failure when calling PL/Perl functions from PL/PerlU
-      or vice versa (Tim Bunce)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Add <literal>volatile</> markings in PL/Python to avoid possible
-      compiler-specific misbehavior (Zdenek Kotala)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure PL/Tcl initializes the Tcl interpreter fully (Tom)
-     </para>
-
-     <para>
-      The only known symptom of this oversight is that the Tcl
-      <literal>clock</> command misbehaves if using Tcl 8.5 or later.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent crash in <filename>contrib/dblink</> when too many key
-      columns are specified to a <function>dblink_build_sql_*</> function
-      (Rushabh Lathia, Joe Conway)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix assorted crashes in <filename>contrib/xml2</> caused by sloppy
-      memory management (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make building of <filename>contrib/xml2</> more robust on Windows
-      (Andrew)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix race condition in Windows signal handling (Radu Ilie)
-     </para>
-
-     <para>
-      One known symptom of this bug is that rows in <structname>pg_listener</>
-      could be dropped under heavy load.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2010e
-      for DST law changes in Bangladesh, Chile, Fiji, Mexico, Paraguay, Samoa.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-2-15">
-  <title>Release 8.2.15</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2009-12-14</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.2.14.
-   For information about new features in the 8.2 major release, see
-   <xref linkend="release-8-2">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.2.15</title>
-
-   <para>
-    A dump/restore is not required for those running 8.2.X.
-    However, if you are upgrading from a version earlier than 8.2.14,
-    see <xref linkend="release-8-2-14">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Protect against indirect security threats caused by index functions
-      changing session-local state (Gurjeet Singh, Tom)
-     </para>
-
-     <para>
-      This change prevents allegedly-immutable index functions from possibly
-      subverting a superuser's session (CVE-2009-4136).
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Reject SSL certificates containing an embedded null byte in the common
-      name (CN) field (Magnus)
-     </para>
-
-     <para>
-      This prevents unintended matching of a certificate to a server or client
-      name during SSL validation (CVE-2009-4034).
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible crash during backend-startup-time cache initialization (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent signals from interrupting <literal>VACUUM</> at unsafe times
-      (Alvaro)
-     </para>
-
-     <para>
-      This fix prevents a PANIC if a <literal>VACUUM FULL</> is canceled
-      after it's already committed its tuple movements, as well as transient
-      errors if a plain <literal>VACUUM</> is interrupted after having
-      truncated the table.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible crash due to integer overflow in hash table size
-      calculation (Tom)
-     </para>
-
-     <para>
-      This could occur with extremely large planner estimates for the size of
-      a hashjoin's result.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix very rare crash in <type>inet</>/<type>cidr</> comparisons (Chris
-      Mikkelson)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure that shared tuple-level locks held by prepared transactions are
-      not ignored (Heikki)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix premature drop of temporary files used for a cursor that is accessed
-      within a subtransaction (Heikki)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix incorrect logic for GiST index page splits, when the split depends
-      on a non-first column of the index (Paul Ramsey)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Don't error out if recycling or removing an old WAL file fails at the
-      end of checkpoint (Heikki)
-     </para>
-
-     <para>
-      It's better to treat the problem as non-fatal and allow the checkpoint
-      to complete.  Future checkpoints will retry the removal.  Such problems
-      are not expected in normal operation, but have been seen to be
-      caused by misdesigned Windows anti-virus and backup software.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure WAL files aren't repeatedly archived on Windows (Heikki)
-     </para>
-
-     <para>
-      This is another symptom that could happen if some other process
-      interfered with deletion of a no-longer-needed file.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix PAM password processing to be more robust (Tom)
-     </para>
-
-     <para>
-      The previous code is known to fail with the combination of the Linux
-      <literal>pam_krb5</> PAM module with Microsoft Active Directory as the
-      domain controller.  It might have problems elsewhere too, since it was
-      making unjustified assumptions about what arguments the PAM stack would
-      pass to it.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix processing of ownership dependencies during <literal>CREATE OR
-      REPLACE FUNCTION</> (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix bug with calling <literal>plperl</> from <literal>plperlu</> or vice
-      versa (Tom)
-     </para>
-
-     <para>
-      An error exit from the inner function could result in crashes due to
-      failure to re-select the correct Perl interpreter for the outer function.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix session-lifespan memory leak when a PL/Perl function is redefined
-      (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure that Perl arrays are properly converted to
-      <productname>PostgreSQL</> arrays when returned by a set-returning
-      PL/Perl function (Andrew Dunstan, Abhijit Menon-Sen)
-     </para>
-
-     <para>
-      This worked correctly already for non-set-returning functions.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix rare crash in exception processing in PL/Python (Peter)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure <application>psql</>'s flex module is compiled with the correct
-      system header definitions (Tom)
-     </para>
-
-     <para>
-      This fixes build failures on platforms where
-      <literal>--enable-largefile</> causes incompatible changes in the
-      generated code.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make the postmaster ignore any <literal>application_name</> parameter in
-      connection request packets, to improve compatibility with future libpq
-      versions (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update the timezone abbreviation files to match current reality (Joachim
-      Wieland)
-     </para>
-
-     <para>
-      This includes adding <literal>IDT</> and <literal>SGT</> to the default
-      timezone abbreviation set.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2009s
-      for DST law changes in Antarctica, Argentina, Bangladesh, Fiji,
-      Novokuznetsk, Pakistan, Palestine, Samoa, Syria; also historical
-      corrections for Hong Kong.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-2-14">
-  <title>Release 8.2.14</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2009-09-09</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.2.13.
-   For information about new features in the 8.2 major release, see
-   <xref linkend="release-8-2">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.2.14</title>
-
-   <para>
-    A dump/restore is not required for those running 8.2.X.
-    However, if you have any hash indexes on <type>interval</> columns,
-    you must <command>REINDEX</> them after updating to 8.2.14.
-    Also, if you are upgrading from a version earlier than 8.2.11,
-    see <xref linkend="release-8-2-11">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Force WAL segment switch during <function>pg_start_backup()</>
-      (Heikki)
-     </para>
-
-     <para>
-      This avoids corner cases that could render a base backup unusable.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Disallow <command>RESET ROLE</> and <command>RESET SESSION
-      AUTHORIZATION</> inside security-definer functions (Tom, Heikki)
-     </para>
-
-     <para>
-      This covers a case that was missed in the previous patch that
-      disallowed <command>SET ROLE</> and <command>SET SESSION
-      AUTHORIZATION</> inside security-definer functions.
-      (See CVE-2007-6600)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <command>LOAD</> of an already-loaded loadable module
-      into a no-op (Tom)
-     </para>
-
-     <para>
-      Formerly, <command>LOAD</> would attempt to unload and re-load the
-      module, but this is unsafe and not all that useful.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Disallow empty passwords during LDAP authentication (Magnus)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix handling of sub-SELECTs appearing in the arguments of
-      an outer-level aggregate function (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix bugs associated with fetching a whole-row value from the
-      output of a Sort or Materialize plan node (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Revert planner change that disabled partial-index and constraint
-      exclusion optimizations when there were more than 100 clauses in
-      an AND or OR list (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix hash calculation for data type <type>interval</> (Tom)
-     </para>
-
-     <para>
-      This corrects wrong results for hash joins on interval values.
-      It also changes the contents of hash indexes on interval columns.
-      If you have any such indexes, you must <command>REINDEX</> them
-      after updating.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Treat <function>to_char(..., 'TH')</> as an uppercase ordinal
-      suffix with <literal>'HH'</>/<literal>'HH12'</> (Heikki)
-     </para>
-
-     <para>
-      It was previously handled as <literal>'th'</> (lowercase).
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix overflow for <literal>INTERVAL '<replaceable>x</> ms'</literal>
-      when <replaceable>x</> is more than 2 million and integer
-      datetimes are in use (Alex Hunsaker)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix calculation of distance between a point and a line segment (Tom)
-     </para>
-
-     <para>
-      This led to incorrect results from a number of geometric operators.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <type>money</> data type to work in locales where currency
-      amounts have no fractional digits, e.g. Japan (Itagaki Takahiro)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Properly round datetime input like
-      <literal>00:12:57.9999999999999999999999999999</> (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix poor choice of page split point in GiST R-tree operator classes
-      (Teodor)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid performance degradation in bulk inserts into GIN indexes
-      when the input values are (nearly) in sorted order (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Correctly enforce NOT NULL domain constraints in some contexts in
-      PL/pgSQL (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix portability issues in plperl initialization (Andrew Dunstan)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>pg_ctl</> to not go into an infinite loop if
-      <filename>postgresql.conf</> is empty (Jeff Davis)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <filename>contrib/hstore</> throw an error when a key or
-      value is too long to fit in its data structure, rather than
-      silently truncating it (Andrew Gierth)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <filename>contrib/xml2</>'s <function>xslt_process()</> to
-      properly handle the maximum number of parameters (twenty) (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve robustness of <application>libpq</>'s code to recover
-      from errors during <command>COPY FROM STDIN</> (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid including conflicting readline and editline header files
-      when both libraries are installed (Zdenek Kotala)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2009l
-      for DST law changes in Bangladesh, Egypt, Jordan, Pakistan,
-      Argentina/San_Luis, Cuba, Jordan (historical correction only),
-      Mauritius, Morocco, Palestine, Syria, Tunisia.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-2-13">
-  <title>Release 8.2.13</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2009-03-16</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.2.12.
-   For information about new features in the 8.2 major release, see
-   <xref linkend="release-8-2">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.2.13</title>
-
-   <para>
-    A dump/restore is not required for those running 8.2.X.
-    However, if you are upgrading from a version earlier than 8.2.11,
-    see <xref linkend="release-8-2-11">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Prevent error recursion crashes when encoding conversion fails (Tom)
-     </para>
-
-     <para>
-      This change extends fixes made in the last two minor releases for
-      related failure scenarios.  The previous fixes were narrowly tailored
-      for the original problem reports, but we have now recognized that
-      <emphasis>any</> error thrown by an encoding conversion function could
-      potentially lead to infinite recursion while trying to report the
-      error.  The solution therefore is to disable translation and encoding
-      conversion and report the plain-ASCII form of any error message,
-      if we find we have gotten into a recursive error reporting situation.
-      (CVE-2009-0922)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Disallow <command>CREATE CONVERSION</> with the wrong encodings
-      for the specified conversion function (Heikki)
-     </para>
-
-     <para>
-      This prevents one possible scenario for encoding conversion failure.
-      The previous change is a backstop to guard against other kinds of
-      failures in the same area.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix core dump when <function>to_char()</> is given format codes that
-      are inappropriate for the type of the data argument (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible failure in <filename>contrib/tsearch2</> when C locale is
-      used with a multi-byte encoding (Teodor)
-     </para>
-
-     <para>
-      Crashes were possible on platforms where <type>wchar_t</> is narrower
-      than <type>int</>; Windows in particular.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix extreme inefficiency in <filename>contrib/tsearch2</> parser's
-      handling of an email-like string containing multiple <literal>@</>
-      characters (Heikki)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix decompilation of <literal>CASE WHEN</> with an implicit coercion
-      (Tom)
-     </para>
-
-     <para>
-      This mistake could lead to Assert failures in an Assert-enabled build,
-      or an <quote>unexpected CASE WHEN clause</> error message in other
-      cases, when trying to examine or dump a view.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible misassignment of the owner of a TOAST table's rowtype (Tom)
-     </para>
-
-     <para>
-      If <command>CLUSTER</> or a rewriting variant of <command>ALTER TABLE</>
-      were executed by someone other than the table owner, the
-      <structname>pg_type</> entry for the table's TOAST table would end up
-      marked as owned by that someone.  This caused no immediate problems,
-      since the permissions on the TOAST rowtype aren't examined by any
-      ordinary database operation.  However, it could lead to unexpected
-      failures if one later tried to drop the role that issued the command
-      (in 8.1 or 8.2), or <quote>owner of data type appears to be invalid</>
-      warnings from <application>pg_dump</> after having done so (in 8.3).
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix PL/pgSQL to not treat <literal>INTO</> after <command>INSERT</> as
-      an INTO-variables clause anywhere in the string, not only at the start;
-      in particular, don't fail for <command>INSERT INTO</> within
-      <command>CREATE RULE</> (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Clean up PL/pgSQL error status variables fully at block exit
-      (Ashesh Vashi and Dave Page)
-     </para>
-
-     <para>
-      This is not a problem for PL/pgSQL itself, but the omission could cause
-      the PL/pgSQL Debugger to crash while examining the state of a function.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Retry failed calls to <function>CallNamedPipe()</> on Windows
-      (Steve Marshall, Magnus)
-     </para>
-
-     <para>
-      It appears that this function can sometimes fail transiently;
-      we previously treated any failure as a hard error, which could
-      confuse <command>LISTEN</>/<command>NOTIFY</> as well as other
-      operations.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Add <literal>MUST</> (Mauritius Island Summer Time) to the default list
-      of known timezone abbreviations (Xavier Bugaud)
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-2-12">
-  <title>Release 8.2.12</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2009-02-02</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.2.11.
-   For information about new features in the 8.2 major release, see
-   <xref linkend="release-8-2">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.2.12</title>
-
-   <para>
-    A dump/restore is not required for those running 8.2.X.
-    However, if you are upgrading from a version earlier than 8.2.11,
-    see <xref linkend="release-8-2-11">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Improve handling of URLs in <function>headline()</> function (Teodor)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve handling of overlength headlines in <function>headline()</>
-      function (Teodor)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent possible Assert failure or misconversion if an encoding
-      conversion is created with the wrong conversion function for the
-      specified pair of encodings (Tom, Heikki)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible Assert failure if a statement executed in PL/pgSQL is
-      rewritten into another kind of statement, for example if an
-      <command>INSERT</> is rewritten into an <command>UPDATE</> (Heikki)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure that a snapshot is available to datatype input functions (Tom)
-     </para>
-
-     <para>
-      This primarily affects domains that are declared with <literal>CHECK</>
-      constraints involving user-defined stable or immutable functions.  Such
-      functions typically fail if no snapshot has been set.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make it safer for SPI-using functions to be used within datatype I/O;
-      in particular, to be used in domain check constraints (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid unnecessary locking of small tables in <command>VACUUM</>
-      (Heikki)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix a problem that made <literal>UPDATE RETURNING tableoid</>
-      return zero instead of the correct OID (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix planner misestimation of selectivity when transitive equality
-      is applied to an outer-join clause (Tom)
-     </para>
-
-     <para>
-      This could result in bad plans for queries like
-      <literal>... from a left join b on a.a1 = b.b1 where a.a1 = 42 ...</>
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve optimizer's handling of long <literal>IN</> lists (Tom)
-     </para>
-
-     <para>
-      This change avoids wasting large amounts of time on such lists
-      when constraint exclusion is enabled.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure that the contents of a holdable cursor don't depend on the
-      contents of TOAST tables (Tom)
-     </para>
-
-     <para>
-      Previously, large field values in a cursor result might be represented
-      as TOAST pointers, which would fail if the referenced table got dropped
-      before the cursor is read, or if the large value is deleted and then
-      vacuumed away.  This cannot happen with an ordinary cursor,
-      but it could with a cursor that is held past its creating transaction.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix memory leak when a set-returning function is terminated without
-      reading its whole result (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <filename>contrib/dblink</>'s
-      <function>dblink_get_result(text,bool)</> function (Joe)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible garbage output from <filename>contrib/sslinfo</> functions
-      (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>configure</> script to properly report failure when
-      unable to obtain linkage information for PL/Perl (Andrew)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make all documentation reference <literal>pgsql-bugs</> and/or
-      <literal>pgsql-hackers</> as appropriate, instead of the
-      now-decommissioned <literal>pgsql-ports</> and <literal>pgsql-patches</>
-      mailing lists (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2009a (for
-      Kathmandu and historical DST corrections in Switzerland, Cuba)
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-2-11">
-  <title>Release 8.2.11</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2008-11-03</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.2.10.
-   For information about new features in the 8.2 major release, see
-   <xref linkend="release-8-2">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.2.11</title>
-
-   <para>
-    A dump/restore is not required for those running 8.2.X.
-    However, if you are upgrading from a version earlier than 8.2.7,
-    see <xref linkend="release-8-2-7">.  Also, if you were running a previous
-    8.2.X release, it is recommended to <command>REINDEX</> all GiST
-    indexes after the upgrade.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Fix GiST index corruption due to marking the wrong index entry
-      <quote>dead</> after a deletion (Teodor)
-     </para>
-
-     <para>
-      This would result in index searches failing to find rows they
-      should have found.  Corrupted indexes can be fixed with
-      <command>REINDEX</>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix backend crash when the client encoding cannot represent a localized
-      error message (Tom)
-     </para>
-
-     <para>
-      We have addressed similar issues before, but it would still fail if
-      the <quote>character has no equivalent</> message itself couldn't
-      be converted.  The fix is to disable localization and send the plain
-      ASCII error message when we detect such a situation.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible crash when deeply nested functions are invoked from
-      a trigger (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve optimization of <replaceable>expression</> <literal>IN</>
-      (<replaceable>expression-list</>) queries (Tom, per an idea from Robert
-      Haas)
-     </para>
-
-     <para>
-      Cases in which there are query variables on the right-hand side had been
-      handled less efficiently in 8.2.x and 8.3.x than in prior versions.
-      The fix restores 8.1 behavior for such cases.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix mis-expansion of rule queries when a sub-<literal>SELECT</> appears
-      in a function call in <literal>FROM</>,  a multi-row <literal>VALUES</>
-      list, or a <literal>RETURNING</> list (Tom)
-     </para>
-
-     <para>
-      The usual symptom of this problem is an <quote>unrecognized node type</>
-      error.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix memory leak during rescan of a hashed aggregation plan (Neil)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure an error is reported when a newly-defined PL/pgSQL trigger
-      function is invoked as a normal function (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent possible collision of <structfield>relfilenode</> numbers
-      when moving a table to another tablespace with <command>ALTER SET
-      TABLESPACE</> (Heikki)
-     </para>
-
-     <para>
-      The command tried to re-use the existing filename, instead of
-      picking one that is known unused in the destination directory.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix incorrect tsearch2 headline generation when single query
-      item matches first word of text (Sushant Sinha)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix improper display of fractional seconds in interval values when
-      using a non-ISO datestyle in an <option>--enable-integer-datetimes</>
-      build (Ron Mayer)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure <function>SPI_getvalue</> and <function>SPI_getbinval</>
-      behave correctly when the passed tuple and tuple descriptor have
-      different numbers of columns (Tom)
-     </para>
-
-     <para>
-      This situation is normal when a table has had columns added or removed,
-      but these two functions didn't handle it properly.
-      The only likely consequence is an incorrect error indication.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>ecpg</>'s parsing of <command>CREATE ROLE</> (Michael)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix recent breakage of <literal>pg_ctl restart</> (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure <filename>pg_control</> is opened in binary mode
-      (Itagaki Takahiro)
-     </para>
-
-     <para>
-      <application>pg_controldata</> and <application>pg_resetxlog</>
-      did this incorrectly, and so could fail on Windows.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2008i (for
-      DST law changes in Argentina, Brazil, Mauritius, Syria)
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-2-10">
-  <title>Release 8.2.10</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2008-09-22</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.2.9.
-   For information about new features in the 8.2 major release, see
-   <xref linkend="release-8-2">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.2.10</title>
-
-   <para>
-    A dump/restore is not required for those running 8.2.X.
-    However, if you are upgrading from a version earlier than 8.2.7,
-    see <xref linkend="release-8-2-7">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Fix bug in btree WAL recovery code (Heikki)
-     </para>
-
-     <para>
-      Recovery failed if the WAL ended partway through a page split operation.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix potential miscalculation of <structfield>datfrozenxid</> (Alvaro)
-     </para>
-
-     <para>
-      This error may explain some recent reports of failure to remove old
-      <structname>pg_clog</> data.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Widen local lock counters from 32 to 64 bits (Tom)
-     </para>
-
-     <para>
-      This responds to reports that the counters could overflow in
-      sufficiently long transactions, leading to unexpected <quote>lock is
-      already held</> errors.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible duplicate output of tuples during a GiST index scan (Teodor)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix missed permissions checks when a view contains a simple
-      <literal>UNION ALL</> construct (Heikki)
-     </para>
-
-     <para>
-      Permissions for the referenced tables were checked properly, but not
-      permissions for the view itself.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Add checks in executor startup to ensure that the tuples produced by an
-      <command>INSERT</> or <command>UPDATE</> will match the target table's
-      current rowtype (Tom)
-     </para>
-
-     <para>
-      <command>ALTER COLUMN TYPE</>, followed by re-use of a previously
-      cached plan, could produce this type of situation.  The check protects
-      against data corruption and/or crashes that could ensue.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible repeated drops during <command>DROP OWNED</> (Tom)
-     </para>
-
-     <para>
-      This would typically result in strange errors such as <quote>cache
-      lookup failed for relation NNN</>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <literal>AT TIME ZONE</> to first try to interpret its timezone
-      argument as a timezone abbreviation, and only try it as a full timezone
-      name if that fails, rather than the other way around as formerly (Tom)
-     </para>
-
-     <para>
-      The timestamp input functions have always resolved ambiguous zone names
-      in this order.  Making <literal>AT TIME ZONE</> do so as well improves
-      consistency, and fixes a compatibility bug introduced in 8.1:
-      in ambiguous cases we now behave the same as 8.0 and before did,
-      since in the older versions <literal>AT TIME ZONE</> accepted
-      <emphasis>only</> abbreviations.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix datetime input functions to correctly detect integer overflow when
-      running on a 64-bit platform (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent integer overflows during units conversion when displaying a
-      configuration parameter that has units (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve performance of writing very long log messages to syslog (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Allow spaces in the suffix part of an LDAP URL in
-      <filename>pg_hba.conf</> (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix bug in backwards scanning of a cursor on a <literal>SELECT DISTINCT
-      ON</> query (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix planner bug with nested sub-select expressions (Tom)
-     </para>
-
-     <para>
-      If the outer sub-select has no direct dependency on the parent query,
-      but the inner one does, the outer value might not get recalculated
-      for new parent query rows.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix planner to estimate that <literal>GROUP BY</> expressions yielding
-      boolean results always result in two groups, regardless of the
-      expressions' contents (Tom)
-     </para>
-
-     <para>
-      This is very substantially more accurate than the regular <literal>GROUP
-      BY</> estimate for certain boolean tests like <replaceable>col</>
-      <literal>IS NULL</>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix PL/pgSQL to not fail when a <literal>FOR</> loop's target variable
-      is a record containing composite-type fields (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix PL/Tcl to behave correctly with Tcl 8.5, and to be more careful
-      about the encoding of data sent to or from Tcl (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      On Windows, work around a Microsoft bug by preventing
-      <application>libpq</> from trying to send more than 64kB per system call
-      (Magnus)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve <application>pg_dump</> and <application>pg_restore</>'s
-      error reporting after failure to send a SQL command (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>pg_ctl</> to properly preserve postmaster
-      command-line arguments across a <literal>restart</> (Bruce)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2008f (for
-      DST law changes in Argentina, Bahamas, Brazil, Mauritius, Morocco,
-      Pakistan, Palestine, and Paraguay)
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-2-9">
-  <title>Release 8.2.9</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2008-06-12</para>
-  </formalpara>
-
-  <para>
-   This release contains one serious and one minor bug fix over 8.2.8.
-   For information about new features in the 8.2 major release, see
-   <xref linkend="release-8-2">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.2.9</title>
-
-   <para>
-    A dump/restore is not required for those running 8.2.X.
-    However, if you are upgrading from a version earlier than 8.2.7,
-    see <xref linkend="release-8-2-7">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Make <function>pg_get_ruledef()</> parenthesize negative constants (Tom)
-     </para>
-
-     <para>
-      Before this fix, a negative constant in a view or rule might be dumped
-      as, say, <literal>-42::integer</>, which is subtly incorrect: it should
-      be <literal>(-42)::integer</> due to operator precedence rules.
-      Usually this would make little difference, but it could interact with
-      another recent patch to cause
-      <productname>PostgreSQL</> to reject what had been a valid
-      <command>SELECT DISTINCT</> view query.  Since this could result in
-      <application>pg_dump</> output failing to reload, it is being treated
-      as a high-priority fix.  The only released versions in which dump
-      output is actually incorrect are 8.3.1 and 8.2.7.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <command>ALTER AGGREGATE ... OWNER TO</> update
-      <structname>pg_shdepend</> (Tom)
-     </para>
-
-     <para>
-      This oversight could lead to problems if the aggregate was later
-      involved in a <command>DROP OWNED</> or <command>REASSIGN OWNED</>
-      operation.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-2-8">
-  <title>Release 8.2.8</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>never released</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.2.7.
-   For information about new features in the 8.2 major release, see
-   <xref linkend="release-8-2">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.2.8</title>
-
-   <para>
-    A dump/restore is not required for those running 8.2.X.
-    However, if you are upgrading from a version earlier than 8.2.7,
-    see <xref linkend="release-8-2-7">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Fix <literal>ERRORDATA_STACK_SIZE exceeded</literal> crash that
-      occurred on Windows when using UTF-8 database encoding and a different
-      client encoding (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <command>ALTER TABLE ADD COLUMN ... PRIMARY KEY</> so that the new
-      column is correctly checked to see if it's been initialized to all
-      non-nulls (Brendan Jurd)
-     </para>
-
-     <para>
-      Previous versions neglected to check this requirement at all.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible <command>CREATE TABLE</> failure when inheriting the
-      <quote>same</> constraint from multiple parent relations that
-      inherited that constraint from a common ancestor (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <function>pg_get_ruledef()</> to show the alias, if any, attached
-      to the target table of an <command>UPDATE</> or <command>DELETE</>
-      (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix GIN bug that could result in a <literal>too many LWLocks
-      taken</literal> failure (Teodor)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid possible crash when decompressing corrupted data
-      (Zdenek Kotala)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Repair two places where SIGTERM exit of a backend could leave corrupted
-      state in shared memory (Tom)
-     </para>
-
-     <para>
-      Neither case is very important if SIGTERM is used to shut down the
-      whole database cluster together, but there was a problem if someone
-      tried to SIGTERM individual backends.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix conversions between ISO-8859-5 and other encodings to handle
-      Cyrillic <quote>Yo</> characters (<literal>e</> and <literal>E</> with
-      two dots) (Sergey Burladyan)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix several datatype input functions, notably <function>array_in()</>,
-      that were allowing unused bytes in their results to contain
-      uninitialized, unpredictable values (Tom)
-     </para>
-
-     <para>
-      This could lead to failures in which two apparently identical literal
-      values were not seen as equal, resulting in the parser complaining
-      about unmatched <literal>ORDER BY</> and <literal>DISTINCT</>
-      expressions.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix a corner case in regular-expression substring matching
-      (<literal>substring(<replaceable>string</> from
-      <replaceable>pattern</>)</literal>) (Tom)
-     </para>
-
-     <para>
-      The problem occurs when there is a match to the pattern overall but
-      the user has specified a parenthesized subexpression and that
-      subexpression hasn't got a match.  An example is
-      <literal>substring('foo' from 'foo(bar)?')</>.
-      This should return NULL, since <literal>(bar)</> isn't matched, but
-      it was mistakenly returning the whole-pattern match instead (ie,
-      <literal>foo</>).
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2008c (for
-      DST law changes in Morocco, Iraq, Choibalsan, Pakistan, Syria, Cuba, and
-      Argentina/San_Luis)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix incorrect result from <application>ecpg</>'s
-      <function>PGTYPEStimestamp_sub()</> function (Michael)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix broken GiST comparison function for <filename>contrib/tsearch2</>'s
-      <type>tsquery</> type (Teodor)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible crashes in <filename>contrib/cube</> functions (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix core dump in <filename>contrib/xml2</>'s
-      <function>xpath_table()</> function when the input query returns a
-      NULL value (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <filename>contrib/xml2</>'s makefile to not override
-      <literal>CFLAGS</> (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <literal>DatumGetBool</> macro to not fail with <application>gcc</>
-      4.3 (Tom)
-     </para>
-
-     <para>
-      This problem affects <quote>old style</> (V0) C functions that
-      return boolean.  The fix is already in 8.3, but the need to
-      back-patch it was not realized at the time.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-2-7">
-  <title>Release 8.2.7</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2008-03-17</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.2.6.
-   For information about new features in the 8.2 major release, see
-   <xref linkend="release-8-2">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.2.7</title>
-
-   <para>
-    A dump/restore is not required for those running 8.2.X.
-    However, you might need to <command>REINDEX</> indexes on textual
-    columns after updating, if you are affected by the Windows locale
-    issue described below.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Fix character string comparison for Windows locales that consider
-      different character combinations as equal (Tom)
-     </para>
-
-     <para>
-      This fix applies only on Windows and only when using UTF-8
-      database encoding.  The same fix was made for all other cases
-      over two years ago, but Windows with UTF-8 uses a separate code
-      path that was not updated.  If you are using a locale that
-      considers some non-identical strings as equal, you may need to
-      <command>REINDEX</> to fix existing indexes on textual columns.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Repair potential deadlock between concurrent <command>VACUUM FULL</>
-      operations on different system catalogs (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix longstanding <command>LISTEN</>/<command>NOTIFY</>
-      race condition (Tom)
-     </para>
-
-     <para>
-      In rare cases a session that had just executed a
-      <command>LISTEN</> might not get a notification, even though
-      one would be expected because the concurrent transaction executing
-      <command>NOTIFY</> was observed to commit later.
-     </para>
-
-     <para>
-      A side effect of the fix is that a transaction that has executed
-      a not-yet-committed <command>LISTEN</> command will not see any
-      row in <structname>pg_listener</> for the <command>LISTEN</>,
-      should it choose to look; formerly it would have.  This behavior
-      was never documented one way or the other, but it is possible that
-      some applications depend on the old behavior.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Disallow <command>LISTEN</> and <command>UNLISTEN</> within a
-      prepared transaction (Tom)
-     </para>
-
-     <para>
-      This was formerly allowed but trying to do it had various unpleasant
-      consequences, notably that the originating backend could not exit
-      as long as an <command>UNLISTEN</> remained uncommitted.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Disallow dropping a temporary table within a
-      prepared transaction (Heikki)
-     </para>
-
-     <para>
-      This was correctly disallowed by 8.1, but the check was inadvertently
-      broken in 8.2.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix rare crash when an error occurs during a query using a hash index
-      (Heikki)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix memory leaks in certain usages of set-returning functions (Neil)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix input of datetime values for February 29 in years BC (Tom)
-     </para>
-
-     <para>
-      The former coding was mistaken about which years were leap years.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <quote>unrecognized node type</> error in some variants of
-      <command>ALTER OWNER</> (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure <structname>pg_stat_activity</>.<structfield>waiting</> flag
-      is cleared when a lock wait is aborted (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix handling of process permissions on Windows Vista (Dave, Magnus)
-     </para>
-
-     <para>
-      In particular, this fix allows starting the server as the Administrator
-      user.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2008a
-      (in particular, recent Chile changes); adjust timezone abbreviation
-      <literal>VET</> (Venezuela) to mean UTC-4:30, not UTC-4:00 (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>pg_ctl</> to correctly extract the postmaster's port
-      number from command-line options (Itagaki Takahiro, Tom)
-     </para>
-
-     <para>
-      Previously, <literal>pg_ctl start -w</> could try to contact the
-      postmaster on the wrong port, leading to bogus reports of startup
-      failure.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Use <option>-fwrapv</> to defend against possible misoptimization
-      in recent <application>gcc</> versions (Tom)
-     </para>
-
-     <para>
-      This is known to be necessary when building <productname>PostgreSQL</>
-      with <application>gcc</> 4.3 or later.
-     </para>
-    </listitem>
-
-
-    <listitem>
-     <para>
-      Correctly enforce <varname>statement_timeout</> values longer
-      than <literal>INT_MAX</> microseconds (about 35 minutes) (Tom)
-     </para>
-
-     <para>
-      This bug affects only builds with <option>--enable-integer-datetimes</>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <quote>unexpected PARAM_SUBLINK ID</> planner error when
-      constant-folding simplifies a sub-select (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix logical errors in constraint-exclusion handling of <literal>IS
-      NULL</> and <literal>NOT</> expressions (Tom)
-     </para>
-
-     <para>
-      The planner would sometimes exclude partitions that should not
-      have been excluded because of the possibility of NULL results.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix another cause of <quote>failed to build any N-way joins</>
-      planner errors (Tom)
-     </para>
-
-     <para>
-      This could happen in cases where a clauseless join needed to be
-      forced before a join clause could be exploited.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix incorrect constant propagation in outer-join planning (Tom)
-     </para>
-
-     <para>
-      The planner could sometimes incorrectly conclude that a variable
-      could be constrained to be equal to a constant, leading
-      to wrong query results.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix display of constant expressions in <literal>ORDER BY</>
-      and <literal>GROUP BY</> (Tom)
-     </para>
-
-     <para>
-      An explicitly casted constant would be shown incorrectly.  This could
-      for example lead to corruption of a view definition during
-      dump and reload.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>libpq</> to handle NOTICE messages correctly
-      during COPY OUT (Tom)
-     </para>
-
-     <para>
-      This failure has only been observed to occur when a user-defined
-      datatype's output routine issues a NOTICE, but there is no
-      guarantee it couldn't happen due to other causes.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-2-6">
-  <title>Release 8.2.6</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2008-01-07</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.2.5,
-   including fixes for significant security issues.
-   For information about new features in the 8.2 major release, see
-   <xref linkend="release-8-2">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.2.6</title>
-
-   <para>
-    A dump/restore is not required for those running 8.2.X.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Prevent functions in indexes from executing with the privileges of
-      the user running <command>VACUUM</>, <command>ANALYZE</>, etc (Tom)
-     </para>
-
-     <para>
-      Functions used in index expressions and partial-index
-      predicates are evaluated whenever a new table entry is made.  It has
-      long been understood that this poses a risk of trojan-horse code
-      execution if one modifies a table owned by an untrustworthy user.
-      (Note that triggers, defaults, check constraints, etc. pose the
-      same type of risk.)  But functions in indexes pose extra danger
-      because they will be executed by routine maintenance operations
-      such as <command>VACUUM FULL</>, which are commonly performed
-      automatically under a superuser account.  For example, a nefarious user
-      can execute code with superuser privileges by setting up a
-      trojan-horse index definition and waiting for the next routine vacuum.
-      The fix arranges for standard maintenance operations
-      (including <command>VACUUM</>, <command>ANALYZE</>, <command>REINDEX</>,
-      and <command>CLUSTER</>) to execute as the table owner rather than
-      the calling user, using the same privilege-switching mechanism already
-      used for <literal>SECURITY DEFINER</> functions.  To prevent bypassing
-      this security measure, execution of <command>SET SESSION
-      AUTHORIZATION</> and <command>SET ROLE</> is now forbidden within a
-      <literal>SECURITY DEFINER</> context.  (CVE-2007-6600)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Repair assorted bugs in the regular-expression package (Tom, Will Drewry)
-     </para>
-
-     <para>
-      Suitably crafted regular-expression patterns could cause crashes,
-      infinite or near-infinite looping, and/or massive memory consumption,
-      all of which pose denial-of-service hazards for applications that
-      accept regex search patterns from untrustworthy sources.
-      (CVE-2007-4769, CVE-2007-4772, CVE-2007-6067)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Require non-superusers who use <filename>/contrib/dblink</> to use only
-      password authentication, as a security measure (Joe)
-     </para>
-
-     <para>
-      The fix that appeared for this in 8.2.5 was incomplete, as it plugged
-      the hole for only some <filename>dblink</> functions.  (CVE-2007-6601,
-      CVE-2007-3278)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix bugs in WAL replay for GIN indexes (Teodor)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix GIN index build to work properly when
-      <varname>maintenance_work_mem</> is 4GB or more (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2007k
-      (in particular, recent Argentina changes) (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve planner's handling of LIKE/regex estimation in non-C locales
-      (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix planning-speed problem for deep outer-join nests, as well as
-      possible poor choice of join order (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix planner failure in some cases of <literal>WHERE false AND var IN
-      (SELECT ...)</> (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <command>CREATE TABLE ... SERIAL</> and
-      <command>ALTER SEQUENCE ... OWNED BY</> not change the
-      <function>currval()</> state of the sequence (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Preserve the tablespace and storage parameters of indexes that are
-      rebuilt by <command>ALTER TABLE ... ALTER COLUMN TYPE</> (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make archive recovery always start a new WAL timeline, rather than only
-      when a recovery stop time was used (Simon)
-     </para>
-
-     <para>
-      This avoids a corner-case risk of trying to overwrite an existing
-      archived copy of the last WAL segment, and seems simpler and cleaner
-      than the original definition.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <command>VACUUM</> not use all of <varname>maintenance_work_mem</>
-      when the table is too small for it to be useful (Alvaro)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix potential crash in <function>translate()</> when using a multibyte
-      database encoding (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <function>corr()</> return the correct result for negative
-      correlation values (Neil)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix overflow in <literal>extract(epoch from interval)</> for intervals
-      exceeding 68 years (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix PL/Perl to not fail when a UTF-8 regular expression is used
-      in a trusted function (Andrew)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix PL/Perl to cope when platform's Perl defines type <literal>bool</>
-      as <literal>int</> rather than <literal>char</> (Tom)
-     </para>
-
-     <para>
-      While this could theoretically happen anywhere, no standard build of
-      Perl did things this way ... until <productname>Mac OS X</> 10.5.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix PL/Python to work correctly with Python 2.5 on 64-bit machines
-      (Marko Kreen)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix PL/Python to not crash on long exception messages (Alvaro)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>pg_dump</> to correctly handle inheritance child tables
-      that have default expressions different from their parent's (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>libpq</> crash when <varname>PGPASSFILE</> refers
-      to a file that is not a plain file (Martin Pitt)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      <application>ecpg</> parser fixes (Michael)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <filename>contrib/pgcrypto</> defend against
-      <application>OpenSSL</> libraries that fail on keys longer than 128
-      bits; which is the case at least on some Solaris versions (Marko Kreen)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <filename>contrib/tablefunc</>'s <function>crosstab()</> handle
-      NULL rowid as a category in its own right, rather than crashing (Joe)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <type>tsvector</> and <type>tsquery</> output routines to
-      escape backslashes correctly (Teodor, Bruce)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix crash of <function>to_tsvector()</> on huge input strings (Teodor)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Require a specific version of <productname>Autoconf</> to be used
-      when re-generating the <command>configure</> script (Peter)
-     </para>
-
-     <para>
-      This affects developers and packagers only.  The change was made
-      to prevent accidental use of untested combinations of
-      <productname>Autoconf</> and <productname>PostgreSQL</> versions.
-      You can remove the version check if you really want to use a
-      different <productname>Autoconf</> version, but it's
-      your responsibility whether the result works or not.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update <function>gettimeofday</> configuration check so that
-      <productname>PostgreSQL</> can be built on newer versions of
-      <productname>MinGW</> (Magnus)
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-2-5">
-  <title>Release 8.2.5</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2007-09-17</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.2.4.
-   For information about new features in the 8.2 major release, see
-   <xref linkend="release-8-2">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.2.5</title>
-
-   <para>
-    A dump/restore is not required for those running 8.2.X.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Prevent index corruption when a transaction inserts rows and
-      then aborts close to the end of a concurrent <command>VACUUM</>
-      on the same table (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <literal>ALTER DOMAIN ADD CONSTRAINT</> for cases involving
-      domains over domains (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <command>CREATE DOMAIN ... DEFAULT NULL</> work properly (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix some planner problems with outer joins, notably poor
-      size estimation for <literal>t1 LEFT JOIN t2 WHERE t2.col IS NULL</>
-      (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Allow the <type>interval</> data type to accept input consisting only of
-      milliseconds or microseconds (Neil)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Allow timezone name to appear before the year in <type>timestamp</> input (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fixes for <acronym>GIN</> indexes used by <filename>/contrib/tsearch2</> (Teodor)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Speed up rtree index insertion (Teodor)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix excessive logging of <acronym>SSL</> error messages (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix logging so that log messages are never interleaved when using
-      the syslogger process (Andrew)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix crash when <varname>log_min_error_statement</> logging runs out
-      of memory (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix incorrect handling of some foreign-key corner cases (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <function>stddev_pop(numeric)</> and <function>var_pop(numeric)</> (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent <command>REINDEX</> and <command>CLUSTER</> from failing
-      due to attempting to process temporary tables of other sessions (Alvaro)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update the time zone database rules, particularly New Zealand's upcoming changes (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Windows socket and semaphore improvements (Magnus)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <command>pg_ctl -w</> work properly in Windows service mode (Dave Page)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix memory allocation bug when using <application>MIT Kerberos</> on Windows (Magnus)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Suppress timezone name (<literal>%Z</>) in log timestamps on Windows
-      because of possible encoding mismatches (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Require non-superusers who use <filename>/contrib/dblink</> to use only
-      password authentication, as a security measure (Joe)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Restrict <filename>/contrib/pgstattuple</> functions to superusers, for security reasons (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Do not let <filename>/contrib/intarray</> try to make its GIN opclass
-      the default (this caused problems at dump/restore) (Tom)
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-2-4">
-  <title>Release 8.2.4</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2007-04-23</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.2.3,
-   including a security fix.
-   For information about new features in the 8.2 major release, see
-   <xref linkend="release-8-2">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.2.4</title>
-
-   <para>
-    A dump/restore is not required for those running 8.2.X.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Support explicit placement of the temporary-table schema within
-      <varname>search_path</>, and disable searching it for functions
-      and operators (Tom)
-     </para>
-
-     <para>
-      This is needed to allow a security-definer function to set a
-      truly secure value of <varname>search_path</>.  Without it,
-      an unprivileged SQL user can use temporary objects to execute code
-      with the privileges of the security-definer function (CVE-2007-2138).
-      See <command>CREATE FUNCTION</> for more information.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <varname>shared_preload_libraries</> for Windows
-      by forcing reload in each backend (Korry Douglas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <function>to_char()</> so it properly upper/lower cases localized day or month
-      names (Pavel Stehule)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      <filename>/contrib/tsearch2</> crash fixes (Teodor)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Require <command>COMMIT PREPARED</> to be executed in the same
-      database as the transaction was prepared in (Heikki)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Allow <command>pg_dump</> to do binary backups larger than two gigabytes
-      on Windows (Magnus)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      New traditional (Taiwan) Chinese <acronym>FAQ</> (Zhou Daojing)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent the statistics collector from writing to disk too frequently (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix potential-data-corruption bug in how <command>VACUUM FULL</> handles
-      <command>UPDATE</> chains (Tom, Pavan Deolasee)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix bug in domains that use array types (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <command>pg_dump</> so it can dump a serial column's sequence
-      using <option>-t</> when not also dumping the owning table
-      (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Planner fixes, including improving outer join and bitmap scan
-      selection logic (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible wrong answers or crash when a PL/pgSQL function tries
-      to <literal>RETURN</> from within an <literal>EXCEPTION</> block
-      (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix PANIC during enlargement of a hash index (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix POSIX-style timezone specs to follow new USA DST rules (Tom)
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-2-3">
-  <title>Release 8.2.3</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2007-02-07</para>
-  </formalpara>
-
-  <para>
-   This release contains two fixes from 8.2.2.
-   For information about new features in the 8.2 major release, see
-   <xref linkend="release-8-2">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.2.3</title>
-
-   <para>
-    A dump/restore is not required for those running 8.2.X.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Remove overly-restrictive check for type length in constraints and
-      functional indexes(Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix optimization so MIN/MAX in subqueries can again use indexes (Tom)
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-2-2">
-  <title>Release 8.2.2</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2007-02-05</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.2.1, including
-   a security fix.
-   For information about new features in the 8.2 major release, see
-   <xref linkend="release-8-2">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.2.2</title>
-
-   <para>
-    A dump/restore is not required for those running 8.2.X.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Remove security vulnerabilities that allowed connected users
-      to read backend memory (Tom)
-     </para>
-
-     <para>
-      The vulnerabilities involve suppressing the normal check that a SQL
-      function returns the data type it's declared to, and changing the
-      data type of a table column (CVE-2007-0555, CVE-2007-0556).  These
-      errors can easily be exploited to cause a backend crash, and in
-      principle might be used to read database content that the user
-      should not be able to access.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix not-so-rare-anymore bug wherein btree index page splits could fail
-      due to choosing an infeasible split point (Heikki Linnakangas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix Borland C compile scripts (L Bayuk)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Properly handle <function>to_char('CC')</> for years ending in
-      <literal>00</> (Tom)
-     </para>
-
-     <para>
-      Year 2000 is in the twentieth century, not the twenty-first.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      <filename>/contrib/tsearch2</> localization improvements (Tatsuo, Teodor)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix incorrect permission check in
-      <literal>information_schema.key_column_usage</> view (Tom)
-     </para>
-
-     <para>
-      The symptom is <quote>relation with OID nnnnn does not exist</> errors.
-      To get this fix without using <command>initdb</>, use <command>CREATE OR
-      REPLACE VIEW</> to install the corrected definition found in
-      <filename>share/information_schema.sql</>.  Note you will need to do
-      this in each database.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve <command>VACUUM</> performance for databases with many tables (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix for rare Assert() crash triggered by <literal>UNION</> (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix potentially incorrect results from index searches using
-      <literal>ROW</> inequality conditions (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Tighten security of multi-byte character processing for UTF8 sequences
-      over three bytes long (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix bogus <quote>permission denied</> failures occurring on Windows
-      due to attempts to fsync already-deleted files (Magnus, Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix bug that could cause the statistics collector
-      to hang on Windows (Magnus)
-     </para>
-
-     <para>
-      This would in turn lead to autovacuum not working.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible crashes when an already-in-use PL/pgSQL function is
-      updated (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve PL/pgSQL handling of domain types (Sergiy Vyshnevetskiy, Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible errors in processing PL/pgSQL exception blocks (Tom)
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-2-1">
-  <title>Release 8.2.1</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2007-01-08</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.2.
-   For information about new features in the 8.2 major release, see
-   <xref linkend="release-8-2">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.2.1</title>
-
-   <para>
-    A dump/restore is not required for those running 8.2.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Fix crash with <literal>SELECT</> ... <literal>LIMIT ALL</> (also
-      <literal>LIMIT NULL</>) (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      <filename>Several /contrib/tsearch2</> fixes (Teodor)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      On Windows, make log messages coming from the operating system use
-      <acronym>ASCII</> encoding (Hiroshi Saito)
-     </para>
-
-     <para>
-      This fixes a conversion problem when there is a mismatch between
-      the encoding of the operating system and database server.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix Windows linking of <application>pg_dump</> using
-      <filename>win32.mak</>
-      (Hiroshi Saito)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix planner mistakes for outer join queries (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix several problems in queries involving sub-SELECTs (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix potential crash in SPI during subtransaction abort (Tom)
-     </para>
-
-     <para>
-      This affects all PL functions since they all use SPI.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve build speed of <acronym>PDF</> documentation (Peter)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Re-add <acronym>JST</> (Japan) timezone abbreviation (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve optimization decisions related to index scans (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Have <application>psql</> print multi-byte combining characters as
-      before, rather than output as <literal>\u</> (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve index usage of regular expressions that use parentheses (Tom)
-     </para>
-
-     <para>
-      This improves <application>psql</> <literal>\d</> performance also.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <application>pg_dumpall</> assume that databases have public
-      <literal>CONNECT</> privilege, when dumping from a pre-8.2 server (Tom)
-     </para>
-
-     <para>
-      This preserves the previous behavior that anyone can connect to a
-      database if allowed by <filename>pg_hba.conf</>.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-2">
-  <title>Release 8.2</title>
-
-  <formalpara>
-   <title>Release date:</title>
-   <para>2006-12-05</para>
-  </formalpara>
-
-  <sect2>
-   <title>Overview</title>
-
-   <para>
-    This release adds many functionality and performance improvements that
-    were requested by users, including:
-
-   <itemizedlist>
-
-     <listitem>
-      <para>
-       Query language enhancements including <command>INSERT/UPDATE/DELETE
-       RETURNING</command>, multirow <literal>VALUES</literal> lists, and
-       optional target-table alias in
-       <command>UPDATE</>/<command>DELETE</command>
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Index creation without blocking concurrent
-       <command>INSERT</>/<command>UPDATE</>/<command>DELETE</>
-       operations
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Many query optimization improvements, including support for
-       reordering outer joins
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Improved sorting performance with lower memory usage
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       More efficient locking with better concurrency
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       More efficient vacuuming
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Easier administration of warm standby servers
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       New <literal>FILLFACTOR</literal> support for tables and indexes
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Monitoring, logging, and performance tuning additions
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       More control over creating and dropping objects
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Table inheritance relationships can be defined
-       for and removed from pre-existing tables
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       <command>COPY TO</command> can copy the output of an arbitrary
-       <command>SELECT</command> statement
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Array improvements, including nulls in arrays
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Aggregate-function improvements, including multiple-input
-       aggregates and SQL:2003 statistical functions
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Many <filename>contrib/</filename> improvements
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Migration to Version 8.2</title>
-
-   <para>
-    A dump/restore using <application>pg_dump</application> is
-    required for those wishing to migrate data from any previous
-    release.
-   </para>
-
-   <para>
-    Observe the following incompatibilities:
-   </para>
-
-   <itemizedlist>
-
-     <listitem>
-      <para>
-       Set <link
-       linkend="guc-escape-string-warning"><varname>escape_string_warning</></link>
-       to <literal>on</> by default (Bruce)
-      </para>
-
-      <para>
-       This issues a warning if backslash escapes are used in
-       <link linkend="sql-syntax-strings">non-escape (non-<literal>E''</>)
-       strings</link>.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Change the <link linkend="sql-syntax-row-constructors">row
-       constructor syntax</link> (<literal>ROW(...)</>) so that
-       list elements <literal>foo.*</> will be expanded to a list
-       of their member fields, rather than creating a nested
-       row type field as formerly (Tom)
-      </para>
-
-      <para>
-       The new behavior is substantially more useful since it
-       allows, for example, triggers to check for data changes
-       with <literal>IF row(new.*) IS DISTINCT FROM row(old.*)</>.
-       The old behavior is still available by omitting <literal>.*</>.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Make <link linkend="row-wise-comparison">row comparisons</link>
-       follow <acronym>SQL</> standard semantics and allow them
-       to be used in index scans (Tom)
-      </para>
-
-      <para>
-       Previously, row = and &lt;&gt; comparisons followed the
-       standard but &lt; &lt;= &gt; &gt;= did not.  A row comparison
-       can now be used as an index constraint for a multicolumn
-       index matching the row value.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Make <link linkend="functions-comparison">row <literal>IS <optional>NOT</> NULL</literal></link>
-       tests follow <acronym>SQL</> standard semantics (Tom)
-      </para>
-
-      <para>
-       The former behavior conformed to the standard for simple cases
-       with <literal>IS NULL</>, but <literal>IS NOT NULL</> would return
-       true if any row field was non-null, whereas the standard says it
-       should return true only when all fields are non-null.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Make <link linkend="SQL-SET-CONSTRAINTS"><command>SET
-       CONSTRAINT</></link> affect only one constraint (Kris Jurka)
-      </para>
-
-      <para>
-       In previous releases, <command>SET CONSTRAINT</> modified
-       all constraints with a matching name.  In this release,
-       the schema search path is used to modify only the first
-       matching constraint.  A schema specification is also
-       supported.  This more nearly conforms to the SQL standard.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Remove <literal>RULE</> permission for tables, for security reasons
-       (Tom)
-      </para>
-
-      <para>
-       As of this release, only a table's owner can create or modify
-       rules for the table.  For backwards compatibility,
-       <command>GRANT</>/<command>REVOKE RULE</> is still accepted,
-       but it does nothing.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Array comparison improvements (Tom)
-      </para>
-
-      <para>
-       Now array dimensions are also compared.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Change <link linkend="functions-array">array concatenation</link>
-       to match documented behavior (Tom)
-      </para>
-
-      <para>
-       This changes the previous behavior where concatenation
-       would modify the array lower bound.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Make command-line options of <application>postmaster</>
-       and <link linkend="app-postgres"><application>postgres</></link>
-       identical (Peter)
-      </para>
-
-      <para>
-       This allows the postmaster to pass arguments to each backend
-       without using <literal>-o</>.  Note that some options are now
-       only available as long-form options, because there were conflicting
-       single-letter options.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Deprecate use of <application>postmaster</> symbolic link (Peter)
-      </para>
-
-      <para>
-       <application>postmaster</> and <application>postgres</>
-       commands now act identically, with the behavior determined
-       by command-line options.  The <application>postmaster</> symbolic link is
-       kept for compatibility, but is not really needed.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Change <link
-       linkend="guc-log-duration"><varname>log_duration</></link>
-       to output even if the query is not output (Tom)
-      </para>
-
-      <para>
-       In prior releases, <varname>log_duration</> only printed if
-       the query appeared earlier in the log.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Make <link
-       linkend="functions-formatting"><function>to_char(time)</></link>
-       and <link
-       linkend="functions-formatting"><function>to_char(interval)</></link>
-       treat <literal>HH</> and <literal>HH12</> as 12-hour
-       intervals
-      </para>
-
-      <para>
-       Most applications should use <literal>HH24</> unless they
-       want a 12-hour display.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Zero unmasked bits in conversion from <link
-       linkend="datatype-inet"><type>INET</></link> to <link
-       linkend="datatype-inet"><type>CIDR</></link> (Tom)
-      </para>
-
-      <para>
-       This ensures that the converted value is actually valid for
-       <type>CIDR</>.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Remove <varname>australian_timezones</> configuration variable
-       (Joachim Wieland)
-      </para>
-
-      <para>
-       This variable has been superseded by a more general facility
-       for configuring timezone abbreviations.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Improve cost estimation for nested-loop index scans (Tom)
-      </para>
-
-      <para>
-       This might eliminate the need to set unrealistically small
-       values of <link
-       linkend="guc-random-page-cost"><varname>random_page_cost</></link>.
-       If you have been using a very small <varname>random_page_cost</>,
-       please recheck your test cases.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Change behavior of <command>pg_dump</> <literal>-n</> and
-       <literal>-t</> options.  (Greg Sabino Mullane)
-      </para>
-      <para>
-       See the <command>pg_dump</> manual page for details.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Change <link linkend="libpq"><application>libpq</></link>
-       <function>PQdsplen()</> to return a useful value (Martijn
-       van Oosterhout)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Declare <link linkend="libpq"><application>libpq</></link>
-       <function>PQgetssl()</> as returning <literal>void *</>,
-       rather than <literal>SSL *</> (Martijn van Oosterhout)
-      </para>
-
-      <para>
-       This allows applications to use the function without including
-       the OpenSSL headers.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       C-language loadable modules must now include a
-       <link linkend="xfunc-c-dynload"><literal>PG_MODULE_MAGIC</></link>
-       macro call for version compatibility checking
-       (Martijn van Oosterhout)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       For security's sake, modules used by a PL/PerlU function are no
-       longer available to PL/Perl functions (Andrew)
-      </para>
-      <note>
-       <para>
-        This also implies that data can no longer be shared between a PL/Perl
-        function and a PL/PerlU function.
-        Some Perl installations have not been compiled with the correct flags
-        to allow multiple interpreters to exist within a single process.
-        In this situation PL/Perl and PL/PerlU cannot both be used in a
-        single backend. The solution is to get a Perl installation which
-        supports multiple interpreters.
-       </para>
-      </note>
-     </listitem>
-
-     <listitem>
-      <para>
-       In <filename>contrib/xml2/</>, rename <function>xml_valid()</> to
-       <function>xml_is_well_formed()</> (Tom)
-      </para>
-
-      <para>
-       <function>xml_valid()</> will remain for backward compatibility,
-       but its behavior will change to do schema checking in a future
-       release.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Remove <filename>contrib/ora2pg/</>, now at <ulink
-       url="http://www.samse.fr/GPL/ora2pg"></ulink>
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Remove contrib modules that have been migrated to PgFoundry:
-       <filename>adddepend</>, <filename>dbase</>, <filename>dbmirror</>,
-       <filename>fulltextindex</>, <filename>mac</>, <filename>userlock</>
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Remove abandoned contrib modules:
-       <filename>mSQL-interface</>, <filename>tips</>
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Remove <acronym>QNX</> and <acronym>BEOS</> ports (Bruce)
-      </para>
-
-      <para>
-       These ports no longer had active maintainers.
-      </para>
-     </listitem>
-
-   </itemizedlist>
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <para>
-    Below you will find a detailed account of the
-    changes between <productname>PostgreSQL</productname> 8.2 and
-    the previous major release.
-   </para>
-
-   <sect3>
-    <title>Performance Improvements</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Allow the planner to reorder <link linkend="queries-join">outer
-       joins</link> in some circumstances (Tom)
-      </para>
-
-      <para>
-       In previous releases, outer joins would always be evaluated in
-       the order written in the query. This change allows the
-       query optimizer to consider reordering outer joins, in cases where
-       it can determine that the join order can be changed without
-       altering the meaning of the query.  This can make a
-       considerable performance difference for queries involving
-       multiple outer joins or mixed inner and outer joins.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Improve efficiency of <link
-       linkend="functions-comparisons"><literal>IN</>
-       (list-of-expressions)</link> clauses (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Improve sorting speed and reduce memory usage (Simon, Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Improve subtransaction performance (Alvaro, Itagaki Takahiro,
-       Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <literal>FILLFACTOR</> to <link
-       linkend="SQL-CREATETABLE">table</link> and <link
-       linkend="SQL-CREATEINDEX">index</link> creation (ITAGAKI
-       Takahiro)
-      </para>
-
-      <para>
-       This leaves extra free space in each table or index page,
-       allowing improved performance as the database grows.  This
-       is particularly valuable to maintain clustering.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Increase default values for <link
-       linkend="guc-shared-buffers"><varname>shared_buffers</></link>
-       and <varname>max_fsm_pages</>
-       (Andrew)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Improve locking performance by breaking the lock manager tables into
-       sections
-       (Tom)
-      </para>
-
-      <para>
-       This allows locking to be more fine-grained, reducing
-       contention.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Reduce locking requirements of sequential scans (Qingqing
-       Zhou)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Reduce locking required for database creation and destruction
-       (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Improve the optimizer's selectivity estimates for <link
-       linkend="functions-like"><literal>LIKE</></link>, <link
-       linkend="functions-like"><literal>ILIKE</></link>, and
-       <link linkend="functions-posix-regexp">regular expression</link>
-       operations (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Improve planning of joins to <link linkend="ddl-inherit">inherited
-       tables</link> and <link linkend="queries-union"><literal>UNION
-       ALL</></link> views (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow <link linkend="guc-constraint-exclusion">constraint
-       exclusion</link> to be applied to <link
-       linkend="ddl-inherit">inherited</link> <command>UPDATE</> and
-       <command>DELETE</> queries (Tom)
-      </para>
-
-      <para>
-       <command>SELECT</> already honored constraint exclusion.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Improve planning of constant <literal>WHERE</> clauses, such as
-       a condition that depends only on variables inherited from an
-       outer query level (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Protocol-level unnamed prepared statements are re-planned
-       for each set of <literal>BIND</> values (Tom)
-      </para>
-
-      <para>
-       This improves performance because the exact parameter values
-       can be used in the plan.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Speed up vacuuming of B-Tree indexes (Heikki Linnakangas,
-       Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Avoid extra scan of tables without indexes during <link
-       linkend="SQL-VACUUM"><command>VACUUM</></link> (Greg Stark)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Improve multicolumn <link linkend="GiST"><acronym>GiST</></link>
-       indexing (Oleg, Teodor)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Remove dead index entries before B-Tree page split (Junji
-       Teramoto)
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title>Server Changes</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Allow a forced switch to a new transaction log file (Simon, Tom)
-      </para>
-
-      <para>
-       This is valuable for keeping warm standby slave servers
-       in sync with the master.  Transaction log file switching now also happens
-       automatically during <link
-       linkend="functions-admin"><function>pg_stop_backup()</></link>.
-       This ensures that all
-       transaction log files needed for recovery can be archived immediately.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <acronym>WAL</> informational functions (Simon)
-      </para>
-
-      <para>
-       Add functions for interrogating the current transaction log insertion
-       point and determining <acronym>WAL</> filenames from the
-       hex <acronym>WAL</> locations displayed by <link
-       linkend="functions-admin"><function>pg_stop_backup()</></link>
-       and related functions.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Improve recovery from a crash during <acronym>WAL</> replay (Simon)
-      </para>
-
-      <para>
-       The server now does periodic checkpoints during <acronym>WAL</>
-       recovery, so if there is a crash, future <acronym>WAL</>
-       recovery is shortened.  This also eliminates the need for
-       warm standby servers to replay the entire log since the
-       base backup if they crash.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Improve reliability of long-term <acronym>WAL</> replay
-       (Heikki, Simon, Tom)
-      </para>
-
-      <para>
-       Formerly, trying to roll forward through more than 2 billion
-       transactions would not work due to XID wraparound.  This meant
-       warm standby servers had to be reloaded
-       from fresh base backups periodically.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <link
-       linkend="guc-archive-timeout"><varname>archive_timeout</></link>
-       to force transaction log file switches at a given interval (Simon)
-      </para>
-
-      <para>
-       This enforces a maximum replication delay for warm standby servers.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add native <link linkend="auth-ldap"><acronym>LDAP</></link>
-       authentication (Magnus Hagander)
-      </para>
-
-      <para>
-       This is particularly useful for platforms that do not
-       support <acronym>PAM</>, such as Windows.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <link linkend="sql-grant-description-objects"><literal>GRANT
-       CONNECT ON DATABASE</></link> (Gevik Babakhani)
-      </para>
-
-      <para>
-       This gives SQL-level control over database access.  It works as
-       an additional filter on top of the existing
-       <link linkend="auth-pg-hba-conf"><filename>pg_hba.conf</></link>
-       controls.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add support for <link linkend="ssl-tcp"><acronym>SSL</>
-       Certificate Revocation List</link> (<acronym>CRL</>) files
-       (Libor Hoho&scaron;)
-      </para>
-
-      <para>
-       The server and <application>libpq</> both recognize <acronym>CRL</>
-       files now.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       <link linkend="GiST"><acronym>GiST</></link> indexes are
-       now clusterable (Teodor)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Remove routine autovacuum server log entries (Bruce)
-      </para>
-
-      <para>
-       <link
-       linkend="monitoring-stats-views-table"><literal>pg_stat_activity</></link>
-       now shows autovacuum activity.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Track maximum XID age within individual tables, instead of whole databases (Alvaro)
-      </para>
-
-      <para>
-       This reduces the overhead involved in preventing transaction
-       ID wraparound, by avoiding unnecessary VACUUMs.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add last vacuum and analyze timestamp columns to the stats
-       collector (Larry Rosenman)
-      </para>
-
-      <para>
-       These values now appear in the <link
-       linkend="monitoring-stats-views-table"><literal>pg_stat_*_tables</></link>
-       system views.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Improve performance of statistics monitoring, especially
-       <varname>stats_command_string</>
-       (Tom, Bruce)
-      </para>
-
-      <para>
-       This release enables <varname>stats_command_string</> by
-       default, now that its overhead is minimal.  This means
-       <link
-       linkend="monitoring-stats-views-table"><literal>pg_stat_activity</></link>
-       will now show all active queries by default.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add a <literal>waiting</> column to <link
-       linkend="monitoring-stats-views-table"><literal>pg_stat_activity</></link>
-       (Tom)
-      </para>
-
-      <para>
-       This allows <structname>pg_stat_activity</> to show all the
-       information included in the <application>ps</> display.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add configuration parameter <link
-       linkend="guc-update-process-title"><varname>update_process_title</></link>
-       to control whether the <application>ps</> display is updated
-       for every command (Bruce)
-      </para>
-
-      <para>
-       On platforms where it is expensive to update the <application>ps</>
-       display, it might be worthwhile to turn this off and rely solely on
-       <structname>pg_stat_activity</> for status information.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow units to be specified in configuration settings
-       (Peter)
-      </para>
-
-      <para>
-       For example, you can now set <link
-       linkend="guc-shared-buffers"><varname>shared_buffers</></link>
-       to <literal>32MB</> rather than mentally converting sizes.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add support for <link linkend="config-setting">include
-       directives</link> in <filename>postgresql.conf</> (Joachim
-       Wieland)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Improve logging of protocol-level prepare/bind/execute
-       messages (Bruce, Tom)
-      </para>
-
-      <para>
-       Such logging now shows statement names, bind parameter
-       values, and the text of the query being executed.  Also,
-       the query text is properly included in logged error messages
-       when enabled by <varname>log_min_error_statement</>.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Prevent <link
-       linkend="guc-max-stack-depth"><varname>max_stack_depth</></link>
-       from being set to unsafe values
-      </para>
-
-      <para>
-       On platforms where we can determine the actual kernel stack depth
-       limit (which is most), make sure that the initial default value of
-       <varname>max_stack_depth</> is safe, and reject attempts to set it
-       to unsafely large values.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Enable highlighting of error location in query in more
-       cases (Tom)
-      </para>
-
-      <para>
-       The server is now able to report a specific error location for
-       some semantic errors (such as unrecognized column name), rather
-       than just for basic syntax errors as before.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Fix <quote>failed to re-find parent key</> errors in
-       <command>VACUUM</> (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Clean out <filename>pg_internal.init</> cache files during server
-       restart (Simon)
-      </para>
-
-      <para>
-       This avoids a hazard that the cache files might contain stale
-       data after PITR recovery.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Fix race condition for truncation of a large relation across a
-       gigabyte boundary by <command>VACUUM</> (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Fix bug causing needless deadlock errors on row-level locks (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Fix bugs affecting multi-gigabyte hash indexes (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Each backend process is now its own process group leader (Tom)
-      </para>
-
-      <para>
-       This allows query cancel to abort subprocesses invoked from a
-       backend or archive/recovery process.
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title>Query Changes</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Add <link linkend="SQL-INSERT"><command>INSERT</></link>/<link
-       linkend="SQL-UPDATE"><command>UPDATE</></link>/<link
-       linkend="SQL-DELETE"><command>DELETE</></link>
-       <literal>RETURNING</> (Jonah Harris, Tom)
-      </para>
-
-      <para>
-       This allows these commands to return values, such as the
-       computed serial key for a new row.  In the <command>UPDATE</>
-       case, values from the updated version of the row are returned.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add support for multiple-row <link
-       linkend="queries-values"><literal>VALUES</></link> clauses,
-       per SQL standard (Joe, Tom)
-      </para>
-
-      <para>
-       This allows <command>INSERT</> to insert multiple rows of
-       constants, or queries to generate result sets using constants.
-       For example, <literal>INSERT ...  VALUES (...), (...),
-       ....</>, and <literal>SELECT * FROM (VALUES (...), (...),
-       ....) AS alias(f1, ...)</>.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow <link linkend="SQL-UPDATE"><command>UPDATE</></link>
-       and <link linkend="SQL-DELETE"><command>DELETE</></link>
-       to use an alias for the target table (Atsushi Ogawa)
-      </para>
-
-      <para>
-       The SQL standard does not permit an alias in these commands, but
-       many database systems allow one anyway for notational convenience.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow <link linkend="SQL-UPDATE"><command>UPDATE</></link>
-       to set multiple columns with a list of values (Susanne
-       Ebrecht)
-      </para>
-
-      <para>
-       This is basically a short-hand for assigning the columns
-       and values in pairs.  The syntax is <literal>UPDATE tab
-       SET (<replaceable>column</>, ...) = (<replaceable>val</>, ...)</>.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Make row comparisons work per standard (Tom)
-      </para>
-
-      <para>
-       The forms &lt;, &lt;=, &gt;, &gt;= now compare rows lexicographically,
-       that is, compare the first elements, if equal compare the second
-       elements, and so on.  Formerly they expanded to an AND condition
-       across all the elements, which was neither standard nor very useful.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <link linkend="SQL-TRUNCATE"><literal>CASCADE</></link>
-       option to <command>TRUNCATE</> (Joachim Wieland)
-      </para>
-
-      <para>
-       This causes <command>TRUNCATE</> to automatically include all tables
-       that reference the specified table(s) via foreign keys.  While
-       convenient, this is a dangerous tool &mdash; use with caution!
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Support <literal>FOR UPDATE</> and <literal>FOR SHARE</>
-       in the same <link linkend="SQL-INSERT"><literal>SELECT</></link>
-       command (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <link linkend="functions-comparisons"><literal>IS NOT
-       DISTINCT FROM</></link> (Pavel Stehule)
-      </para>
-
-      <para>
-       This operator is similar to equality (<literal>=</>), but
-       evaluates to true when both left and right operands are
-       <literal>NULL</>, and to false when just one is, rather than
-       yielding <literal>NULL</> in these cases.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Improve the length output used by <link
-       linkend="queries-union"><literal>UNION</></link>/<literal>INTERSECT</>/<literal>EXCEPT</>
-       (Tom)
-      </para>
-
-      <para>
-       When all corresponding columns are of the same defined length, that
-       length is used for the result, rather than a generic length.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow <link linkend="functions-like"><literal>ILIKE</></link>
-       to work for multi-byte encodings (Tom)
-      </para>
-
-      <para>
-       Internally, <literal>ILIKE</> now calls <function>lower()</>
-       and then uses <literal>LIKE</>.  Locale-specific regular
-       expression patterns still do not work in these encodings.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Enable <link
-       linkend="guc-standard-conforming-strings"><varname>standard_conforming_strings</></link>
-       to be turned <literal>on</> (Kevin Grittner)
-      </para>
-
-      <para>
-       This allows backslash escaping in strings to be disabled,
-       making <productname>PostgreSQL</> more
-       standards-compliant.  The default is <literal>off</> for backwards
-       compatibility, but future releases will default this to <literal>on</>.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Do not flatten subqueries that contain <literal>volatile</>
-       functions in their target lists (Jaime Casanova)
-      </para>
-
-      <para>
-       This prevents surprising behavior due to multiple evaluation
-       of a <literal>volatile</> function (such as <function>random()</>
-       or <function>nextval()</>).  It might cause performance
-       degradation in the presence of functions that are unnecessarily
-       marked as <literal>volatile</>.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add system views <link
-       linkend="view-pg-prepared-statements"><literal>pg_prepared_statements</></link>
-       and <link
-       linkend="view-pg-cursors"><literal>pg_cursors</></link>
-       to show prepared statements and open cursors (Joachim Wieland, Neil)
-      </para>
-
-      <para>
-       These are very useful in pooled connection setups.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Support portal parameters in <link
-       linkend="SQL-EXPLAIN"><command>EXPLAIN</></link> and <link
-       linkend="SQL-EXECUTE"><command>EXECUTE</></link> (Tom)
-      </para>
-
-      <para>
-       This allows, for example, <acronym>JDBC</> <literal>?</> parameters to
-       work in these commands.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       If <acronym>SQL</>-level <link
-       linkend="SQL-PREPARE"><command>PREPARE</></link> parameters
-       are unspecified, infer their types from the content of the
-       query (Neil)
-      </para>
-
-      <para>
-       Protocol-level <command>PREPARE</> already did this.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow <literal>LIMIT</> and <literal>OFFSET</> to exceed
-       two billion (Dhanaraj M)
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title>Object Manipulation Changes</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Add <literal>TABLESPACE</> clause to <link
-       linkend="SQL-CREATETABLEAS"><command>CREATE TABLE AS</></link>
-       (Neil)
-      </para>
-
-      <para>
-       This allows a tablespace to be specified for the new table.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <literal>ON COMMIT</> clause to <link
-       linkend="SQL-CREATETABLEAS"><command>CREATE TABLE AS</></link>
-       (Neil)
-      </para>
-
-      <para>
-       This allows temporary tables to be truncated or dropped on
-       transaction commit.  The default behavior is for the table
-       to remain until the session ends.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <literal>INCLUDING CONSTRAINTS</> to <link
-       linkend="SQL-CREATETABLE"><command>CREATE TABLE LIKE</></link>
-       (Greg Stark)
-      </para>
-
-      <para>
-       This allows easy copying of <literal>CHECK</> constraints to a new
-       table.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow the creation of placeholder (shell) <link
-       linkend="SQL-CREATETYPE">types</link> (Martijn van Oosterhout)
-      </para>
-
-      <para>
-       A shell type declaration creates a type name, without specifying
-       any of the details of the type.  Making a shell type is useful
-       because it allows cleaner declaration of the type's input/output
-       functions, which must exist before the type can be defined <quote>for
-       real</>.  The syntax is <command>CREATE TYPE <replaceable
-       class="parameter">typename</replaceable></>.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       <link linkend="SQL-CREATEAGGREGATE">Aggregate functions</link>
-       now support multiple input parameters (Sergey Koposov, Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add new aggregate creation <link
-       linkend="SQL-CREATEAGGREGATE">syntax</link> (Tom)
-      </para>
-
-      <para>
-       The new syntax is <command>CREATE AGGREGATE
-       <replaceable>aggname</> (<replaceable>input_type</>)
-       (<replaceable>parameter_list</>)</command>.  This more
-       naturally supports the new multi-parameter aggregate
-       functionality.  The previous syntax is still supported.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <link
-       linkend="SQL-ALTERROLE"><command>ALTER ROLE PASSWORD NULL</></link>
-       to remove a previously set role password (Peter)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <command>DROP</> object <literal>IF EXISTS</> for many
-       object types (Andrew)
-      </para>
-
-      <para>
-       This allows <command>DROP</> operations on non-existent
-       objects without generating an error.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <link linkend="SQL-DROP-OWNED"><literal>DROP OWNED</></link>
-       to drop all objects owned by a role (Alvaro)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <link linkend="SQL-REASSIGN-OWNED"><literal>REASSIGN
-       OWNED</></link> to reassign ownership of all objects owned
-       by a role (Alvaro)
-      </para>
-
-      <para>
-       This, and <literal>DROP OWNED</> above, facilitate dropping
-       roles.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <link linkend="SQL-GRANT"><command>GRANT ON SEQUENCE</></link>
-       syntax (Bruce)
-      </para>
-
-      <para>
-       This was added for setting sequence-specific permissions.
-       <literal>GRANT ON TABLE</> for sequences is still supported
-       for backward compatibility.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <link linkend="SQL-GRANT"><literal>USAGE</></link>
-       permission for sequences that allows only <function>currval()</>
-       and <function>nextval()</>, not <function>setval()</>
-       (Bruce)
-      </para>
-
-      <para>
-       <literal>USAGE</> permission allows more fine-grained
-       control over sequence access.  Granting <literal>USAGE</>
-       allows users to increment
-       a sequence, but prevents them from setting the sequence to
-       an arbitrary value using <function>setval()</>.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <link linkend="SQL-ALTERTABLE"><literal>ALTER TABLE
-       [ NO ] INHERIT</></link> (Greg Stark)
-      </para>
-
-      <para>
-       This allows inheritance to be adjusted dynamically, rather than
-       just at table creation and destruction.  This is very valuable
-       when using inheritance to implement table partitioning.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow <link linkend="SQL-COMMENT">comments</link> on global
-       objects to be stored globally (Kris Jurka)
-      </para>
-
-      <para>
-       Previously, comments attached to databases were stored in individual
-       databases, making them ineffective, and there was no provision
-       at all for comments on roles or tablespaces.  This change adds a new
-       shared catalog <link
-       linkend="catalog-pg-shdescription"><structname>pg_shdescription</structname></link>
-       and stores comments on databases, roles, and tablespaces therein.
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title>Utility Command Changes</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Add option to allow indexes to be created without blocking
-       concurrent writes to the table (Greg Stark, Tom)
-      </para>
-
-      <para>
-       The new syntax is <link linkend="SQL-CREATEINDEX"><command>CREATE
-       INDEX CONCURRENTLY</></link>.  The default behavior is
-       still to block table modification while an index is being
-       created.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Provide <link linkend="functions-advisory-locks">advisory
-       locking</link> functionality (Abhijit Menon-Sen, Tom)
-      </para>
-
-      <para>
-       This is a new locking API designed to replace what used to be
-       in /contrib/userlock.  The userlock code is now on pgfoundry.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow <link linkend="SQL-COPY"><command>COPY</></link> to
-       dump a <command>SELECT</> query (Zoltan Boszormenyi, Karel
-       Zak)
-      </para>
-
-      <para>
-       This allows <command>COPY</> to dump arbitrary <acronym>SQL</>
-       queries. The syntax is <literal>COPY (SELECT ...) TO</>.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Make the <link linkend="SQL-COPY"><command>COPY</></link>
-       command return a command tag that includes the number of
-       rows copied (Volkan YAZICI)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow <link linkend="SQL-VACUUM"><command>VACUUM</></link>
-       to expire rows without being affected by other concurrent
-       <command>VACUUM</> operations (Hannu Krossing, Alvaro, Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Make <link linkend="APP-INITDB"><application>initdb</></link>
-       detect the operating system locale and set the default
-       <varname>DateStyle</> accordingly (Peter)
-      </para>
-
-      <para>
-       This makes it more likely that the installed
-       <filename>postgresql.conf</> <varname>DateStyle</> value will
-       be as desired.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Reduce number of progress messages displayed by <application>initdb</> (Tom)
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title>Date/Time Changes</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Allow full timezone names in <link
-       linkend="datatype-datetime"><type>timestamp</></link> input values
-       (Joachim Wieland)
-      </para>
-
-      <para>
-       For example, <literal>'2006-05-24 21:11
-       America/New_York'::timestamptz</>.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Support configurable timezone abbreviations (Joachim Wieland)
-      </para>
-
-      <para>
-       A desired set of timezone abbreviations can be chosen via the
-       configuration parameter <link
-       linkend="guc-timezone-abbreviations"><varname>timezone_abbreviations</></link>.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <link
-       linkend="view-pg-timezone-abbrevs"><varname>pg_timezone_abbrevs</></link>
-       and <link
-       linkend="view-pg-timezone-names"><varname>pg_timezone_names</></link>
-       views to show supported timezones (Magnus Hagander)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <link
-       linkend="functions-datetime-table"><function>clock_timestamp()</></link>,
-       <link
-       linkend="functions-datetime-table"><function>statement_timestamp()</></link>,
-       and <link
-       linkend="functions-datetime-table"><function>transaction_timestamp()</></link>
-       (Bruce)
-      </para>
-
-      <para>
-       <function>clock_timestamp()</> is the current wall-clock time,
-       <function>statement_timestamp()</> is the time the current
-       statement arrived at the server, and
-       <function>transaction_timestamp()</> is an alias for
-       <function>now()</>.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow <link
-       linkend="functions-formatting"><function>to_char()</></link>
-       to print localized month and day names (Euler Taveira de
-       Oliveira)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow <link
-       linkend="functions-formatting"><function>to_char(time)</></link>
-       and <link
-       linkend="functions-formatting"><function>to_char(interval)</></link>
-       to output <acronym>AM</>/<acronym>PM</> specifications
-       (Bruce)
-      </para>
-
-      <para>
-       Intervals and times are treated as 24-hour periods, e.g.
-       <literal>25 hours</> is considered <acronym>AM</>.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add new function <link
-       linkend="functions-datetime-table"><function>justify_interval()</></link>
-       to adjust interval units (Mark Dilger)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow timezone offsets up to 14:59 away from GMT
-      </para>
-
-      <para>
-       Kiribati uses GMT+14, so we'd better accept that.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Interval computation improvements (Michael Glaesemann, Bruce)
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title>Other Data Type and Function Changes</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Allow arrays to contain <literal>NULL</> elements (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow assignment to array elements not contiguous with the existing
-       entries (Tom)
-      </para>
-
-      <para>
-       The intervening array positions will be filled with nulls.
-       This is per SQL standard.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       New built-in <link linkend="functions-array">operators</link>
-       for array-subset comparisons (<literal>@&gt;</>,
-       <literal>&lt;@</>, <literal>&amp;&amp;</>) (Teodor, Tom)
-      </para>
-
-      <para>
-       These operators can be indexed for many data types using
-       <acronym>GiST</> or <acronym>GIN</> indexes.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add convenient arithmetic <link
-       linkend="cidr-inet-operators-table">operations</link> on
-       <type>INET</>/<type>CIDR</> values (Stephen R. van den
-       Berg)
-      </para>
-
-      <para>
-       The new operators are <literal>&amp;</> (and), <literal>|</>
-       (or), <literal>~</> (not), <type>inet</> <literal>+</> <type>int8</>,
-       <type>inet</> <literal>-</> <type>int8</>, and
-       <type>inet</> <literal>-</> <type>inet</>.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add new <link
-       linkend="functions-aggregate-statistics-table">aggregate functions</link>
-       from SQL:2003 (Neil)
-      </para>
-
-      <para>
-       The new functions are <function>var_pop()</>,
-       <function>var_samp()</>, <function>stddev_pop()</>, and
-       <function>stddev_samp()</>.  <function>var_samp()</> and
-       <function>stddev_samp()</> are merely renamings of the
-       existing aggregates <function>variance()</> and
-       <function>stddev()</>.  The latter names remain available
-       for backward compatibility.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add SQL:2003 statistical <link
-       linkend="functions-aggregate-statistics-table">aggregates</link>
-       (Sergey Koposov)
-      </para>
-
-      <para>
-       New functions:  <function>regr_intercept()</>,
-       <function>regr_slope()</>, <function>regr_r2()</>,
-       <function>corr()</>, <function>covar_samp()</>,
-       <function>covar_pop()</>, <function>regr_avgx()</>,
-       <function>regr_avgy()</>, <function>regr_sxy()</>,
-       <function>regr_sxx()</>, <function>regr_syy()</>,
-       <function>regr_count()</>.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow <link linkend="SQL-CREATEDOMAIN">domains</link> to be
-       based on other domains (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Properly enforce domain <link
-       linkend="ddl-constraints"><literal>CHECK</></link> constraints
-       everywhere (Neil, Tom)
-      </para>
-
-      <para>
-       For example, the result of a user-defined function that is
-       declared to return a domain type is now checked against the
-       domain's constraints. This closes a significant hole in the domain
-       implementation.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Fix problems with dumping renamed <link
-       linkend="datatype-serial"><type>SERIAL</></link> columns
-       (Tom)
-      </para>
-
-      <para>
-       The fix is to dump a <type>SERIAL</> column by explicitly
-       specifying its <literal>DEFAULT</> and sequence elements,
-       and reconstructing the <type>SERIAL</> column on reload
-       using a new <link linkend="SQL-ALTERSEQUENCE"><command>ALTER
-       SEQUENCE OWNED BY</></link> command.  This also allows
-       dropping a <type>SERIAL</> column specification.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add a server-side sleep function <link
-       linkend="functions-datetime-delay"><function>pg_sleep()</></link>
-       (Joachim Wieland)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add all comparison operators for the <link
-       linkend="datatype-oid"><type>tid</></link> (tuple id) data
-       type (Mark Kirkwood, Greg Stark, Tom)
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title>PL/pgSQL Server-Side Language Changes</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Add <literal>TG_table_name</> and <literal>TG_table_schema</> to
-       trigger parameters (Andrew)
-      </para>
-
-      <para>
-       <literal>TG_relname</> is now deprecated.  Comparable
-       changes have been made in the trigger parameters for the other
-       PLs as well.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow <literal>FOR</> statements to return values to scalars
-       as well as records and row types (Pavel Stehule)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add a <literal>BY</> clause to the <literal>FOR</> loop,
-       to control the iteration increment (Jaime Casanova)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <literal>STRICT</> to <link
-       linkend="plpgsql-statements-sql-onerow"><command>SELECT
-       INTO</></link> (Matt Miller)
-      </para>
-
-      <para>
-       <literal>STRICT</> mode throws an exception if more or less
-       than one row is returned by the <command>SELECT</>, for
-       <productname>Oracle PL/SQL</> compatibility.
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title>PL/Perl Server-Side Language Changes</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Add <literal>table_name</> and <literal>table_schema</> to
-       trigger parameters (Adam Sj&oslash;gren)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add prepared queries (Dmitry Karasik)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Make <literal>$_TD</> trigger data a global variable (Andrew)
-      </para>
-
-      <para>
-       Previously, it was lexical, which caused unexpected sharing
-       violations.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Run PL/Perl and PL/PerlU in separate interpreters, for security
-       reasons (Andrew)
-      </para>
-      <para>
-       In consequence, they can no longer share data nor loaded modules.
-       Also, if Perl has not been compiled with the requisite flags to
-       allow multiple interpreters, only one of these languages can be used
-       in any given backend process.
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title>PL/Python Server-Side Language Changes</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Named parameters are passed as ordinary variables, as well as in the
-       <literal>args[]</> array (Sven Suursoho)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <literal>table_name</> and <literal>table_schema</> to
-       trigger parameters (Andrew)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow returning of composite types and result sets (Sven Suursoho)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Return result-set as <literal>list</>, <literal>iterator</>,
-       or <literal>generator </>(Sven Suursoho)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow functions to return <literal>void</> (Neil)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Python 2.5 is now supported (Tom)
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title><link linkend="APP-PSQL"><application>psql</></link> Changes</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Add new command <literal>\password</> for changing role
-       password with client-side password encryption (Peter)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow <literal>\c</> to connect to a new host and port
-       number (David, Volkan YAZICI)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add tablespace display to <literal>\l+</> (Philip Yarra)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Improve <literal>\df</> slash command to include the argument
-       names and modes (<literal>OUT</> or <literal>INOUT</>) of
-       the function (David Fetter)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Support binary <command>COPY</> (Andreas Pflug)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add option to run the entire session in a single transaction
-       (Simon)
-      </para>
-
-      <para>
-       Use option <literal>-1</> or <literal>--single-transaction</>.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Support for automatically retrieving <command>SELECT</>
-       results in batches using a cursor (Chris Mair)
-      </para>
-
-      <para>
-       This is enabled using <command>\set FETCH_COUNT
-       <replaceable>n</></command>. This
-       feature allows large result sets to be retrieved in
-       <application>psql</> without attempting to buffer the entire
-       result set in memory.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Make multi-line values align in the proper column
-       (Martijn van Oosterhout)
-      </para>
-
-      <para>
-       Field values containing newlines are now displayed in a more
-       readable fashion.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Save multi-line statements as a single entry, rather than
-       one line at a time (Sergey E. Koposov)
-      </para>
-
-      <para>
-       This makes up-arrow recall of queries easier.  (This is
-       not available on Windows, because that platform uses the native
-       command-line editing present in the operating system.)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Make the line counter 64-bit so it can handle files with more
-       than two billion lines (David Fetter)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Report both the returned data and the command status tag
-       for <command>INSERT</>/<command>UPDATE</>/<command>DELETE
-       RETURNING</> (Tom)
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title><link linkend="APP-PGDUMP"><application>pg_dump</></link> Changes</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Allow complex selection of objects to be included or excluded
-       by <application>pg_dump</> (Greg Sabino Mullane)
-      </para>
-
-      <para>
-       <application>pg_dump</> now supports multiple <literal>-n</>
-       (schema) and <literal>-t</> (table) options, and adds
-       <literal>-N</> and <literal>-T</> options to exclude objects.
-       Also, the arguments of these switches can now be wild-card expressions
-       rather than single object names, for example
-       <literal>-t 'foo*'</>, and a schema can be part of
-       a <literal>-t</> or <literal>-T</> switch, for example
-       <literal>-t schema1.table1</>.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <link linkend="APP-PGRESTORE"><application>pg_restore</></link>
-       <literal>--no-data-for-failed-tables</> option to suppress
-       loading data if table creation failed (i.e., the table already
-       exists) (Martin Pitt)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <link linkend="APP-PGRESTORE"><application>pg_restore</></link>
-       option to run the entire session in a single transaction
-       (Simon)
-      </para>
-
-      <para>
-       Use option <literal>-1</> or <literal>--single-transaction</>.
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title><link linkend="libpq"><application>libpq</></link> Changes</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Add <link
-       linkend="libpq-misc"><function>PQencryptPassword()</></link>
-       to encrypt passwords (Tom)
-      </para>
-
-      <para>
-       This allows passwords to be sent pre-encrypted for commands
-       like <link linkend="SQL-ALTERROLE"><command>ALTER ROLE ...
-       PASSWORD</></link>.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add function <link
-       linkend="libpq-threading"><function>PQisthreadsafe()</></link>
-       (Bruce)
-      </para>
-
-      <para>
-       This allows applications to query the thread-safety status
-       of the library.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <link
-       linkend="libpq-exec-main"><function>PQdescribePrepared()</></link>,
-       <link
-       linkend="libpq-exec-main"><function>PQdescribePortal()</></link>,
-       and related functions to return information about previously
-       prepared statements and open cursors (Volkan YAZICI)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow <link linkend="libpq-ldap"><acronym>LDAP</></link> lookups
-       from <link
-       linkend="libpq-pgservice"><filename>pg_service.conf</></link>
-       (Laurenz Albe)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow a hostname in <link
-       linkend="libpq-pgpass"><filename>~/.pgpass</></link>
-       to match the default socket directory (Bruce)
-      </para>
-
-      <para>
-       A blank hostname continues to match any Unix-socket connection,
-       but this addition allows entries that are specific to one of
-       several postmasters on the machine.
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title><link linkend="ecpg"><application>ecpg</></link> Changes</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Allow <link linkend="SQL-SHOW"><command>SHOW</></link> to
-       put its result into a variable (Joachim Wieland)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <link linkend="SQL-COPY"><command>COPY TO STDOUT</></link>
-       (Joachim Wieland)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add regression tests (Joachim Wieland, Michael)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Major source code cleanups (Joachim Wieland, Michael)
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title><application>Windows</> Port</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Allow <acronym>MSVC</> to compile the <productname>PostgreSQL</>
-       server (Magnus, Hiroshi Saito)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <acronym>MSVC</> support for utility commands and <link
-       linkend="APP-PGDUMP"><application>pg_dump</></link> (Hiroshi
-       Saito)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add support for Windows code pages <literal>1253</>,
-       <literal>1254</>, <literal>1255</>, and <literal>1257</>
-       (Kris Jurka)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Drop privileges on startup, so that the server can be started from
-       an administrative account (Magnus)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Stability fixes (Qingqing Zhou, Magnus)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add native semaphore implementation (Qingqing Zhou)
-      </para>
-
-      <para>
-       The previous code mimicked SysV semaphores.
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title>Source Code Changes</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Add <link linkend="GIN"><acronym>GIN</></link> (Generalized
-       Inverted iNdex) index access method (Teodor, Oleg)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Remove R-tree indexing (Tom)
-      </para>
-
-      <para>
-       Rtree has been re-implemented using <link
-       linkend="GiST"><acronym>GiST</></link>. Among other
-       differences, this means that rtree indexes now have support
-       for crash recovery via write-ahead logging (WAL).
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Reduce libraries needlessly linked into the backend (Martijn
-       van Oosterhout, Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add a configure flag to allow libedit to be preferred over
-       <acronym>GNU</> readline (Bruce)
-      </para>
-
-      <para>
-       Use configure <link
-       linkend="configure"><literal>--with-libedit-preferred</></link>.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow installation into directories containing spaces
-       (Peter)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Improve ability to relocate installation directories (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add support for <productname>Solaris x86_64</> using the
-       <productname>Solaris</> compiler (Pierre Girard, Theo
-       Schlossnagle, Bruce)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <application>DTrace</> support (Robert Lor)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <literal>PG_VERSION_NUM</> for use by third-party
-       applications wanting to test the backend version in C using &gt;
-       and &lt; comparisons (Bruce)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <literal>XLOG_BLCKSZ</> as independent from <literal>BLCKSZ</>
-       (Mark Wong)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <literal>LWLOCK_STATS</> define to report locking
-       activity (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Emit warnings for unknown <application>configure</> options
-       (Martijn van Oosterhout)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add server support for <quote>plugin</> libraries
-       that can be used for add-on tasks such as debugging and performance
-       measurement (Korry Douglas)
-      </para>
-
-      <para>
-       This consists of two features: a table of <quote>rendezvous
-       variables</> that allows separately-loaded shared libraries to
-       communicate, and a new configuration parameter <link
-       linkend="guc-local-preload-libraries"><varname>local_preload_libraries</></link>
-       that allows libraries to be loaded into specific sessions without
-       explicit cooperation from the client application.  This allows
-       external add-ons to implement features such as a PL/pgSQL debugger.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Rename existing configuration parameter
-       <varname>preload_libraries</> to <link
-       linkend="guc-shared-preload-libraries"><varname>shared_preload_libraries</></link>
-       (Tom)
-      </para>
-
-      <para>
-       This was done for clarity in comparison to
-       <varname>local_preload_libraries</>.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add new configuration parameter <link
-       linkend="guc-server-version-num"><varname>server_version_num</></link>
-       (Greg Sabino Mullane)
-      </para>
-
-      <para>
-       This is like <varname>server_version</varname>, but is an
-       integer, e.g.  <literal>80200</>. This allows applications to
-       make version checks more easily.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add a configuration parameter <link
-       linkend="guc-seq-page-cost"><varname>seq_page_cost</></link>
-       (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Re-implement the <link linkend="regress">regression test</link> script as a C program
-       (Magnus, Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow loadable modules to allocate shared memory and
-       lightweight locks (Marc Munro)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add automatic initialization and finalization of dynamically
-       loaded libraries (Ralf Engelschall, Tom)
-      </para>
-
-      <para>
-       New <link linkend="xfunc-c-dynload">functions</link>
-       <function>_PG_init()</> and <function>_PG_fini()</> are
-       called if the library defines such symbols.  Hence we no
-       longer need to specify an initialization function in
-       <varname>shared_preload_libraries</>; we can assume that
-       the library used the <function>_PG_init()</> convention
-       instead.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <link
-       linkend="xfunc-c-dynload"><literal>PG_MODULE_MAGIC</></link>
-       header block to all shared object files (Martijn van
-       Oosterhout)
-      </para>
-
-      <para>
-       The magic block prevents version mismatches between loadable object
-       files and servers.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-        Add shared library support for AIX (Laurenz Albe)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       New <link linkend="datatype-xml"><acronym>XML</></link>
-       documentation section (Bruce)
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title>Contrib Changes</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Major tsearch2 improvements (Oleg, Teodor)
-      </para>
-
-      <itemizedlist>
-
-       <listitem>
-        <para>
-         multibyte encoding support, including <acronym>UTF8</>
-        </para>
-       </listitem>
-       <listitem>
-        <para>
-         query rewriting support
-        </para>
-       </listitem>
-       <listitem>
-        <para>
-         improved ranking functions
-        </para>
-       </listitem>
-       <listitem>
-        <para>
-         thesaurus dictionary support
-        </para>
-       </listitem>
-       <listitem>
-        <para>
-         Ispell dictionaries now recognize <application>MySpell</>
-         format, used by <application>OpenOffice</>
-        </para>
-       </listitem>
-       <listitem>
-        <para>
-         <acronym>GIN</> support
-        </para>
-       </listitem>
-
-      </itemizedlist>
-
-     </listitem>
-
-     <listitem>
-      <para>
-       Add adminpack module containing <application>Pgadmin</> administration
-       functions (Dave)
-      </para>
-
-      <para>
-       These functions provide additional file system access
-       routines not present in the default <productname>PostgreSQL</>
-       server.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add sslinfo module (Victor Wagner)
-      </para>
-
-      <para>
-       Reports information about the current connection's <acronym>SSL</>
-       certificate.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add pgrowlocks module (Tatsuo)
-      </para>
-
-      <para>
-       This shows row locking information for a specified table.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add hstore module (Oleg, Teodor)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add isn module, replacing isbn_issn (Jeremy Kronuz)
-      </para>
-
-      <para>
-       This new implementation supports <acronym>EAN13</>, <acronym>UPC</>,
-       <acronym>ISBN</> (books), <acronym>ISMN</> (music), and
-       <acronym>ISSN</> (serials).
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add index information functions to pgstattuple (ITAGAKI Takahiro,
-       Satoshi Nagayasu)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add pg_freespacemap module to display free space map information
-       (Mark Kirkwood)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       pgcrypto now has all planned functionality (Marko Kreen)
-      </para>
-      <itemizedlist>
-       <listitem>
-        <para>
-         Include iMath library in pgcrypto to have the public-key encryption
-         functions always available.
-        </para>
-       </listitem>
-       <listitem>
-        <para>
-         Add SHA224 algorithm that was missing in OpenBSD code.
-        </para>
-       </listitem>
-       <listitem>
-        <para>
-         Activate builtin code for SHA224/256/384/512 hashes on older
-         OpenSSL to have those algorithms always available.
-        </para>
-       </listitem>
-       <listitem>
-        <para>
-         New function gen_random_bytes() that returns cryptographically strong
-         randomness.  Useful for generating encryption keys.
-        </para>
-       </listitem>
-       <listitem>
-        <para>
-         Remove digest_exists(), hmac_exists() and cipher_exists() functions.
-        </para>
-       </listitem>
-      </itemizedlist>
-     </listitem>
-
-     <listitem>
-      <para>
-       Improvements to cube module (Joshua Reich)
-      </para>
-
-      <para>
-       New functions are <function>cube(float[])</>,
-       <function>cube(float[], float[])</>, and
-       <function>cube_subset(cube, int4[])</>.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add async query capability to dblink (Kai Londenberg,
-       Joe Conway)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       New operators for array-subset comparisons (<literal>@&gt;</>,
-       <literal>&lt;@</>, <literal>&amp;&amp;</>) (Tom)
-      </para>
-
-      <para>
-       Various contrib packages already had these operators for their
-       datatypes, but the naming wasn't consistent.  We have now added
-       consistently named array-subset comparison operators to the core code
-       and all the contrib packages that have such functionality.
-       (The old names remain available, but are deprecated.)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add uninstall scripts for all contrib packages that have install
-       scripts (David, Josh Drake)
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-  </sect2>
- </sect1>
diff --git a/doc/src/sgml/release-8.3.sgml b/doc/src/sgml/release-8.3.sgml
deleted file mode 100644
index 5993de4b6b24a385646669e820e8cbc7c239c36b..0000000000000000000000000000000000000000
--- a/doc/src/sgml/release-8.3.sgml
+++ /dev/null
@@ -1,8549 +0,0 @@
-<!-- doc/src/sgml/release-8.3.sgml -->
-<!-- See header comment in release.sgml about typical markup -->
-
- <sect1 id="release-8-3-23">
-  <title>Release 8.3.23</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2013-02-07</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.3.22.
-   For information about new features in the 8.3 major release, see
-   <xref linkend="release-8-3">.
-  </para>
-
-  <para>
-   This is expected to be the last <productname>PostgreSQL</> release
-   in the 8.3.X series.  Users are encouraged to update to a newer
-   release branch soon.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.3.23</title>
-
-   <para>
-    A dump/restore is not required for those running 8.3.X.
-   </para>
-
-   <para>
-    However, if you are upgrading from a version earlier than 8.3.17,
-    see <xref linkend="release-8-3-17">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Prevent execution of <function>enum_recv</> from SQL (Tom Lane)
-     </para>
-
-     <para>
-      The function was misdeclared, allowing a simple SQL command to crash the
-      server.  In principle an attacker might be able to use it to examine the
-      contents of server memory.  Our thanks to Sumit Soni (via Secunia SVCRP)
-      for reporting this issue.  (CVE-2013-0255)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix SQL grammar to allow subscripting or field selection from a
-      sub-SELECT result (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Protect against race conditions when scanning
-      <structname>pg_tablespace</> (Stephen Frost, Tom Lane)
-     </para>
-
-     <para>
-      <command>CREATE DATABASE</> and <command>DROP DATABASE</> could
-      misbehave if there were concurrent updates of
-      <structname>pg_tablespace</> entries.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent <command>DROP OWNED</> from trying to drop whole databases or
-      tablespaces (&Aacute;lvaro Herrera)
-     </para>
-
-     <para>
-      For safety, ownership of these objects must be reassigned, not dropped.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent misbehavior when a <symbol>RowExpr</> or <symbol>XmlExpr</>
-      is parse-analyzed twice (Andres Freund, Tom Lane)
-     </para>
-
-     <para>
-      This mistake could be user-visible in contexts such as
-      <literal>CREATE TABLE LIKE INCLUDING INDEXES</>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve defenses against integer overflow in hashtable sizing
-      calculations (Jeff Davis)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure that non-ASCII prompt strings are translated to the correct
-      code page on Windows (Alexander Law, Noah Misch)
-     </para>
-
-     <para>
-      This bug affected <application>psql</> and some other client programs.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible crash in <application>psql</>'s <command>\?</> command
-      when not connected to a database (Meng Qingzhong)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix one-byte buffer overrun in <application>libpq</>'s
-      <function>PQprintTuples</> (Xi Wang)
-     </para>
-
-     <para>
-      This ancient function is not used anywhere by
-      <productname>PostgreSQL</> itself, but it might still be used by some
-      client code.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Rearrange configure's tests for supplied functions so it is not
-      fooled by bogus exports from libedit/libreadline (Christoph Berg)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure Windows build number increases over time (Magnus Hagander)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <application>pgxs</> build executables with the right
-      <literal>.exe</> suffix when cross-compiling for Windows
-      (Zoltan Boszormenyi)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Add new timezone abbreviation <literal>FET</> (Tom Lane)
-     </para>
-
-     <para>
-      This is now used in some eastern-European time zones.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-3-22">
-  <title>Release 8.3.22</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2012-12-06</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.3.21.
-   For information about new features in the 8.3 major release, see
-   <xref linkend="release-8-3">.
-  </para>
-
-  <para>
-   The <productname>PostgreSQL</> community will stop releasing updates
-   for the 8.3.X release series in February 2013.
-   Users are encouraged to update to a newer release branch soon.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.3.22</title>
-
-   <para>
-    A dump/restore is not required for those running 8.3.X.
-   </para>
-
-   <para>
-    However, if you are upgrading from a version earlier than 8.3.17,
-    see <xref linkend="release-8-3-17">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Fix multiple bugs associated with <command>CREATE INDEX
-      CONCURRENTLY</> (Andres Freund, Tom Lane)
-     </para>
-
-     <para>
-      Fix <command>CREATE INDEX CONCURRENTLY</> to use
-      in-place updates when changing the state of an index's
-      <structname>pg_index</> row.  This prevents race conditions that could
-      cause concurrent sessions to miss updating the target index, thus
-      resulting in corrupt concurrently-created indexes.
-     </para>
-
-     <para>
-      Also, fix various other operations to ensure that they ignore
-      invalid indexes resulting from a failed <command>CREATE INDEX
-      CONCURRENTLY</> command.  The most important of these is
-      <command>VACUUM</>, because an auto-vacuum could easily be launched
-      on the table before corrective action can be taken to fix or remove
-      the invalid index.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid corruption of internal hash tables when out of memory
-      (Hitoshi Harada)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix planning of non-strict equivalence clauses above outer joins
-      (Tom Lane)
-     </para>
-
-     <para>
-      The planner could derive incorrect constraints from a clause equating
-      a non-strict construct to something else, for example
-      <literal>WHERE COALESCE(foo, 0) = 0</>
-      when <literal>foo</> is coming from the nullable side of an outer join.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve planner's ability to prove exclusion constraints from
-      equivalence classes (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix partial-row matching in hashed subplans to handle cross-type cases
-      correctly (Tom Lane)
-     </para>
-
-     <para>
-      This affects multicolumn <literal>NOT IN</> subplans, such as
-      <literal>WHERE (a, b) NOT IN (SELECT x, y FROM ...)</>
-      when for instance <literal>b</> and <literal>y</> are <type>int4</>
-      and <type>int8</> respectively.  This mistake led to wrong answers
-      or crashes depending on the specific datatypes involved.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Acquire buffer lock when re-fetching the old tuple for an
-      <literal>AFTER ROW UPDATE/DELETE</> trigger (Andres Freund)
-     </para>
-
-     <para>
-      In very unusual circumstances, this oversight could result in passing
-      incorrect data to the precheck logic for a foreign-key enforcement
-      trigger.  That could result in a crash, or in an incorrect decision
-      about whether to fire the trigger.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <command>REASSIGN OWNED</> to handle grants on tablespaces
-      (&Aacute;lvaro Herrera)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ignore incorrect <structname>pg_attribute</> entries for system
-      columns for views (Tom Lane)
-     </para>
-
-     <para>
-      Views do not have any system columns.  However, we forgot to
-      remove such entries when converting a table to a view.  That's fixed
-      properly for 9.3 and later, but in previous branches we need to defend
-      against existing mis-converted views.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix rule printing to dump <literal>INSERT INTO <replaceable>table</>
-      DEFAULT VALUES</literal> correctly (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Guard against stack overflow when there are too many
-      <literal>UNION</>/<literal>INTERSECT</>/<literal>EXCEPT</> clauses
-      in a query (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent platform-dependent failures when dividing the minimum possible
-      integer value by -1 (Xi Wang, Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible access past end of string in date parsing
-      (Hitoshi Harada)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Produce an understandable error message if the length of the path name
-      for a Unix-domain socket exceeds the platform-specific limit
-      (Tom Lane, Andrew Dunstan)
-     </para>
-
-     <para>
-      Formerly, this would result in something quite unhelpful, such as
-      <quote>Non-recoverable failure in name resolution</>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix memory leaks when sending composite column values to the client
-      (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <application>pg_ctl</> more robust about reading the
-      <filename>postmaster.pid</> file (Heikki Linnakangas)
-     </para>
-
-     <para>
-      Fix race conditions and possible file descriptor leakage.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible crash in <application>psql</> if incorrectly-encoded data
-      is presented and the <varname>client_encoding</> setting is a
-      client-only encoding, such as SJIS (Jiang Guiqing)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix bugs in the <filename>restore.sql</> script emitted by
-      <application>pg_dump</> in <literal>tar</> output format (Tom Lane)
-     </para>
-
-     <para>
-      The script would fail outright on tables whose names include
-      upper-case characters.  Also, make the script capable of restoring
-      data in <option>--inserts</> mode as well as the regular COPY mode.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>pg_restore</> to accept POSIX-conformant
-      <literal>tar</> files (Brian Weaver, Tom Lane)
-     </para>
-
-     <para>
-      The original coding of <application>pg_dump</>'s <literal>tar</>
-      output mode produced files that are not fully conformant with the
-      POSIX standard.  This has been corrected for version 9.3.  This
-      patch updates previous branches so that they will accept both the
-      incorrect and the corrected formats, in hopes of avoiding
-      compatibility problems when 9.3 comes out.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>pg_resetxlog</> to locate <filename>postmaster.pid</>
-      correctly when given a relative path to the data directory (Tom Lane)
-     </para>
-
-     <para>
-      This mistake could lead to <application>pg_resetxlog</> not noticing
-      that there is an active postmaster using the data directory.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>libpq</>'s <function>lo_import()</> and
-      <function>lo_export()</> functions to report file I/O errors properly
-      (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>ecpg</>'s processing of nested structure pointer
-      variables (Muhammad Usama)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <filename>contrib/pageinspect</>'s btree page inspection
-      functions take buffer locks while examining pages (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>pgxs</> support for building loadable modules on AIX
-      (Tom Lane)
-     </para>
-
-     <para>
-      Building modules outside the original source tree didn't work on AIX.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2012j
-      for DST law changes in Cuba, Israel, Jordan, Libya, Palestine, Western
-      Samoa, and portions of Brazil.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-3-21">
-  <title>Release 8.3.21</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2012-09-24</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.3.20.
-   For information about new features in the 8.3 major release, see
-   <xref linkend="release-8-3">.
-  </para>
-
-  <para>
-   The <productname>PostgreSQL</> community will stop releasing updates
-   for the 8.3.X release series in February 2013.
-   Users are encouraged to update to a newer release branch soon.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.3.21</title>
-
-   <para>
-    A dump/restore is not required for those running 8.3.X.
-   </para>
-
-   <para>
-    However, if you are upgrading from a version earlier than 8.3.17,
-    see <xref linkend="release-8-3-17">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Improve page-splitting decisions in GiST indexes (Alexander Korotkov,
-      Robert Haas, Tom Lane)
-     </para>
-
-     <para>
-      Multi-column GiST indexes might suffer unexpected bloat due to this
-      error.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix cascading privilege revoke to stop if privileges are still held
-      (Tom Lane)
-     </para>
-
-     <para>
-      If we revoke a grant option from some role <replaceable>X</>, but
-      <replaceable>X</> still holds that option via a grant from someone
-      else, we should not recursively revoke the corresponding privilege
-      from role(s) <replaceable>Y</> that <replaceable>X</> had granted it
-      to.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix handling of <literal>SIGFPE</> when PL/Perl is in use (Andres Freund)
-     </para>
-
-     <para>
-      Perl resets the process's <literal>SIGFPE</> handler to
-      <literal>SIG_IGN</>, which could result in crashes later on.  Restore
-      the normal Postgres signal handler after initializing PL/Perl.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent PL/Perl from crashing if a recursive PL/Perl function is
-      redefined while being executed (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Work around possible misoptimization in PL/Perl (Tom Lane)
-     </para>
-
-     <para>
-      Some Linux distributions contain an incorrect version of
-      <filename>pthread.h</> that results in incorrect compiled code in
-      PL/Perl, leading to crashes if a PL/Perl function calls another one
-      that throws an error.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2012f
-      for DST law changes in Fiji
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-3-20">
-  <title>Release 8.3.20</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2012-08-17</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.3.19.
-   For information about new features in the 8.3 major release, see
-   <xref linkend="release-8-3">.
-  </para>
-
-  <para>
-   The <productname>PostgreSQL</> community will stop releasing updates
-   for the 8.3.X release series in February 2013.
-   Users are encouraged to update to a newer release branch soon.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.3.20</title>
-
-   <para>
-    A dump/restore is not required for those running 8.3.X.
-   </para>
-
-   <para>
-    However, if you are upgrading from a version earlier than 8.3.17,
-    see <xref linkend="release-8-3-17">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Prevent access to external files/URLs via XML entity references
-      (Noah Misch, Tom Lane)
-     </para>
-
-     <para>
-      <function>xml_parse()</> would attempt to fetch external files or
-      URLs as needed to resolve DTD and entity references in an XML value,
-      thus allowing unprivileged database users to attempt to fetch data
-      with the privileges of the database server.  While the external data
-      wouldn't get returned directly to the user, portions of it could be
-      exposed in error messages if the data didn't parse as valid XML; and
-      in any case the mere ability to check existence of a file might be
-      useful to an attacker.  (CVE-2012-3489)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent access to external files/URLs via <filename>contrib/xml2</>'s
-      <function>xslt_process()</> (Peter Eisentraut)
-     </para>
-
-     <para>
-      <application>libxslt</> offers the ability to read and write both
-      files and URLs through stylesheet commands, thus allowing
-      unprivileged database users to both read and write data with the
-      privileges of the database server.  Disable that through proper use
-      of <application>libxslt</>'s security options.  (CVE-2012-3488)
-     </para>
-
-     <para>
-      Also, remove <function>xslt_process()</>'s ability to fetch documents
-      and stylesheets from external files/URLs.  While this was a
-      documented <quote>feature</>, it was long regarded as a bad idea.
-      The fix for CVE-2012-3489 broke that capability, and rather than
-      expend effort on trying to fix it, we're just going to summarily
-      remove it.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent too-early recycling of btree index pages (Noah Misch)
-     </para>
-
-     <para>
-      When we allowed read-only transactions to skip assigning XIDs, we
-      introduced the possibility that a deleted btree page could be
-      recycled while a read-only transaction was still in flight to it.
-      This would result in incorrect index search results.  The probability
-      of such an error occurring in the field seems very low because of the
-      timing requirements, but nonetheless it should be fixed.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix crash-safety bug with newly-created-or-reset sequences (Tom Lane)
-     </para>
-
-     <para>
-      If <command>ALTER SEQUENCE</> was executed on a freshly created or
-      reset sequence, and then precisely one <function>nextval()</> call
-      was made on it, and then the server crashed, WAL replay would restore
-      the sequence to a state in which it appeared that no
-      <function>nextval()</> had been done, thus allowing the first
-      sequence value to be returned again by the next
-      <function>nextval()</> call.  In particular this could manifest for
-      <type>serial</> columns, since creation of a serial column's sequence
-      includes an <command>ALTER SEQUENCE OWNED BY</> step.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure the <filename>backup_label</> file is fsync'd after
-      <function>pg_start_backup()</> (Dave Kerr)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Back-patch 9.1 improvement to compress the fsync request queue
-      (Robert Haas)
-     </para>
-
-     <para>
-      This improves performance during checkpoints.  The 9.1 change
-      has now seen enough field testing to seem safe to back-patch.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Only allow autovacuum to be auto-canceled by a directly blocked
-      process (Tom Lane)
-     </para>
-
-     <para>
-      The original coding could allow inconsistent behavior in some cases;
-      in particular, an autovacuum could get canceled after less than
-      <literal>deadlock_timeout</> grace period.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve logging of autovacuum cancels (Robert Haas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix log collector so that <literal>log_truncate_on_rotation</> works
-      during the very first log rotation after server start (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure that a whole-row reference to a subquery doesn't include any
-      extra <literal>GROUP BY</> or <literal>ORDER BY</> columns (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Disallow copying whole-row references in <literal>CHECK</>
-      constraints and index definitions during <command>CREATE TABLE</>
-      (Tom Lane)
-     </para>
-
-     <para>
-      This situation can arise in <command>CREATE TABLE</> with
-      <literal>LIKE</> or <literal>INHERITS</>.  The copied whole-row
-      variable was incorrectly labeled with the row type of the original
-      table not the new one.  Rejecting the case seems reasonable for
-      <literal>LIKE</>, since the row types might well diverge later.  For
-      <literal>INHERITS</> we should ideally allow it, with an implicit
-      coercion to the parent table's row type; but that will require more
-      work than seems safe to back-patch.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix memory leak in <literal>ARRAY(SELECT ...)</> subqueries (Heikki
-      Linnakangas, Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix extraction of common prefixes from regular expressions (Tom Lane)
-     </para>
-
-     <para>
-      The code could get confused by quantified parenthesized
-      subexpressions, such as <literal>^(foo)?bar</>.  This would lead to
-      incorrect index optimization of searches for such patterns.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Report errors properly in <filename>contrib/xml2</>'s
-      <function>xslt_process()</> (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2012e
-      for DST law changes in Morocco and Tokelau
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-3-19">
-  <title>Release 8.3.19</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2012-06-04</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.3.18.
-   For information about new features in the 8.3 major release, see
-   <xref linkend="release-8-3">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.3.19</title>
-
-   <para>
-    A dump/restore is not required for those running 8.3.X.
-   </para>
-
-   <para>
-    However, if you are upgrading from a version earlier than 8.3.17,
-    see <xref linkend="release-8-3-17">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Fix incorrect password transformation in
-      <filename>contrib/pgcrypto</>'s DES <function>crypt()</> function
-      (Solar Designer)
-     </para>
-
-     <para>
-      If a password string contained the byte value <literal>0x80</>, the
-      remainder of the password was ignored, causing the password to be much
-      weaker than it appeared.  With this fix, the rest of the string is
-      properly included in the DES hash.  Any stored password values that are
-      affected by this bug will thus no longer match, so the stored values may
-      need to be updated.  (CVE-2012-2143)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ignore <literal>SECURITY DEFINER</> and <literal>SET</> attributes for
-      a procedural language's call handler (Tom Lane)
-     </para>
-
-     <para>
-      Applying such attributes to a call handler could crash the server.
-      (CVE-2012-2655)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Allow numeric timezone offsets in <type>timestamp</> input to be up to
-      16 hours away from UTC (Tom Lane)
-     </para>
-
-     <para>
-      Some historical time zones have offsets larger than 15 hours, the
-      previous limit.  This could result in dumped data values being rejected
-      during reload.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix timestamp conversion to cope when the given time is exactly the
-      last DST transition time for the current timezone (Tom Lane)
-     </para>
-
-     <para>
-      This oversight has been there a long time, but was not noticed
-      previously because most DST-using zones are presumed to have an
-      indefinite sequence of future DST transitions.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <type>text</> to <type>name</> and <type>char</> to <type>name</>
-      casts to perform string truncation correctly in multibyte encodings
-      (Karl Schnaitter)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix memory copying bug in <function>to_tsquery()</> (Heikki Linnakangas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix slow session startup when <structname>pg_attribute</> is very large
-      (Tom Lane)
-     </para>
-
-     <para>
-      If <structname>pg_attribute</> exceeds one-fourth of
-      <varname>shared_buffers</>, cache rebuilding code that is sometimes
-      needed during session start would trigger the synchronized-scan logic,
-      causing it to take many times longer than normal.  The problem was
-      particularly acute if many new sessions were starting at once.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure sequential scans check for query cancel reasonably often (Merlin
-      Moncure)
-     </para>
-
-     <para>
-      A scan encountering many consecutive pages that contain no live tuples
-      would not respond to interrupts meanwhile.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure the Windows implementation of <function>PGSemaphoreLock()</>
-      clears <varname>ImmediateInterruptOK</> before returning (Tom Lane)
-     </para>
-
-     <para>
-      This oversight meant that a query-cancel interrupt received later
-      in the same query could be accepted at an unsafe time, with
-      unpredictable but not good consequences.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Show whole-row variables safely when printing views or rules
-      (Abbas Butt, Tom Lane)
-     </para>
-
-     <para>
-      Corner cases involving ambiguous names (that is, the name could be
-      either a table or column name of the query) were printed in an
-      ambiguous way, risking that the view or rule would be interpreted
-      differently after dump and reload.  Avoid the ambiguous case by
-      attaching a no-op cast.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure autovacuum worker processes perform stack depth checking
-      properly (Heikki Linnakangas)
-     </para>
-
-     <para>
-      Previously, infinite recursion in a function invoked by
-      auto-<command>ANALYZE</> could crash worker processes.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix logging collector to not lose log coherency under high load (Andrew
-      Dunstan)
-     </para>
-
-     <para>
-      The collector previously could fail to reassemble large messages if it
-      got too busy.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix logging collector to ensure it will restart file rotation
-      after receiving <systemitem>SIGHUP</> (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix PL/pgSQL's <command>GET DIAGNOSTICS</> command when the target
-      is the function's first variable (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix several performance problems in <application>pg_dump</> when
-      the database contains many objects (Jeff Janes, Tom Lane)
-     </para>
-
-     <para>
-      <application>pg_dump</> could get very slow if the database contained
-      many schemas, or if many objects are in dependency loops, or if there
-      are many owned sequences.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <filename>contrib/dblink</>'s <function>dblink_exec()</> to not leak
-      temporary database connections upon error (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2012c
-      for DST law changes in Antarctica, Armenia, Chile, Cuba, Falkland
-      Islands, Gaza, Haiti, Hebron, Morocco, Syria, and Tokelau Islands;
-      also historical corrections for Canada.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-3-18">
-  <title>Release 8.3.18</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2012-02-27</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.3.17.
-   For information about new features in the 8.3 major release, see
-   <xref linkend="release-8-3">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.3.18</title>
-
-   <para>
-    A dump/restore is not required for those running 8.3.X.
-   </para>
-
-   <para>
-    However, if you are upgrading from a version earlier than 8.3.17,
-    see <xref linkend="release-8-3-17">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Require execute permission on the trigger function for
-      <command>CREATE TRIGGER</> (Robert Haas)
-     </para>
-
-     <para>
-      This missing check could allow another user to execute a trigger
-      function with forged input data, by installing it on a table he owns.
-      This is only of significance for trigger functions marked
-      <literal>SECURITY DEFINER</>, since otherwise trigger functions run
-      as the table owner anyway.  (CVE-2012-0866)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Convert newlines to spaces in names written in <application>pg_dump</>
-      comments (Robert Haas)
-     </para>
-
-     <para>
-      <application>pg_dump</> was incautious about sanitizing object names
-      that are emitted within SQL comments in its output script.  A name
-      containing a newline would at least render the script syntactically
-      incorrect.  Maliciously crafted object names could present a SQL
-      injection risk when the script is reloaded.  (CVE-2012-0868)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix btree index corruption from insertions concurrent with vacuuming
-      (Tom Lane)
-     </para>
-
-     <para>
-      An index page split caused by an insertion could sometimes cause a
-      concurrently-running <command>VACUUM</> to miss removing index entries
-      that it should remove.  After the corresponding table rows are removed,
-      the dangling index entries would cause errors (such as <quote>could not
-      read block N in file ...</>) or worse, silently wrong query results
-      after unrelated rows are re-inserted at the now-free table locations.
-      This bug has been present since release 8.2, but occurs so infrequently
-      that it was not diagnosed until now.  If you have reason to suspect
-      that it has happened in your database, reindexing the affected index
-      will fix things.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Allow non-existent values for some settings in <command>ALTER
-      USER/DATABASE SET</> (Heikki Linnakangas)
-     </para>
-
-     <para>
-      Allow <varname>default_text_search_config</>,
-      <varname>default_tablespace</>, and <varname>temp_tablespaces</> to be
-      set to names that are not known.  This is because they might be known
-      in another database where the setting is intended to be used, or for the
-      tablespace cases because the tablespace might not be created yet.  The
-      same issue was previously recognized for <varname>search_path</>, and
-      these settings now act like that one.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Track the OID counter correctly during WAL replay, even when it wraps
-      around (Tom Lane)
-     </para>
-
-     <para>
-      Previously the OID counter would remain stuck at a high value until the
-      system exited replay mode.  The practical consequences of that are
-      usually nil, but there are scenarios wherein a standby server that's
-      been promoted to master might take a long time to advance the OID
-      counter to a reasonable value once values are needed.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix regular expression back-references with <literal>*</> attached
-      (Tom Lane)
-     </para>
-
-     <para>
-      Rather than enforcing an exact string match, the code would effectively
-      accept any string that satisfies the pattern sub-expression referenced
-      by the back-reference symbol.
-     </para>
-
-     <para>
-      A similar problem still afflicts back-references that are embedded in a
-      larger quantified expression, rather than being the immediate subject
-      of the quantifier.  This will be addressed in a future
-      <productname>PostgreSQL</> release.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix recently-introduced memory leak in processing of
-      <type>inet</>/<type>cidr</> values (Heikki Linnakangas)
-     </para>
-
-     <para>
-      A patch in the December 2011 releases of <productname>PostgreSQL</>
-      caused memory leakage in these operations, which could be significant
-      in scenarios such as building a btree index on such a column.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid double close of file handle in syslogger on Windows (MauMau)
-     </para>
-
-     <para>
-      Ordinarily this error was invisible, but it would cause an exception
-      when running on a debug version of Windows.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix I/O-conversion-related memory leaks in plpgsql
-      (Andres Freund, Jan Urbanski, Tom Lane)
-     </para>
-
-     <para>
-      Certain operations would leak memory until the end of the current
-      function.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve <application>pg_dump</>'s handling of inherited table columns
-      (Tom Lane)
-     </para>
-
-     <para>
-      <application>pg_dump</> mishandled situations where a child column has
-      a different default expression than its parent column.  If the default
-      is textually identical to the parent's default, but not actually the
-      same (for instance, because of schema search path differences) it would
-      not be recognized as different, so that after dump and restore the
-      child would be allowed to inherit the parent's default.  Child columns
-      that are <literal>NOT NULL</> where their parent is not could also be
-      restored subtly incorrectly.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>pg_restore</>'s direct-to-database mode for
-      INSERT-style table data (Tom Lane)
-     </para>
-
-     <para>
-      Direct-to-database restores from archive files made with
-      <option>--inserts</> or <option>--column-inserts</> options fail when
-      using <application>pg_restore</> from a release dated September or
-      December 2011, as a result of an oversight in a fix for another
-      problem.  The archive file itself is not at fault, and text-mode
-      output is okay.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix error in <filename>contrib/intarray</>'s <literal>int[] &amp;
-      int[]</> operator (Guillaume Lelarge)
-     </para>
-
-     <para>
-      If the smallest integer the two input arrays have in common is 1,
-      and there are smaller values in either array, then 1 would be
-      incorrectly omitted from the result.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix error detection in <filename>contrib/pgcrypto</>'s
-      <function>encrypt_iv()</> and <function>decrypt_iv()</>
-      (Marko Kreen)
-     </para>
-
-     <para>
-      These functions failed to report certain types of invalid-input errors,
-      and would instead return random garbage values for incorrect input.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix one-byte buffer overrun in <filename>contrib/test_parser</>
-      (Paul Guyot)
-     </para>
-
-     <para>
-      The code would try to read one more byte than it should, which would
-      crash in corner cases.
-      Since <filename>contrib/test_parser</> is only example code, this is
-      not a security issue in itself, but bad example code is still bad.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Use <function>__sync_lock_test_and_set()</> for spinlocks on ARM, if
-      available (Martin Pitt)
-     </para>
-
-     <para>
-      This function replaces our previous use of the <literal>SWPB</>
-      instruction, which is deprecated and not available on ARMv6 and later.
-      Reports suggest that the old code doesn't fail in an obvious way on
-      recent ARM boards, but simply doesn't interlock concurrent accesses,
-      leading to bizarre failures in multiprocess operation.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Use <option>-fexcess-precision=standard</> option when building with
-      gcc versions that accept it (Andrew Dunstan)
-     </para>
-
-     <para>
-      This prevents assorted scenarios wherein recent versions of gcc will
-      produce creative results.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Allow use of threaded Python on FreeBSD (Chris Rees)
-     </para>
-
-     <para>
-      Our configure script previously believed that this combination wouldn't
-      work; but FreeBSD fixed the problem, so remove that error check.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-3-17">
-  <title>Release 8.3.17</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2011-12-05</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.3.16.
-   For information about new features in the 8.3 major release, see
-   <xref linkend="release-8-3">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.3.17</title>
-
-   <para>
-    A dump/restore is not required for those running 8.3.X.
-   </para>
-
-   <para>
-    However, a longstanding error was discovered in the definition of the
-    <literal>information_schema.referential_constraints</> view.  If you
-    rely on correct results from that view, you should replace its
-    definition as explained in the first changelog item below.
-   </para>
-
-   <para>
-    Also, if you are upgrading from a version earlier than 8.3.8,
-    see <xref linkend="release-8-3-8">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Fix bugs in <literal>information_schema.referential_constraints</> view
-      (Tom Lane)
-     </para>
-
-     <para>
-      This view was being insufficiently careful about matching the
-      foreign-key constraint to the depended-on primary or unique key
-      constraint.  That could result in failure to show a foreign key
-      constraint at all, or showing it multiple times, or claiming that it
-      depends on a different constraint than the one it really does.
-     </para>
-
-     <para>
-      Since the view definition is installed by <application>initdb</>,
-      merely upgrading will not fix the problem.  If you need to fix this
-      in an existing installation, you can (as a superuser) drop the
-      <literal>information_schema</> schema then re-create it by sourcing
-      <filename><replaceable>SHAREDIR</>/information_schema.sql</filename>.
-      (Run <literal>pg_config --sharedir</> if you're uncertain where
-      <replaceable>SHAREDIR</> is.)  This must be repeated in each database
-      to be fixed.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix TOAST-related data corruption during <literal>CREATE TABLE dest AS
-      SELECT * FROM src</> or <literal>INSERT INTO dest SELECT * FROM src</>
-      (Tom Lane)
-     </para>
-
-     <para>
-      If a table has been modified by <command>ALTER TABLE ADD COLUMN</>,
-      attempts to copy its data verbatim to another table could produce
-      corrupt results in certain corner cases.
-      The problem can only manifest in this precise form in 8.4 and later,
-      but we patched earlier versions as well in case there are other code
-      paths that could trigger the same bug.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix race condition during toast table access from stale syscache entries
-      (Tom Lane)
-     </para>
-
-     <para>
-      The typical symptom was transient errors like <quote>missing chunk
-      number 0 for toast value NNNNN in pg_toast_2619</>, where the cited
-      toast table would always belong to a system catalog.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <function>DatumGetInetP()</> unpack inet datums that have a 1-byte
-      header, and add a new macro, <function>DatumGetInetPP()</>, that does
-      not (Heikki Linnakangas)
-     </para>
-
-     <para>
-      This change affects no core code, but might prevent crashes in add-on
-      code that expects <function>DatumGetInetP()</> to produce an unpacked
-      datum as per usual convention.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve locale support in <type>money</> type's input and output
-      (Tom Lane)
-     </para>
-
-     <para>
-      Aside from not supporting all standard
-      <link linkend="guc-lc-monetary"><varname>lc_monetary</></link>
-      formatting options, the input and output functions were inconsistent,
-      meaning there were locales in which dumped <type>money</> values could
-      not be re-read.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Don't let <link
-      linkend="guc-transform-null-equals"><varname>transform_null_equals</></link>
-      affect <literal>CASE foo WHEN NULL ...</> constructs
-      (Heikki Linnakangas)
-     </para>
-
-     <para>
-      <varname>transform_null_equals</> is only supposed to affect
-      <literal>foo = NULL</> expressions written directly by the user, not
-      equality checks generated internally by this form of <literal>CASE</>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Change foreign-key trigger creation order to better support
-      self-referential foreign keys (Tom Lane)
-     </para>
-
-     <para>
-      For a cascading foreign key that references its own table, a row update
-      will fire both the <literal>ON UPDATE</> trigger and the
-      <literal>CHECK</> trigger as one event.  The <literal>ON UPDATE</>
-      trigger must execute first, else the <literal>CHECK</> will check a
-      non-final state of the row and possibly throw an inappropriate error.
-      However, the firing order of these triggers is determined by their
-      names, which generally sort in creation order since the triggers have
-      auto-generated names following the convention
-      <quote>RI_ConstraintTrigger_NNNN</>.  A proper fix would require
-      modifying that convention, which we will do in 9.2, but it seems risky
-      to change it in existing releases.  So this patch just changes the
-      creation order of the triggers.  Users encountering this type of error
-      should drop and re-create the foreign key constraint to get its
-      triggers into the right order.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid floating-point underflow while tracking buffer allocation rate
-      (Greg Matthews)
-     </para>
-
-     <para>
-      While harmless in itself, on certain platforms this would result in
-      annoying kernel log messages.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Preserve blank lines within commands in <application>psql</>'s command
-      history (Robert Haas)
-     </para>
-
-     <para>
-      The former behavior could cause problems if an empty line was removed
-      from within a string literal, for example.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>pg_dump</> to dump user-defined casts between
-      auto-generated types, such as table rowtypes (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Use the preferred version of <application>xsubpp</> to build PL/Perl,
-      not necessarily the operating system's main copy
-      (David Wheeler and Alex Hunsaker)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix incorrect coding in <filename>contrib/dict_int</> and
-      <filename>contrib/dict_xsyn</> (Tom Lane)
-     </para>
-
-     <para>
-      Some functions incorrectly assumed that memory returned by
-      <function>palloc()</> is guaranteed zeroed.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Honor query cancel interrupts promptly in <function>pgstatindex()</>
-      (Robert Haas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure VPATH builds properly install all server header files
-      (Peter Eisentraut)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Shorten file names reported in verbose error messages (Peter Eisentraut)
-     </para>
-
-     <para>
-      Regular builds have always reported just the name of the C file
-      containing the error message call, but VPATH builds formerly
-      reported an absolute path name.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix interpretation of Windows timezone names for Central America
-      (Tom Lane)
-     </para>
-
-     <para>
-      Map <quote>Central America Standard Time</> to <literal>CST6</>, not
-      <literal>CST6CDT</>, because DST is generally not observed anywhere in
-      Central America.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2011n
-      for DST law changes in Brazil, Cuba, Fiji, Palestine, Russia, and Samoa;
-      also historical corrections for Alaska and British East Africa.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-3-16">
-  <title>Release 8.3.16</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2011-09-26</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.3.15.
-   For information about new features in the 8.3 major release, see
-   <xref linkend="release-8-3">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.3.16</title>
-
-   <para>
-    A dump/restore is not required for those running 8.3.X.
-    However, if you are upgrading from a version earlier than 8.3.8,
-    see <xref linkend="release-8-3-8">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Fix bugs in indexing of in-doubt HOT-updated tuples (Tom Lane)
-     </para>
-
-     <para>
-      These bugs could result in index corruption after reindexing a system
-      catalog.  They are not believed to affect user indexes.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix multiple bugs in GiST index page split processing (Heikki
-      Linnakangas)
-     </para>
-
-     <para>
-      The probability of occurrence was low, but these could lead to index
-      corruption.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible buffer overrun in <function>tsvector_concat()</>
-      (Tom Lane)
-     </para>
-
-     <para>
-      The function could underestimate the amount of memory needed for its
-      result, leading to server crashes.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix crash in <function>xml_recv</> when processing a
-      <quote>standalone</> parameter (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid possibly accessing off the end of memory in <command>ANALYZE</>
-      and in SJIS-2004 encoding conversion (Noah Misch)
-     </para>
-
-     <para>
-      This fixes some very-low-probability server crash scenarios.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix race condition in relcache init file invalidation (Tom Lane)
-     </para>
-
-     <para>
-      There was a window wherein a new backend process could read a stale init
-      file but miss the inval messages that would tell it the data is stale.
-      The result would be bizarre failures in catalog accesses, typically
-      <quote>could not read block 0 in file ...</> later during startup.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix memory leak at end of a GiST index scan (Tom Lane)
-     </para>
-
-     <para>
-      Commands that perform many separate GiST index scans, such as
-      verification of a new GiST-based exclusion constraint on a table
-      already containing many rows, could transiently require large amounts of
-      memory due to this leak.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix performance problem when constructing a large, lossy bitmap
-      (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix array- and path-creating functions to ensure padding bytes are
-      zeroes (Tom Lane)
-     </para>
-
-     <para>
-      This avoids some situations where the planner will think that
-      semantically-equal constants are not equal, resulting in poor
-      optimization.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Work around gcc 4.6.0 bug that breaks WAL replay (Tom Lane)
-     </para>
-
-     <para>
-      This could lead to loss of committed transactions after a server crash.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix dump bug for <literal>VALUES</> in a view (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Disallow <literal>SELECT FOR UPDATE/SHARE</> on sequences (Tom Lane)
-     </para>
-
-     <para>
-      This operation doesn't work as expected and can lead to failures.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Defend against integer overflow when computing size of a hash table (Tom
-      Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix cases where <command>CLUSTER</> might attempt to access
-      already-removed TOAST data (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix portability bugs in use of credentials control messages for
-      <quote>peer</> authentication (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix SSPI login when multiple roundtrips are required (Ahmed Shinwari,
-      Magnus Hagander)
-     </para>
-
-     <para>
-      The typical symptom of this problem was <quote>The function requested is
-      not supported</> errors during SSPI login.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix typo in <function>pg_srand48</> seed initialization (Andres Freund)
-     </para>
-
-     <para>
-      This led to failure to use all bits of the provided seed.  This function
-      is not used on most platforms (only those without <function>srandom</>),
-      and the potential security exposure from a less-random-than-expected
-      seed seems minimal in any case.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid integer overflow when the sum of <literal>LIMIT</> and
-      <literal>OFFSET</> values exceeds 2^63 (Heikki Linnakangas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Add overflow checks to <type>int4</> and <type>int8</> versions of
-      <function>generate_series()</> (Robert Haas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix trailing-zero removal in <function>to_char()</> (Marti Raudsepp)
-     </para>
-
-     <para>
-      In a format with <literal>FM</> and no digit positions
-      after the decimal point, zeroes to the left of the decimal point could
-      be removed incorrectly.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <function>pg_size_pretty()</> to avoid overflow for inputs close to
-      2^63 (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      In <application>pg_ctl</>, support silent mode for service registrations
-      on Windows (MauMau)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>psql</>'s counting of script file line numbers during
-      <literal>COPY</> from a different file (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>pg_restore</>'s direct-to-database mode for
-      <varname>standard_conforming_strings</> (Tom Lane)
-     </para>
-
-     <para>
-      <application>pg_restore</> could emit incorrect commands when restoring
-      directly to a database server from an archive file that had been made
-      with <varname>standard_conforming_strings</> set to <literal>on</>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix write-past-buffer-end and memory leak in <application>libpq</>'s
-      LDAP service lookup code (Albe Laurenz)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      In <application>libpq</>, avoid failures when using nonblocking I/O
-      and an SSL connection (Martin Pihlak, Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve libpq's handling of failures during connection startup
-      (Tom Lane)
-     </para>
-
-     <para>
-      In particular, the response to a server report of <function>fork()</>
-      failure during SSL connection startup is now saner.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve <application>libpq</>'s error reporting for SSL failures (Tom
-      Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <application>ecpglib</> write <type>double</> values with 15 digits
-      precision (Akira Kurosawa)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      In <application>ecpglib</>, be sure <literal>LC_NUMERIC</> setting is
-      restored after an error (Michael Meskes)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Apply upstream fix for blowfish signed-character bug (CVE-2011-2483)
-      (Tom Lane)
-     </para>
-
-     <para>
-      <filename>contrib/pg_crypto</>'s blowfish encryption code could give
-      wrong results on platforms where char is signed (which is most),
-      leading to encrypted passwords being weaker than they should be.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix memory leak in <filename>contrib/seg</> (Heikki Linnakangas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <function>pgstatindex()</> to give consistent results for empty
-      indexes (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Allow building with perl 5.14 (Alex Hunsaker)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update configure script's method for probing existence of system
-      functions (Tom Lane)
-     </para>
-
-     <para>
-      The version of autoconf we used in 8.3 and 8.2 could be fooled by
-      compilers that perform link-time optimization.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix assorted issues with build and install file paths containing spaces
-      (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2011i
-      for DST law changes in Canada, Egypt, Russia, Samoa, and South Sudan.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-3-15">
-  <title>Release 8.3.15</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2011-04-18</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.3.14.
-   For information about new features in the 8.3 major release, see
-   <xref linkend="release-8-3">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.3.15</title>
-
-   <para>
-    A dump/restore is not required for those running 8.3.X.
-    However, if you are upgrading from a version earlier than 8.3.8,
-    see <xref linkend="release-8-3-8">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Disallow including a composite type in itself (Tom Lane)
-     </para>
-
-     <para>
-      This prevents scenarios wherein the server could recurse infinitely
-      while processing the composite type.  While there are some possible
-      uses for such a structure, they don't seem compelling enough to
-      justify the effort required to make sure it always works safely.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid potential deadlock during catalog cache initialization
-      (Nikhil Sontakke)
-     </para>
-
-     <para>
-      In some cases the cache loading code would acquire share lock on a
-      system index before locking the index's catalog.  This could deadlock
-      against processes trying to acquire exclusive locks in the other,
-      more standard order.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix dangling-pointer problem in <literal>BEFORE ROW UPDATE</> trigger
-      handling when there was a concurrent update to the target tuple
-      (Tom Lane)
-     </para>
-
-     <para>
-      This bug has been observed to result in intermittent <quote>cannot
-      extract system attribute from virtual tuple</> failures while trying to
-      do <literal>UPDATE RETURNING ctid</>.  There is a very small probability
-      of more serious errors, such as generating incorrect index entries for
-      the updated tuple.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Disallow <command>DROP TABLE</> when there are pending deferred trigger
-      events for the table (Tom Lane)
-     </para>
-
-     <para>
-      Formerly the <command>DROP</> would go through, leading to
-      <quote>could not open relation with OID nnn</> errors when the
-      triggers were eventually fired.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix PL/Python memory leak involving array slices (Daniel Popowich)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>pg_restore</> to cope with long lines (over 1KB) in
-      TOC files (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Put in more safeguards against crashing due to division-by-zero
-      with overly enthusiastic compiler optimization (Aurelien Jarno)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Support use of dlopen() in FreeBSD and OpenBSD on MIPS (Tom Lane)
-     </para>
-
-     <para>
-      There was a hard-wired assumption that this system function was not
-      available on MIPS hardware on these systems.  Use a compile-time test
-      instead, since more recent versions have it.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix compilation failures on HP-UX (Heikki Linnakangas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix version-incompatibility problem with <application>libintl</> on
-      Windows (Hiroshi Inoue)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix usage of <application>xcopy</> in Windows build scripts to
-      work correctly under Windows 7 (Andrew Dunstan)
-     </para>
-
-     <para>
-      This affects the build scripts only, not installation or usage.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix path separator used by <application>pg_regress</> on Cygwin
-      (Andrew Dunstan)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2011f
-      for DST law changes in Chile, Cuba, Falkland Islands, Morocco, Samoa,
-      and Turkey; also historical corrections for South Australia, Alaska,
-      and Hawaii.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-3-14">
-  <title>Release 8.3.14</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2011-01-31</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.3.13.
-   For information about new features in the 8.3 major release, see
-   <xref linkend="release-8-3">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.3.14</title>
-
-   <para>
-    A dump/restore is not required for those running 8.3.X.
-    However, if you are upgrading from a version earlier than 8.3.8,
-    see <xref linkend="release-8-3-8">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Avoid failures when <command>EXPLAIN</> tries to display a simple-form
-      <literal>CASE</> expression (Tom Lane)
-     </para>
-
-     <para>
-      If the <literal>CASE</>'s test expression was a constant, the planner
-      could simplify the <literal>CASE</> into a form that confused the
-      expression-display code, resulting in <quote>unexpected CASE WHEN
-      clause</> errors.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix assignment to an array slice that is before the existing range
-      of subscripts (Tom Lane)
-     </para>
-
-     <para>
-      If there was a gap between the newly added subscripts and the first
-      pre-existing subscript, the code miscalculated how many entries needed
-      to be copied from the old array's null bitmap, potentially leading to
-      data corruption or crash.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid unexpected conversion overflow in planner for very distant date
-      values (Tom Lane)
-     </para>
-
-     <para>
-      The <type>date</> type supports a wider range of dates than can be
-      represented by the <type>timestamp</> types, but the planner assumed it
-      could always convert a date to timestamp with impunity.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>pg_restore</>'s text output for large objects (BLOBs)
-      when <varname>standard_conforming_strings</> is on (Tom Lane)
-     </para>
-
-     <para>
-      Although restoring directly to a database worked correctly, string
-      escaping was incorrect if <application>pg_restore</> was asked for
-      SQL text output and <varname>standard_conforming_strings</> had been
-      enabled in the source database.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix erroneous parsing of <type>tsquery</> values containing
-      <literal>... &amp; !(subexpression) | ...</literal> (Tom Lane)
-     </para>
-
-     <para>
-      Queries containing this combination of operators were not executed
-      correctly.  The same error existed in <filename>contrib/intarray</>'s
-      <type>query_int</> type and <filename>contrib/ltree</>'s
-      <type>ltxtquery</> type.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix buffer overrun in <filename>contrib/intarray</>'s input function
-      for the <type>query_int</> type (Apple)
-     </para>
-
-     <para>
-      This bug is a security risk since the function's return address could
-      be overwritten.  Thanks to Apple Inc's security team for reporting this
-      issue and supplying the fix.  (CVE-2010-4015)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix bug in <filename>contrib/seg</>'s GiST picksplit algorithm
-      (Alexander Korotkov)
-     </para>
-
-     <para>
-      This could result in considerable inefficiency, though not actually
-      incorrect answers, in a GiST index on a <type>seg</> column.
-      If you have such an index, consider <command>REINDEX</>ing it after
-      installing this update.  (This is identical to the bug that was fixed in
-      <filename>contrib/cube</> in the previous update.)
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-3-13">
-  <title>Release 8.3.13</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2010-12-16</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.3.12.
-   For information about new features in the 8.3 major release, see
-   <xref linkend="release-8-3">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.3.13</title>
-
-   <para>
-    A dump/restore is not required for those running 8.3.X.
-    However, if you are upgrading from a version earlier than 8.3.8,
-    see <xref linkend="release-8-3-8">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Force the default
-      <link linkend="guc-wal-sync-method"><varname>wal_sync_method</></link>
-      to be <literal>fdatasync</> on Linux (Tom Lane, Marti Raudsepp)
-     </para>
-
-     <para>
-      The default on Linux has actually been <literal>fdatasync</> for many
-      years, but recent kernel changes caused <productname>PostgreSQL</> to
-      choose <literal>open_datasync</> instead.  This choice did not result
-      in any performance improvement, and caused outright failures on
-      certain filesystems, notably <literal>ext4</> with the
-      <literal>data=journal</> mount option.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix assorted bugs in WAL replay logic for GIN indexes (Tom Lane)
-     </para>
-
-     <para>
-      This could result in <quote>bad buffer id: 0</> failures or
-      corruption of index contents during replication.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix recovery from base backup when the starting checkpoint WAL record
-      is not in the same WAL segment as its redo point (Jeff Davis)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix persistent slowdown of autovacuum workers when multiple workers
-      remain active for a long time (Tom Lane)
-     </para>
-
-     <para>
-      The effective <varname>vacuum_cost_limit</> for an autovacuum worker
-      could drop to nearly zero if it processed enough tables, causing it
-      to run extremely slowly.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Add support for detecting register-stack overrun on <literal>IA64</>
-      (Tom Lane)
-     </para>
-
-     <para>
-      The <literal>IA64</> architecture has two hardware stacks.  Full
-      prevention of stack-overrun failures requires checking both.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Add a check for stack overflow in <function>copyObject()</> (Tom Lane)
-     </para>
-
-     <para>
-      Certain code paths could crash due to stack overflow given a
-      sufficiently complex query.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix detection of page splits in temporary GiST indexes (Heikki
-      Linnakangas)
-     </para>
-
-     <para>
-      It is possible to have a <quote>concurrent</> page split in a
-      temporary index, if for example there is an open cursor scanning the
-      index when an insertion is done.  GiST failed to detect this case and
-      hence could deliver wrong results when execution of the cursor
-      continued.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid memory leakage while <command>ANALYZE</>'ing complex index
-      expressions (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure an index that uses a whole-row Var still depends on its table
-      (Tom Lane)
-     </para>
-
-     <para>
-      An index declared like <literal>create index i on t (foo(t.*))</>
-      would not automatically get dropped when its table was dropped.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Do not <quote>inline</> a SQL function with multiple <literal>OUT</>
-      parameters (Tom Lane)
-     </para>
-
-     <para>
-      This avoids a possible crash due to loss of information about the
-      expected result rowtype.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Behave correctly if <literal>ORDER BY</>, <literal>LIMIT</>,
-      <literal>FOR UPDATE</>, or <literal>WITH</> is attached to the
-      <literal>VALUES</> part of <literal>INSERT ... VALUES</> (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix constant-folding of <literal>COALESCE()</> expressions (Tom Lane)
-     </para>
-
-     <para>
-      The planner would sometimes attempt to evaluate sub-expressions that
-      in fact could never be reached, possibly leading to unexpected errors.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix postmaster crash when connection acceptance
-      (<function>accept()</> or one of the calls made immediately after it)
-      fails, and the postmaster was compiled with GSSAPI support (Alexander
-      Chernikov)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix missed unlink of temporary files when <varname>log_temp_files</>
-      is active (Tom Lane)
-     </para>
-
-     <para>
-      If an error occurred while attempting to emit the log message, the
-      unlink was not done, resulting in accumulation of temp files.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Add print functionality for <structname>InhRelation</> nodes (Tom Lane)
-     </para>
-
-     <para>
-      This avoids a failure when <varname>debug_print_parse</> is enabled
-      and certain types of query are executed.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix incorrect calculation of distance from a point to a horizontal
-      line segment (Tom Lane)
-     </para>
-
-     <para>
-      This bug affected several different geometric distance-measurement
-      operators.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>PL/pgSQL</>'s handling of <quote>simple</>
-      expressions to not fail in recursion or error-recovery cases (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>PL/Python</>'s handling of set-returning functions
-      (Jan Urbanski)
-     </para>
-
-     <para>
-      Attempts to call SPI functions within the iterator generating a set
-      result would fail.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix bug in <filename>contrib/cube</>'s GiST picksplit algorithm
-      (Alexander Korotkov)
-     </para>
-
-     <para>
-      This could result in considerable inefficiency, though not actually
-      incorrect answers, in a GiST index on a <type>cube</> column.
-      If you have such an index, consider <command>REINDEX</>ing it after
-      installing this update.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Don't emit <quote>identifier will be truncated</> notices in
-      <filename>contrib/dblink</> except when creating new connections
-      (Itagaki Takahiro)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix potential coredump on missing public key in
-      <filename>contrib/pgcrypto</> (Marti Raudsepp)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix memory leak in <filename>contrib/xml2</>'s XPath query functions
-      (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2010o
-      for DST law changes in Fiji and Samoa;
-      also historical corrections for Hong Kong.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-3-12">
-  <title>Release 8.3.12</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2010-10-04</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.3.11.
-   For information about new features in the 8.3 major release, see
-   <xref linkend="release-8-3">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.3.12</title>
-
-   <para>
-    A dump/restore is not required for those running 8.3.X.
-    However, if you are upgrading from a version earlier than 8.3.8,
-    see <xref linkend="release-8-3-8">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Use a separate interpreter for each calling SQL userid in PL/Perl and
-      PL/Tcl (Tom Lane)
-     </para>
-
-     <para>
-      This change prevents security problems that can be caused by subverting
-      Perl or Tcl code that will be executed later in the same session under
-      another SQL user identity (for example, within a <literal>SECURITY
-      DEFINER</> function).  Most scripting languages offer numerous ways that
-      that might be done, such as redefining standard functions or operators
-      called by the target function.  Without this change, any SQL user with
-      Perl or Tcl language usage rights can do essentially anything with the
-      SQL privileges of the target function's owner.
-     </para>
-
-     <para>
-      The cost of this change is that intentional communication among Perl
-      and Tcl functions becomes more difficult.  To provide an escape hatch,
-      PL/PerlU and PL/TclU functions continue to use only one interpreter
-      per session.  This is not considered a security issue since all such
-      functions execute at the trust level of a database superuser already.
-     </para>
-
-     <para>
-      It is likely that third-party procedural languages that claim to offer
-      trusted execution have similar security issues.  We advise contacting
-      the authors of any PL you are depending on for security-critical
-      purposes.
-     </para>
-
-     <para>
-      Our thanks to Tim Bunce for pointing out this issue (CVE-2010-3433).
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent possible crashes in <function>pg_get_expr()</> by disallowing
-      it from being called with an argument that is not one of the system
-      catalog columns it's intended to be used with
-      (Heikki Linnakangas, Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Treat exit code 128 (<literal>ERROR_WAIT_NO_CHILDREN</>) as non-fatal on
-      Windows (Magnus Hagander)
-     </para>
-
-     <para>
-      Under high load, Windows processes will sometimes fail at startup with
-      this error code.  Formerly the postmaster treated this as a panic
-      condition and restarted the whole database, but that seems to be
-      an overreaction.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix incorrect usage of non-strict OR joinclauses in Append indexscans
-      (Tom Lane)
-     </para>
-
-     <para>
-      This is a back-patch of an 8.4 fix that was missed in the 8.3 branch.
-      This corrects an error introduced in 8.3.8 that could cause incorrect
-      results for outer joins when the inner relation is an inheritance tree
-      or <literal>UNION ALL</> subquery.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible duplicate scans of <literal>UNION ALL</> member relations
-      (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <quote>cannot handle unplanned sub-select</quote> error (Tom Lane)
-     </para>
-
-     <para>
-      This occurred when a sub-select contains a join alias reference that
-      expands into an expression containing another sub-select.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix failure to mark cached plans as transient (Tom Lane)
-     </para>
-
-     <para>
-      If a plan is prepared while <command>CREATE INDEX CONCURRENTLY</> is
-      in progress for one of the referenced tables, it is supposed to be
-      re-planned once the index is ready for use.  This was not happening
-      reliably.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Reduce PANIC to ERROR in some occasionally-reported btree failure cases,
-      and provide additional detail in the resulting error messages
-      (Tom Lane)
-     </para>
-
-     <para>
-      This should improve the system's robustness with corrupted indexes.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent show_session_authorization() from crashing within autovacuum
-      processes (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Defend against functions returning setof record where not all the
-      returned rows are actually of the same rowtype (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible failure when hashing a pass-by-reference function result
-      (Tao Ma, Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve merge join's handling of NULLs in the join columns (Tom Lane)
-     </para>
-
-     <para>
-      A merge join can now stop entirely upon reaching the first NULL,
-      if the sort order is such that NULLs sort high.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Take care to fsync the contents of lockfiles (both
-      <filename>postmaster.pid</> and the socket lockfile) while writing them
-      (Tom Lane)
-     </para>
-
-     <para>
-      This omission could result in corrupted lockfile contents if the
-      machine crashes shortly after postmaster start.  That could in turn
-      prevent subsequent attempts to start the postmaster from succeeding,
-      until the lockfile is manually removed.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid recursion while assigning XIDs to heavily-nested
-      subtransactions (Andres Freund, Robert Haas)
-     </para>
-
-     <para>
-      The original coding could result in a crash if there was limited
-      stack space.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid holding open old WAL segments in the walwriter process
-      (Magnus Hagander, Heikki Linnakangas)
-     </para>
-
-     <para>
-      The previous coding would prevent removal of no-longer-needed segments.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <varname>log_line_prefix</>'s <literal>%i</> escape,
-      which could produce junk early in backend startup (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible data corruption in <command>ALTER TABLE ... SET
-      TABLESPACE</> when archiving is enabled (Jeff Davis)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Allow <command>CREATE DATABASE</> and <command>ALTER DATABASE ... SET
-      TABLESPACE</> to be interrupted by query-cancel (Guillaume Lelarge)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <command>REASSIGN OWNED</> to handle operator classes and families
-      (Asko Tiidumaa)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible core dump when comparing two empty <type>tsquery</> values
-      (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <literal>LIKE</>'s handling of patterns containing <literal>%</>
-      followed by <literal>_</> (Tom Lane)
-     </para>
-
-     <para>
-      We've fixed this before, but there were still some incorrectly-handled
-      cases.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      In PL/Python, defend against null pointer results from
-      <function>PyCObject_AsVoidPtr</> and <function>PyCObject_FromVoidPtr</>
-      (Peter Eisentraut)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make psql recognize <command>DISCARD ALL</> as a command that should
-      not be encased in a transaction block in autocommit-off mode
-      (Itagaki Takahiro)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>ecpg</> to process data from <literal>RETURNING</>
-      clauses correctly (Michael Meskes)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve <filename>contrib/dblink</>'s handling of tables containing
-      dropped columns (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix connection leak after <quote>duplicate connection name</quote>
-      errors in <filename>contrib/dblink</> (Itagaki Takahiro)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <filename>contrib/dblink</> to handle connection names longer than
-      62 bytes correctly (Itagaki Takahiro)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Add <function>hstore(text, text)</>
-      function to <filename>contrib/hstore</> (Robert Haas)
-     </para>
-
-     <para>
-      This function is the recommended substitute for the now-deprecated
-      <literal>=&gt;</> operator.  It was back-patched so that future-proofed
-      code can be used with older server versions.  Note that the patch will
-      be effective only after <filename>contrib/hstore</> is installed or
-      reinstalled in a particular database.  Users might prefer to execute
-      the <command>CREATE FUNCTION</> command by hand, instead.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update build infrastructure and documentation to reflect the source code
-      repository's move from CVS to Git (Magnus Hagander and others)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2010l
-      for DST law changes in Egypt and Palestine; also historical corrections
-      for Finland.
-     </para>
-
-     <para>
-      This change also adds new names for two Micronesian timezones:
-      Pacific/Chuuk is now preferred over Pacific/Truk (and the preferred
-      abbreviation is CHUT not TRUT) and Pacific/Pohnpei is preferred over
-      Pacific/Ponape.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make Windows' <quote>N. Central Asia Standard Time</> timezone map to
-      Asia/Novosibirsk, not Asia/Almaty (Magnus Hagander)
-     </para>
-
-     <para>
-      Microsoft changed the DST behavior of this zone in the timezone update
-      from KB976098. Asia/Novosibirsk is a better match to its new behavior.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-3-11">
-  <title>Release 8.3.11</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2010-05-17</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.3.10.
-   For information about new features in the 8.3 major release, see
-   <xref linkend="release-8-3">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.3.11</title>
-
-   <para>
-    A dump/restore is not required for those running 8.3.X.
-    However, if you are upgrading from a version earlier than 8.3.8,
-    see <xref linkend="release-8-3-8">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Enforce restrictions in <literal>plperl</> using an opmask applied to
-      the whole interpreter, instead of using <filename>Safe.pm</>
-      (Tim Bunce, Andrew Dunstan)
-     </para>
-
-     <para>
-      Recent developments have convinced us that <filename>Safe.pm</> is too
-      insecure to rely on for making <literal>plperl</> trustable.  This
-      change removes use of <filename>Safe.pm</> altogether, in favor of using
-      a separate interpreter with an opcode mask that is always applied.
-      Pleasant side effects of the change include that it is now possible to
-      use Perl's <literal>strict</> pragma in a natural way in
-      <literal>plperl</>, and that Perl's <literal>$a</> and <literal>$b</>
-      variables work as expected in sort routines, and that function
-      compilation is significantly faster.  (CVE-2010-1169)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent PL/Tcl from executing untrustworthy code from
-      <structname>pltcl_modules</> (Tom)
-     </para>
-
-     <para>
-      PL/Tcl's feature for autoloading Tcl code from a database table
-      could be exploited for trojan-horse attacks, because there was no
-      restriction on who could create or insert into that table.  This change
-      disables the feature unless <structname>pltcl_modules</> is owned by a
-      superuser.  (However, the permissions on the table are not checked, so
-      installations that really need a less-than-secure modules table can
-      still grant suitable privileges to trusted non-superusers.)  Also,
-      prevent loading code into the unrestricted <quote>normal</> Tcl
-      interpreter unless we are really going to execute a <literal>pltclu</>
-      function.  (CVE-2010-1170)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible crash if a cache reset message is received during
-      rebuild of a relcache entry (Heikki)
-     </para>
-
-     <para>
-      This error was introduced in 8.3.10 while fixing a related failure.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Apply per-function GUC settings while running the language validator
-      for the function (Itagaki Takahiro)
-     </para>
-
-     <para>
-      This avoids failures if the function's code is invalid without the
-      setting; an example is that SQL functions may not parse if the
-      <varname>search_path</> is not correct.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Do not allow an unprivileged user to reset superuser-only parameter
-      settings (Alvaro)
-     </para>
-
-     <para>
-      Previously, if an unprivileged user ran <literal>ALTER USER ... RESET
-      ALL</> for himself, or <literal>ALTER DATABASE ... RESET ALL</> for
-      a database he owns, this would remove all special parameter settings
-      for the user or database, even ones that are only supposed to be
-      changeable by a superuser.  Now, the <command>ALTER</> will only
-      remove the parameters that the user has permission to change.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid possible crash during backend shutdown if shutdown occurs
-      when a <literal>CONTEXT</> addition would be made to log entries (Tom)
-     </para>
-
-     <para>
-      In some cases the context-printing function would fail because the
-      current transaction had already been rolled back when it came time
-      to print a log message.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure the archiver process responds to changes in
-      <varname>archive_command</> as soon as possible (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update pl/perl's <filename>ppport.h</> for modern Perl versions
-      (Andrew)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix assorted memory leaks in pl/python (Andreas Freund, Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent infinite recursion in <application>psql</> when expanding
-      a variable that refers to itself (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>psql</>'s <literal>\copy</> to not add spaces around
-      a dot within <literal>\copy (select ...)</> (Tom)
-     </para>
-
-     <para>
-      Addition of spaces around the decimal point in a numeric literal would
-      result in a syntax error.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix unnecessary <quote>GIN indexes do not support whole-index scans</>
-      errors for unsatisfiable queries using <filename>contrib/intarray</>
-      operators (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure that <filename>contrib/pgstattuple</> functions respond to cancel
-      interrupts promptly (Tatsuhito Kasahara)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make server startup deal properly with the case that
-      <function>shmget()</> returns <literal>EINVAL</> for an existing
-      shared memory segment (Tom)
-     </para>
-
-     <para>
-      This behavior has been observed on BSD-derived kernels including OS X.
-      It resulted in an entirely-misleading startup failure complaining that
-      the shared memory request size was too large.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid possible crashes in syslogger process on Windows (Heikki)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Deal more robustly with incomplete time zone information in the
-      Windows registry (Magnus)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update the set of known Windows time zone names (Magnus)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2010j
-      for DST law changes in Argentina, Australian Antarctic, Bangladesh,
-      Mexico, Morocco, Pakistan, Palestine, Russia, Syria, Tunisia;
-      also historical corrections for Taiwan.
-     </para>
-
-     <para>
-      Also, add <literal>PKST</> (Pakistan Summer Time) to the default set of
-      timezone abbreviations.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-3-10">
-  <title>Release 8.3.10</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2010-03-15</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.3.9.
-   For information about new features in the 8.3 major release, see
-   <xref linkend="release-8-3">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.3.10</title>
-
-   <para>
-    A dump/restore is not required for those running 8.3.X.
-    However, if you are upgrading from a version earlier than 8.3.8,
-    see <xref linkend="release-8-3-8">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Add new configuration parameter <varname>ssl_renegotiation_limit</> to
-      control how often we do session key renegotiation for an SSL connection
-      (Magnus)
-     </para>
-
-     <para>
-      This can be set to zero to disable renegotiation completely, which may
-      be required if a broken SSL library is used.  In particular, some
-      vendors are shipping stopgap patches for CVE-2009-3555 that cause
-      renegotiation attempts to fail.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible deadlock during backend startup (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible crashes due to not handling errors during relcache reload
-      cleanly (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible crash due to use of dangling pointer to a cached plan
-      (Tatsuo)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible crashes when trying to recover from a failure in
-      subtransaction start (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix server memory leak associated with use of savepoints and a client
-      encoding different from server's encoding (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix incorrect WAL data emitted during end-of-recovery cleanup of a GIST
-      index page split (Yoichi Hirai)
-     </para>
-
-     <para>
-      This would result in index corruption, or even more likely an error
-      during WAL replay, if we were unlucky enough to crash during
-      end-of-recovery cleanup after having completed an incomplete GIST
-      insertion.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <function>substring()</> for <type>bit</> types treat any negative
-      length as meaning <quote>all the rest of the string</> (Tom)
-     </para>
-
-     <para>
-      The previous coding treated only -1 that way, and would produce an
-      invalid result value for other negative values, possibly leading to
-      a crash (CVE-2010-0442).
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix integer-to-bit-string conversions to handle the first fractional
-      byte correctly when the output bit width is wider than the given
-      integer by something other than a multiple of 8 bits (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix some cases of pathologically slow regular expression matching (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix assorted crashes in <type>xml</> processing caused by sloppy
-      memory management (Tom)
-     </para>
-
-     <para>
-      This is a back-patch of changes first applied in 8.4.  The 8.3 code
-      was known buggy, but the new code was sufficiently different to not
-      want to back-patch it until it had gotten some field testing.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix bug with trying to update a field of an element of a
-      composite-type array column (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix the <literal>STOP WAL LOCATION</> entry in backup history files to
-      report the next WAL segment's name when the end location is exactly at a
-      segment boundary (Itagaki Takahiro)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix some more cases of temporary-file leakage (Heikki)
-     </para>
-
-     <para>
-      This corrects a problem introduced in the previous minor release.
-      One case that failed is when a plpgsql function returning set is
-      called within another function's exception handler.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve constraint exclusion processing of boolean-variable cases,
-      in particular make it possible to exclude a partition that has a
-      <quote>bool_column = false</> constraint (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      When reading <filename>pg_hba.conf</> and related files, do not treat
-      <literal>@something</> as a file inclusion request if the <literal>@</>
-      appears inside quote marks; also, never treat <literal>@</> by itself
-      as a file inclusion request (Tom)
-     </para>
-
-     <para>
-      This prevents erratic behavior if a role or database name starts with
-      <literal>@</>.  If you need to include a file whose path name
-      contains spaces, you can still do so, but you must write
-      <literal>@"/path to/file"</> rather than putting the quotes around
-      the whole construct.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent infinite loop on some platforms if a directory is named as
-      an inclusion target in <filename>pg_hba.conf</> and related files
-      (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible infinite loop if <function>SSL_read</> or
-      <function>SSL_write</> fails without setting <varname>errno</> (Tom)
-     </para>
-
-     <para>
-      This is reportedly possible with some Windows versions of
-      <application>openssl</>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Disallow <acronym>GSSAPI</> authentication on local connections,
-      since it requires a hostname to function correctly (Magnus)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <application>ecpg</> report the proper SQLSTATE if the connection
-      disappears (Michael)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>psql</>'s <literal>numericlocale</> option to not
-      format strings it shouldn't in latex and troff output formats (Heikki)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <application>psql</> return the correct exit status (3) when
-      <literal>ON_ERROR_STOP</> and <literal>--single-transaction</> are
-      both specified and an error occurs during the implied <command>COMMIT</>
-      (Bruce)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix plpgsql failure in one case where a composite column is set to NULL
-      (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible failure when calling PL/Perl functions from PL/PerlU
-      or vice versa (Tim Bunce)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Add <literal>volatile</> markings in PL/Python to avoid possible
-      compiler-specific misbehavior (Zdenek Kotala)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure PL/Tcl initializes the Tcl interpreter fully (Tom)
-     </para>
-
-     <para>
-      The only known symptom of this oversight is that the Tcl
-      <literal>clock</> command misbehaves if using Tcl 8.5 or later.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent crash in <filename>contrib/dblink</> when too many key
-      columns are specified to a <function>dblink_build_sql_*</> function
-      (Rushabh Lathia, Joe Conway)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Allow zero-dimensional arrays in <filename>contrib/ltree</> operations
-      (Tom)
-     </para>
-
-     <para>
-      This case was formerly rejected as an error, but it's more convenient to
-      treat it the same as a zero-element array.  In particular this avoids
-      unnecessary failures when an <type>ltree</> operation is applied to the
-      result of <literal>ARRAY(SELECT ...)</> and the sub-select returns no
-      rows.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix assorted crashes in <filename>contrib/xml2</> caused by sloppy
-      memory management (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make building of <filename>contrib/xml2</> more robust on Windows
-      (Andrew)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix race condition in Windows signal handling (Radu Ilie)
-     </para>
-
-     <para>
-      One known symptom of this bug is that rows in <structname>pg_listener</>
-      could be dropped under heavy load.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2010e
-      for DST law changes in Bangladesh, Chile, Fiji, Mexico, Paraguay, Samoa.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-3-9">
-  <title>Release 8.3.9</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2009-12-14</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.3.8.
-   For information about new features in the 8.3 major release, see
-   <xref linkend="release-8-3">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.3.9</title>
-
-   <para>
-    A dump/restore is not required for those running 8.3.X.
-    However, if you are upgrading from a version earlier than 8.3.8,
-    see <xref linkend="release-8-3-8">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Protect against indirect security threats caused by index functions
-      changing session-local state (Gurjeet Singh, Tom)
-     </para>
-
-     <para>
-      This change prevents allegedly-immutable index functions from possibly
-      subverting a superuser's session (CVE-2009-4136).
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Reject SSL certificates containing an embedded null byte in the common
-      name (CN) field (Magnus)
-     </para>
-
-     <para>
-      This prevents unintended matching of a certificate to a server or client
-      name during SSL validation (CVE-2009-4034).
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible crash during backend-startup-time cache initialization (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid crash on empty thesaurus dictionary (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent signals from interrupting <literal>VACUUM</> at unsafe times
-      (Alvaro)
-     </para>
-
-     <para>
-      This fix prevents a PANIC if a <literal>VACUUM FULL</> is canceled
-      after it's already committed its tuple movements, as well as transient
-      errors if a plain <literal>VACUUM</> is interrupted after having
-      truncated the table.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible crash due to integer overflow in hash table size
-      calculation (Tom)
-     </para>
-
-     <para>
-      This could occur with extremely large planner estimates for the size of
-      a hashjoin's result.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix very rare crash in <type>inet</>/<type>cidr</> comparisons (Chris
-      Mikkelson)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure that shared tuple-level locks held by prepared transactions are
-      not ignored (Heikki)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix premature drop of temporary files used for a cursor that is accessed
-      within a subtransaction (Heikki)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix memory leak in syslogger process when rotating to a new CSV logfile
-      (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix Windows permission-downgrade logic (Jesse Morris)
-     </para>
-
-     <para>
-      This fixes some cases where the database failed to start on Windows,
-      often with misleading error messages such as <quote>could not locate
-      matching postgres executable</quote>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix incorrect logic for GiST index page splits, when the split depends
-      on a non-first column of the index (Paul Ramsey)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Don't error out if recycling or removing an old WAL file fails at the
-      end of checkpoint (Heikki)
-     </para>
-
-     <para>
-      It's better to treat the problem as non-fatal and allow the checkpoint
-      to complete.  Future checkpoints will retry the removal.  Such problems
-      are not expected in normal operation, but have been seen to be
-      caused by misdesigned Windows anti-virus and backup software.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure WAL files aren't repeatedly archived on Windows (Heikki)
-     </para>
-
-     <para>
-      This is another symptom that could happen if some other process
-      interfered with deletion of a no-longer-needed file.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix PAM password processing to be more robust (Tom)
-     </para>
-
-     <para>
-      The previous code is known to fail with the combination of the Linux
-      <literal>pam_krb5</> PAM module with Microsoft Active Directory as the
-      domain controller.  It might have problems elsewhere too, since it was
-      making unjustified assumptions about what arguments the PAM stack would
-      pass to it.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Raise the maximum authentication token (Kerberos ticket) size in GSSAPI
-      and SSPI authentication methods (Ian Turner)
-     </para>
-
-     <para>
-      While the old 2000-byte limit was more than enough for Unix Kerberos
-      implementations, tickets issued by Windows Domain Controllers can be
-      much larger.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Re-enable collection of access statistics for sequences (Akira Kurosawa)
-     </para>
-
-     <para>
-      This used to work but was broken in 8.3.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix processing of ownership dependencies during <literal>CREATE OR
-      REPLACE FUNCTION</> (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix incorrect handling of <literal>WHERE</>
-      <replaceable>x</>=<replaceable>x</> conditions (Tom)
-     </para>
-
-     <para>
-      In some cases these could get ignored as redundant, but they aren't
-      &mdash; they're equivalent to <replaceable>x</> <literal>IS NOT NULL</>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make text search parser accept underscores in XML attributes (Peter)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix encoding handling in <type>xml</> binary input (Heikki)
-     </para>
-
-     <para>
-      If the XML header doesn't specify an encoding, we now assume UTF-8 by
-      default; the previous handling was inconsistent.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix bug with calling <literal>plperl</> from <literal>plperlu</> or vice
-      versa (Tom)
-     </para>
-
-     <para>
-      An error exit from the inner function could result in crashes due to
-      failure to re-select the correct Perl interpreter for the outer function.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix session-lifespan memory leak when a PL/Perl function is redefined
-      (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure that Perl arrays are properly converted to
-      <productname>PostgreSQL</> arrays when returned by a set-returning
-      PL/Perl function (Andrew Dunstan, Abhijit Menon-Sen)
-     </para>
-
-     <para>
-      This worked correctly already for non-set-returning functions.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix rare crash in exception processing in PL/Python (Peter)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      In <filename>contrib/pg_standby</>, disable triggering failover with a
-      signal on Windows (Fujii Masao)
-     </para>
-
-     <para>
-      This never did anything useful, because Windows doesn't have Unix-style
-      signals, but recent changes made it actually crash.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure <application>psql</>'s flex module is compiled with the correct
-      system header definitions (Tom)
-     </para>
-
-     <para>
-      This fixes build failures on platforms where
-      <literal>--enable-largefile</> causes incompatible changes in the
-      generated code.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make the postmaster ignore any <literal>application_name</> parameter in
-      connection request packets, to improve compatibility with future libpq
-      versions (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update the timezone abbreviation files to match current reality (Joachim
-      Wieland)
-     </para>
-
-     <para>
-      This includes adding <literal>IDT</> and <literal>SGT</> to the default
-      timezone abbreviation set.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2009s
-      for DST law changes in Antarctica, Argentina, Bangladesh, Fiji,
-      Novokuznetsk, Pakistan, Palestine, Samoa, Syria; also historical
-      corrections for Hong Kong.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-3-8">
-  <title>Release 8.3.8</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2009-09-09</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.3.7.
-   For information about new features in the 8.3 major release, see
-   <xref linkend="release-8-3">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.3.8</title>
-
-   <para>
-    A dump/restore is not required for those running 8.3.X.
-    However, if you have any hash indexes on <type>interval</> columns,
-    you must <command>REINDEX</> them after updating to 8.3.8.
-    Also, if you are upgrading from a version earlier than 8.3.5,
-    see <xref linkend="release-8-3-5">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Fix Windows shared-memory allocation code (Tsutomu Yamada, Magnus)
-     </para>
-
-     <para>
-      This bug led to the often-reported <quote>could not reattach
-      to shared memory</> error message.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Force WAL segment switch during <function>pg_start_backup()</>
-      (Heikki)
-     </para>
-
-     <para>
-      This avoids corner cases that could render a base backup unusable.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Disallow <command>RESET ROLE</> and <command>RESET SESSION
-      AUTHORIZATION</> inside security-definer functions (Tom, Heikki)
-     </para>
-
-     <para>
-      This covers a case that was missed in the previous patch that
-      disallowed <command>SET ROLE</> and <command>SET SESSION
-      AUTHORIZATION</> inside security-definer functions.
-      (See CVE-2007-6600)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <command>LOAD</> of an already-loaded loadable module
-      into a no-op (Tom)
-     </para>
-
-     <para>
-      Formerly, <command>LOAD</> would attempt to unload and re-load the
-      module, but this is unsafe and not all that useful.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Disallow empty passwords during LDAP authentication (Magnus)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix handling of sub-SELECTs appearing in the arguments of
-      an outer-level aggregate function (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix bugs associated with fetching a whole-row value from the
-      output of a Sort or Materialize plan node (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent <varname>synchronize_seqscans</> from changing the results of
-      scrollable and <literal>WITH HOLD</> cursors (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Revert planner change that disabled partial-index and constraint
-      exclusion optimizations when there were more than 100 clauses in
-      an AND or OR list (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix hash calculation for data type <type>interval</> (Tom)
-     </para>
-
-     <para>
-      This corrects wrong results for hash joins on interval values.
-      It also changes the contents of hash indexes on interval columns.
-      If you have any such indexes, you must <command>REINDEX</> them
-      after updating.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Treat <function>to_char(..., 'TH')</> as an uppercase ordinal
-      suffix with <literal>'HH'</>/<literal>'HH12'</> (Heikki)
-     </para>
-
-     <para>
-      It was previously handled as <literal>'th'</> (lowercase).
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix overflow for <literal>INTERVAL '<replaceable>x</> ms'</literal>
-      when <replaceable>x</> is more than 2 million and integer
-      datetimes are in use (Alex Hunsaker)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix calculation of distance between a point and a line segment (Tom)
-     </para>
-
-     <para>
-      This led to incorrect results from a number of geometric operators.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <type>money</> data type to work in locales where currency
-      amounts have no fractional digits, e.g. Japan (Itagaki Takahiro)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <literal>LIKE</> for case where pattern contains <literal>%_</>
-      (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Properly round datetime input like
-      <literal>00:12:57.9999999999999999999999999999</> (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix memory leaks in XML operations (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix poor choice of page split point in GiST R-tree operator classes
-      (Teodor)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure that a <quote>fast shutdown</> request will forcibly terminate
-      open sessions, even if a <quote>smart shutdown</> was already in progress
-      (Fujii Masao)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid performance degradation in bulk inserts into GIN indexes
-      when the input values are (nearly) in sorted order (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Correctly enforce NOT NULL domain constraints in some contexts in
-      PL/pgSQL (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix portability issues in plperl initialization (Andrew Dunstan)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>pg_ctl</> to not go into an infinite loop if
-      <filename>postgresql.conf</> is empty (Jeff Davis)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve <application>pg_dump</>'s efficiency when there are
-      many large objects (Tamas Vincze)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Use <literal>SIGUSR1</>, not <literal>SIGQUIT</>, as the
-      failover signal for <application>pg_standby</> (Heikki)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <application>pg_standby</>'s <literal>maxretries</> option
-      behave as documented (Fujii Masao)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <filename>contrib/hstore</> throw an error when a key or
-      value is too long to fit in its data structure, rather than
-      silently truncating it (Andrew Gierth)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <filename>contrib/xml2</>'s <function>xslt_process()</> to
-      properly handle the maximum number of parameters (twenty) (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve robustness of <application>libpq</>'s code to recover
-      from errors during <command>COPY FROM STDIN</> (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid including conflicting readline and editline header files
-      when both libraries are installed (Zdenek Kotala)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2009l
-      for DST law changes in Bangladesh, Egypt, Jordan, Pakistan,
-      Argentina/San_Luis, Cuba, Jordan (historical correction only),
-      Mauritius, Morocco, Palestine, Syria, Tunisia.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-3-7">
-  <title>Release 8.3.7</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2009-03-16</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.3.6.
-   For information about new features in the 8.3 major release, see
-   <xref linkend="release-8-3">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.3.7</title>
-
-   <para>
-    A dump/restore is not required for those running 8.3.X.
-    However, if you are upgrading from a version earlier than 8.3.5,
-    see <xref linkend="release-8-3-5">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Prevent error recursion crashes when encoding conversion fails (Tom)
-     </para>
-
-     <para>
-      This change extends fixes made in the last two minor releases for
-      related failure scenarios.  The previous fixes were narrowly tailored
-      for the original problem reports, but we have now recognized that
-      <emphasis>any</> error thrown by an encoding conversion function could
-      potentially lead to infinite recursion while trying to report the
-      error.  The solution therefore is to disable translation and encoding
-      conversion and report the plain-ASCII form of any error message,
-      if we find we have gotten into a recursive error reporting situation.
-      (CVE-2009-0922)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Disallow <command>CREATE CONVERSION</> with the wrong encodings
-      for the specified conversion function (Heikki)
-     </para>
-
-     <para>
-      This prevents one possible scenario for encoding conversion failure.
-      The previous change is a backstop to guard against other kinds of
-      failures in the same area.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <function>xpath()</> to not modify the path expression unless
-      necessary, and to make a saner attempt at it when necessary (Andrew)
-     </para>
-
-     <para>
-      The SQL standard suggests that <function>xpath</> should work on data
-      that is a document fragment, but <application>libxml</> doesn't support
-      that, and indeed it's not clear that this is sensible according to the
-      XPath standard.  <function>xpath</> attempted to work around this
-      mismatch by modifying both the data and the path expression, but the
-      modification was buggy and could cause valid searches to fail.  Now,
-      <function>xpath</> checks whether the data is in fact a well-formed
-      document, and if so invokes <application>libxml</> with no change to the
-      data or path expression.  Otherwise, a different modification method
-      that is somewhat less likely to fail is used.
-     </para>
-
-     <note>
-      <para>
-       The new modification method is still not 100% satisfactory, and it
-       seems likely that no real solution is possible.  This patch should
-       therefore be viewed as a band-aid to keep from breaking existing
-       applications unnecessarily.  It is likely that
-       <productname>PostgreSQL</> 8.4 will simply reject use of
-       <function>xpath</> on data that is not a well-formed document.
-      </para>
-     </note>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix core dump when <function>to_char()</> is given format codes that
-      are inappropriate for the type of the data argument (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible failure in text search when C locale is used with
-      a multi-byte encoding (Teodor)
-     </para>
-
-     <para>
-      Crashes were possible on platforms where <type>wchar_t</> is narrower
-      than <type>int</>; Windows in particular.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix extreme inefficiency in text search parser's handling of an
-      email-like string containing multiple <literal>@</> characters (Heikki)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix planner problem with sub-<command>SELECT</> in the output list
-      of a larger subquery (Tom)
-     </para>
-
-     <para>
-      The known symptom of this bug is a <quote>failed to locate grouping
-      columns</> error that is dependent on the datatype involved;
-      but there could be other issues as well.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix decompilation of <literal>CASE WHEN</> with an implicit coercion
-      (Tom)
-     </para>
-
-     <para>
-      This mistake could lead to Assert failures in an Assert-enabled build,
-      or an <quote>unexpected CASE WHEN clause</> error message in other
-      cases, when trying to examine or dump a view.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible misassignment of the owner of a TOAST table's rowtype (Tom)
-     </para>
-
-     <para>
-      If <command>CLUSTER</> or a rewriting variant of <command>ALTER TABLE</>
-      were executed by someone other than the table owner, the
-      <structname>pg_type</> entry for the table's TOAST table would end up
-      marked as owned by that someone.  This caused no immediate problems,
-      since the permissions on the TOAST rowtype aren't examined by any
-      ordinary database operation.  However, it could lead to unexpected
-      failures if one later tried to drop the role that issued the command
-      (in 8.1 or 8.2), or <quote>owner of data type appears to be invalid</>
-      warnings from <application>pg_dump</> after having done so (in 8.3).
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Change <command>UNLISTEN</> to exit quickly if the current session has
-      never executed any <command>LISTEN</> command (Tom)
-     </para>
-
-     <para>
-      Most of the time this is not a particularly useful optimization, but
-      since <command>DISCARD ALL</> invokes <command>UNLISTEN</>, the previous
-      coding caused a substantial performance problem for applications that
-      made heavy use of <command>DISCARD ALL</>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix PL/pgSQL to not treat <literal>INTO</> after <command>INSERT</> as
-      an INTO-variables clause anywhere in the string, not only at the start;
-      in particular, don't fail for <command>INSERT INTO</> within
-      <command>CREATE RULE</> (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Clean up PL/pgSQL error status variables fully at block exit
-      (Ashesh Vashi and Dave Page)
-     </para>
-
-     <para>
-      This is not a problem for PL/pgSQL itself, but the omission could cause
-      the PL/pgSQL Debugger to crash while examining the state of a function.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Retry failed calls to <function>CallNamedPipe()</> on Windows
-      (Steve Marshall, Magnus)
-     </para>
-
-     <para>
-      It appears that this function can sometimes fail transiently;
-      we previously treated any failure as a hard error, which could
-      confuse <command>LISTEN</>/<command>NOTIFY</> as well as other
-      operations.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Add <literal>MUST</> (Mauritius Island Summer Time) to the default list
-      of known timezone abbreviations (Xavier Bugaud)
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-3-6">
-  <title>Release 8.3.6</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2009-02-02</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.3.5.
-   For information about new features in the 8.3 major release, see
-   <xref linkend="release-8-3">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.3.6</title>
-
-   <para>
-    A dump/restore is not required for those running 8.3.X.
-    However, if you are upgrading from a version earlier than 8.3.5,
-    see <xref linkend="release-8-3-5">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Make <command>DISCARD ALL</> release advisory locks, in addition
-      to everything it already did (Tom)
-     </para>
-
-     <para>
-      This was decided to be the most appropriate behavior.  This could
-      affect existing applications, however.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix whole-index GiST scans to work correctly (Teodor)
-     </para>
-
-     <para>
-      This error could cause rows to be lost if a table is clustered
-      on a GiST index.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix crash of <literal>xmlconcat(NULL)</> (Peter)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible crash in <literal>ispell</> dictionary if high-bit-set
-      characters are used as flags (Teodor)
-     </para>
-
-     <para>
-      This is known to be done by one widely available Norwegian dictionary,
-      and the same condition may exist in others.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix misordering of <application>pg_dump</> output for composite types
-      (Tom)
-     </para>
-
-     <para>
-      The most likely problem was for user-defined operator classes to
-      be dumped after indexes or views that needed them.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve handling of URLs in <function>headline()</> function (Teodor)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve handling of overlength headlines in <function>headline()</>
-      function (Teodor)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent possible Assert failure or misconversion if an encoding
-      conversion is created with the wrong conversion function for the
-      specified pair of encodings (Tom, Heikki)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible Assert failure if a statement executed in PL/pgSQL is
-      rewritten into another kind of statement, for example if an
-      <command>INSERT</> is rewritten into an <command>UPDATE</> (Heikki)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure that a snapshot is available to datatype input functions (Tom)
-     </para>
-
-     <para>
-      This primarily affects domains that are declared with <literal>CHECK</>
-      constraints involving user-defined stable or immutable functions.  Such
-      functions typically fail if no snapshot has been set.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make it safer for SPI-using functions to be used within datatype I/O;
-      in particular, to be used in domain check constraints (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid unnecessary locking of small tables in <command>VACUUM</>
-      (Heikki)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix a problem that sometimes kept <command>ALTER TABLE ENABLE/DISABLE
-      RULE</> from being recognized by active sessions (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix a problem that made <literal>UPDATE RETURNING tableoid</>
-      return zero instead of the correct OID (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Allow functions declared as taking <type>ANYARRAY</> to work on
-      the <structname>pg_statistic</> columns of that type (Tom)
-     </para>
-
-     <para>
-      This used to work, but was unintentionally broken in 8.3.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix planner misestimation of selectivity when transitive equality
-      is applied to an outer-join clause (Tom)
-     </para>
-
-     <para>
-      This could result in bad plans for queries like
-      <literal>... from a left join b on a.a1 = b.b1 where a.a1 = 42 ...</>
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve optimizer's handling of long <literal>IN</> lists (Tom)
-     </para>
-
-     <para>
-      This change avoids wasting large amounts of time on such lists
-      when constraint exclusion is enabled.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent synchronous scan during GIN index build (Tom)
-     </para>
-
-     <para>
-      Because GIN is optimized for inserting tuples in increasing TID order,
-      choosing to use a synchronous scan could slow the build by a factor of
-      three or more.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure that the contents of a holdable cursor don't depend on the
-      contents of TOAST tables (Tom)
-     </para>
-
-     <para>
-      Previously, large field values in a cursor result might be represented
-      as TOAST pointers, which would fail if the referenced table got dropped
-      before the cursor is read, or if the large value is deleted and then
-      vacuumed away.  This cannot happen with an ordinary cursor,
-      but it could with a cursor that is held past its creating transaction.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix memory leak when a set-returning function is terminated without
-      reading its whole result (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix encoding conversion problems in XML functions when the database
-      encoding isn't UTF-8 (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <filename>contrib/dblink</>'s
-      <function>dblink_get_result(text,bool)</> function (Joe)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible garbage output from <filename>contrib/sslinfo</> functions
-      (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix incorrect behavior of <filename>contrib/tsearch2</> compatibility
-      trigger when it's fired more than once in a command (Teodor)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible mis-signaling in autovacuum (Heikki)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Support running as a service on Windows 7 beta (Dave and Magnus)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>ecpg</>'s handling of varchar structs (Michael)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>configure</> script to properly report failure when
-      unable to obtain linkage information for PL/Perl (Andrew)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make all documentation reference <literal>pgsql-bugs</> and/or
-      <literal>pgsql-hackers</> as appropriate, instead of the
-      now-decommissioned <literal>pgsql-ports</> and <literal>pgsql-patches</>
-      mailing lists (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2009a (for
-      Kathmandu and historical DST corrections in Switzerland, Cuba)
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-3-5">
-  <title>Release 8.3.5</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2008-11-03</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.3.4.
-   For information about new features in the 8.3 major release, see
-   <xref linkend="release-8-3">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.3.5</title>
-
-   <para>
-    A dump/restore is not required for those running 8.3.X.
-    However, if you are upgrading from a version earlier than 8.3.1,
-    see <xref linkend="release-8-3-1">.  Also, if you were running a previous
-    8.3.X release, it is recommended to <command>REINDEX</> all GiST
-    indexes after the upgrade.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Fix GiST index corruption due to marking the wrong index entry
-      <quote>dead</> after a deletion (Teodor)
-     </para>
-
-     <para>
-      This would result in index searches failing to find rows they
-      should have found.  Corrupted indexes can be fixed with
-      <command>REINDEX</>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix backend crash when the client encoding cannot represent a localized
-      error message (Tom)
-     </para>
-
-     <para>
-      We have addressed similar issues before, but it would still fail if
-      the <quote>character has no equivalent</> message itself couldn't
-      be converted.  The fix is to disable localization and send the plain
-      ASCII error message when we detect such a situation.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible crash in <type>bytea</>-to-XML mapping (Michael McMaster)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible crash when deeply nested functions are invoked from
-      a trigger (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve optimization of <replaceable>expression</> <literal>IN</>
-      (<replaceable>expression-list</>) queries (Tom, per an idea from Robert
-      Haas)
-     </para>
-
-     <para>
-      Cases in which there are query variables on the right-hand side had been
-      handled less efficiently in 8.2.x and 8.3.x than in prior versions.
-      The fix restores 8.1 behavior for such cases.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix mis-expansion of rule queries when a sub-<literal>SELECT</> appears
-      in a function call in <literal>FROM</>,  a multi-row <literal>VALUES</>
-      list, or a <literal>RETURNING</> list (Tom)
-     </para>
-
-     <para>
-      The usual symptom of this problem is an <quote>unrecognized node type</>
-      error.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix Assert failure during rescan of an <literal>IS NULL</>
-      search of a GiST index (Teodor)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix memory leak during rescan of a hashed aggregation plan (Neil)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure an error is reported when a newly-defined PL/pgSQL trigger
-      function is invoked as a normal function (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Force a checkpoint before <command>CREATE DATABASE</> starts to copy
-      files (Heikki)
-     </para>
-
-     <para>
-      This prevents a possible failure if files had recently been deleted
-      in the source database.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent possible collision of <structfield>relfilenode</> numbers
-      when moving a table to another tablespace with <command>ALTER SET
-      TABLESPACE</> (Heikki)
-     </para>
-
-     <para>
-      The command tried to re-use the existing filename, instead of
-      picking one that is known unused in the destination directory.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix incorrect text search headline generation when single query
-      item matches first word of text (Sushant Sinha)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix improper display of fractional seconds in interval values when
-      using a non-ISO datestyle in an <option>--enable-integer-datetimes</>
-      build (Ron Mayer)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <literal>ILIKE</> compare characters case-insensitively
-      even when they're escaped (Andrew)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure <command>DISCARD</> is handled properly by statement logging (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix incorrect logging of last-completed-transaction time during
-      PITR recovery (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure <function>SPI_getvalue</> and <function>SPI_getbinval</>
-      behave correctly when the passed tuple and tuple descriptor have
-      different numbers of columns (Tom)
-     </para>
-
-     <para>
-      This situation is normal when a table has had columns added or removed,
-      but these two functions didn't handle it properly.
-      The only likely consequence is an incorrect error indication.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Mark <varname>SessionReplicationRole</> as <literal>PGDLLIMPORT</>
-      so it can be used by <application>Slony</> on Windows (Magnus)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix small memory leak when using <application>libpq</>'s
-      <literal>gsslib</> parameter (Magnus)
-     </para>
-
-     <para>
-      The space used by the parameter string was not freed at connection
-      close.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure <application>libgssapi</> is linked into <application>libpq</>
-      if needed (Markus Schaaf)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>ecpg</>'s parsing of <command>CREATE ROLE</> (Michael)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix recent breakage of <literal>pg_ctl restart</> (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure <filename>pg_control</> is opened in binary mode
-      (Itagaki Takahiro)
-     </para>
-
-     <para>
-      <application>pg_controldata</> and <application>pg_resetxlog</>
-      did this incorrectly, and so could fail on Windows.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2008i (for
-      DST law changes in Argentina, Brazil, Mauritius, Syria)
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-3-4">
-  <title>Release 8.3.4</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2008-09-22</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.3.3.
-   For information about new features in the 8.3 major release, see
-   <xref linkend="release-8-3">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.3.4</title>
-
-   <para>
-    A dump/restore is not required for those running 8.3.X.
-    However, if you are upgrading from a version earlier than 8.3.1,
-    see <xref linkend="release-8-3-1">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Fix bug in btree WAL recovery code (Heikki)
-     </para>
-
-     <para>
-      Recovery failed if the WAL ended partway through a page split operation.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix potential use of wrong cutoff XID for HOT page pruning (Alvaro)
-     </para>
-
-     <para>
-      This error created a risk of corruption in system
-      catalogs that are consulted by <command>VACUUM</>: dead tuple versions
-      might be removed too soon.  The impact of this on actual database
-      operations would be minimal, since the system doesn't follow MVCC
-      rules while examining catalogs, but it might result in transiently
-      wrong output from <application>pg_dump</> or other client programs.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix potential miscalculation of <structfield>datfrozenxid</> (Alvaro)
-     </para>
-
-     <para>
-      This error may explain some recent reports of failure to remove old
-      <structname>pg_clog</> data.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix incorrect HOT updates after <structname>pg_class</> is reindexed
-      (Tom)
-     </para>
-
-     <para>
-      Corruption of <structname>pg_class</> could occur if <literal>REINDEX
-      TABLE pg_class</> was followed in the same session by an <literal>ALTER
-      TABLE RENAME</> or <literal>ALTER TABLE SET SCHEMA</> command.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix missed <quote>combo cid</> case (Karl Schnaitter)
-     </para>
-
-     <para>
-      This error made rows incorrectly invisible to a transaction in which they
-      had been deleted by multiple subtransactions that all aborted.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent autovacuum from crashing if the table it's currently
-      checking is deleted at just the wrong time (Alvaro)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Widen local lock counters from 32 to 64 bits (Tom)
-     </para>
-
-     <para>
-      This responds to reports that the counters could overflow in
-      sufficiently long transactions, leading to unexpected <quote>lock is
-      already held</> errors.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible duplicate output of tuples during a GiST index scan (Teodor)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Regenerate foreign key checking queries from scratch when either
-      table is modified (Tom)
-     </para>
-
-     <para>
-      Previously, 8.3 would attempt to replan the query, but would work from
-      previously generated query text.  This led to failures if a
-      table or column was renamed.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix missed permissions checks when a view contains a simple
-      <literal>UNION ALL</> construct (Heikki)
-     </para>
-
-     <para>
-      Permissions for the referenced tables were checked properly, but not
-      permissions for the view itself.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Add checks in executor startup to ensure that the tuples produced by an
-      <command>INSERT</> or <command>UPDATE</> will match the target table's
-      current rowtype (Tom)
-     </para>
-
-     <para>
-      This situation is believed to be impossible in 8.3, but it can happen in
-      prior releases, so a check seems prudent.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible repeated drops during <command>DROP OWNED</> (Tom)
-     </para>
-
-     <para>
-      This would typically result in strange errors such as <quote>cache
-      lookup failed for relation NNN</>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix several memory leaks in XML operations (Kris Jurka, Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <function>xmlserialize()</> to raise error properly for
-      unacceptable target data type (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix a couple of places that mis-handled multibyte characters in text
-      search configuration file parsing (Tom)
-     </para>
-
-     <para>
-      Certain characters occurring in configuration files would always cause
-      <quote>invalid byte sequence for encoding</> failures.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Provide file name and line number location for all errors reported
-      in text search configuration files (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <literal>AT TIME ZONE</> to first try to interpret its timezone
-      argument as a timezone abbreviation, and only try it as a full timezone
-      name if that fails, rather than the other way around as formerly (Tom)
-     </para>
-
-     <para>
-      The timestamp input functions have always resolved ambiguous zone names
-      in this order.  Making <literal>AT TIME ZONE</> do so as well improves
-      consistency, and fixes a compatibility bug introduced in 8.1:
-      in ambiguous cases we now behave the same as 8.0 and before did,
-      since in the older versions <literal>AT TIME ZONE</> accepted
-      <emphasis>only</> abbreviations.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix datetime input functions to correctly detect integer overflow when
-      running on a 64-bit platform (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent integer overflows during units conversion when displaying a
-      configuration parameter that has units (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve performance of writing very long log messages to syslog (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Allow spaces in the suffix part of an LDAP URL in
-      <filename>pg_hba.conf</> (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix bug in backwards scanning of a cursor on a <literal>SELECT DISTINCT
-      ON</> query (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix planner bug that could improperly push down <literal>IS NULL</>
-      tests below an outer join (Tom)
-     </para>
-
-     <para>
-      This was triggered by occurrence of <literal>IS NULL</> tests for
-      the same relation in all arms of an upper <literal>OR</> clause.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix planner bug with nested sub-select expressions (Tom)
-     </para>
-
-     <para>
-      If the outer sub-select has no direct dependency on the parent query,
-      but the inner one does, the outer value might not get recalculated
-      for new parent query rows.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix planner to estimate that <literal>GROUP BY</> expressions yielding
-      boolean results always result in two groups, regardless of the
-      expressions' contents (Tom)
-     </para>
-
-     <para>
-      This is very substantially more accurate than the regular <literal>GROUP
-      BY</> estimate for certain boolean tests like <replaceable>col</>
-      <literal>IS NULL</>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix PL/pgSQL to not fail when a <literal>FOR</> loop's target variable
-      is a record containing composite-type fields (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix PL/Tcl to behave correctly with Tcl 8.5, and to be more careful
-      about the encoding of data sent to or from Tcl (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve performance of <function>PQescapeBytea()</> (Rudolf Leitgeb)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      On Windows, work around a Microsoft bug by preventing
-      <application>libpq</> from trying to send more than 64kB per system call
-      (Magnus)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>ecpg</> to handle variables properly in <command>SET</>
-      commands (Michael)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve <application>pg_dump</> and <application>pg_restore</>'s
-      error reporting after failure to send a SQL command (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>pg_ctl</> to properly preserve postmaster
-      command-line arguments across a <literal>restart</> (Bruce)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix erroneous WAL file cutoff point calculation in
-      <application>pg_standby</> (Simon)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2008f (for
-      DST law changes in Argentina, Bahamas, Brazil, Mauritius, Morocco,
-      Pakistan, Palestine, and Paraguay)
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-3-3">
-  <title>Release 8.3.3</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2008-06-12</para>
-  </formalpara>
-
-  <para>
-   This release contains one serious and one minor bug fix over 8.3.2.
-   For information about new features in the 8.3 major release, see
-   <xref linkend="release-8-3">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.3.3</title>
-
-   <para>
-    A dump/restore is not required for those running 8.3.X.
-    However, if you are upgrading from a version earlier than 8.3.1,
-    see <xref linkend="release-8-3-1">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Make <function>pg_get_ruledef()</> parenthesize negative constants (Tom)
-     </para>
-
-     <para>
-      Before this fix, a negative constant in a view or rule might be dumped
-      as, say, <literal>-42::integer</>, which is subtly incorrect: it should
-      be <literal>(-42)::integer</> due to operator precedence rules.
-      Usually this would make little difference, but it could interact with
-      another recent patch to cause
-      <productname>PostgreSQL</> to reject what had been a valid
-      <command>SELECT DISTINCT</> view query.  Since this could result in
-      <application>pg_dump</> output failing to reload, it is being treated
-      as a high-priority fix.  The only released versions in which dump
-      output is actually incorrect are 8.3.1 and 8.2.7.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <command>ALTER AGGREGATE ... OWNER TO</> update
-      <structname>pg_shdepend</> (Tom)
-     </para>
-
-     <para>
-      This oversight could lead to problems if the aggregate was later
-      involved in a <command>DROP OWNED</> or <command>REASSIGN OWNED</>
-      operation.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-3-2">
-  <title>Release 8.3.2</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>never released</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.3.1.
-   For information about new features in the 8.3 major release, see
-   <xref linkend="release-8-3">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.3.2</title>
-
-   <para>
-    A dump/restore is not required for those running 8.3.X.
-    However, if you are upgrading from a version earlier than 8.3.1,
-    see <xref linkend="release-8-3-1">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Fix <literal>ERRORDATA_STACK_SIZE exceeded</literal> crash that
-      occurred on Windows when using UTF-8 database encoding and a different
-      client encoding (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix incorrect archive truncation point calculation for the
-      <literal>%r</> macro in <varname>recovery_command</> parameters
-      (Simon)
-     </para>
-
-     <para>
-      This could lead to data loss if a warm-standby script relied on
-      <literal>%r</> to decide when to throw away WAL segment files.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <command>ALTER TABLE ADD COLUMN ... PRIMARY KEY</> so that the new
-      column is correctly checked to see if it's been initialized to all
-      non-nulls (Brendan Jurd)
-     </para>
-
-     <para>
-      Previous versions neglected to check this requirement at all.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <command>REASSIGN OWNED</> so that it works on procedural
-      languages too (Alvaro)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix problems with <command>SELECT FOR UPDATE/SHARE</> occurring as a
-      subquery in a query with a non-<command>SELECT</> top-level operation
-      (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible <command>CREATE TABLE</> failure when inheriting the
-      <quote>same</> constraint from multiple parent relations that
-      inherited that constraint from a common ancestor (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <function>pg_get_ruledef()</> to show the alias, if any, attached
-      to the target table of an <command>UPDATE</> or <command>DELETE</>
-      (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Restore the pre-8.3 behavior that an out-of-range block number in a
-      TID being used in a TidScan plan results in silently not matching any
-      rows (Tom)
-     </para>
-
-     <para>
-      8.3.0 and 8.3.1 threw an error instead.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix GIN bug that could result in a <literal>too many LWLocks
-      taken</literal> failure (Teodor)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix broken GiST comparison function for <type>tsquery</> (Teodor)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <function>tsvector_update_trigger()</> and <function>ts_stat()</>
-      to accept domains over the types they expect to work with (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix failure to support enum data types as foreign keys (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid possible crash when decompressing corrupted data
-      (Zdenek Kotala)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix race conditions between delayed unlinks and <command>DROP
-      DATABASE</> (Heikki)
-     </para>
-
-     <para>
-      In the worst case this could result in deleting a newly created table
-      in a new database that happened to get the same OID as the
-      recently-dropped one; but of course that is an extremely
-      low-probability scenario.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Repair two places where SIGTERM exit of a backend could leave corrupted
-      state in shared memory (Tom)
-     </para>
-
-     <para>
-      Neither case is very important if SIGTERM is used to shut down the
-      whole database cluster together, but there was a problem if someone
-      tried to SIGTERM individual backends.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible crash due to incorrect plan generated for an
-      <literal><replaceable>x</> IN (SELECT <replaceable>y</>
-      FROM ...)</literal> clause when <replaceable>x</> and <replaceable>y</>
-      have different data types; and make sure the behavior is semantically
-      correct when the conversion from <replaceable>y</>'s type to
-      <replaceable>x</>'s type is lossy (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix oversight that prevented the planner from substituting known Param
-      values as if they were constants (Tom)
-     </para>
-
-     <para>
-      This mistake partially disabled optimization of unnamed
-      extended-Query statements in 8.3.0 and 8.3.1: in particular the
-      LIKE-to-indexscan optimization would never be applied if the LIKE
-      pattern was passed as a parameter, and constraint exclusion
-      depending on a parameter value didn't work either.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix planner failure when an indexable <function>MIN</> or
-      <function>MAX</> aggregate is used with <literal>DISTINCT</> or
-      <literal>ORDER BY</> (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix planner to ensure it never uses a <quote>physical tlist</> for a
-      plan node that is feeding a Sort node (Tom)
-     </para>
-
-     <para>
-      This led to the sort having to push around more data than it really
-      needed to, since unused column values were included in the sorted
-      data.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid unnecessary copying of query strings (Tom)
-     </para>
-
-     <para>
-      This fixes a performance problem introduced in 8.3.0 when a very large
-      number of commands are submitted as a single query string.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <function>TransactionIdIsCurrentTransactionId()</> use binary
-      search instead of linear search when checking child-transaction XIDs
-      (Heikki)
-     </para>
-
-     <para>
-      This fixes some cases in which 8.3.0 was significantly
-      slower than earlier releases.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix conversions between ISO-8859-5 and other encodings to handle
-      Cyrillic <quote>Yo</> characters (<literal>e</> and <literal>E</> with
-      two dots) (Sergey Burladyan)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix several datatype input functions, notably <function>array_in()</>,
-      that were allowing unused bytes in their results to contain
-      uninitialized, unpredictable values (Tom)
-     </para>
-
-     <para>
-      This could lead to failures in which two apparently identical literal
-      values were not seen as equal, resulting in the parser complaining
-      about unmatched <literal>ORDER BY</> and <literal>DISTINCT</>
-      expressions.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix a corner case in regular-expression substring matching
-      (<literal>substring(<replaceable>string</> from
-      <replaceable>pattern</>)</literal>) (Tom)
-     </para>
-
-     <para>
-      The problem occurs when there is a match to the pattern overall but
-      the user has specified a parenthesized subexpression and that
-      subexpression hasn't got a match.  An example is
-      <literal>substring('foo' from 'foo(bar)?')</>.
-      This should return NULL, since <literal>(bar)</> isn't matched, but
-      it was mistakenly returning the whole-pattern match instead (ie,
-      <literal>foo</>).
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent cancellation of an auto-vacuum that was launched to prevent
-      XID wraparound (Alvaro)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve <command>ANALYZE</>'s handling of in-doubt tuples (those
-      inserted or deleted by a not-yet-committed transaction) so that the
-      counts it reports to the stats collector are more likely to be correct
-      (Pavan Deolasee)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>initdb</> to reject a relative path for its
-      <literal>--xlogdir</> (<literal>-X</>) option (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <application>psql</> print tab characters as an appropriate
-      number of spaces, rather than <literal>\x09</literal> as was done in
-      8.3.0 and 8.3.1 (Bruce)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2008c (for
-      DST law changes in Morocco, Iraq, Choibalsan, Pakistan, Syria, Cuba, and
-      Argentina/San_Luis)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Add <function>ECPGget_PGconn()</> function to
-      <application>ecpglib</> (Michael)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix incorrect result from <application>ecpg</>'s
-      <function>PGTYPEStimestamp_sub()</> function (Michael)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix handling of continuation line markers in <application>ecpg</>
-      (Michael)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible crashes in <filename>contrib/cube</> functions (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix core dump in <filename>contrib/xml2</>'s
-      <function>xpath_table()</> function when the input query returns a
-      NULL value (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <filename>contrib/xml2</>'s makefile to not override
-      <literal>CFLAGS</>, and make it auto-configure properly for
-      <application>libxslt</> present or not (Tom)
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-3-1">
-  <title>Release 8.3.1</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2008-03-17</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.3.0.
-   For information about new features in the 8.3 major release, see
-   <xref linkend="release-8-3">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.3.1</title>
-
-   <para>
-    A dump/restore is not required for those running 8.3.X.
-    However, you might need to <command>REINDEX</> indexes on textual
-    columns after updating, if you are affected by the Windows locale
-    issue described below.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Fix character string comparison for Windows locales that consider
-      different character combinations as equal (Tom)
-     </para>
-
-     <para>
-      This fix applies only on Windows and only when using UTF-8
-      database encoding.  The same fix was made for all other cases
-      over two years ago, but Windows with UTF-8 uses a separate code
-      path that was not updated.  If you are using a locale that
-      considers some non-identical strings as equal, you may need to
-      <command>REINDEX</> to fix existing indexes on textual columns.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Repair corner-case bugs in <command>VACUUM FULL</> (Tom)
-     </para>
-
-     <para>
-      A potential deadlock between concurrent <command>VACUUM FULL</>
-      operations on different system catalogs was introduced in 8.2.
-      This has now been corrected.  8.3 made this worse because the
-      deadlock could occur within a critical code section, making it
-      a PANIC rather than just ERROR condition.
-     </para>
-
-     <para>
-      Also, a <command>VACUUM FULL</> that failed partway through
-      vacuuming a system catalog could result in cache corruption in
-      concurrent database sessions.
-     </para>
-
-     <para>
-      Another <command>VACUUM FULL</> bug introduced in 8.3 could
-      result in a crash or out-of-memory report when dealing with
-      pages containing no live tuples.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix misbehavior of foreign key checks involving <type>character</>
-      or <type>bit</> columns (Tom)
-     </para>
-
-     <para>
-      If the referencing column were of a different but compatible type
-      (for instance <type>varchar</>), the constraint was enforced incorrectly.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid needless deadlock failures in no-op foreign-key checks (Stephan
-      Szabo, Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible core dump when re-planning a prepared query (Tom)
-     </para>
-
-     <para>
-      This bug affected only protocol-level prepare operations, not
-      SQL <command>PREPARE</>, and so tended to be seen only with
-      JDBC, DBI, and other client-side drivers that use prepared
-      statements heavily.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible failure when re-planning a query that calls an SPI-using
-      function (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix failure in row-wise comparisons involving columns of different
-      datatypes (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix longstanding <command>LISTEN</>/<command>NOTIFY</>
-      race condition (Tom)
-     </para>
-
-     <para>
-      In rare cases a session that had just executed a
-      <command>LISTEN</> might not get a notification, even though
-      one would be expected because the concurrent transaction executing
-      <command>NOTIFY</> was observed to commit later.
-     </para>
-
-     <para>
-      A side effect of the fix is that a transaction that has executed
-      a not-yet-committed <command>LISTEN</> command will not see any
-      row in <structname>pg_listener</> for the <command>LISTEN</>,
-      should it choose to look; formerly it would have.  This behavior
-      was never documented one way or the other, but it is possible that
-      some applications depend on the old behavior.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Disallow <command>LISTEN</> and <command>UNLISTEN</> within a
-      prepared transaction (Tom)
-     </para>
-
-     <para>
-      This was formerly allowed but trying to do it had various unpleasant
-      consequences, notably that the originating backend could not exit
-      as long as an <command>UNLISTEN</> remained uncommitted.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Disallow dropping a temporary table within a
-      prepared transaction (Heikki)
-     </para>
-
-     <para>
-      This was correctly disallowed by 8.1, but the check was inadvertently
-      broken in 8.2 and 8.3.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix rare crash when an error occurs during a query using a hash index
-      (Heikki)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix incorrect comparison of <type>tsquery</> values (Teodor)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix incorrect behavior of <literal>LIKE</> with non-ASCII characters
-      in single-byte encodings (Rolf Jentsch)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Disable <function>xmlvalidate</> (Tom)
-     </para>
-
-     <para>
-      This function should have been removed before 8.3 release, but
-      was inadvertently left in the source code.  It poses a small
-      security risk since unprivileged users could use it to read the
-      first few characters of any file accessible to the server.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix memory leaks in certain usages of set-returning functions (Neil)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <function>encode(<replaceable>bytea</>, 'escape')</> convert all
-      high-bit-set byte values into <literal>\</><replaceable>nnn</> octal
-      escape sequences (Tom)
-     </para>
-
-     <para>
-      This is necessary to avoid encoding problems when the database
-      encoding is multi-byte.  This change could pose compatibility issues
-      for applications that are expecting specific results from
-      <function>encode</>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix input of datetime values for February 29 in years BC (Tom)
-     </para>
-
-     <para>
-      The former coding was mistaken about which years were leap years.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <quote>unrecognized node type</> error in some variants of
-      <command>ALTER OWNER</> (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid tablespace permissions errors in <command>CREATE TABLE LIKE
-      INCLUDING INDEXES</> (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure <structname>pg_stat_activity</>.<structfield>waiting</> flag
-      is cleared when a lock wait is aborted (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix handling of process permissions on Windows Vista (Dave, Magnus)
-     </para>
-
-     <para>
-      In particular, this fix allows starting the server as the Administrator
-      user.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2008a
-      (in particular, recent Chile changes); adjust timezone abbreviation
-      <literal>VET</> (Venezuela) to mean UTC-4:30, not UTC-4:00 (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>ecpg</> problems with arrays (Michael)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>pg_ctl</> to correctly extract the postmaster's port
-      number from command-line options (Itagaki Takahiro, Tom)
-     </para>
-
-     <para>
-      Previously, <literal>pg_ctl start -w</> could try to contact the
-      postmaster on the wrong port, leading to bogus reports of startup
-      failure.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Use <option>-fwrapv</> to defend against possible misoptimization
-      in recent <application>gcc</> versions (Tom)
-     </para>
-
-     <para>
-      This is known to be necessary when building <productname>PostgreSQL</>
-      with <application>gcc</> 4.3 or later.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Enable building <filename>contrib/uuid-ossp</> with MSVC (Hiroshi Saito)
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-3">
-  <title>Release 8.3</title>
-
-  <formalpara>
-   <title>Release date:</title>
-   <para>2008-02-04</para>
-  </formalpara>
-
-  <sect2>
-   <title>Overview</title>
-
-   <para>
-    With significant new functionality and performance enhancements,
-    this release represents a major leap forward for
-    <productname>PostgreSQL</>. This was made possible by a growing
-    community that has dramatically accelerated the pace of
-    development. This release adds the following major features:
-   </para>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Full text search is integrated into the core database system
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Support for the SQL/XML standard, including new operators and an
-      <type>XML</type> data type
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Enumerated data types (<type>ENUM</type>)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Arrays of composite types
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Universally Unique Identifier (<type>UUID</>) data type
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Add control over whether <literal>NULL</>s sort first or last
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Updatable cursors
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Server configuration parameters can now be set on a per-function
-      basis
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      User-defined types can now have type modifiers
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Automatically re-plan cached queries when table
-      definitions change or statistics are updated
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Numerous improvements in logging and statistics collection
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Support Security Service Provider Interface (<acronym>SSPI</>) for
-      authentication on Windows
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Support multiple concurrent autovacuum processes, and other
-      autovacuum improvements
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Allow the whole <productname>PostgreSQL</> distribution to be compiled
-      with <productname>Microsoft Visual C++</>
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-   <para>
-    Major performance improvements are listed below.  Most of
-    these enhancements are automatic and do not require user changes or
-    tuning:
-   </para>
-
-  <itemizedlist>
-
-    <listitem>
-     <para>
-      Asynchronous commit delays writes to WAL during transaction commit
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Checkpoint writes can be spread over a longer time period to smooth
-      the I/O spike during each checkpoint
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Heap-Only Tuples (<acronym>HOT</>) accelerate space reuse for
-      most <command>UPDATE</>s and <command>DELETE</>s
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Just-in-time background writer strategy improves disk write
-      efficiency
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Using non-persistent transaction IDs for read-only transactions
-      reduces overhead and <command>VACUUM</> requirements
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Per-field and per-row storage overhead has been reduced
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Large sequential scans no longer force out frequently used
-      cached pages
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Concurrent large sequential scans can now share disk reads
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      <literal>ORDER BY ... LIMIT</> can be done without sorting
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-   <para>
-    The above items are explained in more detail in the sections below.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Migration to Version 8.3</title>
-
-   <para>
-    A dump/restore using <application>pg_dump</application> is
-    required for those wishing to migrate data from any previous
-    release.
-   </para>
-
-   <para>
-    Observe the following incompatibilities:
-   </para>
-
-   <sect3>
-    <title>General</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Non-character data types are no longer automatically cast to
-       <type>TEXT</> (Peter, Tom)
-      </para>
-
-      <para>
-       Previously, if a non-character value was supplied to an operator or
-       function that requires <type>text</> input, it was automatically
-       cast to <type>text</>, for most (though not all) built-in data types.
-       This no longer happens: an explicit cast to <type>text</> is now
-       required for all non-character-string types.  For example, these
-       expressions formerly worked:
-
-<programlisting>
-substr(current_date, 1, 4)
-23 LIKE '2%'
-</programlisting>
-
-       but will now draw <quote>function does not exist</> and <quote>operator
-       does not exist</> errors respectively.  Use an explicit cast instead:
-
-<programlisting>
-substr(current_date::text, 1, 4)
-23::text LIKE '2%'
-</programlisting>
-
-       (Of course, you can use the more verbose <literal>CAST()</> syntax too.)
-       The reason for the change is that these automatic casts too often caused
-       surprising behavior.  An example is that in previous releases, this
-       expression was accepted but did not do what was expected:
-
-<programlisting>
-current_date &lt; 2017-11-17
-</programlisting>
-
-       This is actually comparing a date to an integer, which should be
-       (and now is) rejected &mdash; but in the presence of automatic
-       casts both sides were cast to <type>text</> and a textual comparison
-       was done, because the <literal>text &lt; text</> operator was able
-       to match the expression when no other <literal>&lt;</> operator could.
-      </para>
-
-      <para>
-       Types <type>char(<replaceable>n</>)</type> and
-       <type>varchar(<replaceable>n</>)</type> still cast to <type>text</>
-       automatically.  Also, automatic casting to <type>text</> still works for
-       inputs to the concatenation (<literal>||</>) operator, so long as least
-       one input is a character-string type.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-        Full text search features from <filename>contrib/tsearch2</> have
-        been moved into the core server, with some minor syntax changes
-      </para>
-
-      <para>
-       <filename>contrib/tsearch2</> now contains a compatibility
-       interface.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       <literal>ARRAY(SELECT ...)</literal>, where the <command>SELECT</>
-       returns no rows, now returns an empty array, rather than NULL
-       (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       The array type name for a base data type is no longer always the base
-       type's name with an underscore prefix
-      </para>
-
-      <para>
-       The old naming convention is still honored when possible, but
-       application code should no longer depend on it. Instead
-       use the new <literal>pg_type.typarray</literal> column to
-       identify the array data type associated with a given type.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       <literal>ORDER BY ... USING</> <replaceable>operator</> must now
-       use a less-than or greater-than <replaceable>operator</> that is
-       defined in a btree operator class
-      </para>
-
-      <para>
-       This restriction was added to prevent inconsistent results.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       <command>SET LOCAL</command> changes now persist until
-       the end of the outermost transaction, unless rolled back (Tom)
-      </para>
-
-      <para>
-       Previously <command>SET LOCAL</command>'s effects were lost
-       after subtransaction commit (<command>RELEASE SAVEPOINT</>
-       or exit from a PL/pgSQL exception block).
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Commands rejected in transaction blocks are now also rejected in
-       multiple-statement query strings (Tom)
-      </para>
-
-      <para>
-       For example, <literal>"BEGIN; DROP DATABASE; COMMIT"</> will now be
-       rejected even if submitted as a single query message.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       <command>ROLLBACK</> outside a transaction block now
-       issues <literal>NOTICE</> instead of <literal>WARNING</> (Bruce)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Prevent <command>NOTIFY</command>/<command>LISTEN</command>/<command>UNLISTEN</command>
-       from accepting schema-qualified names (Bruce)
-      </para>
-
-      <para>
-       Formerly, these commands accepted <literal>schema.relation</> but
-       ignored the schema part, which was confusing.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       <command>ALTER SEQUENCE</> no longer affects the sequence's
-       <function>currval()</> state (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Foreign keys now must match indexable conditions for
-       cross-data-type references (Tom)
-      </para>
-
-      <para>
-       This improves semantic consistency and helps avoid
-       performance problems.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Restrict object size functions to users who have reasonable
-       permissions to view such information (Tom)
-      </para>
-
-      <para>
-       For example, <function>pg_database_size()</function> now requires
-       <literal>CONNECT</> permission, which is granted to everyone by
-       default. <function>pg_tablespace_size()</function> requires
-       <literal>CREATE</> permission in the tablespace, or is allowed if
-       the tablespace is the default tablespace for the database.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Remove the undocumented <literal>!!=</> (not in) operator (Tom)
-      </para>
-
-      <para>
-       <literal>NOT IN (SELECT ...)</literal> is the proper way to
-       perform this operation.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Internal hashing functions are now more uniformly-distributed (Tom)
-      </para>
-
-      <para>
-       If application code was computing and storing hash values using
-       internal <productname>PostgreSQL</> hashing functions, the hash
-       values must be regenerated.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       C-code conventions for handling variable-length data values
-       have changed (Greg Stark, Tom)
-      </para>
-
-      <para>
-       The new <function>SET_VARSIZE()</> macro <emphasis>must</> be used
-       to set the length of generated <type>varlena</> values. Also, it
-       might be necessary to expand (<quote>de-TOAST</quote>) input values
-       in more cases.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Continuous archiving no longer reports each successful archive
-       operation to the server logs unless <literal>DEBUG</> level is used
-       (Simon)
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-    </sect3>
-
-    <sect3>
-     <title>Configuration Parameters</title>
-
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Numerous changes in administrative server parameters
-      </para>
-
-      <para>
-       <varname>bgwriter_lru_percent</>,
-       <varname>bgwriter_all_percent</>,
-       <varname>bgwriter_all_maxpages</>,
-       <varname>stats_start_collector</>, and
-       <varname>stats_reset_on_server_start</> are removed.
-       <varname>redirect_stderr</> is renamed to
-       <varname>logging_collector</>.
-       <varname>stats_command_string</> is renamed to
-       <varname>track_activities</>.
-       <varname>stats_block_level</> and <varname>stats_row_level</>
-       are merged into <varname>track_counts</>.
-       A new boolean configuration parameter, <varname>archive_mode</>,
-       controls archiving. Autovacuum's default settings have changed.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Remove <varname>stats_start_collector</varname> parameter (Tom)
-      </para>
-
-      <para>
-       We now always start the collector process, unless <acronym>UDP</>
-       socket creation fails.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Remove <varname>stats_reset_on_server_start</varname> parameter (Tom)
-      </para>
-
-      <para>
-       This was removed because <function>pg_stat_reset()</function>
-       can be used for this purpose.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Commenting out a parameter in <filename>postgresql.conf</> now
-       causes it to revert to its default value (Joachim Wieland)
-      </para>
-
-      <para>
-       Previously, commenting out an entry left the parameter's value unchanged
-       until the next server restart.
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-    </sect3>
-
-
-    <sect3>
-     <title>Character Encodings</title>
-
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Add more checks for invalidly-encoded data (Andrew)
-      </para>
-
-      <para>
-       This change plugs some holes that existed in literal backslash
-       escape string processing and <command>COPY</command> escape
-       processing. Now the de-escaped string is rechecked to see if the
-       result created an invalid multi-byte character.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Disallow database encodings that are inconsistent with the server's
-       locale setting (Tom)
-      </para>
-
-      <para>
-       On most platforms, <literal>C</> locale is the only locale that
-       will work with any database encoding.  Other locale settings imply
-       a specific encoding and will misbehave if the database encoding
-       is something different.  (Typical symptoms include bogus textual
-       sort order and wrong results from <function>upper()</> or
-       <function>lower()</>.)  The server now rejects attempts to create
-       databases that have an incompatible encoding.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Ensure that <function>chr()</function> cannot create
-       invalidly-encoded values (Andrew)
-      </para>
-
-      <para>
-       In UTF8-encoded databases the argument of <function>chr()</function> is
-       now treated as a Unicode code point. In other multi-byte encodings
-       <function>chr()</function>'s argument must designate a 7-bit ASCII
-       character.  Zero is no longer accepted.
-       <function>ascii()</function> has been adjusted to match.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Adjust <function>convert()</function> behavior to ensure encoding
-       validity (Andrew)
-      </para>
-
-      <para>
-       The two argument form of <function>convert()</function> has been
-       removed. The three argument form now takes a <type>bytea</type>
-       first argument and returns a <type>bytea</type>. To cover the
-       loss of functionality, three new functions have been added:
-      </para>
-
-      <itemizedlist>
-       <listitem>
-        <para>
-         <function>convert_from(bytea, name)</function> returns
-         <type>text</> &mdash; converts the first argument from the named
-         encoding to the database encoding
-        </para>
-       </listitem>
-
-       <listitem>
-        <para>
-         <function>convert_to(text, name)</function> returns
-         <type>bytea</> &mdash; converts the first argument from the
-         database encoding to the named encoding
-        </para>
-       </listitem>
-
-       <listitem>
-        <para>
-         <function>length(bytea, name)</function> returns
-         <type>integer</> &mdash; gives the length of the first
-         argument in characters in the named encoding
-        </para>
-       </listitem>
-      </itemizedlist>
-     </listitem>
-
-     <listitem>
-      <para>
-       Remove <literal>convert(argument USING conversion_name)</literal>
-       (Andrew)
-      </para>
-
-      <para>
-       Its behavior did not match the SQL standard.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Make JOHAB encoding client-only (Tatsuo)
-      </para>
-
-      <para>
-       JOHAB is not safe as a server-side encoding.
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <para>
-    Below you will find a detailed account of the
-    changes between <productname>PostgreSQL</productname> 8.3 and
-    the previous major release.
-   </para>
-
-   <sect3>
-    <title>Performance</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Asynchronous commit delays writes to WAL during transaction commit
-       (Simon)
-      </para>
-
-      <para>
-       This feature dramatically increases performance for short data-modifying
-       transactions.  The disadvantage is that because disk writes are delayed,
-       if the database or operating system crashes before data is written to
-       the disk, committed data will be lost.  This feature is useful for
-       applications that can accept some data loss.  Unlike turning off
-       <varname>fsync</varname>, using asynchronous commit does not put
-       database consistency at risk; the worst case is that after a crash the
-       last few reportedly-committed transactions might not be committed after
-       all.
-       This feature is enabled by turning off <varname>synchronous_commit</>
-       (which can be done per-session or per-transaction, if some transactions
-       are critical and others are not).
-       <varname>wal_writer_delay</> can be adjusted to control the maximum
-       delay before transactions actually reach disk.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Checkpoint writes can be spread over a longer time period to smooth
-       the I/O spike during each checkpoint (Itagaki Takahiro and Heikki
-       Linnakangas)
-      </para>
-
-      <para>
-       Previously all modified buffers were forced to disk as quickly as
-       possible during a
-       checkpoint, causing an I/O spike that decreased server performance.
-       This new approach spreads out disk writes during checkpoints,
-       reducing peak I/O usage. (User-requested and shutdown checkpoints
-       are still written as quickly as possible.)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Heap-Only Tuples (<acronym>HOT</>) accelerate space reuse for most
-       <command>UPDATE</>s and <command>DELETE</>s (Pavan Deolasee, with
-       ideas from many others)
-      </para>
-
-      <para>
-       <command>UPDATE</>s and <command>DELETE</>s leave dead tuples
-       behind, as do failed <command>INSERT</>s.  Previously only
-       <command>VACUUM</> could reclaim space taken by dead tuples. With
-       <acronym>HOT</> dead tuple space can be automatically reclaimed at
-       the time of <command>INSERT</> or <command>UPDATE</> if no changes
-       are made to indexed columns.  This allows for more consistent
-       performance.  Also, <acronym>HOT</> avoids adding duplicate index
-       entries.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Just-in-time background writer strategy improves disk write
-       efficiency (Greg Smith, Itagaki Takahiro)
-      </para>
-
-      <para>
-       This greatly reduces the need for manual tuning of the background
-       writer.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Per-field and per-row storage overhead have been reduced
-       (Greg Stark, Heikki Linnakangas)
-      </para>
-
-      <para>
-       Variable-length data types with data values less than 128 bytes long
-       will see a storage decrease of 3 to 6 bytes. For example, two adjacent
-       <type>char(1)</type> fields now use 4 bytes instead of 16. Row headers
-       are also 4 bytes shorter than before.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Using non-persistent transaction IDs for read-only transactions
-       reduces overhead and <command>VACUUM</> requirements (Florian Pflug)
-      </para>
-
-      <para>
-       Non-persistent transaction IDs do not increment the global
-       transaction counter. Therefore, they reduce the load on
-       <structname>pg_clog</> and increase the time between forced
-       vacuums to prevent transaction ID wraparound.
-       Other performance
-       improvements were also made that should improve concurrency.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Avoid incrementing the command counter after a read-only command (Tom)
-      </para>
-
-      <para>
-       There was formerly a hard limit of 2<superscript>32</>
-       (4 billion) commands per transaction.  Now only commands that
-       actually changed the database count, so while this limit still
-       exists, it should be significantly less annoying.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Create a dedicated <acronym>WAL</> writer process to off-load
-       work from backends (Simon)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Skip unnecessary WAL writes for <command>CLUSTER</command> and
-       <command>COPY</command> (Simon)
-      </para>
-
-      <para>
-       Unless WAL archiving is enabled, the system now avoids WAL writes
-       for <command>CLUSTER</command> and just <function>fsync()</>s the
-       table at the end of the command.  It also does the same for
-       <command>COPY</command> if the table was created in the same
-       transaction.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Large sequential scans no longer force out frequently used
-       cached pages (Simon, Heikki, Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Concurrent large sequential scans can now share disk reads (Jeff Davis)
-      </para>
-
-      <para>
-       This is accomplished by starting the new sequential scan in the
-       middle of the table (where another sequential scan is already
-       in-progress) and wrapping around to the beginning to finish.  This
-       can affect the order of returned rows in a query that does not
-       specify <literal>ORDER BY</>.  The <varname>synchronize_seqscans</>
-       configuration parameter can be used to disable this if necessary.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       <literal>ORDER BY ... LIMIT</> can be done without sorting
-       (Greg Stark)
-      </para>
-
-      <para>
-       This is done by sequentially scanning the table and tracking just
-       the <quote>top N</> candidate rows, rather than performing a
-       full sort of the entire table.  This is useful when there is no
-       matching index and the <literal>LIMIT</> is not large.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Put a rate limit on messages sent to the statistics
-       collector by backends
-       (Tom)
-      </para>
-
-      <para>
-       This reduces overhead for short transactions, but might sometimes
-       increase the delay before statistics are tallied.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Improve hash join performance for cases with many NULLs (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Speed up operator lookup for cases with non-exact datatype matches (Tom)
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title>Server</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Autovacuum is now enabled by default (Alvaro)
-      </para>
-
-      <para>
-       Several changes were made to eliminate disadvantages of having
-       autovacuum enabled, thereby justifying the change in default.
-       Several other autovacuum parameter defaults were also modified.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Support multiple concurrent autovacuum processes (Alvaro, Itagaki
-       Takahiro)
-      </para>
-
-      <para>
-       This allows multiple vacuums to run concurrently.  This prevents
-       vacuuming of a large table from delaying vacuuming of smaller tables.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Automatically re-plan cached queries when table
-       definitions change or statistics are updated (Tom)
-      </para>
-
-      <para>
-       Previously PL/pgSQL functions that referenced temporary tables
-       would fail if the temporary table was dropped and recreated
-       between function invocations, unless <literal>EXECUTE</> was
-       used.  This improvement fixes that problem and many related issues.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add a <varname>temp_tablespaces</varname> parameter to control
-       the tablespaces for temporary tables and files (Jaime Casanova,
-       Albert Cervera, Bernd Helmle)
-      </para>
-
-      <para>
-       This parameter defines a list of tablespaces to be used.  This
-       enables spreading the I/O load across multiple tablespaces. A random
-       tablespace is chosen each time a temporary object is created.
-       Temporary files are no longer stored in per-database
-       <filename>pgsql_tmp/</filename> directories but in per-tablespace
-       directories.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Place temporary tables' TOAST tables in special schemas named
-       <literal>pg_toast_temp_<replaceable>nnn</></literal> (Tom)
-      </para>
-
-      <para>
-       This allows low-level code to recognize these tables as temporary,
-       which enables various optimizations such as not WAL-logging changes
-       and using local rather than shared buffers for access. This also
-       fixes a bug wherein backends unexpectedly held open file references
-       to temporary TOAST tables.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Fix problem that a constant flow of new connection requests could
-       indefinitely delay the postmaster from completing a shutdown or
-       a crash restart (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Guard against a very-low-probability data loss scenario by preventing
-       re-use of a deleted table's relfilenode until after the next
-       checkpoint (Heikki)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Fix <command>CREATE CONSTRAINT TRIGGER</>
-       to convert old-style foreign key trigger definitions into regular
-       foreign key constraints (Tom)
-      </para>
-
-      <para>
-       This will ease porting of foreign key constraints carried forward from
-       pre-7.3 databases, if they were never converted using
-       <filename>contrib/adddepend</>.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Fix <literal>DEFAULT NULL</> to override inherited defaults (Tom)
-      </para>
-
-      <para>
-       <literal>DEFAULT NULL</> was formerly considered a noise phrase, but it
-       should (and now does) override non-null defaults that would otherwise
-       be inherited from a parent table or domain.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add new encodings EUC_JIS_2004 and SHIFT_JIS_2004 (Tatsuo)
-      </para>
-
-      <para>
-       These new encodings can be converted to and from UTF-8.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Change server startup log message from <quote>database system is
-       ready</quote> to <quote>database system is ready to accept
-       connections</quote>, and adjust its timing
-      </para>
-
-      <para>
-       The message now appears only when the postmaster is really ready
-       to accept connections.
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title>Monitoring</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Add <varname>log_autovacuum_min_duration</varname> parameter to
-       support configurable logging of autovacuum activity (Simon, Alvaro)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <varname>log_lock_waits</varname> parameter to log lock waiting
-       (Simon)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <varname>log_temp_files</varname> parameter to log temporary
-       file usage (Bill Moran)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <varname>log_checkpoints</varname> parameter to improve logging
-       of checkpoints (Greg Smith, Heikki)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       <varname>log_line_prefix</varname> now supports
-       <literal>%s</literal> and <literal>%c</literal> escapes in all
-       processes (Andrew)
-      </para>
-
-      <para>
-       Previously these escapes worked only for user sessions, not for
-       background database processes.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <varname>log_restartpoints</varname> to control logging of
-       point-in-time recovery restart points (Simon)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Last transaction end time is now logged at end of recovery and at
-       each logged restart point (Simon)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Autovacuum now reports its activity start time in
-       <literal>pg_stat_activity</literal> (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow server log output in comma-separated value (CSV) format (Arul
-       Shaji, Greg Smith, Andrew Dunstan)
-      </para>
-
-      <para>
-       CSV-format log files can easily be loaded into a database table for
-       subsequent analysis.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Use PostgreSQL-supplied timezone support for formatting timestamps
-       displayed in the server log (Tom)
-      </para>
-
-      <para>
-       This avoids Windows-specific problems with localized time zone
-       names that are in the wrong encoding. There is a new
-       <varname>log_timezone</> parameter that controls the timezone
-       used in log messages, independently of the client-visible
-       <varname>timezone</> parameter.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       New system view <literal>pg_stat_bgwriter</literal> displays
-       statistics about background writer activity (Magnus)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add new columns for database-wide tuple statistics to
-       <literal>pg_stat_database</literal> (Magnus)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add an <literal>xact_start</literal> (transaction start time) column to
-       <literal>pg_stat_activity</literal> (Neil)
-      </para>
-
-      <para>
-       This makes it easier to identify long-running transactions.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <literal>n_live_tuples</> and <literal>n_dead_tuples</> columns
-       to <literal>pg_stat_all_tables</literal> and related views (Glen
-       Parker)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Merge <varname>stats_block_level</> and <varname>stats_row_level</>
-       parameters into a single parameter <varname>track_counts</>, which
-       controls all messages sent to the statistics collector process
-       (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Rename <varname>stats_command_string</varname> parameter to
-       <varname>track_activities</varname> (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Fix statistical counting of live and dead tuples to recognize that
-       committed and aborted transactions have different effects (Tom)
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title>Authentication</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Support Security Service Provider Interface (<acronym>SSPI</>) for
-       authentication on Windows (Magnus)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Support GSSAPI authentication (Henry Hotz, Magnus)
-      </para>
-
-      <para>
-       This should be preferred to native Kerberos authentication because
-       GSSAPI is an industry standard.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Support a global SSL configuration file (Victor Wagner)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <varname>ssl_ciphers</> parameter to control accepted SSL ciphers
-       (Victor Wagner)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add a Kerberos realm parameter, <varname>krb_realm</> (Magnus)
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title>Write-Ahead Log (<acronym>WAL</>) and Continuous Archiving</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Change the timestamps recorded in transaction WAL records from
-       time_t to TimestampTz representation (Tom)
-      </para>
-
-      <para>
-       This provides sub-second resolution in WAL, which can be useful for
-       point-in-time recovery.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Reduce WAL disk space needed by warm standby servers (Simon)
-      </para>
-
-      <para>
-       This change allows a warm standby server to pass the name of the earliest
-       still-needed WAL file to the recovery script, allowing automatic removal
-       of no-longer-needed WAL files.  This is done using <literal>%r</> in
-       the <varname>restore_command</varname> parameter of
-       <filename>recovery.conf</filename>.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       New boolean configuration parameter, <varname>archive_mode</>,
-       controls archiving (Simon)
-      </para>
-
-      <para>
-       Previously setting <varname>archive_command</> to an empty string
-       turned off archiving. Now <varname>archive_mode</> turns archiving
-       on and off, independently of <varname>archive_command</>. This is
-       useful for stopping archiving temporarily.
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title>Queries</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Full text search is integrated into the core database
-       system (Teodor, Oleg)
-      </para>
-
-      <para>
-       Text search has been improved, moved into the core code, and is now
-       installed by default.  <filename>contrib/tsearch2</> now contains
-       a compatibility interface.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add control over whether <literal>NULL</>s sort first or last (Teodor, Tom)
-      </para>
-
-      <para>
-       The syntax is <literal>ORDER BY ... NULLS FIRST/LAST</>.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow per-column ascending/descending (<literal>ASC</>/<literal>DESC</>)
-       ordering options for indexes (Teodor, Tom)
-      </para>
-
-      <para>
-       Previously a query using <literal>ORDER BY</> with mixed
-       <literal>ASC</>/<literal>DESC</> specifiers could not fully use
-       an index. Now an index can be fully used in such cases if the
-       index was created with matching
-       <literal>ASC</>/<literal>DESC</> specifications.
-       <literal>NULL</> sort order within an index can be controlled, too.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow <literal>col IS NULL</> to use an index (Teodor)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Updatable cursors (Arul Shaji, Tom)
-      </para>
-
-      <para>
-       This eliminates the need to reference a primary key to
-       <command>UPDATE</> or <command>DELETE</> rows returned by a cursor.
-       The syntax is <literal>UPDATE/DELETE WHERE CURRENT OF</>.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow <literal>FOR UPDATE</literal> in cursors (Arul Shaji, Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Create a general mechanism that supports casts to and from the
-       standard string types (<type>TEXT</type>, <type>VARCHAR</type>,
-       <type>CHAR</type>) for <emphasis>every</emphasis> datatype, by
-       invoking the datatype's I/O functions (Tom)
-      </para>
-
-      <para>
-       Previously, such casts were available only for types that had
-       specialized function(s) for the purpose.
-       These new casts are assignment-only in the to-string direction,
-       explicit-only in the other direction, and therefore should create no
-       surprising behavior.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow <literal>UNION</> and related constructs to return a domain
-       type, when all inputs are of that domain type (Tom)
-      </para>
-
-      <para>
-       Formerly, the output would be considered to be of the domain's base
-       type.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow limited hashing when using two different data types (Tom)
-      </para>
-
-      <para>
-       This allows hash joins, hash indexes, hashed subplans, and hash
-       aggregation to be used in situations involving cross-data-type
-       comparisons, if the data types have compatible hash functions.
-       Currently, cross-data-type hashing support exists for
-       <type>smallint</type>/<type>integer</type>/<type>bigint</type>,
-       and for <type>float4</type>/<type>float8</type>.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Improve optimizer logic for detecting when variables are equal
-       in a <literal>WHERE</> clause (Tom)
-      </para>
-
-      <para>
-       This allows mergejoins to work with descending sort orders, and
-       improves recognition of redundant sort columns.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Improve performance when planning large inheritance trees in
-       cases where most tables are excluded by constraints (Tom)
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title>Object Manipulation</title>
-    <itemizedlist>
-
-     <listitem>
-
-      <para>
-       Arrays of composite types (David Fetter, Andrew, Tom)
-      </para>
-
-      <para>
-       In addition to arrays of explicitly-declared composite types,
-       arrays of the rowtypes of regular tables and views are now
-       supported, except for rowtypes of system catalogs, sequences, and TOAST
-       tables.
-      </para>
-
-     </listitem>
-
-     <listitem>
-      <para>
-       Server configuration parameters can now be set on a per-function
-       basis (Tom)
-      </para>
-
-      <para>
-       For example, functions can now set their own
-       <varname>search_path</> to prevent unexpected behavior if a
-       different <varname>search_path</> exists at run-time.  Security
-       definer functions should set <varname>search_path</varname> to
-       avoid security loopholes.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       <command>CREATE/ALTER FUNCTION</command> now supports
-       <literal>COST</literal> and <literal>ROWS</literal> options (Tom)
-      </para>
-
-      <para>
-       <literal>COST</literal> allows specification of the cost of a
-       function call.  <literal>ROWS</literal> allows specification of
-       the average number or rows returned by a set-returning function.
-       These values are used by the optimizer in choosing the best plan.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Implement <command>CREATE TABLE LIKE ...  INCLUDING
-       INDEXES</command> (Trevor Hardcastle, Nikhil Sontakke, Neil)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow <command>CREATE INDEX CONCURRENTLY</command> to ignore
-       transactions in other databases (Simon)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <command>ALTER VIEW ... RENAME TO</command> and <command>ALTER
-       SEQUENCE ... RENAME TO</command> (David Fetter, Neil)
-      </para>
-
-      <para>
-       Previously this could only be done via <command>ALTER TABLE ...
-       RENAME TO</command>.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Make <command>CREATE/DROP/RENAME DATABASE</> wait briefly for
-       conflicting backends to exit before failing (Tom)
-      </para>
-
-      <para>
-       This increases the likelihood that these commands will succeed.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow triggers and rules to be deactivated in groups using a
-       configuration parameter, for replication purposes (Jan)
-      </para>
-
-      <para>
-       This allows replication systems to disable triggers and rewrite
-       rules as a group without modifying the system catalogs directly.
-       The behavior is controlled by <command>ALTER TABLE</> and a new
-       parameter <varname>session_replication_role</varname>.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       User-defined types can now have type modifiers (Teodor, Tom)
-      </para>
-
-      <para>
-       This allows a user-defined type to take a modifier, like
-       <type>ssnum(7)</>.  Previously only built-in
-       data types could have modifiers.
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title>Utility Commands</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Non-superuser database owners now are able to add trusted procedural
-       languages to their databases by default (Jeremy Drake)
-      </para>
-
-      <para>
-       While this is reasonably safe, some administrators might wish to
-       revoke the privilege. It is controlled by
-       <structname>pg_pltemplate</>.<structfield>tmpldbacreate</>.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow a session's current parameter setting to be used as the
-       default for future sessions (Tom)
-      </para>
-
-      <para>
-       This is done with <literal>SET ... FROM CURRENT</literal> in
-       <command>CREATE/ALTER FUNCTION</command>, <command>ALTER
-       DATABASE</command>, or <command>ALTER ROLE</command>.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Implement new commands <command>DISCARD ALL</command>,
-       <command>DISCARD PLANS</command>, <command>DISCARD
-       TEMPORARY</command>, <command>CLOSE ALL</command>, and
-       <command>DEALLOCATE ALL</command> (Marko Kreen, Neil)
-      </para>
-
-      <para>
-       These commands simplify resetting a database session to its initial
-       state, and are particularly useful for connection-pooling software.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Make <command>CLUSTER</command> MVCC-safe (Heikki Linnakangas)
-      </para>
-
-      <para>
-       Formerly, <command>CLUSTER</command> would discard all tuples
-       that were committed dead, even if there were still transactions
-       that should be able to see them under MVCC visibility rules.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add new <command>CLUSTER</command> syntax: <literal>CLUSTER
-       <replaceable>table</> USING <replaceable>index</></literal>
-       (Holger Schurig)
-     </para>
-
-      <para>
-       The old <command>CLUSTER</command> syntax is still supported, but
-       the new form is considered more logical.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Fix <command>EXPLAIN</command> so it can show complex plans
-       more accurately (Tom)
-      </para>
-
-      <para>
-       References to subplan outputs are now always shown correctly,
-       instead of using <literal>?column<replaceable>N</>?</literal>
-       for complicated cases.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Limit the amount of information reported when a user is dropped
-       (Alvaro)
-      </para>
-
-      <para>
-       Previously, dropping (or attempting to drop) a user who owned many
-       objects could result in large <literal>NOTICE</literal> or
-       <literal>ERROR</literal> messages listing all these objects; this
-       caused problems for some client applications.  The length of the
-       message is now limited, although a full list is still sent to the
-       server log.
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title>Data Types</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Support for the SQL/XML standard, including new operators and an
-       <type>XML</type> data type (Nikolay Samokhvalov, Pavel Stehule, Peter)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Enumerated data types (<type>ENUM</type>) (Tom Dunstan)
-      </para>
-
-      <para>
-       This feature provides convenient support for fields that have a
-       small, fixed set of allowed values.  An example of creating an
-       <literal>ENUM</> type is
-       <literal>CREATE TYPE mood AS ENUM ('sad', 'ok', 'happy')</>.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Universally Unique Identifier (<type>UUID</>) data type (Gevik
-       Babakhani, Neil)
-      </para>
-
-      <para>
-       This closely matches <acronym>RFC</> 4122.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Widen the <type>MONEY</type> data type to 64 bits (D'Arcy Cain)
-      </para>
-
-      <para>
-       This greatly increases the range of supported <type>MONEY</>
-       values.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Fix <type>float4</type>/<type>float8</type> to handle
-       <literal>Infinity</> and <literal>NAN</> (Not A Number)
-       consistently (Bruce)
-      </para>
-
-      <para>
-       The code formerly was not consistent about distinguishing
-       <literal>Infinity</> from overflow conditions.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow leading and trailing whitespace during input of
-       <type>boolean</type> values (Neil)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Prevent <command>COPY</> from using digits and lowercase letters as
-       delimiters (Tom)
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title>Functions</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Add new regular expression functions
-       <function>regexp_matches()</function>,
-       <function>regexp_split_to_array()</function>, and
-       <function>regexp_split_to_table()</function> (Jeremy Drake, Neil)
-      </para>
-
-      <para>
-       These functions provide extraction of regular expression
-       subexpressions and allow splitting a string using a POSIX regular
-       expression.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <function>lo_truncate()</function> for large object truncation
-       (Kris Jurka)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Implement <function>width_bucket()</function> for the <type>float8</>
-       data type (Neil)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <function>pg_stat_clear_snapshot()</function> to discard
-       statistics snapshots collected during the current transaction
-       (Tom)
-      </para>
-
-      <para>
-       The first request for statistics in a transaction takes a statistics
-       snapshot that does not change during the transaction.  This function
-       allows the snapshot to be discarded and a new snapshot loaded during
-       the next statistics query. This is particularly useful for PL/pgSQL
-       functions, which are confined to a single transaction.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <literal>isodow</> option to <function>EXTRACT()</> and
-       <function>date_part()</> (Bruce)
-      </para>
-
-      <para>
-       This returns the day of the week, with Sunday as seven.
-       (<literal>dow</> returns Sunday as zero.)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <literal>ID</> (ISO day of week) and <literal>IDDD</> (ISO
-       day of year) format codes for <function>to_char()</>,
-       <function>to_date()</>, and <function>to_timestamp()</> (Brendan
-       Jurd)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Make <function>to_timestamp()</> and <function>to_date()</>
-       assume <literal>TM</literal> (trim) option for potentially
-       variable-width fields (Bruce)
-      </para>
-
-      <para>
-       This matches <productname>Oracle</>'s behavior.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Fix off-by-one conversion error in
-       <function>to_date()</function>/<function>to_timestamp()</function>
-       <literal>D</> (non-ISO day of week) fields (Bruce)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Make <function>setseed()</function> return void, rather than a
-       useless integer value (Neil)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add a hash function for <type>NUMERIC</type> (Neil)
-      </para>
-
-      <para>
-       This allows hash indexes and hash-based plans to be used with
-       <type>NUMERIC</type> columns.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Improve efficiency of
-       <literal>LIKE</literal>/<literal>ILIKE</literal>, especially for
-       multi-byte character sets like UTF-8 (Andrew, Itagaki Takahiro)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Make <function>currtid()</function> functions require
-       <literal>SELECT</literal> privileges on the target table (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add several <function>txid_*()</function> functions to query
-       active transaction IDs (Jan)
-      </para>
-
-      <para>
-       This is useful for various replication solutions.
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title>PL/pgSQL Server-Side Language</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Add scrollable cursor support, including directional control in
-       <command>FETCH</command> (Pavel Stehule)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow <literal>IN</literal> as an alternative to
-       <literal>FROM</literal> in PL/pgSQL's <command>FETCH</command>
-       statement, for consistency with the backend's
-       <command>FETCH</command> command (Pavel Stehule)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <command>MOVE</command> to PL/pgSQL (Magnus, Pavel Stehule,
-       Neil)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Implement <command>RETURN QUERY</command> (Pavel Stehule, Neil)
-      </para>
-
-      <para>
-       This adds convenient syntax for PL/pgSQL set-returning functions
-       that want to return the result of a query.  <command>RETURN QUERY</>
-       is easier and more efficient than a loop
-       around <command>RETURN NEXT</command>.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow function parameter names to be qualified with the
-       function's name (Tom)
-      </para>
-
-      <para>
-       For example, <literal>myfunc.myvar</>. This is particularly
-       useful for specifying variables in a query where the variable
-       name might match a column name.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Make qualification of variables with block labels work properly (Tom)
-      </para>
-
-      <para>
-       Formerly, outer-level block labels could unexpectedly interfere with
-       recognition of inner-level record or row references.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Tighten requirements for <literal>FOR</literal> loop
-       <literal>STEP</> values (Tom)
-      </para>
-
-      <para>
-       Prevent non-positive <literal>STEP</> values, and handle
-       loop overflows.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Improve accuracy when reporting syntax error locations (Tom)
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title>Other Server-Side Languages</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Allow type-name arguments to PL/Perl
-       <function>spi_prepare()</function> to be data type aliases in
-       addition to names found in <literal>pg_type</literal> (Andrew)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow type-name arguments to PL/Python
-       <function>plpy.prepare()</function> to be data type aliases in
-       addition to names found in <literal>pg_type</literal> (Andrew)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow type-name arguments to PL/Tcl <function>spi_prepare</> to
-       be data type aliases in addition to names found in
-       <literal>pg_type</literal> (Andrew)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Enable PL/PythonU to compile on Python 2.5 (Marko Kreen)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Support a true PL/Python boolean type in compatible Python versions
-       (Python 2.3 and later) (Marko Kreen)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Fix PL/Tcl problems with thread-enabled <filename>libtcl</> spawning
-       multiple threads within the backend (Steve Marshall, Paul Bayer,
-       Doug Knight)
-      </para>
-
-      <para>
-       This caused all sorts of unpleasantness.
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title><link linkend="APP-PSQL"><application>psql</></link></title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       List disabled triggers separately in <literal>\d</literal> output
-       (Brendan Jurd)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       In <literal>\d</literal> patterns, always match <literal>$</literal>
-       literally (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Show aggregate return types in <literal>\da</literal> output
-       (Greg Sabino Mullane)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add the function's volatility status to the output of
-       <literal>\df+</literal> (Neil)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <literal>\prompt</literal> capability (Chad Wagner)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow <literal>\pset</literal>, <literal>\t</literal>, and
-       <literal>\x</literal> to specify <literal>on</> or <literal>off</>,
-       rather than just toggling (Chad Wagner)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <literal>\sleep</> capability (Jan)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Enable <literal>\timing</> output for <literal>\copy</> (Andrew)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Improve <literal>\timing</literal> resolution on Windows
-       (Itagaki Takahiro)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Flush <literal>\o</> output after each backslash command (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Correctly detect and report errors while reading a <literal>-f</>
-       input file (Peter)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Remove <literal>-u</> option (this option has long been deprecated)
-       (Tom)
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title><link linkend="APP-PGDUMP"><application>pg_dump</></link></title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Add <literal>--tablespaces-only</> and <literal>--roles-only</>
-       options to <application>pg_dumpall</application> (Dave Page)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add an output file option to
-       <application>pg_dumpall</application> (Dave Page)
-      </para>
-
-      <para>
-       This is primarily useful on Windows, where output redirection of
-       child <application>pg_dump</application> processes does not work.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow <application>pg_dumpall</> to accept an initial-connection
-       database name rather than the default
-       <literal>template1</literal> (Dave Page)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       In <literal>-n</> and <literal>-t</> switches, always match
-       <literal>$</literal> literally (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Improve performance when a database has thousands of objects (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Remove <literal>-u</> option (this option has long been deprecated)
-       (Tom)
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title>Other Client Applications</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       In <application>initdb</>, allow the location of the
-       <filename>pg_xlog</filename> directory to be specified
-       (Euler Taveira de Oliveira)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Enable server core dump generation in <application>pg_regress</>
-       on supported operating systems (Andrew)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add a <literal>-t</> (timeout) parameter to <application>pg_ctl</>
-       (Bruce)
-      </para>
-
-      <para>
-       This controls how long <application>pg_ctl</> will wait when waiting
-       for server startup or shutdown.  Formerly the timeout was hard-wired
-       as 60 seconds.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add a <application>pg_ctl</> option to control generation
-       of server core dumps (Andrew)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow Control-C to cancel <application>clusterdb</>,
-       <application>reindexdb</>, and <application>vacuumdb</> (Itagaki
-       Takahiro, Magnus)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Suppress command tag output for <application>createdb</>,
-       <application>createuser</>, <application>dropdb</>, and
-       <application>dropuser</> (Peter)
-      </para>
-
-      <para>
-       The <literal>--quiet</> option is ignored and will be removed in 8.4.
-       Progress messages when acting on all databases now go to stdout
-       instead of stderr because they are not actually errors.
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title><link linkend="libpq"><application>libpq</></link></title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Interpret the <literal>dbName</> parameter of
-       <function>PQsetdbLogin()</> as a <literal>conninfo</> string if
-       it contains an equals sign (Andrew)
-      </para>
-
-      <para>
-       This allows use of <literal>conninfo</> strings in client
-       programs that still use <literal>PQsetdbLogin()</>.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Support a global <acronym>SSL</> configuration file (Victor
-       Wagner)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add environment variable <varname>PGSSLKEY</> to control
-       <acronym>SSL</> hardware keys (Victor Wagner)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <function>lo_truncate()</function> for large object
-       truncation (Kris Jurka)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <function>PQconnectionNeedsPassword()</function> that returns
-       true if the server required a password but none was supplied
-       (Joe Conway, Tom)
-      </para>
-
-      <para>
-       If this returns true after a failed connection attempt, a client
-       application should prompt the user for a password.  In the past
-       applications have had to check for a specific error message string to
-       decide whether a password is needed; that approach is now
-       deprecated.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <function>PQconnectionUsedPassword()</function> that returns
-       true if the supplied password was actually used
-       (Joe Conway, Tom)
-      </para>
-
-      <para>
-       This is useful in some security contexts where it is important
-       to know whether a user-supplied password is actually valid.
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title><link linkend="ecpg"><application>ecpg</></link></title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Use V3 frontend/backend protocol (Michael)
-      </para>
-
-      <para>
-       This adds support for server-side prepared statements.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Use native threads, instead of pthreads, on Windows (Magnus)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Improve thread-safety of ecpglib (Itagaki Takahiro)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Make the ecpg libraries export only necessary API symbols (Michael)
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title><application>Windows</> Port</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Allow the whole <productname>PostgreSQL</> distribution to be compiled
-       with <productname>Microsoft Visual C++</> (Magnus and others)
-      </para>
-
-      <para>
-       This allows Windows-based developers to use familiar development
-       and debugging tools.
-       Windows executables made with Visual C++ might also have better
-       stability and performance than those made with other tool sets.
-       The client-only Visual C++ build scripts have been removed.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Drastically reduce postmaster's memory usage when it has many child
-       processes (Magnus)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow regression tests to be started by an administrative
-       user (Magnus)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add native shared memory implementation (Magnus)
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title>Server Programming Interface (<acronym>SPI</>)</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Add cursor-related functionality in SPI (Pavel Stehule)
-      </para>
-
-      <para>
-       Allow access to the cursor-related planning options, and add
-       <command>FETCH</>/<command>MOVE</> routines.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow execution of cursor commands through
-       <function>SPI_execute</function> (Tom)
-      </para>
-
-      <para>
-       The macro <literal>SPI_ERROR_CURSOR</> still exists but will
-       never be returned.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       SPI plan pointers are now declared as <literal>SPIPlanPtr</> instead of
-       <literal>void *</> (Tom)
-      </para>
-
-      <para>
-       This does not break application code, but switching is
-       recommended to help catch simple programming mistakes.
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title>Build Options</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Add <application>configure</> option <literal>--enable-profiling</>
-       to enable code profiling (works only with <application>gcc</>)
-       (Korry Douglas and Nikhil Sontakke)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <application>configure</> option <literal>--with-system-tzdata</>
-       to use the operating system's time zone database (Peter)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Fix <acronym>PGXS</> so extensions can be built against PostgreSQL
-       installations whose <application>pg_config</> program does not
-       appear first in the <varname>PATH</> (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Support <command>gmake draft</command> when building the
-       <acronym>SGML</> documentation (Bruce)
-      </para>
-
-      <para>
-       Unless <literal>draft</> is used, the documentation build will
-       now be repeated if necessary to ensure the index is up-to-date.
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title>Source Code</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Rename macro <literal>DLLIMPORT</> to <literal>PGDLLIMPORT</> to
-       avoid conflicting with third party includes (like Tcl) that
-       define <literal>DLLIMPORT</> (Magnus)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Create <quote>operator families</quote> to improve planning of
-       queries involving cross-data-type comparisons (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Update GIN <function>extractQuery()</> API to allow signalling
-       that nothing can satisfy the query (Teodor)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Move <literal>NAMEDATALEN</> definition from
-       <filename>postgres_ext.h</> to <filename>pg_config_manual.h</>
-       (Peter)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Provide <function>strlcpy()</function> and
-       <function>strlcat()</function> on all platforms, and replace
-       error-prone uses of <function>strncpy()</function>,
-       <function>strncat()</function>, etc (Peter)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Create hooks to let an external plugin monitor (or even replace) the
-       planner and create plans for hypothetical situations (Gurjeet
-       Singh, Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Create a function variable <literal>join_search_hook</> to let plugins
-       override the join search order portion of the planner (Julius
-       Stroffek)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <function>tas()</> support for Renesas' M32R processor
-       (Kazuhiro Inaoka)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       <function>quote_identifier()</function> and
-       <application>pg_dump</application> no longer quote keywords that are
-       unreserved according to the grammar (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Change the on-disk representation of the <type>NUMERIC</type>
-       data type so that the <structfield>sign_dscale</> word comes
-       before the weight (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Use <acronym>SYSV</> semaphores rather than POSIX on Darwin
-       &gt;= 6.0, i.e., OS X 10.2 and up (Chris Marcellino)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <link linkend="acronyms">acronym</link> and <link
-       linkend="creating-cluster-nfs">NFS</link> documentation
-       sections (Bruce)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       "Postgres" is now documented as an accepted alias for
-       "PostgreSQL" (Peter)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add documentation about preventing database server spoofing when
-       the server is down (Bruce)
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title>Contrib</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Move <filename>contrib</> <filename>README</> content into the
-       main <productname>PostgreSQL</> documentation (Albert Cervera i
-       Areny)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <filename>contrib/pageinspect</filename> module for low-level
-       page inspection (Simon, Heikki)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <filename>contrib/pg_standby</filename> module for controlling
-       warm standby operation (Simon)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <filename>contrib/uuid-ossp</filename> module for generating
-       <type>UUID</> values using the OSSP UUID library (Peter)
-      </para>
-
-      <para>
-       Use <application>configure</>
-       <literal>--with-ossp-uuid</literal> to activate. This takes
-       advantage of the new <type>UUID</type> builtin type.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <filename>contrib/dict_int</filename>,
-       <filename>contrib/dict_xsyn</filename>, and
-       <filename>contrib/test_parser</filename> modules to provide
-       sample add-on text search dictionary templates and parsers
-       (Sergey Karpov)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow <application>contrib/pgbench</> to set the fillfactor (Pavan
-       Deolasee)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add timestamps to <application>contrib/pgbench</> <literal>-l</>
-       (Greg Smith)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add usage count statistics to
-       <filename>contrib/pgbuffercache</filename> (Greg Smith)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add GIN support for <filename>contrib/hstore</> (Teodor)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add GIN support for <filename>contrib/pg_trgm</> (Guillaume Smet, Teodor)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Update OS/X startup scripts in
-       <filename>contrib/start-scripts</filename> (Mark Cotner, David
-       Fetter)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Restrict <function>pgrowlocks()</function> and
-       <function>dblink_get_pkey()</function> to users who have
-       <literal>SELECT</literal> privilege on the target table (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Restrict <filename>contrib/pgstattuple</filename> functions to
-       superusers (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       <filename>contrib/xml2</filename> is deprecated and planned for
-       removal in 8.4 (Peter)
-      </para>
-
-      <para>
-       The new XML support in core PostgreSQL supersedes this module.
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-  </sect2>
- </sect1>
diff --git a/doc/src/sgml/release-8.4.sgml b/doc/src/sgml/release-8.4.sgml
deleted file mode 100644
index ac5a92f5a70c49fe86a58ba90452ec4076687be3..0000000000000000000000000000000000000000
--- a/doc/src/sgml/release-8.4.sgml
+++ /dev/null
@@ -1,10080 +0,0 @@
-<!-- doc/src/sgml/release-8.4.sgml -->
-<!-- See header comment in release.sgml about typical markup -->
-
- <sect1 id="release-8-4-22">
-  <title>Release 8.4.22</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2014-07-24</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.4.21.
-   For information about new features in the 8.4 major release, see
-   <xref linkend="release-8-4">.
-  </para>
-
-  <para>
-   This is expected to be the last <productname>PostgreSQL</> release
-   in the 8.4.X series.  Users are encouraged to update to a newer
-   release branch soon.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.4.22</title>
-
-   <para>
-    A dump/restore is not required for those running 8.4.X.
-   </para>
-
-   <para>
-    However, this release corrects an index corruption problem in some GiST
-    indexes.  See the first changelog entry 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 8.4.19,
-    see <xref linkend="release-8-4-19">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <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>
-
-    <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>
-
-    <listitem>
-     <para>
-      Fix possibly-incorrect cache invalidation during nested calls
-      to <function>ReceiveSharedInvalidMessages</> (Andres Freund)
-     </para>
-    </listitem>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <listitem>
-     <para>
-      Fix possible crash when invoking a user-defined function while
-      rewinding a cursor (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix query-lifespan memory leak while evaluating the arguments for a
-      function in <literal>FROM</> (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix session-lifespan memory leaks in regular-expression processing
-      (Tom Lane, Arthur O'Dwyer, Greg Stark)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix data encoding error in <filename>hungarian.stop</> (Tom Lane)
-     </para>
-    </listitem>
-
-    <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>
-
-    <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>
-
-    <listitem>
-     <para>
-      Fix <command>REASSIGN OWNED</> to not fail for text search objects
-      (&Aacute;lvaro Herrera)
-     </para>
-    </listitem>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <listitem>
-     <para>
-      Fix linking of <application>libpython</> on OS X (Tom Lane)
-     </para>
-
-     <para>
-      The method we previously used can fail with the Python library
-      supplied by Xcode 5.0 and later.
-     </para>
-    </listitem>
-
-    <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>
-
-    <listitem>
-     <para>
-      Ensure that LDAP lookup attempts in <application>libpq</> time out as
-      intended (Laurenz Albe)
-     </para>
-    </listitem>
-
-    <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>
-
-    <listitem>
-     <para>
-      In <filename>contrib/pgcrypto</> functions, ensure sensitive
-      information is cleared from stack variables before returning
-      (Marko Kreen)
-     </para>
-    </listitem>
-
-    <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>
-
-    <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-8-4-21">
-  <title>Release 8.4.21</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2014-03-20</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.4.20.
-   For information about new features in the 8.4 major release, see
-   <xref linkend="release-8-4">.
-  </para>
-
-  <para>
-   The <productname>PostgreSQL</> community will stop releasing updates
-   for the 8.4.X release series in July 2014.
-   Users are encouraged to update to a newer release branch soon.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.4.21</title>
-
-   <para>
-    A dump/restore is not required for those running 8.4.X.
-   </para>
-
-   <para>
-    However, if you are upgrading from a version earlier than 8.4.19,
-    see <xref linkend="release-8-4-19">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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-8-4-20">
-  <title>Release 8.4.20</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2014-02-20</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.4.19.
-   For information about new features in the 8.4 major release, see
-   <xref linkend="release-8-4">.
-  </para>
-
-  <para>
-   The <productname>PostgreSQL</> community will stop releasing updates
-   for the 8.4.X release series in July 2014.
-   Users are encouraged to update to a newer release branch soon.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.4.20</title>
-
-   <para>
-    A dump/restore is not required for those running 8.4.X.
-   </para>
-
-   <para>
-    However, if you are upgrading from a version earlier than 8.4.19,
-    see <xref linkend="release-8-4-19">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <listitem>
-     <para>
-      Fix checks for all-zero client addresses in pgstat functions (Kevin
-      Grittner)
-     </para>
-    </listitem>
-
-    <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>
-
-    <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>
-
-    <listitem>
-     <para>
-      Accept <literal>SHIFT_JIS</> as an encoding name for locale checking
-      purposes (Tatsuo Ishii)
-     </para>
-    </listitem>
-
-    <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>
-
-    <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>
-
-    <listitem>
-     <para>
-      Fix misaligned descriptors in <application>ecpg</> (MauMau)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      In <application>ecpg</>, handle lack of a hostname in the connection
-      parameters properly (Michael Meskes)
-     </para>
-    </listitem>
-
-    <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>
-
-    <listitem>
-     <para>
-      In <filename>contrib/isn</>, fix incorrect calculation of the check
-      digit for ISMN values (Fabien Coelho)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure client-code-only installation procedure works as documented
-      (Peter Eisentraut)
-     </para>
-    </listitem>
-
-    <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>
-
-    <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>
-
-    <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-8-4-19">
-  <title>Release 8.4.19</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2013-12-05</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.4.18.
-   For information about new features in the 8.4 major release, see
-   <xref linkend="release-8-4">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.4.19</title>
-
-   <para>
-    A dump/restore is not required for those running 8.4.X.
-   </para>
-
-   <para>
-    However, this release corrects a potential data corruption
-    issue.  See the first changelog entry 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 8.4.17,
-    see <xref linkend="release-8-4-17">.
-   </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.  Users
-      upgrading from release 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 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>
-      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 premature deletion of temporary files (Andres Freund)
-     </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>
-      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>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-8-4-18">
-  <title>Release 8.4.18</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2013-10-10</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.4.17.
-   For information about new features in the 8.4 major release, see
-   <xref linkend="release-8-4">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.4.18</title>
-
-   <para>
-    A dump/restore is not required for those running 8.4.X.
-   </para>
-
-   <para>
-    However, if you are upgrading from a version earlier than 8.4.17,
-    see <xref linkend="release-8-4-17">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Prevent corruption of multi-byte characters when attempting to
-      case-fold identifiers (Andrew Dunstan)
-     </para>
-
-     <para>
-      <productname>PostgreSQL</> case-folds non-ASCII characters only
-      when using a single-byte server encoding.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix memory leak caused by <function>lo_open()</function> failure
-      (Heikki Linnakangas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix memory overcommit bug when <varname>work_mem</> is using more
-      than 24GB of memory (Stephen Frost)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix deadlock bug in libpq when using SSL (Stephen Frost)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Properly compute row estimates for boolean columns containing many NULL
-      values (Andrew Gierth)
-     </para>
-
-     <para>
-      Previously tests like <literal>col IS NOT TRUE</> and <literal>col IS
-      NOT FALSE</> did not properly factor in NULL values when estimating
-      plan costs.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent pushing down <literal>WHERE</> clauses into unsafe
-      <literal>UNION/INTERSECT</> subqueries (Tom Lane)
-     </para>
-
-     <para>
-      Subqueries of a <literal>UNION</> or <literal>INTERSECT</> that
-      contain set-returning functions or volatile functions in their
-      <literal>SELECT</> lists could be improperly optimized, leading to
-      run-time errors or incorrect query results.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix rare case of <quote>failed to locate grouping columns</>
-      planner failure (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve view dumping code's handling of dropped columns in referenced
-      tables (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible deadlock during concurrent <command>CREATE INDEX
-      CONCURRENTLY</> operations (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <function>regexp_matches()</> handling of zero-length matches
-      (Jeevan Chalke)
-     </para>
-
-     <para>
-      Previously, zero-length matches like '^' could return too many matches.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix crash for overly-complex regular expressions (Heikki Linnakangas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix regular expression match failures for back references combined with
-      non-greedy quantifiers (Jeevan Chalke)
-     </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>
-      Fix <function>pgp_pub_decrypt()</> so it works for secret keys with
-      passwords (Marko Kreen)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Remove rare inaccurate warning during vacuum of index-less tables
-      (Heikki Linnakangas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid possible failure when performing transaction control commands (e.g
-      <command>ROLLBACK</>) in prepared queries (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure that floating-point data input accepts standard spellings
-      of <quote>infinity</> on all platforms (Tom Lane)
-     </para>
-
-     <para>
-      The C99 standard says that allowable spellings are <literal>inf</>,
-      <literal>+inf</>, <literal>-inf</>, <literal>infinity</>,
-      <literal>+infinity</>, and <literal>-infinity</>.  Make sure we
-      recognize these even if the platform's <function>strtod</> function
-      doesn't.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Expand ability to compare rows to records and arrays (Rafal Rzepecki,
-      Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2013d
-      for DST law changes in Israel, Morocco, Palestine, and Paraguay.
-      Also, historical zone data corrections for Macquarie Island.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-4-17">
-  <title>Release 8.4.17</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2013-04-04</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.4.16.
-   For information about new features in the 8.4 major release, see
-   <xref linkend="release-8-4">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.4.17</title>
-
-   <para>
-    A dump/restore is not required for those running 8.4.X.
-   </para>
-
-   <para>
-    However, this release corrects several errors in management of GiST
-    indexes.  After installing this update, it is advisable to
-    <command>REINDEX</> any GiST indexes that meet one or more of the
-    conditions described below.
-   </para>
-
-   <para>
-    Also, if you are upgrading from a version earlier than 8.4.10,
-    see <xref linkend="release-8-4-10">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Reset OpenSSL randomness state in each postmaster child process
-      (Marko Kreen)
-     </para>
-
-     <para>
-      This avoids a scenario wherein random numbers generated by
-      <filename>contrib/pgcrypto</> functions might be relatively easy for
-      another database user to guess.  The risk is only significant when
-      the postmaster is configured with <varname>ssl</> = <literal>on</>
-      but most connections don't use SSL encryption.  (CVE-2013-1900)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix GiST indexes to not use <quote>fuzzy</> geometric comparisons when
-      it's not appropriate to do so (Alexander Korotkov)
-     </para>
-
-     <para>
-      The core geometric types perform comparisons using <quote>fuzzy</>
-      equality, but <function>gist_box_same</> must do exact comparisons,
-      else GiST indexes using it might become inconsistent.  After installing
-      this update, users should <command>REINDEX</> any GiST indexes on
-      <type>box</>, <type>polygon</>, <type>circle</>, or <type>point</>
-      columns, since all of these use <function>gist_box_same</>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix erroneous range-union and penalty logic in GiST indexes that use
-      <filename>contrib/btree_gist</> for variable-width data types, that is
-      <type>text</>, <type>bytea</>, <type>bit</>, and <type>numeric</>
-      columns (Tom Lane)
-     </para>
-
-     <para>
-      These errors could result in inconsistent indexes in which some keys
-      that are present would not be found by searches, and also in useless
-      index bloat.  Users are advised to <command>REINDEX</> such indexes
-      after installing this update.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix bugs in GiST page splitting code for multi-column indexes
-      (Tom Lane)
-     </para>
-
-     <para>
-      These errors could result in inconsistent indexes in which some keys
-      that are present would not be found by searches, and also in indexes
-      that are unnecessarily inefficient to search.  Users are advised to
-      <command>REINDEX</> multi-column GiST indexes after installing this
-      update.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix infinite-loop risk in regular expression compilation (Tom Lane,
-      Don Porter)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix potential null-pointer dereference in regular expression compilation
-      (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <function>to_char()</> to use ASCII-only case-folding rules where
-      appropriate (Tom Lane)
-     </para>
-
-     <para>
-      This fixes misbehavior of some template patterns that should be
-      locale-independent, but mishandled <quote><literal>I</></quote> and
-      <quote><literal>i</></quote> in Turkish locales.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix unwanted rejection of timestamp <literal>1999-12-31 24:00:00</>
-      (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Remove useless <quote>picksplit doesn't support secondary split</> log
-      messages (Josh Hansen, Tom Lane)
-     </para>
-
-     <para>
-      This message seems to have been added in expectation of code that was
-      never written, and probably never will be, since GiST's default
-      handling of secondary splits is actually pretty good.  So stop nagging
-      end users about it.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible failure to send a session's last few transaction
-      commit/abort counts to the statistics collector (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Eliminate memory leaks in PL/Perl's <function>spi_prepare()</> function
-      (Alex Hunsaker, Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>pg_dumpall</> to handle database names containing
-      <quote><literal>=</></quote> correctly (Heikki Linnakangas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid crash in <application>pg_dump</> when an incorrect connection
-      string is given (Heikki Linnakangas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ignore invalid indexes in <application>pg_dump</> (Michael Paquier)
-     </para>
-
-     <para>
-      Dumping invalid indexes can cause problems at restore time, for example
-      if the reason the index creation failed was because it tried to enforce
-      a uniqueness condition not satisfied by the table's data.  Also, if the
-      index creation is in fact still in progress, it seems reasonable to
-      consider it to be an uncommitted DDL change, which
-      <application>pg_dump</> wouldn't be expected to dump anyway.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <filename>contrib/pg_trgm</>'s <function>similarity()</> function
-      to return zero for trigram-less strings (Tom Lane)
-     </para>
-
-     <para>
-      Previously it returned <literal>NaN</> due to internal division by zero.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2013b
-      for DST law changes in Chile, Haiti, Morocco, Paraguay, and some
-      Russian areas.  Also, historical zone data corrections for numerous
-      places.
-     </para>
-
-     <para>
-      Also, update the time zone abbreviation files for recent changes in
-      Russia and elsewhere: <literal>CHOT</>, <literal>GET</>,
-      <literal>IRKT</>, <literal>KGT</>, <literal>KRAT</>, <literal>MAGT</>,
-      <literal>MAWT</>, <literal>MSK</>, <literal>NOVT</>, <literal>OMST</>,
-      <literal>TKT</>, <literal>VLAT</>, <literal>WST</>, <literal>YAKT</>,
-      <literal>YEKT</> now follow their current meanings, and
-      <literal>VOLT</> (Europe/Volgograd) and <literal>MIST</>
-      (Antarctica/Macquarie) are added to the default abbreviations list.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-4-16">
-  <title>Release 8.4.16</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2013-02-07</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.4.15.
-   For information about new features in the 8.4 major release, see
-   <xref linkend="release-8-4">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.4.16</title>
-
-   <para>
-    A dump/restore is not required for those running 8.4.X.
-   </para>
-
-   <para>
-    However, if you are upgrading from a version earlier than 8.4.10,
-    see <xref linkend="release-8-4-10">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Prevent execution of <function>enum_recv</> from SQL (Tom Lane)
-     </para>
-
-     <para>
-      The function was misdeclared, allowing a simple SQL command to crash the
-      server.  In principle an attacker might be able to use it to examine the
-      contents of server memory.  Our thanks to Sumit Soni (via Secunia SVCRP)
-      for reporting this issue.  (CVE-2013-0255)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update minimum recovery point when truncating a relation file (Heikki
-      Linnakangas)
-     </para>
-
-     <para>
-      Once data has been discarded, it's no longer safe to stop recovery at
-      an earlier point in the timeline.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix SQL grammar to allow subscripting or field selection from a
-      sub-SELECT result (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Protect against race conditions when scanning
-      <structname>pg_tablespace</> (Stephen Frost, Tom Lane)
-     </para>
-
-     <para>
-      <command>CREATE DATABASE</> and <command>DROP DATABASE</> could
-      misbehave if there were concurrent updates of
-      <structname>pg_tablespace</> entries.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent <command>DROP OWNED</> from trying to drop whole databases or
-      tablespaces (&Aacute;lvaro Herrera)
-     </para>
-
-     <para>
-      For safety, ownership of these objects must be reassigned, not dropped.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix error in <link
-      linkend="guc-vacuum-freeze-table-age"><varname>vacuum_freeze_table_age</></link>
-      implementation (Andres Freund)
-     </para>
-
-     <para>
-      In installations that have existed for more than <link
-      linkend="guc-vacuum-freeze-min-age"><varname>vacuum_freeze_min_age</></link>
-      transactions, this mistake prevented autovacuum from using partial-table
-      scans, so that a full-table scan would always happen instead.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent misbehavior when a <symbol>RowExpr</> or <symbol>XmlExpr</>
-      is parse-analyzed twice (Andres Freund, Tom Lane)
-     </para>
-
-     <para>
-      This mistake could be user-visible in contexts such as
-      <literal>CREATE TABLE LIKE INCLUDING INDEXES</>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve defenses against integer overflow in hashtable sizing
-      calculations (Jeff Davis)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Reject out-of-range dates in <function>to_date()</> (Hitoshi Harada)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure that non-ASCII prompt strings are translated to the correct
-      code page on Windows (Alexander Law, Noah Misch)
-     </para>
-
-     <para>
-      This bug affected <application>psql</> and some other client programs.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible crash in <application>psql</>'s <command>\?</> command
-      when not connected to a database (Meng Qingzhong)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix one-byte buffer overrun in <application>libpq</>'s
-      <function>PQprintTuples</> (Xi Wang)
-     </para>
-
-     <para>
-      This ancient function is not used anywhere by
-      <productname>PostgreSQL</> itself, but it might still be used by some
-      client code.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <application>ecpglib</> use translated messages properly
-      (Chen Huajun)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Properly install <application>ecpg_compat</> and
-      <application>pgtypes</> libraries on MSVC (Jiang Guiqing)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Rearrange configure's tests for supplied functions so it is not
-      fooled by bogus exports from libedit/libreadline (Christoph Berg)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure Windows build number increases over time (Magnus Hagander)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <application>pgxs</> build executables with the right
-      <literal>.exe</> suffix when cross-compiling for Windows
-      (Zoltan Boszormenyi)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Add new timezone abbreviation <literal>FET</> (Tom Lane)
-     </para>
-
-     <para>
-      This is now used in some eastern-European time zones.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-4-15">
-  <title>Release 8.4.15</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2012-12-06</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.4.14.
-   For information about new features in the 8.4 major release, see
-   <xref linkend="release-8-4">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.4.15</title>
-
-   <para>
-    A dump/restore is not required for those running 8.4.X.
-   </para>
-
-   <para>
-    However, if you are upgrading from a version earlier than 8.4.10,
-    see <xref linkend="release-8-4-10">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Fix multiple bugs associated with <command>CREATE INDEX
-      CONCURRENTLY</> (Andres Freund, Tom Lane)
-     </para>
-
-     <para>
-      Fix <command>CREATE INDEX CONCURRENTLY</> to use
-      in-place updates when changing the state of an index's
-      <structname>pg_index</> row.  This prevents race conditions that could
-      cause concurrent sessions to miss updating the target index, thus
-      resulting in corrupt concurrently-created indexes.
-     </para>
-
-     <para>
-      Also, fix various other operations to ensure that they ignore
-      invalid indexes resulting from a failed <command>CREATE INDEX
-      CONCURRENTLY</> command.  The most important of these is
-      <command>VACUUM</>, because an auto-vacuum could easily be launched
-      on the table before corrective action can be taken to fix or remove
-      the invalid index.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid corruption of internal hash tables when out of memory
-      (Hitoshi Harada)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix planning of non-strict equivalence clauses above outer joins
-      (Tom Lane)
-     </para>
-
-     <para>
-      The planner could derive incorrect constraints from a clause equating
-      a non-strict construct to something else, for example
-      <literal>WHERE COALESCE(foo, 0) = 0</>
-      when <literal>foo</> is coming from the nullable side of an outer join.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve planner's ability to prove exclusion constraints from
-      equivalence classes (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix partial-row matching in hashed subplans to handle cross-type cases
-      correctly (Tom Lane)
-     </para>
-
-     <para>
-      This affects multicolumn <literal>NOT IN</> subplans, such as
-      <literal>WHERE (a, b) NOT IN (SELECT x, y FROM ...)</>
-      when for instance <literal>b</> and <literal>y</> are <type>int4</>
-      and <type>int8</> respectively.  This mistake led to wrong answers
-      or crashes depending on the specific datatypes involved.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Acquire buffer lock when re-fetching the old tuple for an
-      <literal>AFTER ROW UPDATE/DELETE</> trigger (Andres Freund)
-     </para>
-
-     <para>
-      In very unusual circumstances, this oversight could result in passing
-      incorrect data to the precheck logic for a foreign-key enforcement
-      trigger.  That could result in a crash, or in an incorrect decision
-      about whether to fire the trigger.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <command>ALTER COLUMN TYPE</> to handle inherited check
-      constraints properly (Pavan Deolasee)
-     </para>
-
-     <para>
-      This worked correctly in pre-8.4 releases, and now works correctly
-      in 8.4 and later.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <command>REASSIGN OWNED</> to handle grants on tablespaces
-      (&Aacute;lvaro Herrera)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ignore incorrect <structname>pg_attribute</> entries for system
-      columns for views (Tom Lane)
-     </para>
-
-     <para>
-      Views do not have any system columns.  However, we forgot to
-      remove such entries when converting a table to a view.  That's fixed
-      properly for 9.3 and later, but in previous branches we need to defend
-      against existing mis-converted views.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix rule printing to dump <literal>INSERT INTO <replaceable>table</>
-      DEFAULT VALUES</literal> correctly (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Guard against stack overflow when there are too many
-      <literal>UNION</>/<literal>INTERSECT</>/<literal>EXCEPT</> clauses
-      in a query (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent platform-dependent failures when dividing the minimum possible
-      integer value by -1 (Xi Wang, Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible access past end of string in date parsing
-      (Hitoshi Harada)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Produce an understandable error message if the length of the path name
-      for a Unix-domain socket exceeds the platform-specific limit
-      (Tom Lane, Andrew Dunstan)
-     </para>
-
-     <para>
-      Formerly, this would result in something quite unhelpful, such as
-      <quote>Non-recoverable failure in name resolution</>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix memory leaks when sending composite column values to the client
-      (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <application>pg_ctl</> more robust about reading the
-      <filename>postmaster.pid</> file (Heikki Linnakangas)
-     </para>
-
-     <para>
-      Fix race conditions and possible file descriptor leakage.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible crash in <application>psql</> if incorrectly-encoded data
-      is presented and the <varname>client_encoding</> setting is a
-      client-only encoding, such as SJIS (Jiang Guiqing)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix bugs in the <filename>restore.sql</> script emitted by
-      <application>pg_dump</> in <literal>tar</> output format (Tom Lane)
-     </para>
-
-     <para>
-      The script would fail outright on tables whose names include
-      upper-case characters.  Also, make the script capable of restoring
-      data in <option>--inserts</> mode as well as the regular COPY mode.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>pg_restore</> to accept POSIX-conformant
-      <literal>tar</> files (Brian Weaver, Tom Lane)
-     </para>
-
-     <para>
-      The original coding of <application>pg_dump</>'s <literal>tar</>
-      output mode produced files that are not fully conformant with the
-      POSIX standard.  This has been corrected for version 9.3.  This
-      patch updates previous branches so that they will accept both the
-      incorrect and the corrected formats, in hopes of avoiding
-      compatibility problems when 9.3 comes out.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>pg_resetxlog</> to locate <filename>postmaster.pid</>
-      correctly when given a relative path to the data directory (Tom Lane)
-     </para>
-
-     <para>
-      This mistake could lead to <application>pg_resetxlog</> not noticing
-      that there is an active postmaster using the data directory.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>libpq</>'s <function>lo_import()</> and
-      <function>lo_export()</> functions to report file I/O errors properly
-      (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>ecpg</>'s processing of nested structure pointer
-      variables (Muhammad Usama)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <filename>contrib/pageinspect</>'s btree page inspection
-      functions take buffer locks while examining pages (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>pgxs</> support for building loadable modules on AIX
-      (Tom Lane)
-     </para>
-
-     <para>
-      Building modules outside the original source tree didn't work on AIX.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2012j
-      for DST law changes in Cuba, Israel, Jordan, Libya, Palestine, Western
-      Samoa, and portions of Brazil.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-4-14">
-  <title>Release 8.4.14</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2012-09-24</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.4.13.
-   For information about new features in the 8.4 major release, see
-   <xref linkend="release-8-4">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.4.14</title>
-
-   <para>
-    A dump/restore is not required for those running 8.4.X.
-   </para>
-
-   <para>
-    However, if you are upgrading from a version earlier than 8.4.10,
-    see <xref linkend="release-8-4-10">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Fix planner's assignment of executor parameters, and fix executor's
-      rescan logic for CTE plan nodes (Tom Lane)
-     </para>
-
-     <para>
-      These errors could result in wrong answers from queries that scan the
-      same <literal>WITH</> subquery multiple times.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve page-splitting decisions in GiST indexes (Alexander Korotkov,
-      Robert Haas, Tom Lane)
-     </para>
-
-     <para>
-      Multi-column GiST indexes might suffer unexpected bloat due to this
-      error.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix cascading privilege revoke to stop if privileges are still held
-      (Tom Lane)
-     </para>
-
-     <para>
-      If we revoke a grant option from some role <replaceable>X</>, but
-      <replaceable>X</> still holds that option via a grant from someone
-      else, we should not recursively revoke the corresponding privilege
-      from role(s) <replaceable>Y</> that <replaceable>X</> had granted it
-      to.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix handling of <literal>SIGFPE</> when PL/Perl is in use (Andres Freund)
-     </para>
-
-     <para>
-      Perl resets the process's <literal>SIGFPE</> handler to
-      <literal>SIG_IGN</>, which could result in crashes later on.  Restore
-      the normal Postgres signal handler after initializing PL/Perl.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent PL/Perl from crashing if a recursive PL/Perl function is
-      redefined while being executed (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Work around possible misoptimization in PL/Perl (Tom Lane)
-     </para>
-
-     <para>
-      Some Linux distributions contain an incorrect version of
-      <filename>pthread.h</> that results in incorrect compiled code in
-      PL/Perl, leading to crashes if a PL/Perl function calls another one
-      that throws an error.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2012f
-      for DST law changes in Fiji
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-4-13">
-  <title>Release 8.4.13</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2012-08-17</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.4.12.
-   For information about new features in the 8.4 major release, see
-   <xref linkend="release-8-4">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.4.13</title>
-
-   <para>
-    A dump/restore is not required for those running 8.4.X.
-   </para>
-
-   <para>
-    However, if you are upgrading from a version earlier than 8.4.10,
-    see <xref linkend="release-8-4-10">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Prevent access to external files/URLs via XML entity references
-      (Noah Misch, Tom Lane)
-     </para>
-
-     <para>
-      <function>xml_parse()</> would attempt to fetch external files or
-      URLs as needed to resolve DTD and entity references in an XML value,
-      thus allowing unprivileged database users to attempt to fetch data
-      with the privileges of the database server.  While the external data
-      wouldn't get returned directly to the user, portions of it could be
-      exposed in error messages if the data didn't parse as valid XML; and
-      in any case the mere ability to check existence of a file might be
-      useful to an attacker.  (CVE-2012-3489)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent access to external files/URLs via <filename>contrib/xml2</>'s
-      <function>xslt_process()</> (Peter Eisentraut)
-     </para>
-
-     <para>
-      <application>libxslt</> offers the ability to read and write both
-      files and URLs through stylesheet commands, thus allowing
-      unprivileged database users to both read and write data with the
-      privileges of the database server.  Disable that through proper use
-      of <application>libxslt</>'s security options.  (CVE-2012-3488)
-     </para>
-
-     <para>
-      Also, remove <function>xslt_process()</>'s ability to fetch documents
-      and stylesheets from external files/URLs.  While this was a
-      documented <quote>feature</>, it was long regarded as a bad idea.
-      The fix for CVE-2012-3489 broke that capability, and rather than
-      expend effort on trying to fix it, we're just going to summarily
-      remove it.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent too-early recycling of btree index pages (Noah Misch)
-     </para>
-
-     <para>
-      When we allowed read-only transactions to skip assigning XIDs, we
-      introduced the possibility that a deleted btree page could be
-      recycled while a read-only transaction was still in flight to it.
-      This would result in incorrect index search results.  The probability
-      of such an error occurring in the field seems very low because of the
-      timing requirements, but nonetheless it should be fixed.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix crash-safety bug with newly-created-or-reset sequences (Tom Lane)
-     </para>
-
-     <para>
-      If <command>ALTER SEQUENCE</> was executed on a freshly created or
-      reset sequence, and then precisely one <function>nextval()</> call
-      was made on it, and then the server crashed, WAL replay would restore
-      the sequence to a state in which it appeared that no
-      <function>nextval()</> had been done, thus allowing the first
-      sequence value to be returned again by the next
-      <function>nextval()</> call.  In particular this could manifest for
-      <type>serial</> columns, since creation of a serial column's sequence
-      includes an <command>ALTER SEQUENCE OWNED BY</> step.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure the <filename>backup_label</> file is fsync'd after
-      <function>pg_start_backup()</> (Dave Kerr)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Back-patch 9.1 improvement to compress the fsync request queue
-      (Robert Haas)
-     </para>
-
-     <para>
-      This improves performance during checkpoints.  The 9.1 change
-      has now seen enough field testing to seem safe to back-patch.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Only allow autovacuum to be auto-canceled by a directly blocked
-      process (Tom Lane)
-     </para>
-
-     <para>
-      The original coding could allow inconsistent behavior in some cases;
-      in particular, an autovacuum could get canceled after less than
-      <literal>deadlock_timeout</> grace period.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve logging of autovacuum cancels (Robert Haas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix log collector so that <literal>log_truncate_on_rotation</> works
-      during the very first log rotation after server start (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <literal>WITH</> attached to a nested set operation
-      (<literal>UNION</>/<literal>INTERSECT</>/<literal>EXCEPT</>)
-      (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure that a whole-row reference to a subquery doesn't include any
-      extra <literal>GROUP BY</> or <literal>ORDER BY</> columns (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Disallow copying whole-row references in <literal>CHECK</>
-      constraints and index definitions during <command>CREATE TABLE</>
-      (Tom Lane)
-     </para>
-
-     <para>
-      This situation can arise in <command>CREATE TABLE</> with
-      <literal>LIKE</> or <literal>INHERITS</>.  The copied whole-row
-      variable was incorrectly labeled with the row type of the original
-      table not the new one.  Rejecting the case seems reasonable for
-      <literal>LIKE</>, since the row types might well diverge later.  For
-      <literal>INHERITS</> we should ideally allow it, with an implicit
-      coercion to the parent table's row type; but that will require more
-      work than seems safe to back-patch.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix memory leak in <literal>ARRAY(SELECT ...)</> subqueries (Heikki
-      Linnakangas, Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix extraction of common prefixes from regular expressions (Tom Lane)
-     </para>
-
-     <para>
-      The code could get confused by quantified parenthesized
-      subexpressions, such as <literal>^(foo)?bar</>.  This would lead to
-      incorrect index optimization of searches for such patterns.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix bugs with parsing signed
-      <replaceable>hh</><literal>:</><replaceable>mm</> and
-      <replaceable>hh</><literal>:</><replaceable>mm</><literal>:</><replaceable>ss</>
-      fields in <type>interval</> constants (Amit Kapila, Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Report errors properly in <filename>contrib/xml2</>'s
-      <function>xslt_process()</> (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2012e
-      for DST law changes in Morocco and Tokelau
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-4-12">
-  <title>Release 8.4.12</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2012-06-04</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.4.11.
-   For information about new features in the 8.4 major release, see
-   <xref linkend="release-8-4">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.4.12</title>
-
-   <para>
-    A dump/restore is not required for those running 8.4.X.
-   </para>
-
-   <para>
-    However, if you are upgrading from a version earlier than 8.4.10,
-    see <xref linkend="release-8-4-10">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Fix incorrect password transformation in
-      <filename>contrib/pgcrypto</>'s DES <function>crypt()</> function
-      (Solar Designer)
-     </para>
-
-     <para>
-      If a password string contained the byte value <literal>0x80</>, the
-      remainder of the password was ignored, causing the password to be much
-      weaker than it appeared.  With this fix, the rest of the string is
-      properly included in the DES hash.  Any stored password values that are
-      affected by this bug will thus no longer match, so the stored values may
-      need to be updated.  (CVE-2012-2143)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ignore <literal>SECURITY DEFINER</> and <literal>SET</> attributes for
-      a procedural language's call handler (Tom Lane)
-     </para>
-
-     <para>
-      Applying such attributes to a call handler could crash the server.
-      (CVE-2012-2655)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Allow numeric timezone offsets in <type>timestamp</> input to be up to
-      16 hours away from UTC (Tom Lane)
-     </para>
-
-     <para>
-      Some historical time zones have offsets larger than 15 hours, the
-      previous limit.  This could result in dumped data values being rejected
-      during reload.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix timestamp conversion to cope when the given time is exactly the
-      last DST transition time for the current timezone (Tom Lane)
-     </para>
-
-     <para>
-      This oversight has been there a long time, but was not noticed
-      previously because most DST-using zones are presumed to have an
-      indefinite sequence of future DST transitions.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <type>text</> to <type>name</> and <type>char</> to <type>name</>
-      casts to perform string truncation correctly in multibyte encodings
-      (Karl Schnaitter)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix memory copying bug in <function>to_tsquery()</> (Heikki Linnakangas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix planner's handling of outer PlaceHolderVars within subqueries (Tom
-      Lane)
-     </para>
-
-     <para>
-      This bug concerns sub-SELECTs that reference variables coming from the
-      nullable side of an outer join of the surrounding query.
-      In 9.1, queries affected by this bug would fail with <quote>ERROR:
-      Upper-level PlaceHolderVar found where not expected</>.  But in 9.0 and
-      8.4, you'd silently get possibly-wrong answers, since the value
-      transmitted into the subquery wouldn't go to null when it should.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix slow session startup when <structname>pg_attribute</> is very large
-      (Tom Lane)
-     </para>
-
-     <para>
-      If <structname>pg_attribute</> exceeds one-fourth of
-      <varname>shared_buffers</>, cache rebuilding code that is sometimes
-      needed during session start would trigger the synchronized-scan logic,
-      causing it to take many times longer than normal.  The problem was
-      particularly acute if many new sessions were starting at once.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure sequential scans check for query cancel reasonably often (Merlin
-      Moncure)
-     </para>
-
-     <para>
-      A scan encountering many consecutive pages that contain no live tuples
-      would not respond to interrupts meanwhile.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure the Windows implementation of <function>PGSemaphoreLock()</>
-      clears <varname>ImmediateInterruptOK</> before returning (Tom Lane)
-     </para>
-
-     <para>
-      This oversight meant that a query-cancel interrupt received later
-      in the same query could be accepted at an unsafe time, with
-      unpredictable but not good consequences.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Show whole-row variables safely when printing views or rules
-      (Abbas Butt, Tom Lane)
-     </para>
-
-     <para>
-      Corner cases involving ambiguous names (that is, the name could be
-      either a table or column name of the query) were printed in an
-      ambiguous way, risking that the view or rule would be interpreted
-      differently after dump and reload.  Avoid the ambiguous case by
-      attaching a no-op cast.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <command>COPY FROM</> to properly handle null marker strings that
-      correspond to invalid encoding (Tom Lane)
-     </para>
-
-     <para>
-      A null marker string such as <literal>E'\\0'</> should work, and did
-      work in the past, but the case got broken in 8.4.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure autovacuum worker processes perform stack depth checking
-      properly (Heikki Linnakangas)
-     </para>
-
-     <para>
-      Previously, infinite recursion in a function invoked by
-      auto-<command>ANALYZE</> could crash worker processes.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix logging collector to not lose log coherency under high load (Andrew
-      Dunstan)
-     </para>
-
-     <para>
-      The collector previously could fail to reassemble large messages if it
-      got too busy.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix logging collector to ensure it will restart file rotation
-      after receiving <systemitem>SIGHUP</> (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix WAL replay logic for GIN indexes to not fail if the index was
-      subsequently dropped (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix memory leak in PL/pgSQL's <command>RETURN NEXT</> command (Joe
-      Conway)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix PL/pgSQL's <command>GET DIAGNOSTICS</> command when the target
-      is the function's first variable (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix potential access off the end of memory in <application>psql</>'s
-      expanded display (<command>\x</>) mode (Peter Eisentraut)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix several performance problems in <application>pg_dump</> when
-      the database contains many objects (Jeff Janes, Tom Lane)
-     </para>
-
-     <para>
-      <application>pg_dump</> could get very slow if the database contained
-      many schemas, or if many objects are in dependency loops, or if there
-      are many owned sequences.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <filename>contrib/dblink</>'s <function>dblink_exec()</> to not leak
-      temporary database connections upon error (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <filename>contrib/dblink</> to report the correct connection name in
-      error messages (Kyotaro Horiguchi)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2012c
-      for DST law changes in Antarctica, Armenia, Chile, Cuba, Falkland
-      Islands, Gaza, Haiti, Hebron, Morocco, Syria, and Tokelau Islands;
-      also historical corrections for Canada.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-4-11">
-  <title>Release 8.4.11</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2012-02-27</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.4.10.
-   For information about new features in the 8.4 major release, see
-   <xref linkend="release-8-4">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.4.11</title>
-
-   <para>
-    A dump/restore is not required for those running 8.4.X.
-   </para>
-
-   <para>
-    However, if you are upgrading from a version earlier than 8.4.10,
-    see <xref linkend="release-8-4-10">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Require execute permission on the trigger function for
-      <command>CREATE TRIGGER</> (Robert Haas)
-     </para>
-
-     <para>
-      This missing check could allow another user to execute a trigger
-      function with forged input data, by installing it on a table he owns.
-      This is only of significance for trigger functions marked
-      <literal>SECURITY DEFINER</>, since otherwise trigger functions run
-      as the table owner anyway.  (CVE-2012-0866)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Remove arbitrary limitation on length of common name in SSL
-      certificates (Heikki Linnakangas)
-     </para>
-
-     <para>
-      Both <application>libpq</> and the server truncated the common name
-      extracted from an SSL certificate at 32 bytes.  Normally this would
-      cause nothing worse than an unexpected verification failure, but there
-      are some rather-implausible scenarios in which it might allow one
-      certificate holder to impersonate another.  The victim would have to
-      have a common name exactly 32 bytes long, and the attacker would have
-      to persuade a trusted CA to issue a certificate in which the common
-      name has that string as a prefix.  Impersonating a server would also
-      require some additional exploit to redirect client connections.
-      (CVE-2012-0867)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Convert newlines to spaces in names written in <application>pg_dump</>
-      comments (Robert Haas)
-     </para>
-
-     <para>
-      <application>pg_dump</> was incautious about sanitizing object names
-      that are emitted within SQL comments in its output script.  A name
-      containing a newline would at least render the script syntactically
-      incorrect.  Maliciously crafted object names could present a SQL
-      injection risk when the script is reloaded.  (CVE-2012-0868)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix btree index corruption from insertions concurrent with vacuuming
-      (Tom Lane)
-     </para>
-
-     <para>
-      An index page split caused by an insertion could sometimes cause a
-      concurrently-running <command>VACUUM</> to miss removing index entries
-      that it should remove.  After the corresponding table rows are removed,
-      the dangling index entries would cause errors (such as <quote>could not
-      read block N in file ...</>) or worse, silently wrong query results
-      after unrelated rows are re-inserted at the now-free table locations.
-      This bug has been present since release 8.2, but occurs so infrequently
-      that it was not diagnosed until now.  If you have reason to suspect
-      that it has happened in your database, reindexing the affected index
-      will fix things.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update per-column permissions, not only per-table permissions, when
-      changing table owner (Tom Lane)
-     </para>
-
-     <para>
-      Failure to do this meant that any previously granted column permissions
-      were still shown as having been granted by the old owner.  This meant
-      that neither the new owner nor a superuser could revoke the
-      now-untraceable-to-table-owner permissions.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Allow non-existent values for some settings in <command>ALTER
-      USER/DATABASE SET</> (Heikki Linnakangas)
-     </para>
-
-     <para>
-      Allow <varname>default_text_search_config</>,
-      <varname>default_tablespace</>, and <varname>temp_tablespaces</> to be
-      set to names that are not known.  This is because they might be known
-      in another database where the setting is intended to be used, or for the
-      tablespace cases because the tablespace might not be created yet.  The
-      same issue was previously recognized for <varname>search_path</>, and
-      these settings now act like that one.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid crashing when we have problems deleting table files post-commit
-      (Tom Lane)
-     </para>
-
-     <para>
-      Dropping a table should lead to deleting the underlying disk files only
-      after the transaction commits.  In event of failure then (for instance,
-      because of wrong file permissions) the code is supposed to just emit a
-      warning message and go on, since it's too late to abort the
-      transaction.  This logic got broken as of release 8.4, causing such
-      situations to result in a PANIC and an unrestartable database.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Track the OID counter correctly during WAL replay, even when it wraps
-      around (Tom Lane)
-     </para>
-
-     <para>
-      Previously the OID counter would remain stuck at a high value until the
-      system exited replay mode.  The practical consequences of that are
-      usually nil, but there are scenarios wherein a standby server that's
-      been promoted to master might take a long time to advance the OID
-      counter to a reasonable value once values are needed.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix regular expression back-references with <literal>*</> attached
-      (Tom Lane)
-     </para>
-
-     <para>
-      Rather than enforcing an exact string match, the code would effectively
-      accept any string that satisfies the pattern sub-expression referenced
-      by the back-reference symbol.
-     </para>
-
-     <para>
-      A similar problem still afflicts back-references that are embedded in a
-      larger quantified expression, rather than being the immediate subject
-      of the quantifier.  This will be addressed in a future
-      <productname>PostgreSQL</> release.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix recently-introduced memory leak in processing of
-      <type>inet</>/<type>cidr</> values (Heikki Linnakangas)
-     </para>
-
-     <para>
-      A patch in the December 2011 releases of <productname>PostgreSQL</>
-      caused memory leakage in these operations, which could be significant
-      in scenarios such as building a btree index on such a column.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix dangling pointer after <command>CREATE TABLE AS</>/<command>SELECT
-      INTO</> in a SQL-language function (Tom Lane)
-     </para>
-
-     <para>
-      In most cases this only led to an assertion failure in assert-enabled
-      builds, but worse consequences seem possible.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid double close of file handle in syslogger on Windows (MauMau)
-     </para>
-
-     <para>
-      Ordinarily this error was invisible, but it would cause an exception
-      when running on a debug version of Windows.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix I/O-conversion-related memory leaks in plpgsql
-      (Andres Freund, Jan Urbanski, Tom Lane)
-     </para>
-
-     <para>
-      Certain operations would leak memory until the end of the current
-      function.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve <application>pg_dump</>'s handling of inherited table columns
-      (Tom Lane)
-     </para>
-
-     <para>
-      <application>pg_dump</> mishandled situations where a child column has
-      a different default expression than its parent column.  If the default
-      is textually identical to the parent's default, but not actually the
-      same (for instance, because of schema search path differences) it would
-      not be recognized as different, so that after dump and restore the
-      child would be allowed to inherit the parent's default.  Child columns
-      that are <literal>NOT NULL</> where their parent is not could also be
-      restored subtly incorrectly.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>pg_restore</>'s direct-to-database mode for
-      INSERT-style table data (Tom Lane)
-     </para>
-
-     <para>
-      Direct-to-database restores from archive files made with
-      <option>--inserts</> or <option>--column-inserts</> options fail when
-      using <application>pg_restore</> from a release dated September or
-      December 2011, as a result of an oversight in a fix for another
-      problem.  The archive file itself is not at fault, and text-mode
-      output is okay.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Allow <literal>AT</> option in <application>ecpg</>
-      <literal>DEALLOCATE</> statements (Michael Meskes)
-     </para>
-
-     <para>
-      The infrastructure to support this has been there for awhile, but
-      through an oversight there was still an error check rejecting the case.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix error in <filename>contrib/intarray</>'s <literal>int[] &amp;
-      int[]</> operator (Guillaume Lelarge)
-     </para>
-
-     <para>
-      If the smallest integer the two input arrays have in common is 1,
-      and there are smaller values in either array, then 1 would be
-      incorrectly omitted from the result.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix error detection in <filename>contrib/pgcrypto</>'s
-      <function>encrypt_iv()</> and <function>decrypt_iv()</>
-      (Marko Kreen)
-     </para>
-
-     <para>
-      These functions failed to report certain types of invalid-input errors,
-      and would instead return random garbage values for incorrect input.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix one-byte buffer overrun in <filename>contrib/test_parser</>
-      (Paul Guyot)
-     </para>
-
-     <para>
-      The code would try to read one more byte than it should, which would
-      crash in corner cases.
-      Since <filename>contrib/test_parser</> is only example code, this is
-      not a security issue in itself, but bad example code is still bad.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Use <function>__sync_lock_test_and_set()</> for spinlocks on ARM, if
-      available (Martin Pitt)
-     </para>
-
-     <para>
-      This function replaces our previous use of the <literal>SWPB</>
-      instruction, which is deprecated and not available on ARMv6 and later.
-      Reports suggest that the old code doesn't fail in an obvious way on
-      recent ARM boards, but simply doesn't interlock concurrent accesses,
-      leading to bizarre failures in multiprocess operation.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Use <option>-fexcess-precision=standard</> option when building with
-      gcc versions that accept it (Andrew Dunstan)
-     </para>
-
-     <para>
-      This prevents assorted scenarios wherein recent versions of gcc will
-      produce creative results.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Allow use of threaded Python on FreeBSD (Chris Rees)
-     </para>
-
-     <para>
-      Our configure script previously believed that this combination wouldn't
-      work; but FreeBSD fixed the problem, so remove that error check.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-4-10">
-  <title>Release 8.4.10</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2011-12-05</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.4.9.
-   For information about new features in the 8.4 major release, see
-   <xref linkend="release-8-4">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.4.10</title>
-
-   <para>
-    A dump/restore is not required for those running 8.4.X.
-   </para>
-
-   <para>
-    However, a longstanding error was discovered in the definition of the
-    <literal>information_schema.referential_constraints</> view.  If you
-    rely on correct results from that view, you should replace its
-    definition as explained in the first changelog item below.
-   </para>
-
-   <para>
-    Also, if you are upgrading from a version earlier than 8.4.8,
-    see <xref linkend="release-8-4-8">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Fix bugs in <literal>information_schema.referential_constraints</> view
-      (Tom Lane)
-     </para>
-
-     <para>
-      This view was being insufficiently careful about matching the
-      foreign-key constraint to the depended-on primary or unique key
-      constraint.  That could result in failure to show a foreign key
-      constraint at all, or showing it multiple times, or claiming that it
-      depends on a different constraint than the one it really does.
-     </para>
-
-     <para>
-      Since the view definition is installed by <application>initdb</>,
-      merely upgrading will not fix the problem.  If you need to fix this
-      in an existing installation, you can (as a superuser) drop the
-      <literal>information_schema</> schema then re-create it by sourcing
-      <filename><replaceable>SHAREDIR</>/information_schema.sql</filename>.
-      (Run <literal>pg_config --sharedir</> if you're uncertain where
-      <replaceable>SHAREDIR</> is.)  This must be repeated in each database
-      to be fixed.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix incorrect replay of WAL records for GIN index updates
-      (Tom Lane)
-     </para>
-
-     <para>
-      This could result in transiently failing to find index entries after
-      a crash, or on a hot-standby server.  The problem would be repaired
-      by the next <command>VACUUM</> of the index, however.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix TOAST-related data corruption during <literal>CREATE TABLE dest AS
-      SELECT * FROM src</> or <literal>INSERT INTO dest SELECT * FROM src</>
-      (Tom Lane)
-     </para>
-
-     <para>
-      If a table has been modified by <command>ALTER TABLE ADD COLUMN</>,
-      attempts to copy its data verbatim to another table could produce
-      corrupt results in certain corner cases.
-      The problem can only manifest in this precise form in 8.4 and later,
-      but we patched earlier versions as well in case there are other code
-      paths that could trigger the same bug.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix race condition during toast table access from stale syscache entries
-      (Tom Lane)
-     </para>
-
-     <para>
-      The typical symptom was transient errors like <quote>missing chunk
-      number 0 for toast value NNNNN in pg_toast_2619</>, where the cited
-      toast table would always belong to a system catalog.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Track dependencies of functions on items used in parameter default
-      expressions (Tom Lane)
-     </para>
-
-     <para>
-      Previously, a referenced object could be dropped without having dropped
-      or modified the function, leading to misbehavior when the function was
-      used.  Note that merely installing this update will not fix the missing
-      dependency entries; to do that, you'd need to <command>CREATE OR
-      REPLACE</> each such function afterwards.  If you have functions whose
-      defaults depend on non-built-in objects, doing so is recommended.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Allow inlining of set-returning SQL functions with multiple OUT
-      parameters (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <function>DatumGetInetP()</> unpack inet datums that have a 1-byte
-      header, and add a new macro, <function>DatumGetInetPP()</>, that does
-      not (Heikki Linnakangas)
-     </para>
-
-     <para>
-      This change affects no core code, but might prevent crashes in add-on
-      code that expects <function>DatumGetInetP()</> to produce an unpacked
-      datum as per usual convention.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve locale support in <type>money</> type's input and output
-      (Tom Lane)
-     </para>
-
-     <para>
-      Aside from not supporting all standard
-      <link linkend="guc-lc-monetary"><varname>lc_monetary</></link>
-      formatting options, the input and output functions were inconsistent,
-      meaning there were locales in which dumped <type>money</> values could
-      not be re-read.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Don't let <link
-      linkend="guc-transform-null-equals"><varname>transform_null_equals</></link>
-      affect <literal>CASE foo WHEN NULL ...</> constructs
-      (Heikki Linnakangas)
-     </para>
-
-     <para>
-      <varname>transform_null_equals</> is only supposed to affect
-      <literal>foo = NULL</> expressions written directly by the user, not
-      equality checks generated internally by this form of <literal>CASE</>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Change foreign-key trigger creation order to better support
-      self-referential foreign keys (Tom Lane)
-     </para>
-
-     <para>
-      For a cascading foreign key that references its own table, a row update
-      will fire both the <literal>ON UPDATE</> trigger and the
-      <literal>CHECK</> trigger as one event.  The <literal>ON UPDATE</>
-      trigger must execute first, else the <literal>CHECK</> will check a
-      non-final state of the row and possibly throw an inappropriate error.
-      However, the firing order of these triggers is determined by their
-      names, which generally sort in creation order since the triggers have
-      auto-generated names following the convention
-      <quote>RI_ConstraintTrigger_NNNN</>.  A proper fix would require
-      modifying that convention, which we will do in 9.2, but it seems risky
-      to change it in existing releases.  So this patch just changes the
-      creation order of the triggers.  Users encountering this type of error
-      should drop and re-create the foreign key constraint to get its
-      triggers into the right order.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid floating-point underflow while tracking buffer allocation rate
-      (Greg Matthews)
-     </para>
-
-     <para>
-      While harmless in itself, on certain platforms this would result in
-      annoying kernel log messages.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Preserve configuration file name and line number values when starting
-      child processes under Windows (Tom Lane)
-     </para>
-
-     <para>
-      Formerly, these would not be displayed correctly in the
-      <structname>pg_settings</> view.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Preserve blank lines within commands in <application>psql</>'s command
-      history (Robert Haas)
-     </para>
-
-     <para>
-      The former behavior could cause problems if an empty line was removed
-      from within a string literal, for example.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>pg_dump</> to dump user-defined casts between
-      auto-generated types, such as table rowtypes (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Use the preferred version of <application>xsubpp</> to build PL/Perl,
-      not necessarily the operating system's main copy
-      (David Wheeler and Alex Hunsaker)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix incorrect coding in <filename>contrib/dict_int</> and
-      <filename>contrib/dict_xsyn</> (Tom Lane)
-     </para>
-
-     <para>
-      Some functions incorrectly assumed that memory returned by
-      <function>palloc()</> is guaranteed zeroed.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Honor query cancel interrupts promptly in <function>pgstatindex()</>
-      (Robert Haas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure VPATH builds properly install all server header files
-      (Peter Eisentraut)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Shorten file names reported in verbose error messages (Peter Eisentraut)
-     </para>
-
-     <para>
-      Regular builds have always reported just the name of the C file
-      containing the error message call, but VPATH builds formerly
-      reported an absolute path name.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix interpretation of Windows timezone names for Central America
-      (Tom Lane)
-     </para>
-
-     <para>
-      Map <quote>Central America Standard Time</> to <literal>CST6</>, not
-      <literal>CST6CDT</>, because DST is generally not observed anywhere in
-      Central America.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2011n
-      for DST law changes in Brazil, Cuba, Fiji, Palestine, Russia, and Samoa;
-      also historical corrections for Alaska and British East Africa.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-4-9">
-  <title>Release 8.4.9</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2011-09-26</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.4.8.
-   For information about new features in the 8.4 major release, see
-   <xref linkend="release-8-4">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.4.9</title>
-
-   <para>
-    A dump/restore is not required for those running 8.4.X.
-   </para>
-
-   <para>
-    However, if you are upgrading from a version earlier than 8.4.8,
-    see <xref linkend="release-8-4-8">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Fix bugs in indexing of in-doubt HOT-updated tuples (Tom Lane)
-     </para>
-
-     <para>
-      These bugs could result in index corruption after reindexing a system
-      catalog.  They are not believed to affect user indexes.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix multiple bugs in GiST index page split processing (Heikki
-      Linnakangas)
-     </para>
-
-     <para>
-      The probability of occurrence was low, but these could lead to index
-      corruption.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible buffer overrun in <function>tsvector_concat()</>
-      (Tom Lane)
-     </para>
-
-     <para>
-      The function could underestimate the amount of memory needed for its
-      result, leading to server crashes.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix crash in <function>xml_recv</> when processing a
-      <quote>standalone</> parameter (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <function>pg_options_to_table</> return NULL for an option with no
-      value (Tom Lane)
-     </para>
-
-     <para>
-      Previously such cases would result in a server crash.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid possibly accessing off the end of memory in <command>ANALYZE</>
-      and in SJIS-2004 encoding conversion (Noah Misch)
-     </para>
-
-     <para>
-      This fixes some very-low-probability server crash scenarios.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent intermittent hang in interactions of startup process with
-      bgwriter process (Simon Riggs)
-     </para>
-
-     <para>
-      This affected recovery in non-hot-standby cases.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix race condition in relcache init file invalidation (Tom Lane)
-     </para>
-
-     <para>
-      There was a window wherein a new backend process could read a stale init
-      file but miss the inval messages that would tell it the data is stale.
-      The result would be bizarre failures in catalog accesses, typically
-      <quote>could not read block 0 in file ...</> later during startup.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix memory leak at end of a GiST index scan (Tom Lane)
-     </para>
-
-     <para>
-      Commands that perform many separate GiST index scans, such as
-      verification of a new GiST-based exclusion constraint on a table
-      already containing many rows, could transiently require large amounts of
-      memory due to this leak.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix incorrect memory accounting (leading to possible memory bloat) in
-      tuplestores supporting holdable cursors and plpgsql's <literal>RETURN
-      NEXT</> command (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix performance problem when constructing a large, lossy bitmap
-      (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix join selectivity estimation for unique columns (Tom Lane)
-     </para>
-
-     <para>
-      This fixes an erroneous planner heuristic that could lead to poor
-      estimates of the result size of a join.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix nested PlaceHolderVar expressions that appear only in sub-select
-      target lists (Tom Lane)
-     </para>
-
-     <para>
-      This mistake could result in outputs of an outer join incorrectly
-      appearing as NULL.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Allow nested <literal>EXISTS</> queries to be optimized properly (Tom
-      Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix array- and path-creating functions to ensure padding bytes are
-      zeroes (Tom Lane)
-     </para>
-
-     <para>
-      This avoids some situations where the planner will think that
-      semantically-equal constants are not equal, resulting in poor
-      optimization.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <command>EXPLAIN</> to handle gating Result nodes within
-      inner-indexscan subplans (Tom Lane)
-     </para>
-
-     <para>
-      The usual symptom of this oversight was <quote>bogus varno</> errors.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Work around gcc 4.6.0 bug that breaks WAL replay (Tom Lane)
-     </para>
-
-     <para>
-      This could lead to loss of committed transactions after a server crash.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix dump bug for <literal>VALUES</> in a view (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Disallow <literal>SELECT FOR UPDATE/SHARE</> on sequences (Tom Lane)
-     </para>
-
-     <para>
-      This operation doesn't work as expected and can lead to failures.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <command>VACUUM</> so that it always updates
-      <literal>pg_class</>.<literal>reltuples</>/<literal>relpages</> (Tom
-      Lane)
-     </para>
-
-     <para>
-      This fixes some scenarios where autovacuum could make increasingly poor
-      decisions about when to vacuum tables.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Defend against integer overflow when computing size of a hash table (Tom
-      Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix cases where <command>CLUSTER</> might attempt to access
-      already-removed TOAST data (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix portability bugs in use of credentials control messages for
-      <quote>peer</> authentication (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix SSPI login when multiple roundtrips are required (Ahmed Shinwari,
-      Magnus Hagander)
-     </para>
-
-     <para>
-      The typical symptom of this problem was <quote>The function requested is
-      not supported</> errors during SSPI login.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Throw an error if <filename>pg_hba.conf</> contains <literal>hostssl</>
-      but SSL is disabled (Tom Lane)
-     </para>
-
-     <para>
-      This was concluded to be more user-friendly than the previous behavior
-      of silently ignoring such lines.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix typo in <function>pg_srand48</> seed initialization (Andres Freund)
-     </para>
-
-     <para>
-      This led to failure to use all bits of the provided seed.  This function
-      is not used on most platforms (only those without <function>srandom</>),
-      and the potential security exposure from a less-random-than-expected
-      seed seems minimal in any case.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid integer overflow when the sum of <literal>LIMIT</> and
-      <literal>OFFSET</> values exceeds 2^63 (Heikki Linnakangas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Add overflow checks to <type>int4</> and <type>int8</> versions of
-      <function>generate_series()</> (Robert Haas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix trailing-zero removal in <function>to_char()</> (Marti Raudsepp)
-     </para>
-
-     <para>
-      In a format with <literal>FM</> and no digit positions
-      after the decimal point, zeroes to the left of the decimal point could
-      be removed incorrectly.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <function>pg_size_pretty()</> to avoid overflow for inputs close to
-      2^63 (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Weaken plpgsql's check for typmod matching in record values (Tom Lane)
-     </para>
-
-     <para>
-      An overly enthusiastic check could lead to discarding length modifiers
-      that should have been kept.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Correctly handle quotes in locale names during <application>initdb</>
-      (Heikki Linnakangas)
-     </para>
-
-     <para>
-      The case can arise with some Windows locales, such as <quote>People's
-      Republic of China</>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>pg_upgrade</> to preserve toast tables' relfrozenxids
-      during an upgrade from 8.3 (Bruce Momjian)
-     </para>
-
-     <para>
-      Failure to do this could lead to <filename>pg_clog</> files being
-      removed too soon after the upgrade.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      In <application>pg_ctl</>, support silent mode for service registrations
-      on Windows (MauMau)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>psql</>'s counting of script file line numbers during
-      <literal>COPY</> from a different file (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>pg_restore</>'s direct-to-database mode for
-      <varname>standard_conforming_strings</> (Tom Lane)
-     </para>
-
-     <para>
-      <application>pg_restore</> could emit incorrect commands when restoring
-      directly to a database server from an archive file that had been made
-      with <varname>standard_conforming_strings</> set to <literal>on</>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Be more user-friendly about unsupported cases for parallel
-      <application>pg_restore</> (Tom Lane)
-     </para>
-
-     <para>
-      This change ensures that such cases are detected and reported before
-      any restore actions have been taken.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix write-past-buffer-end and memory leak in <application>libpq</>'s
-      LDAP service lookup code (Albe Laurenz)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      In <application>libpq</>, avoid failures when using nonblocking I/O
-      and an SSL connection (Martin Pihlak, Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve libpq's handling of failures during connection startup
-      (Tom Lane)
-     </para>
-
-     <para>
-      In particular, the response to a server report of <function>fork()</>
-      failure during SSL connection startup is now saner.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve <application>libpq</>'s error reporting for SSL failures (Tom
-      Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <function>PQsetvalue()</> to avoid possible crash when adding a new
-      tuple to a <structname>PGresult</> originally obtained from a server
-      query (Andrew Chernow)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <application>ecpglib</> write <type>double</> values with 15 digits
-      precision (Akira Kurosawa)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      In <application>ecpglib</>, be sure <literal>LC_NUMERIC</> setting is
-      restored after an error (Michael Meskes)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Apply upstream fix for blowfish signed-character bug (CVE-2011-2483)
-      (Tom Lane)
-     </para>
-
-     <para>
-      <filename>contrib/pg_crypto</>'s blowfish encryption code could give
-      wrong results on platforms where char is signed (which is most),
-      leading to encrypted passwords being weaker than they should be.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix memory leak in <filename>contrib/seg</> (Heikki Linnakangas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <function>pgstatindex()</> to give consistent results for empty
-      indexes (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Allow building with perl 5.14 (Alex Hunsaker)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update configure script's method for probing existence of system
-      functions (Tom Lane)
-     </para>
-
-     <para>
-      The version of autoconf we used in 8.3 and 8.2 could be fooled by
-      compilers that perform link-time optimization.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix assorted issues with build and install file paths containing spaces
-      (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2011i
-      for DST law changes in Canada, Egypt, Russia, Samoa, and South Sudan.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-4-8">
-  <title>Release 8.4.8</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2011-04-18</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.4.7.
-   For information about new features in the 8.4 major release, see
-   <xref linkend="release-8-4">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.4.8</title>
-
-   <para>
-    A dump/restore is not required for those running 8.4.X.
-   </para>
-
-   <para>
-    However, if your installation was upgraded from a previous major
-    release by running <application>pg_upgrade</>, you should take
-    action to prevent possible data loss due to a now-fixed bug in
-    <application>pg_upgrade</>.  The recommended solution is to run
-    <command>VACUUM FREEZE</> on all TOAST tables.
-    More information is available at <ulink
-    url="http://wiki.postgresql.org/wiki/20110408pg_upgrade_fix">
-    http://wiki.postgresql.org/wiki/20110408pg_upgrade_fix</ulink>.
-   </para>
-
-   <para>
-    Also, if you are upgrading from a version earlier than 8.4.2,
-    see <xref linkend="release-8-4-2">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Fix <application>pg_upgrade</>'s handling of TOAST tables
-      (Bruce Momjian)
-     </para>
-
-     <para>
-      The <structname>pg_class</>.<structfield>relfrozenxid</> value for
-      TOAST tables was not correctly copied into the new installation
-      during <application>pg_upgrade</>.  This could later result in
-      <literal>pg_clog</> files being discarded while they were still
-      needed to validate tuples in the TOAST tables, leading to
-      <quote>could not access status of transaction</> failures.
-     </para>
-
-     <para>
-      This error poses a significant risk of data loss for installations
-      that have been upgraded with <application>pg_upgrade</>.  This patch
-      corrects the problem for future uses of <application>pg_upgrade</>,
-      but does not in itself cure the issue in installations that have been
-      processed with a buggy version of <application>pg_upgrade</>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Suppress incorrect <quote>PD_ALL_VISIBLE flag was incorrectly set</>
-      warning (Heikki Linnakangas)
-     </para>
-
-     <para>
-      <command>VACUUM</> would sometimes issue this warning in cases that
-      are actually valid.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Disallow including a composite type in itself (Tom Lane)
-     </para>
-
-     <para>
-      This prevents scenarios wherein the server could recurse infinitely
-      while processing the composite type.  While there are some possible
-      uses for such a structure, they don't seem compelling enough to
-      justify the effort required to make sure it always works safely.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid potential deadlock during catalog cache initialization
-      (Nikhil Sontakke)
-     </para>
-
-     <para>
-      In some cases the cache loading code would acquire share lock on a
-      system index before locking the index's catalog.  This could deadlock
-      against processes trying to acquire exclusive locks in the other,
-      more standard order.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix dangling-pointer problem in <literal>BEFORE ROW UPDATE</> trigger
-      handling when there was a concurrent update to the target tuple
-      (Tom Lane)
-     </para>
-
-     <para>
-      This bug has been observed to result in intermittent <quote>cannot
-      extract system attribute from virtual tuple</> failures while trying to
-      do <literal>UPDATE RETURNING ctid</>.  There is a very small probability
-      of more serious errors, such as generating incorrect index entries for
-      the updated tuple.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Disallow <command>DROP TABLE</> when there are pending deferred trigger
-      events for the table (Tom Lane)
-     </para>
-
-     <para>
-      Formerly the <command>DROP</> would go through, leading to
-      <quote>could not open relation with OID nnn</> errors when the
-      triggers were eventually fired.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent crash triggered by constant-false WHERE conditions during
-      GEQO optimization (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve planner's handling of semi-join and anti-join cases
-      (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix selectivity estimation for text search to account for NULLs
-      (Jesper Krogh)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve PL/pgSQL's ability to handle row types with dropped columns
-      (Pavel Stehule)
-     </para>
-
-     <para>
-      This is a back-patch of fixes previously made in 9.0.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix PL/Python memory leak involving array slices (Daniel Popowich)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>pg_restore</> to cope with long lines (over 1KB) in
-      TOC files (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Put in more safeguards against crashing due to division-by-zero
-      with overly enthusiastic compiler optimization (Aurelien Jarno)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Support use of dlopen() in FreeBSD and OpenBSD on MIPS (Tom Lane)
-     </para>
-
-     <para>
-      There was a hard-wired assumption that this system function was not
-      available on MIPS hardware on these systems.  Use a compile-time test
-      instead, since more recent versions have it.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix compilation failures on HP-UX (Heikki Linnakangas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix version-incompatibility problem with <application>libintl</> on
-      Windows (Hiroshi Inoue)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix usage of <application>xcopy</> in Windows build scripts to
-      work correctly under Windows 7 (Andrew Dunstan)
-     </para>
-
-     <para>
-      This affects the build scripts only, not installation or usage.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix path separator used by <application>pg_regress</> on Cygwin
-      (Andrew Dunstan)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2011f
-      for DST law changes in Chile, Cuba, Falkland Islands, Morocco, Samoa,
-      and Turkey; also historical corrections for South Australia, Alaska,
-      and Hawaii.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-4-7">
-  <title>Release 8.4.7</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2011-01-31</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.4.6.
-   For information about new features in the 8.4 major release, see
-   <xref linkend="release-8-4">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.4.7</title>
-
-   <para>
-    A dump/restore is not required for those running 8.4.X.
-    However, if you are upgrading from a version earlier than 8.4.2,
-    see <xref linkend="release-8-4-2">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Avoid failures when <command>EXPLAIN</> tries to display a simple-form
-      <literal>CASE</> expression (Tom Lane)
-     </para>
-
-     <para>
-      If the <literal>CASE</>'s test expression was a constant, the planner
-      could simplify the <literal>CASE</> into a form that confused the
-      expression-display code, resulting in <quote>unexpected CASE WHEN
-      clause</> errors.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix assignment to an array slice that is before the existing range
-      of subscripts (Tom Lane)
-     </para>
-
-     <para>
-      If there was a gap between the newly added subscripts and the first
-      pre-existing subscript, the code miscalculated how many entries needed
-      to be copied from the old array's null bitmap, potentially leading to
-      data corruption or crash.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid unexpected conversion overflow in planner for very distant date
-      values (Tom Lane)
-     </para>
-
-     <para>
-      The <type>date</> type supports a wider range of dates than can be
-      represented by the <type>timestamp</> types, but the planner assumed it
-      could always convert a date to timestamp with impunity.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>pg_restore</>'s text output for large objects (BLOBs)
-      when <varname>standard_conforming_strings</> is on (Tom Lane)
-     </para>
-
-     <para>
-      Although restoring directly to a database worked correctly, string
-      escaping was incorrect if <application>pg_restore</> was asked for
-      SQL text output and <varname>standard_conforming_strings</> had been
-      enabled in the source database.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix erroneous parsing of <type>tsquery</> values containing
-      <literal>... &amp; !(subexpression) | ...</literal> (Tom Lane)
-     </para>
-
-     <para>
-      Queries containing this combination of operators were not executed
-      correctly.  The same error existed in <filename>contrib/intarray</>'s
-      <type>query_int</> type and <filename>contrib/ltree</>'s
-      <type>ltxtquery</> type.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix buffer overrun in <filename>contrib/intarray</>'s input function
-      for the <type>query_int</> type (Apple)
-     </para>
-
-     <para>
-      This bug is a security risk since the function's return address could
-      be overwritten.  Thanks to Apple Inc's security team for reporting this
-      issue and supplying the fix.  (CVE-2010-4015)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix bug in <filename>contrib/seg</>'s GiST picksplit algorithm
-      (Alexander Korotkov)
-     </para>
-
-     <para>
-      This could result in considerable inefficiency, though not actually
-      incorrect answers, in a GiST index on a <type>seg</> column.
-      If you have such an index, consider <command>REINDEX</>ing it after
-      installing this update.  (This is identical to the bug that was fixed in
-      <filename>contrib/cube</> in the previous update.)
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-4-6">
-  <title>Release 8.4.6</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2010-12-16</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.4.5.
-   For information about new features in the 8.4 major release, see
-   <xref linkend="release-8-4">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.4.6</title>
-
-   <para>
-    A dump/restore is not required for those running 8.4.X.
-    However, if you are upgrading from a version earlier than 8.4.2,
-    see <xref linkend="release-8-4-2">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Force the default
-      <link linkend="guc-wal-sync-method"><varname>wal_sync_method</></link>
-      to be <literal>fdatasync</> on Linux (Tom Lane, Marti Raudsepp)
-     </para>
-
-     <para>
-      The default on Linux has actually been <literal>fdatasync</> for many
-      years, but recent kernel changes caused <productname>PostgreSQL</> to
-      choose <literal>open_datasync</> instead.  This choice did not result
-      in any performance improvement, and caused outright failures on
-      certain filesystems, notably <literal>ext4</> with the
-      <literal>data=journal</> mount option.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix assorted bugs in WAL replay logic for GIN indexes (Tom Lane)
-     </para>
-
-     <para>
-      This could result in <quote>bad buffer id: 0</> failures or
-      corruption of index contents during replication.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix recovery from base backup when the starting checkpoint WAL record
-      is not in the same WAL segment as its redo point (Jeff Davis)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix persistent slowdown of autovacuum workers when multiple workers
-      remain active for a long time (Tom Lane)
-     </para>
-
-     <para>
-      The effective <varname>vacuum_cost_limit</> for an autovacuum worker
-      could drop to nearly zero if it processed enough tables, causing it
-      to run extremely slowly.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Add support for detecting register-stack overrun on <literal>IA64</>
-      (Tom Lane)
-     </para>
-
-     <para>
-      The <literal>IA64</> architecture has two hardware stacks.  Full
-      prevention of stack-overrun failures requires checking both.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Add a check for stack overflow in <function>copyObject()</> (Tom Lane)
-     </para>
-
-     <para>
-      Certain code paths could crash due to stack overflow given a
-      sufficiently complex query.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix detection of page splits in temporary GiST indexes (Heikki
-      Linnakangas)
-     </para>
-
-     <para>
-      It is possible to have a <quote>concurrent</> page split in a
-      temporary index, if for example there is an open cursor scanning the
-      index when an insertion is done.  GiST failed to detect this case and
-      hence could deliver wrong results when execution of the cursor
-      continued.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix error checking during early connection processing (Tom Lane)
-     </para>
-
-     <para>
-      The check for too many child processes was skipped in some cases,
-      possibly leading to postmaster crash when attempting to add the new
-      child process to fixed-size arrays.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve efficiency of window functions (Tom Lane)
-     </para>
-
-     <para>
-      Certain cases where a large number of tuples needed to be read in
-      advance, but <varname>work_mem</> was large enough to allow them all
-      to be held in memory, were unexpectedly slow.
-      <function>percent_rank()</>, <function>cume_dist()</> and
-      <function>ntile()</> in particular were subject to this problem.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid memory leakage while <command>ANALYZE</>'ing complex index
-      expressions (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure an index that uses a whole-row Var still depends on its table
-      (Tom Lane)
-     </para>
-
-     <para>
-      An index declared like <literal>create index i on t (foo(t.*))</>
-      would not automatically get dropped when its table was dropped.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Do not <quote>inline</> a SQL function with multiple <literal>OUT</>
-      parameters (Tom Lane)
-     </para>
-
-     <para>
-      This avoids a possible crash due to loss of information about the
-      expected result rowtype.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Behave correctly if <literal>ORDER BY</>, <literal>LIMIT</>,
-      <literal>FOR UPDATE</>, or <literal>WITH</> is attached to the
-      <literal>VALUES</> part of <literal>INSERT ... VALUES</> (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix constant-folding of <literal>COALESCE()</> expressions (Tom Lane)
-     </para>
-
-     <para>
-      The planner would sometimes attempt to evaluate sub-expressions that
-      in fact could never be reached, possibly leading to unexpected errors.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix postmaster crash when connection acceptance
-      (<function>accept()</> or one of the calls made immediately after it)
-      fails, and the postmaster was compiled with GSSAPI support (Alexander
-      Chernikov)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix missed unlink of temporary files when <varname>log_temp_files</>
-      is active (Tom Lane)
-     </para>
-
-     <para>
-      If an error occurred while attempting to emit the log message, the
-      unlink was not done, resulting in accumulation of temp files.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Add print functionality for <structname>InhRelation</> nodes (Tom Lane)
-     </para>
-
-     <para>
-      This avoids a failure when <varname>debug_print_parse</> is enabled
-      and certain types of query are executed.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix incorrect calculation of distance from a point to a horizontal
-      line segment (Tom Lane)
-     </para>
-
-     <para>
-      This bug affected several different geometric distance-measurement
-      operators.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix incorrect calculation of transaction status in
-      <application>ecpg</> (Itagaki Takahiro)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>PL/pgSQL</>'s handling of <quote>simple</>
-      expressions to not fail in recursion or error-recovery cases (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>PL/Python</>'s handling of set-returning functions
-      (Jan Urbanski)
-     </para>
-
-     <para>
-      Attempts to call SPI functions within the iterator generating a set
-      result would fail.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix bug in <filename>contrib/cube</>'s GiST picksplit algorithm
-      (Alexander Korotkov)
-     </para>
-
-     <para>
-      This could result in considerable inefficiency, though not actually
-      incorrect answers, in a GiST index on a <type>cube</> column.
-      If you have such an index, consider <command>REINDEX</>ing it after
-      installing this update.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Don't emit <quote>identifier will be truncated</> notices in
-      <filename>contrib/dblink</> except when creating new connections
-      (Itagaki Takahiro)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix potential coredump on missing public key in
-      <filename>contrib/pgcrypto</> (Marti Raudsepp)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix memory leak in <filename>contrib/xml2</>'s XPath query functions
-      (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2010o
-      for DST law changes in Fiji and Samoa;
-      also historical corrections for Hong Kong.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-4-5">
-  <title>Release 8.4.5</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2010-10-04</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.4.4.
-   For information about new features in the 8.4 major release, see
-   <xref linkend="release-8-4">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.4.5</title>
-
-   <para>
-    A dump/restore is not required for those running 8.4.X.
-    However, if you are upgrading from a version earlier than 8.4.2,
-    see <xref linkend="release-8-4-2">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Use a separate interpreter for each calling SQL userid in PL/Perl and
-      PL/Tcl (Tom Lane)
-     </para>
-
-     <para>
-      This change prevents security problems that can be caused by subverting
-      Perl or Tcl code that will be executed later in the same session under
-      another SQL user identity (for example, within a <literal>SECURITY
-      DEFINER</> function).  Most scripting languages offer numerous ways that
-      that might be done, such as redefining standard functions or operators
-      called by the target function.  Without this change, any SQL user with
-      Perl or Tcl language usage rights can do essentially anything with the
-      SQL privileges of the target function's owner.
-     </para>
-
-     <para>
-      The cost of this change is that intentional communication among Perl
-      and Tcl functions becomes more difficult.  To provide an escape hatch,
-      PL/PerlU and PL/TclU functions continue to use only one interpreter
-      per session.  This is not considered a security issue since all such
-      functions execute at the trust level of a database superuser already.
-     </para>
-
-     <para>
-      It is likely that third-party procedural languages that claim to offer
-      trusted execution have similar security issues.  We advise contacting
-      the authors of any PL you are depending on for security-critical
-      purposes.
-     </para>
-
-     <para>
-      Our thanks to Tim Bunce for pointing out this issue (CVE-2010-3433).
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent possible crashes in <function>pg_get_expr()</> by disallowing
-      it from being called with an argument that is not one of the system
-      catalog columns it's intended to be used with
-      (Heikki Linnakangas, Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Treat exit code 128 (<literal>ERROR_WAIT_NO_CHILDREN</>) as non-fatal on
-      Windows (Magnus Hagander)
-     </para>
-
-     <para>
-      Under high load, Windows processes will sometimes fail at startup with
-      this error code.  Formerly the postmaster treated this as a panic
-      condition and restarted the whole database, but that seems to be
-      an overreaction.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix incorrect placement of placeholder evaluation (Tom Lane)
-     </para>
-
-     <para>
-      This bug could result in query outputs being non-null when they
-      should be null, in cases where the inner side of an outer join
-      is a sub-select with non-strict expressions in its output list.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible duplicate scans of <literal>UNION ALL</> member relations
-      (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <quote>cannot handle unplanned sub-select</quote> error (Tom Lane)
-     </para>
-
-     <para>
-      This occurred when a sub-select contains a join alias reference that
-      expands into an expression containing another sub-select.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix mishandling of whole-row Vars that reference a view or sub-select
-      and appear within a nested sub-select (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix mishandling of cross-type <literal>IN</> comparisons (Tom Lane)
-     </para>
-
-     <para>
-      This could result in failures if the planner tried to implement an
-      <literal>IN</> join with a sort-then-unique-then-plain-join plan.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix computation of <command>ANALYZE</> statistics for <type>tsvector</>
-      columns (Jan Urbanski)
-     </para>
-
-     <para>
-      The original coding could produce incorrect statistics, leading to
-      poor plan choices later.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve planner's estimate of memory used by <function>array_agg()</>,
-      <function>string_agg()</>, and similar aggregate functions
-      (Hitoshi Harada)
-     </para>
-
-     <para>
-      The previous drastic underestimate could lead to out-of-memory failures
-      due to inappropriate choice of a hash-aggregation plan.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix failure to mark cached plans as transient (Tom Lane)
-     </para>
-
-     <para>
-      If a plan is prepared while <command>CREATE INDEX CONCURRENTLY</> is
-      in progress for one of the referenced tables, it is supposed to be
-      re-planned once the index is ready for use.  This was not happening
-      reliably.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Reduce PANIC to ERROR in some occasionally-reported btree failure cases,
-      and provide additional detail in the resulting error messages
-      (Tom Lane)
-     </para>
-
-     <para>
-      This should improve the system's robustness with corrupted indexes.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix incorrect search logic for partial-match queries with GIN indexes
-      (Tom Lane)
-     </para>
-
-     <para>
-      Cases involving AND/OR combination of several GIN index conditions
-      didn't always give the right answer, and were sometimes much slower
-      than necessary.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent show_session_authorization() from crashing within autovacuum
-      processes (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Defend against functions returning setof record where not all the
-      returned rows are actually of the same rowtype (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible corruption of pending trigger event lists during
-      subtransaction rollback (Tom Lane)
-     </para>
-
-     <para>
-      This could lead to a crash or incorrect firing of triggers.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible failure when hashing a pass-by-reference function result
-      (Tao Ma, Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve merge join's handling of NULLs in the join columns (Tom Lane)
-     </para>
-
-     <para>
-      A merge join can now stop entirely upon reaching the first NULL,
-      if the sort order is such that NULLs sort high.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Take care to fsync the contents of lockfiles (both
-      <filename>postmaster.pid</> and the socket lockfile) while writing them
-      (Tom Lane)
-     </para>
-
-     <para>
-      This omission could result in corrupted lockfile contents if the
-      machine crashes shortly after postmaster start.  That could in turn
-      prevent subsequent attempts to start the postmaster from succeeding,
-      until the lockfile is manually removed.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid recursion while assigning XIDs to heavily-nested
-      subtransactions (Andres Freund, Robert Haas)
-     </para>
-
-     <para>
-      The original coding could result in a crash if there was limited
-      stack space.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid holding open old WAL segments in the walwriter process
-      (Magnus Hagander, Heikki Linnakangas)
-     </para>
-
-     <para>
-      The previous coding would prevent removal of no-longer-needed segments.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <varname>log_line_prefix</>'s <literal>%i</> escape,
-      which could produce junk early in backend startup (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent misinterpretation of partially-specified relation options
-      for TOAST tables (Itagaki Takahiro)
-     </para>
-
-     <para>
-      In particular, <literal>fillfactor</> would be read as zero if any
-      other reloption had been set for the table, leading to serious bloat.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix inheritance count tracking in <command>ALTER TABLE ... ADD
-      CONSTRAINT</> (Robert Haas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible data corruption in <command>ALTER TABLE ... SET
-      TABLESPACE</> when archiving is enabled (Jeff Davis)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Allow <command>CREATE DATABASE</> and <command>ALTER DATABASE ... SET
-      TABLESPACE</> to be interrupted by query-cancel (Guillaume Lelarge)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve <command>CREATE INDEX</>'s checking of whether proposed index
-      expressions are immutable (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <command>REASSIGN OWNED</> to handle operator classes and families
-      (Asko Tiidumaa)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible core dump when comparing two empty <type>tsquery</> values
-      (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <literal>LIKE</>'s handling of patterns containing <literal>%</>
-      followed by <literal>_</> (Tom Lane)
-     </para>
-
-     <para>
-      We've fixed this before, but there were still some incorrectly-handled
-      cases.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Re-allow input of Julian dates prior to 0001-01-01 AD (Tom Lane)
-     </para>
-
-     <para>
-      Input such as <literal>'J100000'::date</> worked before 8.4,
-      but was unintentionally broken by added error-checking.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix PL/pgSQL to throw an error, not crash, if a cursor is closed within
-      a <literal>FOR</> loop that is iterating over that cursor
-      (Heikki Linnakangas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      In PL/Python, defend against null pointer results from
-      <function>PyCObject_AsVoidPtr</> and <function>PyCObject_FromVoidPtr</>
-      (Peter Eisentraut)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      In <application>libpq</>, fix full SSL certificate verification for the
-      case where both <literal>host</> and <literal>hostaddr</> are specified
-      (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make psql recognize <command>DISCARD ALL</> as a command that should
-      not be encased in a transaction block in autocommit-off mode
-      (Itagaki Takahiro)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix some issues in <application>pg_dump</>'s handling of SQL/MED objects
-      (Tom Lane)
-     </para>
-
-     <para>
-      Notably, <application>pg_dump</> would always fail if run by a
-      non-superuser, which was not intended.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve <application>pg_dump</> and <application>pg_restore</>'s
-      handling of non-seekable archive files (Tom Lane, Robert Haas)
-     </para>
-
-     <para>
-      This is important for proper functioning of parallel restore.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve parallel pg_restore's ability to cope with selective restore
-      (<literal>-L</> option) (Tom Lane)
-     </para>
-
-     <para>
-      The original code tended to fail if the <literal>-L</> file commanded
-      a non-default restore ordering.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>ecpg</> to process data from <literal>RETURNING</>
-      clauses correctly (Michael Meskes)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix some memory leaks in <application>ecpg</> (Zoltan Boszormenyi)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve <filename>contrib/dblink</>'s handling of tables containing
-      dropped columns (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix connection leak after <quote>duplicate connection name</quote>
-      errors in <filename>contrib/dblink</> (Itagaki Takahiro)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <filename>contrib/dblink</> to handle connection names longer than
-      62 bytes correctly (Itagaki Takahiro)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Add <function>hstore(text, text)</>
-      function to <filename>contrib/hstore</> (Robert Haas)
-     </para>
-
-     <para>
-      This function is the recommended substitute for the now-deprecated
-      <literal>=&gt;</> operator.  It was back-patched so that future-proofed
-      code can be used with older server versions.  Note that the patch will
-      be effective only after <filename>contrib/hstore</> is installed or
-      reinstalled in a particular database.  Users might prefer to execute
-      the <command>CREATE FUNCTION</> command by hand, instead.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update build infrastructure and documentation to reflect the source code
-      repository's move from CVS to Git (Magnus Hagander and others)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2010l
-      for DST law changes in Egypt and Palestine; also historical corrections
-      for Finland.
-     </para>
-
-     <para>
-      This change also adds new names for two Micronesian timezones:
-      Pacific/Chuuk is now preferred over Pacific/Truk (and the preferred
-      abbreviation is CHUT not TRUT) and Pacific/Pohnpei is preferred over
-      Pacific/Ponape.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make Windows' <quote>N. Central Asia Standard Time</> timezone map to
-      Asia/Novosibirsk, not Asia/Almaty (Magnus Hagander)
-     </para>
-
-     <para>
-      Microsoft changed the DST behavior of this zone in the timezone update
-      from KB976098. Asia/Novosibirsk is a better match to its new behavior.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-4-4">
-  <title>Release 8.4.4</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2010-05-17</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.4.3.
-   For information about new features in the 8.4 major release, see
-   <xref linkend="release-8-4">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.4.4</title>
-
-   <para>
-    A dump/restore is not required for those running 8.4.X.
-    However, if you are upgrading from a version earlier than 8.4.2,
-    see <xref linkend="release-8-4-2">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Enforce restrictions in <literal>plperl</> using an opmask applied to
-      the whole interpreter, instead of using <filename>Safe.pm</>
-      (Tim Bunce, Andrew Dunstan)
-     </para>
-
-     <para>
-      Recent developments have convinced us that <filename>Safe.pm</> is too
-      insecure to rely on for making <literal>plperl</> trustable.  This
-      change removes use of <filename>Safe.pm</> altogether, in favor of using
-      a separate interpreter with an opcode mask that is always applied.
-      Pleasant side effects of the change include that it is now possible to
-      use Perl's <literal>strict</> pragma in a natural way in
-      <literal>plperl</>, and that Perl's <literal>$a</> and <literal>$b</>
-      variables work as expected in sort routines, and that function
-      compilation is significantly faster.  (CVE-2010-1169)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent PL/Tcl from executing untrustworthy code from
-      <structname>pltcl_modules</> (Tom)
-     </para>
-
-     <para>
-      PL/Tcl's feature for autoloading Tcl code from a database table
-      could be exploited for trojan-horse attacks, because there was no
-      restriction on who could create or insert into that table.  This change
-      disables the feature unless <structname>pltcl_modules</> is owned by a
-      superuser.  (However, the permissions on the table are not checked, so
-      installations that really need a less-than-secure modules table can
-      still grant suitable privileges to trusted non-superusers.)  Also,
-      prevent loading code into the unrestricted <quote>normal</> Tcl
-      interpreter unless we are really going to execute a <literal>pltclu</>
-      function.  (CVE-2010-1170)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix data corruption during WAL replay of
-      <literal>ALTER ... SET TABLESPACE</> (Tom)
-     </para>
-
-     <para>
-      When <varname>archive_mode</> is on, <literal>ALTER ... SET TABLESPACE</>
-      generates a WAL record whose replay logic was incorrect.  It could write
-      the data to the wrong place, leading to possibly-unrecoverable data
-      corruption.  Data corruption would be observed on standby slaves, and
-      could occur on the master as well if a database crash and recovery
-      occurred after committing the <literal>ALTER</> and before the next
-      checkpoint.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible crash if a cache reset message is received during
-      rebuild of a relcache entry (Heikki)
-     </para>
-
-     <para>
-      This error was introduced in 8.4.3 while fixing a related failure.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Apply per-function GUC settings while running the language validator
-      for the function (Itagaki Takahiro)
-     </para>
-
-     <para>
-      This avoids failures if the function's code is invalid without the
-      setting; an example is that SQL functions may not parse if the
-      <varname>search_path</> is not correct.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Do constraint exclusion for inherited <command>UPDATE</> and
-      <command>DELETE</> target tables when
-      <varname>constraint_exclusion</> = <literal>partition</> (Tom)
-     </para>
-
-     <para>
-      Due to an oversight, this setting previously only caused constraint
-      exclusion to be checked in <command>SELECT</> commands.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Do not allow an unprivileged user to reset superuser-only parameter
-      settings (Alvaro)
-     </para>
-
-     <para>
-      Previously, if an unprivileged user ran <literal>ALTER USER ... RESET
-      ALL</> for himself, or <literal>ALTER DATABASE ... RESET ALL</> for
-      a database he owns, this would remove all special parameter settings
-      for the user or database, even ones that are only supposed to be
-      changeable by a superuser.  Now, the <command>ALTER</> will only
-      remove the parameters that the user has permission to change.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid possible crash during backend shutdown if shutdown occurs
-      when a <literal>CONTEXT</> addition would be made to log entries (Tom)
-     </para>
-
-     <para>
-      In some cases the context-printing function would fail because the
-      current transaction had already been rolled back when it came time
-      to print a log message.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix erroneous handling of <literal>%r</> parameter in
-      <varname>recovery_end_command</> (Heikki)
-     </para>
-
-     <para>
-      The value always came out zero.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure the archiver process responds to changes in
-      <varname>archive_command</> as soon as possible (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix pl/pgsql's <literal>CASE</> statement to not fail when the
-      case expression is a query that returns no rows (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update pl/perl's <filename>ppport.h</> for modern Perl versions
-      (Andrew)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix assorted memory leaks in pl/python (Andreas Freund, Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Handle empty-string connect parameters properly in ecpg (Michael)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent infinite recursion in <application>psql</> when expanding
-      a variable that refers to itself (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>psql</>'s <literal>\copy</> to not add spaces around
-      a dot within <literal>\copy (select ...)</> (Tom)
-     </para>
-
-     <para>
-      Addition of spaces around the decimal point in a numeric literal would
-      result in a syntax error.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid formatting failure in <application>psql</> when running in a
-      locale context that doesn't match the <varname>client_encoding</>
-      (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix unnecessary <quote>GIN indexes do not support whole-index scans</>
-      errors for unsatisfiable queries using <filename>contrib/intarray</>
-      operators (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure that <filename>contrib/pgstattuple</> functions respond to cancel
-      interrupts promptly (Tatsuhito Kasahara)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make server startup deal properly with the case that
-      <function>shmget()</> returns <literal>EINVAL</> for an existing
-      shared memory segment (Tom)
-     </para>
-
-     <para>
-      This behavior has been observed on BSD-derived kernels including OS X.
-      It resulted in an entirely-misleading startup failure complaining that
-      the shared memory request size was too large.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid possible crashes in syslogger process on Windows (Heikki)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Deal more robustly with incomplete time zone information in the
-      Windows registry (Magnus)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update the set of known Windows time zone names (Magnus)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2010j
-      for DST law changes in Argentina, Australian Antarctic, Bangladesh,
-      Mexico, Morocco, Pakistan, Palestine, Russia, Syria, Tunisia;
-      also historical corrections for Taiwan.
-     </para>
-
-     <para>
-      Also, add <literal>PKST</> (Pakistan Summer Time) to the default set of
-      timezone abbreviations.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-4-3">
-  <title>Release 8.4.3</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2010-03-15</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.4.2.
-   For information about new features in the 8.4 major release, see
-   <xref linkend="release-8-4">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.4.3</title>
-
-   <para>
-    A dump/restore is not required for those running 8.4.X.
-    However, if you are upgrading from a version earlier than 8.4.2,
-    see <xref linkend="release-8-4-2">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Add new configuration parameter <varname>ssl_renegotiation_limit</> to
-      control how often we do session key renegotiation for an SSL connection
-      (Magnus)
-     </para>
-
-     <para>
-      This can be set to zero to disable renegotiation completely, which may
-      be required if a broken SSL library is used.  In particular, some
-      vendors are shipping stopgap patches for CVE-2009-3555 that cause
-      renegotiation attempts to fail.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible deadlock during backend startup (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible crashes due to not handling errors during relcache reload
-      cleanly (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible crash due to use of dangling pointer to a cached plan
-      (Tatsuo)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible crash due to overenthusiastic invalidation of cached
-      plan for <command>ROLLBACK</> (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible crashes when trying to recover from a failure in
-      subtransaction start (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix server memory leak associated with use of savepoints and a client
-      encoding different from server's encoding (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix incorrect WAL data emitted during end-of-recovery cleanup of a GIST
-      index page split (Yoichi Hirai)
-     </para>
-
-     <para>
-      This would result in index corruption, or even more likely an error
-      during WAL replay, if we were unlucky enough to crash during
-      end-of-recovery cleanup after having completed an incomplete GIST
-      insertion.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix bug in WAL redo cleanup method for GIN indexes (Heikki)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix incorrect comparison of scan key in GIN index search (Teodor)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <function>substring()</> for <type>bit</> types treat any negative
-      length as meaning <quote>all the rest of the string</> (Tom)
-     </para>
-
-     <para>
-      The previous coding treated only -1 that way, and would produce an
-      invalid result value for other negative values, possibly leading to
-      a crash (CVE-2010-0442).
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix integer-to-bit-string conversions to handle the first fractional
-      byte correctly when the output bit width is wider than the given
-      integer by something other than a multiple of 8 bits (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix some cases of pathologically slow regular expression matching (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix bug occurring when trying to inline a SQL function that returns
-      a set of a composite type that contains dropped columns (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix bug with trying to update a field of an element of a
-      composite-type array column (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid failure when <command>EXPLAIN</> has to print a FieldStore or
-      assignment ArrayRef expression (Tom)
-     </para>
-
-     <para>
-      These cases can arise now that <command>EXPLAIN VERBOSE</> tries to
-      print plan node target lists.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid an unnecessary coercion failure in some cases where an undecorated
-      literal string appears in a subquery within
-      <command>UNION</>/<command>INTERSECT</>/<command>EXCEPT</> (Tom)
-     </para>
-
-     <para>
-      This fixes a regression for some cases that worked before 8.4.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid undesirable rowtype compatibility check failures in some cases
-      where a whole-row Var has a rowtype that contains dropped columns (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix the <literal>STOP WAL LOCATION</> entry in backup history files to
-      report the next WAL segment's name when the end location is exactly at a
-      segment boundary (Itagaki Takahiro)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Always pass the catalog ID to an option validator function specified in
-      <command>CREATE FOREIGN DATA WRAPPER</> (Martin Pihlak)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix some more cases of temporary-file leakage (Heikki)
-     </para>
-
-     <para>
-      This corrects a problem introduced in the previous minor release.
-      One case that failed is when a plpgsql function returning set is
-      called within another function's exception handler.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Add support for doing <literal>FULL JOIN ON FALSE</> (Tom)
-     </para>
-
-     <para>
-      This prevents a regression from pre-8.4 releases for some queries that
-      can now be simplified to a constant-false join condition.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve constraint exclusion processing of boolean-variable cases,
-      in particular make it possible to exclude a partition that has a
-      <quote>bool_column = false</> constraint (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent treating an <literal>INOUT</> cast as representing binary
-      compatibility (Heikki)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Include column name in the message when warning about inability to
-      grant or revoke column-level privileges (Stephen Frost)
-     </para>
-
-     <para>
-      This is more useful than before and helps to prevent confusion when
-      a <command>REVOKE</> generates multiple messages, which formerly
-      appeared to be duplicates.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      When reading <filename>pg_hba.conf</> and related files, do not treat
-      <literal>@something</> as a file inclusion request if the <literal>@</>
-      appears inside quote marks; also, never treat <literal>@</> by itself
-      as a file inclusion request (Tom)
-     </para>
-
-     <para>
-      This prevents erratic behavior if a role or database name starts with
-      <literal>@</>.  If you need to include a file whose path name
-      contains spaces, you can still do so, but you must write
-      <literal>@"/path to/file"</> rather than putting the quotes around
-      the whole construct.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent infinite loop on some platforms if a directory is named as
-      an inclusion target in <filename>pg_hba.conf</> and related files
-      (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible infinite loop if <function>SSL_read</> or
-      <function>SSL_write</> fails without setting <varname>errno</> (Tom)
-     </para>
-
-     <para>
-      This is reportedly possible with some Windows versions of
-      <application>openssl</>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Disallow <acronym>GSSAPI</> authentication on local connections,
-      since it requires a hostname to function correctly (Magnus)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Protect <application>ecpg</> against applications freeing strings
-      unexpectedly (Michael)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <application>ecpg</> report the proper SQLSTATE if the connection
-      disappears (Michael)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix translation of cell contents in <application>psql</> <literal>\d</>
-      output (Heikki)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>psql</>'s <literal>numericlocale</> option to not
-      format strings it shouldn't in latex and troff output formats (Heikki)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix a small per-query memory leak in <application>psql</> (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <application>psql</> return the correct exit status (3) when
-      <literal>ON_ERROR_STOP</> and <literal>--single-transaction</> are
-      both specified and an error occurs during the implied <command>COMMIT</>
-      (Bruce)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>pg_dump</>'s output of permissions for foreign servers
-      (Heikki)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible crash in parallel <application>pg_restore</> due to
-      out-of-range dependency IDs (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix plpgsql failure in one case where a composite column is set to NULL
-      (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible failure when calling PL/Perl functions from PL/PerlU
-      or vice versa (Tim Bunce)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Add <literal>volatile</> markings in PL/Python to avoid possible
-      compiler-specific misbehavior (Zdenek Kotala)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure PL/Tcl initializes the Tcl interpreter fully (Tom)
-     </para>
-
-     <para>
-      The only known symptom of this oversight is that the Tcl
-      <literal>clock</> command misbehaves if using Tcl 8.5 or later.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent <function>ExecutorEnd</> from being run on portals created
-      within a failed transaction or subtransaction (Tom)
-     </para>
-
-     <para>
-      This is known to cause issues when using
-      <filename>contrib/auto_explain</>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent crash in <filename>contrib/dblink</> when too many key
-      columns are specified to a <function>dblink_build_sql_*</> function
-      (Rushabh Lathia, Joe Conway)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Allow zero-dimensional arrays in <filename>contrib/ltree</> operations
-      (Tom)
-     </para>
-
-     <para>
-      This case was formerly rejected as an error, but it's more convenient to
-      treat it the same as a zero-element array.  In particular this avoids
-      unnecessary failures when an <type>ltree</> operation is applied to the
-      result of <literal>ARRAY(SELECT ...)</> and the sub-select returns no
-      rows.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix assorted crashes in <filename>contrib/xml2</> caused by sloppy
-      memory management (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make building of <filename>contrib/xml2</> more robust on Windows
-      (Andrew)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix race condition in Windows signal handling (Radu Ilie)
-     </para>
-
-     <para>
-      One known symptom of this bug is that rows in <structname>pg_listener</>
-      could be dropped under heavy load.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make the configure script report failure if the C compiler does
-      not provide a working 64-bit integer datatype (Tom)
-     </para>
-
-     <para>
-      This case has been broken for some time, and no longer seems worth
-      supporting, so just reject it at configure time instead.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2010e
-      for DST law changes in Bangladesh, Chile, Fiji, Mexico, Paraguay, Samoa.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-4-2">
-  <title>Release 8.4.2</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2009-12-14</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.4.1.
-   For information about new features in the 8.4 major release, see
-   <xref linkend="release-8-4">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.4.2</title>
-
-   <para>
-    A dump/restore is not required for those running 8.4.X.
-    However, if you have any hash indexes,
-    you should <command>REINDEX</> them after updating to 8.4.2,
-    to repair possible damage.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Protect against indirect security threats caused by index functions
-      changing session-local state (Gurjeet Singh, Tom)
-     </para>
-
-     <para>
-      This change prevents allegedly-immutable index functions from possibly
-      subverting a superuser's session (CVE-2009-4136).
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Reject SSL certificates containing an embedded null byte in the common
-      name (CN) field (Magnus)
-     </para>
-
-     <para>
-      This prevents unintended matching of a certificate to a server or client
-      name during SSL validation (CVE-2009-4034).
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix hash index corruption (Tom)
-     </para>
-
-     <para>
-      The 8.4 change that made hash indexes keep entries sorted by hash value
-      failed to update the bucket splitting and compaction routines to
-      preserve the ordering.  So application of either of those operations
-      could lead to permanent corruption of an index, in the sense that
-      searches might fail to find entries that are present.  To deal with
-      this, it is recommended to <literal>REINDEX</> any hash indexes you may
-      have after installing this update.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible crash during backend-startup-time cache initialization (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid crash on empty thesaurus dictionary (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent signals from interrupting <literal>VACUUM</> at unsafe times
-      (Alvaro)
-     </para>
-
-     <para>
-      This fix prevents a PANIC if a <literal>VACUUM FULL</> is canceled
-      after it's already committed its tuple movements, as well as transient
-      errors if a plain <literal>VACUUM</> is interrupted after having
-      truncated the table.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible crash due to integer overflow in hash table size
-      calculation (Tom)
-     </para>
-
-     <para>
-      This could occur with extremely large planner estimates for the size of
-      a hashjoin's result.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix crash if a <literal>DROP</> is attempted on an internally-dependent
-      object (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix very rare crash in <type>inet</>/<type>cidr</> comparisons (Chris
-      Mikkelson)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure that shared tuple-level locks held by prepared transactions are
-      not ignored (Heikki)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix premature drop of temporary files used for a cursor that is accessed
-      within a subtransaction (Heikki)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix memory leak in syslogger process when rotating to a new CSV logfile
-      (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix memory leak in postmaster when re-parsing <filename>pg_hba.conf</>
-      (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix Windows permission-downgrade logic (Jesse Morris)
-     </para>
-
-     <para>
-      This fixes some cases where the database failed to start on Windows,
-      often with misleading error messages such as <quote>could not locate
-      matching postgres executable</quote>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <literal>FOR UPDATE/SHARE</> in the primary query not propagate
-      into <literal>WITH</> queries (Tom)
-     </para>
-
-     <para>
-      For example, in
-<programlisting>
-WITH w AS (SELECT * FROM foo) SELECT * FROM w, bar ... FOR UPDATE
-</programlisting>
-      the <literal>FOR UPDATE</> will now affect <literal>bar</> but not
-      <literal>foo</>.  This is more useful and consistent than the original
-      8.4 behavior, which tried to propagate <literal>FOR UPDATE</> into the
-      <literal>WITH</> query but always failed due to assorted implementation
-      restrictions.  It also follows the design rule that <literal>WITH</>
-      queries are executed as if independent of the main query.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix bug with a <literal>WITH RECURSIVE</> query immediately inside
-      another one (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix concurrency bug in hash indexes (Tom)
-     </para>
-
-     <para>
-      Concurrent insertions could cause index scans to transiently report
-      wrong results.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix incorrect logic for GiST index page splits, when the split depends
-      on a non-first column of the index (Paul Ramsey)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix wrong search results for a multi-column GIN index with
-      <literal>fastupdate</> enabled (Teodor)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix bugs in WAL entry creation for GIN indexes (Tom)
-     </para>
-
-     <para>
-      These bugs were masked when <varname>full_page_writes</> was on, but
-      with it off a WAL replay failure was certain if a crash occurred before
-      the next checkpoint.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Don't error out if recycling or removing an old WAL file fails at the
-      end of checkpoint (Heikki)
-     </para>
-
-     <para>
-      It's better to treat the problem as non-fatal and allow the checkpoint
-      to complete.  Future checkpoints will retry the removal.  Such problems
-      are not expected in normal operation, but have been seen to be
-      caused by misdesigned Windows anti-virus and backup software.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure WAL files aren't repeatedly archived on Windows (Heikki)
-     </para>
-
-     <para>
-      This is another symptom that could happen if some other process
-      interfered with deletion of a no-longer-needed file.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix PAM password processing to be more robust (Tom)
-     </para>
-
-     <para>
-      The previous code is known to fail with the combination of the Linux
-      <literal>pam_krb5</> PAM module with Microsoft Active Directory as the
-      domain controller.  It might have problems elsewhere too, since it was
-      making unjustified assumptions about what arguments the PAM stack would
-      pass to it.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Raise the maximum authentication token (Kerberos ticket) size in GSSAPI
-      and SSPI authentication methods (Ian Turner)
-     </para>
-
-     <para>
-      While the old 2000-byte limit was more than enough for Unix Kerberos
-      implementations, tickets issued by Windows Domain Controllers can be
-      much larger.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure that domain constraints are enforced in constructs like
-      <literal>ARRAY[...]::domain</>, where the domain is over an array type
-      (Heikki)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix foreign-key logic for some cases involving composite-type columns
-      as foreign keys (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure that a cursor's snapshot is not modified after it is created
-      (Alvaro)
-     </para>
-
-     <para>
-      This could lead to a cursor delivering wrong results if later operations
-      in the same transaction modify the data the cursor is supposed to return.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <literal>CREATE TABLE</> to properly merge default expressions
-      coming from different inheritance parent tables (Tom)
-     </para>
-
-     <para>
-      This used to work but was broken in 8.4.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Re-enable collection of access statistics for sequences (Akira Kurosawa)
-     </para>
-
-     <para>
-      This used to work but was broken in 8.3.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix processing of ownership dependencies during <literal>CREATE OR
-      REPLACE FUNCTION</> (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix incorrect handling of <literal>WHERE</>
-      <replaceable>x</>=<replaceable>x</> conditions (Tom)
-     </para>
-
-     <para>
-      In some cases these could get ignored as redundant, but they aren't
-      &mdash; they're equivalent to <replaceable>x</> <literal>IS NOT NULL</>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix incorrect plan construction when using hash aggregation to implement
-      <literal>DISTINCT</> for textually identical volatile expressions (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix Assert failure for a volatile <literal>SELECT DISTINCT ON</>
-      expression (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <function>ts_stat()</> to not fail on an empty <type>tsvector</>
-      value (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make text search parser accept underscores in XML attributes (Peter)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix encoding handling in <type>xml</> binary input (Heikki)
-     </para>
-
-     <para>
-      If the XML header doesn't specify an encoding, we now assume UTF-8 by
-      default; the previous handling was inconsistent.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix bug with calling <literal>plperl</> from <literal>plperlu</> or vice
-      versa (Tom)
-     </para>
-
-     <para>
-      An error exit from the inner function could result in crashes due to
-      failure to re-select the correct Perl interpreter for the outer function.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix session-lifespan memory leak when a PL/Perl function is redefined
-      (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure that Perl arrays are properly converted to
-      <productname>PostgreSQL</> arrays when returned by a set-returning
-      PL/Perl function (Andrew Dunstan, Abhijit Menon-Sen)
-     </para>
-
-     <para>
-      This worked correctly already for non-set-returning functions.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix rare crash in exception processing in PL/Python (Peter)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>ecpg</> problem with comments in <literal>DECLARE
-      CURSOR</> statements (Michael)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>ecpg</> to not treat recently-added keywords as
-      reserved words (Tom)
-     </para>
-
-     <para>
-      This affected the keywords <literal>CALLED</>, <literal>CATALOG</>,
-      <literal>DEFINER</>, <literal>ENUM</>, <literal>FOLLOWING</>,
-      <literal>INVOKER</>, <literal>OPTIONS</>, <literal>PARTITION</>,
-      <literal>PRECEDING</>, <literal>RANGE</>, <literal>SECURITY</>,
-      <literal>SERVER</>, <literal>UNBOUNDED</>, and <literal>WRAPPER</>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Re-allow regular expression special characters in <application>psql</>'s
-      <literal>\df</> function name parameter (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      In <filename>contrib/fuzzystrmatch</>, correct the calculation of
-      <function>levenshtein</> distances with non-default costs (Marcin Mank)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      In <filename>contrib/pg_standby</>, disable triggering failover with a
-      signal on Windows (Fujii Masao)
-     </para>
-
-     <para>
-      This never did anything useful, because Windows doesn't have Unix-style
-      signals, but recent changes made it actually crash.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Put <literal>FREEZE</> and <literal>VERBOSE</> options in the right
-      order in the <literal>VACUUM</> command that
-      <filename>contrib/vacuumdb</> produces (Heikki)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible leak of connections when <filename>contrib/dblink</>
-      encounters an error (Tatsuhito Kasahara)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure <application>psql</>'s flex module is compiled with the correct
-      system header definitions (Tom)
-     </para>
-
-     <para>
-      This fixes build failures on platforms where
-      <literal>--enable-largefile</> causes incompatible changes in the
-      generated code.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make the postmaster ignore any <literal>application_name</> parameter in
-      connection request packets, to improve compatibility with future libpq
-      versions (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update the timezone abbreviation files to match current reality (Joachim
-      Wieland)
-     </para>
-
-     <para>
-      This includes adding <literal>IDT</> to the default
-      timezone abbreviation set.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2009s
-      for DST law changes in Antarctica, Argentina, Bangladesh, Fiji,
-      Novokuznetsk, Pakistan, Palestine, Samoa, Syria; also historical
-      corrections for Hong Kong.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-4-1">
-  <title>Release 8.4.1</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2009-09-09</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 8.4.
-   For information about new features in the 8.4 major release, see
-   <xref linkend="release-8-4">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 8.4.1</title>
-
-   <para>
-    A dump/restore is not required for those running 8.4.X.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Fix WAL page header initialization at the end of archive recovery
-      (Heikki)
-     </para>
-
-     <para>
-      This could lead to failure to process the WAL in a subsequent
-      archive recovery.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <quote>cannot make new WAL entries during recovery</> error (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix problem that could make expired rows visible after a crash (Tom)
-     </para>
-
-     <para>
-      This bug involved a page status bit potentially not being set
-      correctly after a server crash.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Disallow <command>RESET ROLE</> and <command>RESET SESSION
-      AUTHORIZATION</> inside security-definer functions (Tom, Heikki)
-     </para>
-
-     <para>
-      This covers a case that was missed in the previous patch that
-      disallowed <command>SET ROLE</> and <command>SET SESSION
-      AUTHORIZATION</> inside security-definer functions.
-      (See CVE-2007-6600)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <command>LOAD</> of an already-loaded loadable module
-      into a no-op (Tom)
-     </para>
-
-     <para>
-      Formerly, <command>LOAD</> would attempt to unload and re-load the
-      module, but this is unsafe and not all that useful.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make window function <literal>PARTITION BY</> and <literal>ORDER BY</>
-      items always be interpreted as simple expressions (Tom)
-     </para>
-
-     <para>
-      In 8.4.0 these lists were parsed following the rules used for
-      top-level <literal>GROUP BY</> and <literal>ORDER BY</> lists.
-      But this was not correct per the SQL standard, and it led to possible
-      circularity.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix several errors in planning of semi-joins (Tom)
-     </para>
-
-     <para>
-      These led to wrong query results in some cases where <literal>IN</>
-      or <literal>EXISTS</> was used together with another join.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix handling of whole-row references to subqueries that are within
-      an outer join (Tom)
-     </para>
-
-     <para>
-      An example is
-      <literal>SELECT COUNT(ss.*) FROM ... LEFT JOIN (SELECT ...) ss ON ...</>.
-      Here, <literal>ss.*</> would be treated as <literal>ROW(NULL,NULL,...)</>
-      for null-extended join rows, which is not the same as a simple NULL.
-      Now it is treated as a simple NULL.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix Windows shared-memory allocation code (Tsutomu Yamada, Magnus)
-     </para>
-
-     <para>
-      This bug led to the often-reported <quote>could not reattach
-      to shared memory</> error message.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix locale handling with plperl (Heikki)
-     </para>
-
-     <para>
-      This bug could cause the server's locale setting to change when a
-      plperl function is called, leading to data corruption.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix handling of reloptions to ensure setting one option doesn't
-      force default values for others (Itagaki Takahiro)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure that a <quote>fast shutdown</> request will forcibly terminate
-      open sessions, even if a <quote>smart shutdown</> was already in progress
-      (Fujii Masao)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid memory leak for <function>array_agg()</> in <literal>GROUP BY</>
-      queries (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Treat <function>to_char(..., 'TH')</> as an uppercase ordinal
-      suffix with <literal>'HH'</>/<literal>'HH12'</> (Heikki)
-     </para>
-
-     <para>
-      It was previously handled as <literal>'th'</> (lowercase).
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Include the fractional part in the result of
-      <function>EXTRACT(second)</> and
-      <function>EXTRACT(milliseconds)</> for
-      <type>time</> and <type>time with time zone</> inputs (Tom)
-     </para>
-
-     <para>
-      This has always worked for floating-point datetime configurations,
-      but was broken in the integer datetime code.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix overflow for <literal>INTERVAL '<replaceable>x</> ms'</literal>
-      when <replaceable>x</> is more than 2 million and integer
-      datetimes are in use (Alex Hunsaker)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve performance when processing toasted values in index scans (Tom)
-     </para>
-
-     <para>
-      This is particularly useful for <ulink
-      url="http://postgis.net/">PostGIS</ulink>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix a typo that disabled <varname>commit_delay</> (Jeff Janes)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Output early-startup messages to <filename>postmaster.log</> if the
-      server is started in silent mode (Tom)
-     </para>
-
-     <para>
-      Previously such error messages were discarded, leading to
-      difficulty in debugging.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Remove translated FAQs (Peter)
-     </para>
-
-     <para>
-      They are now on the <ulink
-      url="http://wiki.postgresql.org/wiki/FAQ">wiki</ulink>.  The
-      main FAQ was moved to the wiki some time ago.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>pg_ctl</> to not go into an infinite loop if
-      <filename>postgresql.conf</> is empty (Jeff Davis)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix several errors in <application>pg_dump</>'s
-      <literal>--binary-upgrade</> mode (Bruce, Tom)
-     </para>
-
-     <para>
-      <literal>pg_dump --binary-upgrade</> is used by pg_migrator.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <filename>contrib/xml2</>'s <function>xslt_process()</> to
-      properly handle the maximum number of parameters (twenty) (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve robustness of <application>libpq</>'s code to recover
-      from errors during <command>COPY FROM STDIN</> (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid including conflicting readline and editline header files
-      when both libraries are installed (Zdenek Kotala)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Work around gcc bug that causes <quote>floating-point exception</>
-      instead of <quote>division by zero</> on some platforms (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2009l
-      for DST law changes in Bangladesh, Egypt, Mauritius.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-8-4">
-  <title>Release 8.4</title>
-
-  <formalpara>
-   <title>Release date:</title>
-   <para>2009-07-01</para>
-  </formalpara>
-
-  <sect2>
-   <title>Overview</title>
-
-   <para>
-    After many years of development, <productname>PostgreSQL</> has
-    become feature-complete in many areas.   This release shows a
-    targeted approach to adding features (e.g., authentication,
-    monitoring, space reuse), and adds capabilities defined in the
-    later SQL standards.  The major areas of enhancement are:
-   </para>
-
-   <itemizedlist>
-
-    <!-- This list duplicates items below, but without authors or details-->
-
-    <listitem>
-     <para>
-      Windowing Functions
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Common Table Expressions and Recursive Queries
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Default and variadic parameters for functions
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Parallel Restore
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Column Permissions
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Per-database locale settings
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improved hash indexes
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improved join performance for <literal>EXISTS</> and <literal>NOT EXISTS</> queries
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Easier-to-use Warm Standby
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Automatic sizing of the Free Space Map
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Visibility Map (greatly reduces vacuum overhead for slowly-changing tables)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Version-aware psql (backslash commands work against older servers)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Support SSL certificates for user authentication
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Per-function runtime statistics
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Easy editing of functions in psql
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      New contrib modules: pg_stat_statements, auto_explain, citext, btree_gin
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-   <para>
-    The above items are explained in more detail in the sections below.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Migration to Version 8.4</title>
-
-   <para>
-    A dump/restore using <application>pg_dump</application> is
-    required for those wishing to migrate data from any previous
-    release.
-   </para>
-
-   <para>
-    Observe the following incompatibilities:
-   </para>
-
-   <sect3>
-    <title>General</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Use 64-bit integer datetimes by default (Neil Conway)
-      </para>
-
-      <para>
-       Previously this was selected by <application>configure</>'s
-       <option>--enable-integer-datetimes</> option.  To retain
-       the old behavior, build with <option>--disable-integer-datetimes</>.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Remove <application>ipcclean</> utility command (Bruce)
-      </para>
-
-      <para>
-       The utility only worked on a few platforms.  Users should use
-       their operating system tools instead.
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title>Server Settings</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Change default setting for
-       <literal>log_min_messages</> to <literal>warning</> (previously
-       it was <literal>notice</>) to reduce log file volume (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Change default setting for <literal>max_prepared_transactions</> to
-       zero (previously it was 5) (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Make <literal>debug_print_parse</>, <literal>debug_print_rewritten</>,
-       and <literal>debug_print_plan</>
-       output appear at <literal>LOG</> message level, not
-       <literal>DEBUG1</> as formerly (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Make <literal>debug_pretty_print</> default to <literal>on</> (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Remove <varname>explain_pretty_print</> parameter (no longer needed) (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Make <varname>log_temp_files</> settable by superusers only, like other
-       logging options (Simon Riggs)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Remove automatic appending of the epoch timestamp when no <literal>%</>
-       escapes are present in <literal>log_filename</> (Robert Haas)
-      </para>
-
-      <para>
-       This change was made because some users wanted a fixed log filename,
-       for use with an external log rotation tool.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Remove <varname>log_restartpoints</> from <filename>recovery.conf</>;
-       instead use <varname>log_checkpoints</> (Simon)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Remove <varname>krb_realm</> and <varname>krb_server_hostname</>;
-       these are now set in <filename>pg_hba.conf</> instead (Magnus)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       There are also significant changes in <link
-       linkend="release-8-4-pg-hba-conf"><filename>pg_hba.conf</></link>,
-       as described below.
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title>Queries</title>
-
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Change <command>TRUNCATE</> and <command>LOCK</> to
-       apply to child tables of the specified table(s) (Peter)
-      </para>
-
-      <para>
-       These commands now accept an <literal>ONLY</> option that prevents
-       processing child tables; this option must be used if the old
-       behavior is needed.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       <command>SELECT DISTINCT</> and
-       <literal>UNION</>/<literal>INTERSECT</>/<literal>EXCEPT</>
-       no longer always produce sorted output (Tom)
-      </para>
-
-      <para>
-       Previously, these types of queries always removed duplicate rows
-       by means of Sort/Unique processing (i.e., sort then remove adjacent
-       duplicates).  Now they can be implemented by hashing, which will not
-       produce sorted output.  If an application relied on the output being
-       in sorted order, the recommended fix is to add an <literal>ORDER BY</>
-       clause.  As a short-term workaround, the previous behavior can be
-       restored by disabling <literal>enable_hashagg</>, but that is a very
-       performance-expensive fix.  <literal>SELECT DISTINCT ON</> never uses
-       hashing, however, so its behavior is unchanged.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Force child tables to inherit <literal>CHECK</> constraints from parents
-       (Alex Hunsaker, Nikhil Sontakke, Tom)
-      </para>
-
-      <para>
-       Formerly it was possible to drop such a constraint from a child
-       table, allowing rows that violate the constraint to be visible
-       when scanning the parent table.  This was deemed inconsistent,
-       as well as contrary to SQL standard.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Disallow negative <literal>LIMIT</> or <literal>OFFSET</>
-       values, rather than treating them as zero (Simon)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Disallow <command>LOCK TABLE</> outside a transaction block
-       (Tom)
-      </para>
-
-      <para>
-       Such an operation is useless because the lock would be released
-       immediately.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Sequences now contain an additional <structfield>start_value</> column
-       (Zoltan Boszormenyi)
-      </para>
-
-      <para>
-       This supports <command>ALTER SEQUENCE ... RESTART</>.
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-
-   <sect3>
-    <title>Functions and Operators</title>
-
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Make <type>numeric</> zero raised to a fractional power return
-       <literal>0</>, rather than throwing an error, and make
-       <type>numeric</> zero raised to the zero power return <literal>1</>,
-       rather than error (Bruce)
-      </para>
-
-      <para>
-       This matches the longstanding <type>float8</> behavior.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow unary minus of floating-point values to produce minus zero (Tom)
-      </para>
-
-      <para>
-       The changed behavior is more <acronym>IEEE</>-standard
-       compliant.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Throw an error if an escape character is the last character in
-       a <literal>LIKE</> pattern (i.e., it has nothing to escape) (Tom)
-      </para>
-
-      <para>
-       Previously, such an escape character was silently ignored,
-       thus possibly masking application logic errors.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Remove <literal>~=~</> and <literal>~&lt;&gt;~</> operators
-       formerly used for <literal>LIKE</> index comparisons (Tom)
-      </para>
-
-      <para>
-       Pattern indexes now use the regular equality operator.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       <function>xpath()</> now passes its arguments to <application>libxml</>
-       without any changes (Andrew)
-      </para>
-
-      <para>
-       This means that the XML argument must be a well-formed XML document.
-       The previous coding attempted to allow XML fragments, but it did not
-       work well.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Make <function>xmlelement()</> format attribute values just like
-       content values (Peter)
-      </para>
-
-      <para>
-       Previously, attribute values were formatted according to the
-       normal SQL output behavior, which is sometimes at odds with
-       XML rules.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Rewrite memory management for <application>libxml</>-using functions
-       (Tom)
-      </para>
-
-      <para>
-       This change should avoid some compatibility problems with use of
-       <application>libxml</> in PL/Perl and other add-on code.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Adopt a faster algorithm for hash functions (Kenneth Marshall,
-       based on work of Bob Jenkins)
-      </para>
-
-      <para>
-       Many of the built-in hash functions now deliver different results on
-       little-endian and big-endian platforms.
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-    <sect4>
-     <title>Temporal Functions and Operators</title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        <varname>DateStyle</> no longer controls <type>interval</> output
-        formatting; instead there is a new variable <varname>IntervalStyle</>
-        (Ron Mayer)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Improve consistency of handling of fractional seconds in
-        <type>timestamp</> and <type>interval</> output (Ron Mayer)
-       </para>
-
-       <para>
-        This may result in displaying a different number of fractional
-        digits than before, or rounding instead of truncating.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Make <function>to_char()</>'s localized month/day names depend
-        on <varname>LC_TIME</>, not <varname>LC_MESSAGES</> (Euler
-        Taveira de Oliveira)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Cause <function>to_date()</> and <function>to_timestamp()</>
-        to more consistently report errors for invalid input (Brendan
-        Jurd)
-       </para>
-
-       <para>
-        Previous versions would often ignore or silently misread input
-        that did not match the format string.  Such cases will now
-        result in an error.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Fix <function>to_timestamp()</> to not require upper/lower case
-        matching for meridian (<literal>AM</>/<literal>PM</>) and era
-        (<literal>BC</>/<literal>AD</>) format designations  (Brendan
-        Jurd)
-       </para>
-
-       <para>
-        For example, input value <literal>ad</> now matches the format
-        string <literal>AD</>.
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-   </sect3>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <para>
-    Below you will find a detailed account of the changes between
-    <productname>PostgreSQL</productname> 8.4 and the previous major
-    release.
-   </para>
-
-   <sect3>
-    <title>Performance</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Improve optimizer statistics calculations (Jan Urbanski, Tom)
-      </para>
-
-      <para>
-       In particular, estimates for full-text-search operators are
-       greatly improved.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow <command>SELECT DISTINCT</> and
-       <literal>UNION</>/<literal>INTERSECT</>/<literal>EXCEPT</> to
-       use hashing (Tom)
-      </para>
-
-      <para>
-       This means that these types of queries no longer automatically
-       produce sorted output.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Create explicit concepts of semi-joins and anti-joins (Tom)
-      </para>
-
-      <para>
-       This work formalizes our previous ad-hoc treatment of <literal>IN
-       (SELECT ...)</> clauses, and extends it to <literal>EXISTS</> and
-       <literal>NOT EXISTS</> clauses.  It should result in significantly
-       better planning of <literal>EXISTS</> and <literal>NOT EXISTS</>
-       queries.  In general, logically equivalent <literal>IN</> and
-       <literal>EXISTS</> clauses should now have similar performance,
-       whereas previously <literal>IN</> often won.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Improve optimization of sub-selects beneath outer joins (Tom)
-      </para>
-
-      <para>
-       Formerly, a sub-select or view could not be optimized very well if it
-       appeared within the nullable side of an outer join and contained
-       non-strict expressions (for instance, constants) in its result list.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Improve the performance of <function>text_position()</> and
-       related functions by using Boyer-Moore-Horspool searching (David
-       Rowley)
-      </para>
-
-      <para>
-       This is particularly helpful for long search patterns.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Reduce I/O load of writing the statistics collection file
-       by writing the file only when requested (Martin Pihlak)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Improve performance for bulk inserts (Robert Haas, Simon)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Increase the default value of <varname>default_statistics_target</>
-       from <literal>10</> to <literal>100</> (Greg Sabino Mullane,
-       Tom)
-      </para>
-
-      <para>
-       The maximum value was also increased from <literal>1000</> to
-       <literal>10000</>.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Perform <varname>constraint_exclusion</> checking by default
-       in queries involving inheritance or <literal>UNION ALL</> (Tom)
-      </para>
-
-      <para>
-       A new <varname>constraint_exclusion</> setting,
-       <literal>partition</>, was added to specify this behavior.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow I/O read-ahead for bitmap index scans (Greg Stark)
-      </para>
-
-      <para>
-       The amount of read-ahead is controlled by
-       <varname>effective_io_concurrency</>.  This feature is available only
-       if the kernel has <function>posix_fadvise()</> support.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Inline simple set-returning <acronym>SQL</> functions in
-       <literal>FROM</> clauses (Richard Rowell)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Improve performance of multi-batch hash joins by providing a special
-       case for join key values that are especially common in the outer
-       relation (Bryce Cutt, Ramon Lawrence)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Reduce volume of temporary data in multi-batch hash joins
-       by suppressing <quote>physical tlist</> optimization (Michael
-       Henderson, Ramon Lawrence)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Avoid waiting for idle-in-transaction sessions during
-       <command>CREATE INDEX CONCURRENTLY</> (Simon)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Improve performance of shared cache invalidation (Tom)
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title>Server</title>
-
-    <sect4>
-     <title>Settings</title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Convert many <filename>postgresql.conf</> settings to enumerated
-        values so that <literal>pg_settings</> can display the valid
-        values (Magnus)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add <varname>cursor_tuple_fraction</> parameter to control the
-        fraction of a cursor's rows that the planner assumes will be
-        fetched (Robert Hell)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Allow underscores in the names of custom variable
-        classes in <filename>postgresql.conf</> (Tom)
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-    <sect4>
-     <title>Authentication and security</title>
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Remove support for the (insecure) <literal>crypt</> authentication method
-        (Magnus)
-       </para>
-
-       <para>
-        This effectively obsoletes pre-<productname>PostgreSQL</> 7.2 client
-        libraries, as there is no longer any non-plaintext password method that
-        they can use.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Support regular expressions in <filename>pg_ident.conf</>
-        (Magnus)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Allow <productname>Kerberos</>/<acronym>GSSAPI</> parameters
-        to be changed without restarting the postmaster (Magnus)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Support <acronym>SSL</> certificate chains in server certificate
-        file (Andrew Gierth)
-       </para>
-
-       <para>
-        Including the full certificate chain makes the client able
-        to verify the certificate without having all intermediate CA
-        certificates present in the local store, which is often the case for
-        commercial CAs.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Report appropriate error message for combination of <literal>MD5</>
-        authentication and <varname>db_user_namespace</> enabled (Bruce)
-       </para>
-      </listitem>
-     </itemizedlist>
-
-    </sect4>
-
-    <sect4 id="release-8-4-pg-hba-conf">
-     <title><filename>pg_hba.conf</></title>
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Change all authentication options to use <literal>name=value</>
-        syntax (Magnus)
-       </para>
-
-       <para>
-        This makes incompatible changes to the <literal>ldap</>,
-        <literal>pam</> and <literal>ident</> authentication methods. All
-        <filename>pg_hba.conf</> entries with these methods need to be
-        rewritten using the new format.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Remove the <literal>ident sameuser</> option, instead making that
-        behavior the default if no usermap is specified (Magnus)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Allow a usermap parameter for all external authentication methods
-        (Magnus)
-       </para>
-
-       <para>
-        Previously a usermap was only supported for <literal>ident</>
-        authentication.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add <literal>clientcert</> option to control requesting of a
-        client certificate (Magnus)
-       </para>
-
-       <para>
-        Previously this was controlled by the presence of a root
-        certificate file in the server's data directory.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add <literal>cert</> authentication method to allow
-        <emphasis>user</> authentication via <acronym>SSL</> certificates
-        (Magnus)
-       </para>
-
-       <para>
-        Previously <acronym>SSL</> certificates could only verify that
-        the client had access to a certificate, not authenticate a
-        user.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Allow <literal>krb5</>, <literal>gssapi</> and <literal>sspi</>
-        realm and <literal>krb5</> host settings to be specified in
-        <filename>pg_hba.conf</> (Magnus)
-       </para>
-
-       <para>
-        These override the settings in <filename>postgresql.conf</>.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add <varname>include_realm</> parameter for <literal>krb5</>,
-        <literal>gssapi</>, and <literal>sspi</> methods (Magnus)
-       </para>
-
-       <para>
-        This allows identical usernames from different realms to be
-        authenticated as different database users using usermaps.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Parse <filename>pg_hba.conf</> fully when it is loaded,
-        so that errors are reported immediately (Magnus)
-       </para>
-
-       <para>
-        Previously, most errors in the file wouldn't be detected until clients
-        tried to connect, so an erroneous file could render the system
-        unusable.  With the new behavior, if an error is detected during
-        reload then the bad file is rejected and the postmaster continues
-        to use its old copy.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Show all parsing errors in <filename>pg_hba.conf</> instead of
-        aborting after the first one (Selena Deckelmann)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Support <literal>ident</> authentication over Unix-domain sockets
-        on <productname>Solaris</> (Garick Hamlin)
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-    <sect4>
-     <title>Continuous Archiving</title>
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Provide an option to <function>pg_start_backup()</> to force its
-        implied checkpoint to finish as quickly as possible (Tom)
-       </para>
-
-       <para>
-        The default behavior avoids excess I/O consumption, but that is
-        pointless if no concurrent query activity is going on.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Make <function>pg_stop_backup()</> wait for modified <acronym>WAL</>
-        files to be archived (Simon)
-       </para>
-
-       <para>
-        This guarantees that the backup is valid at the time
-        <function>pg_stop_backup()</> completes.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        When archiving is enabled, rotate the last WAL segment at shutdown
-        so that all transactions can be archived immediately
-        (Guillaume Smet, Heikki)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Delay <quote>smart</> shutdown while a continuous archiving base backup
-        is in progress (Laurenz Albe)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Cancel a continuous archiving base backup if <quote>fast</> shutdown
-        is requested (Laurenz Albe)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Allow <filename>recovery.conf</> boolean variables to take the
-        same range of string values as <filename>postgresql.conf</>
-        boolean variables
-        (Bruce)
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-    <sect4>
-     <title>Monitoring</title>
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Add <function>pg_conf_load_time()</> to report when
-        the <productname>PostgreSQL</> configuration files were last loaded
-        (George Gensure)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add <function>pg_terminate_backend()</> to safely terminate a
-        backend (the <literal>SIGTERM</> signal works also) (Tom, Bruce)
-       </para>
-
-       <para>
-        While it's always been possible to <literal>SIGTERM</> a single
-        backend, this was previously considered unsupported; and testing
-        of the case found some bugs that are now fixed.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add ability to track user-defined functions' call counts and
-        runtimes (Martin Pihlak)
-       </para>
-
-       <para>
-        Function statistics appear in a new system view,
-        <literal>pg_stat_user_functions</>.  Tracking is controlled
-        by the new parameter <varname>track_functions</>.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Allow specification of the maximum query string size in
-        <literal>pg_stat_activity</> via new
-        <varname>track_activity_query_size</> parameter (Thomas Lee)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Increase the maximum line length sent to <application>syslog</>, in
-        hopes of improving performance (Tom)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add read-only configuration variables <varname>segment_size</>,
-        <varname>wal_block_size</>, and <varname>wal_segment_size</>
-        (Bernd Helmle)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        When reporting a deadlock, report the text of all queries involved
-        in the deadlock to the server log  (Itagaki Takahiro)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add <function>pg_stat_get_activity(pid)</> function to return
-        information about a specific process id (Magnus)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Allow the location of the server's statistics file to be specified
-        via <varname>stats_temp_directory</> (Magnus)
-       </para>
-
-       <para>
-        This allows the statistics file to be placed in a
-        <acronym>RAM</>-resident directory to reduce I/O requirements.
-        On startup/shutdown, the file is copied to its traditional location
-        (<literal>$PGDATA/global/</>) so it is preserved across restarts.
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-   </sect3>
-
-   <sect3>
-    <title>Queries</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Add support for <literal>WINDOW</> functions (Hitoshi Harada)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add support for <literal>WITH</> clauses (CTEs), including <literal>WITH
-       RECURSIVE</> (Yoshiyuki Asaba, Tatsuo Ishii, Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <command>TABLE</> command (Peter)
-      </para>
-
-      <para>
-       <literal>TABLE tablename</> is a SQL standard short-hand for
-       <literal>SELECT * FROM tablename</>.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow <literal>AS</> to be optional when specifying a
-       <command>SELECT</> (or <literal>RETURNING</>) column output
-       label (Hiroshi Saito)
-      </para>
-
-      <para>
-       This works so long as the column label is not any
-       <productname>PostgreSQL</> keyword; otherwise <literal>AS</> is still
-       needed.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Support set-returning functions in <command>SELECT</> result lists
-       even for functions that return their result via a tuplestore (Tom)
-      </para>
-
-      <para>
-       In particular, this means that functions written in PL/pgSQL
-       and other PL languages can now be called this way.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Support set-returning functions in the output of aggregation
-       and grouping queries (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow <command>SELECT FOR UPDATE</>/<literal>SHARE</> to work
-       on inheritance trees (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add infrastructure for <acronym>SQL/MED</> (Martin Pihlak,
-       Peter)
-      </para>
-
-      <para>
-       There are no remote or external <acronym>SQL/MED</> capabilities
-       yet, but this change provides a standardized and future-proof
-       system for managing connection information for modules like
-       <filename>dblink</> and <filename>plproxy</>.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Invalidate cached plans when referenced schemas, functions, operators,
-       or operator classes are modified (Martin Pihlak, Tom)
-      </para>
-
-      <para>
-       This improves the system's ability to respond to on-the-fly
-       DDL changes.
-      </para>
-     </listitem>
-     <listitem>
-      <para>
-       Allow comparison of composite types and allow arrays of
-       anonymous composite types (Tom)
-      </para>
-
-      <para>
-       This allows constructs such as
-       <literal>row(1, 1.1) = any (array[row(7, 7.7), row(1, 1.0)])</>.
-       This is particularly useful in recursive queries.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add support for Unicode string literal and identifier specifications
-       using code points, e.g. <literal>U&amp;'d\0061t\+000061'</>
-       (Peter)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Reject <literal>\000</> in string literals and <command>COPY</> data
-       (Tom)
-      </para>
-
-      <para>
-       Previously, this was accepted but had the effect of terminating
-       the string contents.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Improve the parser's ability to report error locations (Tom)
-      </para>
-
-      <para>
-       An error location is now reported for many semantic errors,
-       such as mismatched datatypes, that previously could not be localized.
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-    <sect4>
-     <title><command>TRUNCATE</></title>
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Support statement-level <literal>ON TRUNCATE</> triggers (Simon)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add <literal>RESTART</>/<literal>CONTINUE IDENTITY</> options
-        for <command>TRUNCATE TABLE</>
-        (Zoltan Boszormenyi)
-       </para>
-
-       <para>
-        The start value of a sequence can be changed by <command>ALTER
-        SEQUENCE START WITH</>.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Allow <command>TRUNCATE tab1, tab1</> to succeed (Bruce)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add a separate <command>TRUNCATE</> permission (Robert Haas)
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-    <sect4>
-     <title><command>EXPLAIN</></title>
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Make <command>EXPLAIN VERBOSE</> show the output columns of each
-        plan node (Tom)
-       </para>
-
-       <para>
-        Previously <command>EXPLAIN VERBOSE</> output an internal
-        representation of the query plan.  (That behavior is now
-        available via <varname>debug_print_plan</>.)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Make <command>EXPLAIN</> identify subplans and initplans with
-        individual labels (Tom)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Make <command>EXPLAIN</> honor <varname>debug_print_plan</> (Tom)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Allow <command>EXPLAIN</> on <command>CREATE TABLE AS</> (Peter)
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-    <sect4>
-     <title><literal>LIMIT</>/<literal>OFFSET</></title>
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Allow sub-selects in <literal>LIMIT</> and <literal>OFFSET</> (Tom)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add <acronym>SQL</>-standard syntax for
-        <literal>LIMIT</>/<literal>OFFSET</> capabilities (Peter)
-       </para>
-
-       <para>
-        To wit,
-        <literal>OFFSET num {ROW|ROWS} FETCH {FIRST|NEXT} [num] {ROW|ROWS}
-        ONLY</>.
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-   </sect3>
-
-   <sect3>
-    <title>Object Manipulation</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Add support for column-level privileges (Stephen Frost, KaiGai
-       Kohei)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Refactor multi-object <command>DROP</> operations to reduce the
-       need for <literal>CASCADE</> (Alex Hunsaker)
-      </para>
-
-      <para>
-       For example, if table <literal>B</> has a dependency on table
-       <literal>A</>, the command <literal>DROP TABLE A, B</> no longer
-       requires the <literal>CASCADE</> option.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Fix various problems with concurrent <command>DROP</> commands
-       by ensuring that locks are taken before we begin to drop dependencies
-       of an object (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Improve reporting of dependencies during <command>DROP</>
-       commands (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <literal>WITH [NO] DATA</> clause to <command>CREATE TABLE
-       AS</>, per the <acronym>SQL</> standard (Peter, Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add support for user-defined I/O conversion casts (Heikki)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow <command>CREATE AGGREGATE</> to use an <type>internal</>
-       transition datatype (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <literal>LIKE</> clause to <command>CREATE TYPE</> (Tom)
-      </para>
-
-      <para>
-       This simplifies creation of data types that use the same internal
-       representation as an existing type.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow specification of the type category and <quote>preferred</>
-       status for user-defined base types (Tom)
-      </para>
-
-      <para>
-       This allows more control over the coercion behavior of user-defined
-       types.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow <command>CREATE OR REPLACE VIEW</> to add columns to the
-       end of a view (Robert Haas)
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-    <sect4>
-     <title><command>ALTER</></title>
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Add <command>ALTER TYPE RENAME</> (Petr Jelinek)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add <command>ALTER SEQUENCE ... RESTART</> (with no parameter) to
-        reset a sequence to its initial value (Zoltan Boszormenyi)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Modify the <command>ALTER TABLE</> syntax to allow all reasonable
-        combinations for tables, indexes, sequences, and views (Tom)
-       </para>
-
-       <para>
-        This change allows the following new syntaxes:
-
-        <itemizedlist>
-         <listitem>
-          <para>
-           <command>ALTER SEQUENCE OWNER TO</>
-          </para>
-         </listitem>
-         <listitem>
-          <para>
-           <command>ALTER VIEW ALTER COLUMN SET/DROP DEFAULT</>
-          </para>
-         </listitem>
-         <listitem>
-          <para>
-           <command>ALTER VIEW OWNER TO</>
-          </para>
-         </listitem>
-         <listitem>
-          <para>
-           <command>ALTER VIEW SET SCHEMA</>
-          </para>
-         </listitem>
-        </itemizedlist>
-
-        There is no actual new functionality here, but formerly
-        you had to say <command>ALTER TABLE</> to do these things,
-        which was confusing.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add support for the syntax <command>ALTER TABLE ... ALTER COLUMN
-        ... SET DATA TYPE</> (Peter)
-       </para>
-
-       <para>
-        This is <acronym>SQL</>-standard syntax for functionality that
-        was already supported.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Make <command>ALTER TABLE SET WITHOUT OIDS</> rewrite the table
-        to physically remove <type>OID</> values (Tom)
-       </para>
-
-       <para>
-        Also, add <command>ALTER TABLE SET WITH OIDS</> to rewrite the
-        table to add <type>OID</>s.
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-    <sect4>
-     <title>Database Manipulation</title>
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Improve reporting of
-        <command>CREATE</>/<command>DROP</>/<command>RENAME DATABASE</>
-        failure when uncommitted prepared transactions are the cause
-        (Tom)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Make <varname>LC_COLLATE</> and <varname>LC_CTYPE</> into
-        per-database settings (Radek Strnad, Heikki)
-       </para>
-
-       <para>
-        This makes collation similar to encoding, which was always
-        configurable per database.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Improve checks that the database encoding, collation
-        (<varname>LC_COLLATE</>), and character classes
-        (<varname>LC_CTYPE</>) match (Heikki, Tom)
-       </para>
-
-       <para>
-        Note in particular that a new database's encoding and locale
-        settings can be changed only when copying from <literal>template0</>.
-        This prevents possibly copying data that doesn't match the settings.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add <command>ALTER DATABASE SET TABLESPACE</> to move a database
-        to a new tablespace (Guillaume Lelarge, Bernd Helmle)
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-   </sect3>
-
-   <sect3>
-    <title>Utility Operations</title>
-
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Add a <literal>VERBOSE</> option to the <command>CLUSTER</> command and
-       <application>clusterdb</> (Jim Cox)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Decrease memory requirements for recording pending trigger
-       events (Tom)
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-    <sect4>
-     <title>Indexes</title>
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Dramatically improve the speed of building and accessing hash
-        indexes (Tom Raney, Shreya Bhargava)
-       </para>
-
-       <para>
-        This allows hash indexes to be sometimes faster than btree
-        indexes.  However, hash indexes are still not crash-safe.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Make hash indexes store only the hash code, not the full value of
-        the indexed column (Xiao Meng)
-       </para>
-
-       <para>
-        This greatly reduces the size of hash indexes for long indexed
-        values, improving performance.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Implement fast update option for GIN indexes (Teodor, Oleg)
-       </para>
-
-       <para>
-        This option greatly improves update speed at a small penalty in search
-        speed.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        <literal>xxx_pattern_ops</> indexes can now be used for simple
-        equality comparisons, not only for <literal>LIKE</> (Tom)
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-    <sect4>
-     <title>Full Text Indexes</title>
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Remove the requirement to use <literal>@@@</> when doing
-        <acronym>GIN</> weighted lookups on full text indexes (Tom, Teodor)
-       </para>
-
-       <para>
-        The normal <literal>@@</> text search operator can be used
-        instead.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add an optimizer selectivity function for <literal>@@</> text
-        search operations (Jan Urbanski)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Allow prefix matching in full text searches (Teodor Sigaev,
-        Oleg Bartunov)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Support multi-column <acronym>GIN</> indexes (Teodor Sigaev)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Improve support for Nepali language and Devanagari alphabet (Teodor)
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-    <sect4>
-     <title><command>VACUUM</></title>
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Track free space in separate per-relation <quote>fork</> files (Heikki)
-       </para>
-
-       <para>
-        Free space discovered by <command>VACUUM</> is now recorded in
-        <filename>*_fsm</> files, rather than in a fixed-sized shared memory
-        area.  The <varname>max_fsm_pages</> and <varname>max_fsm_relations</>
-        settings have been removed, greatly simplifying administration of
-        free space management.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add a visibility map to track pages that do not require
-        vacuuming (Heikki)
-       </para>
-
-       <para>
-        This allows <command>VACUUM</> to avoid scanning all of
-        a table when only a portion of the table needs vacuuming.
-        The visibility map is stored in per-relation <quote>fork</> files.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add <varname>vacuum_freeze_table_age</> parameter to control
-        when <command>VACUUM</> should ignore the visibility map and
-        do a full table scan to freeze tuples (Heikki)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Track transaction snapshots more carefully (Alvaro)
-       </para>
-
-       <para>
-        This improves <command>VACUUM</>'s ability to reclaim space
-        in the presence of long-running transactions.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add ability to specify per-relation autovacuum and <acronym>TOAST</>
-        parameters in <command>CREATE TABLE</> (Alvaro, Euler Taveira de
-        Oliveira)
-       </para>
-
-       <para>
-        Autovacuum options used to be stored in a system table.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add <literal>--freeze</> option to <application>vacuumdb</>
-        (Bruce)
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-   </sect3>
-
-   <sect3>
-    <title>Data Types</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Add a <literal>CaseSensitive</> option for text search synonym
-       dictionaries (Simon)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Improve the precision of <type>NUMERIC</> division (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add basic arithmetic operators for <type>int2</> with <type>int8</>
-       (Tom)
-      </para>
-
-      <para>
-       This eliminates the need for explicit casting in some situations.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow <type>UUID</> input to accept an optional hyphen after
-       every fourth digit (Robert Haas)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow <literal>on</>/<literal>off</> as input for the boolean data type
-       (Itagaki Takahiro)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow spaces around <literal>NaN</> in the input string for
-       type <type>numeric</> (Sam Mason)
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-    <sect4>
-     <title>Temporal Data Types</title>
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Reject year <literal>0 BC</> and years <literal>000</> and
-        <literal>0000</> (Tom)
-       </para>
-
-       <para>
-        Previously these were interpreted as <literal>1 BC</>.
-        (Note: years <literal>0</> and <literal>00</> are still assumed to be
-        the year 2000.)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Include <literal>SGT</> (Singapore time) in the default list of
-        known time zone abbreviations (Tom)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Support <literal>infinity</> and <literal>-infinity</> as
-        values of type <type>date</> (Tom)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Make parsing of <type>interval</> literals more standard-compliant
-        (Tom, Ron Mayer)
-       </para>
-
-       <para>
-        For example, <literal>INTERVAL '1' YEAR</> now does what it's
-        supposed to.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Allow <type>interval</> fractional-seconds precision to be specified
-        after the <literal>second</> keyword, for <acronym>SQL</> standard
-        compliance (Tom)
-       </para>
-
-       <para>
-        Formerly the precision had to be specified after the keyword
-        <type>interval</>.  (For backwards compatibility, this syntax is still
-        supported, though deprecated.)  Data type definitions will now be
-        output using the standard format.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Support the <acronym>IS0 8601</> <type>interval</> syntax (Ron
-        Mayer, Kevin Grittner)
-       </para>
-
-       <para>
-        For example, <literal>INTERVAL 'P1Y2M3DT4H5M6.7S'</> is now
-        supported.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add <varname>IntervalStyle</> parameter
-        which controls how <type>interval</> values are output (Ron Mayer)
-       </para>
-
-       <para>
-        Valid values are:  <literal>postgres</>, <literal>postgres_verbose</>,
-        <literal>sql_standard</>, <literal>iso_8601</>.  This setting also
-        controls the handling of negative <type>interval</> input when only
-        some fields have positive/negative designations.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Improve consistency of handling of fractional seconds in
-        <type>timestamp</> and <type>interval</> output (Ron Mayer)
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-    <sect4>
-     <title>Arrays</title>
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Improve the handling of casts applied to <literal>ARRAY[]</>
-        constructs, such as <literal>ARRAY[...]::integer[]</>
-        (Brendan Jurd)
-       </para>
-
-       <para>
-        Formerly <productname>PostgreSQL</> attempted to determine a data type
-        for the <literal>ARRAY[]</> construct without reference to the ensuing
-        cast.  This could fail unnecessarily in many cases, in particular when
-        the <literal>ARRAY[]</> construct was empty or contained only
-        ambiguous entries such as <literal>NULL</>.  Now the cast is consulted
-        to determine the type that the array elements must be.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Make <acronym>SQL</>-syntax <type>ARRAY</> dimensions optional
-        to match the <acronym>SQL</> standard (Peter)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add <function>array_ndims()</> to return the number
-        of dimensions of an array (Robert Haas)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add <function>array_length()</> to return the length
-        of an array for a specified dimension (Jim Nasby, Robert
-        Haas, Peter Eisentraut)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add aggregate function <function>array_agg()</>, which
-        returns all aggregated values as a single array (Robert Haas,
-        Jeff Davis, Peter)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add <function>unnest()</>, which converts an array to
-        individual row values (Tom)
-       </para>
-
-       <para>
-        This is the opposite of <function>array_agg()</>.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add <function>array_fill()</> to create arrays initialized with
-        a value (Pavel Stehule)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add <function>generate_subscripts()</> to simplify generating
-        the range of an array's subscripts (Pavel Stehule)
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-    <sect4>
-     <title>Wide-Value Storage (<acronym>TOAST</>)</title>
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Consider <acronym>TOAST</> compression on values as short as
-        32 bytes (previously 256 bytes) (Greg Stark)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Require 25% minimum space savings before using <acronym>TOAST</>
-        compression (previously 20% for small values and any-savings-at-all
-        for large values) (Greg)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Improve <acronym>TOAST</> heuristics for rows that have a mix of large
-        and small toastable fields, so that we prefer to push large values out
-        of line and don't compress small values unnecessarily (Greg, Tom)
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-   </sect3>
-
-   <sect3>
-    <title>Functions</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Document that <function>setseed()</> allows values from
-       <literal>-1</> to <literal>1</> (not just <literal>0</> to
-       <literal>1</>), and enforce the valid range (Kris Jurka)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add server-side function <function>lo_import(filename, oid)</>
-       (Tatsuo)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <function>quote_nullable()</>, which behaves like
-       <function>quote_literal()</> but returns the string <literal>NULL</> for
-       a null argument (Brendan Jurd)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Improve full text search <function>headline()</> function to
-       allow extracting several fragments of text (Sushant Sinha)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <function>suppress_redundant_updates_trigger()</> trigger
-       function to avoid overhead for non-data-changing updates (Andrew)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <function>div(numeric, numeric)</> to perform <type>numeric</>
-       division without rounding (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <type>timestamp</> and <type>timestamptz</> versions of
-       <function>generate_series()</> (Hitoshi Harada)
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-    <sect4>
-     <title>Object Information Functions</title>
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Implement <function>current_query()</> for use by functions
-        that need to know the currently running query (Tomas Doran)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add <function>pg_get_keywords()</> to return a list of the
-        parser keywords (Dave Page)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add <function>pg_get_functiondef()</> to see a function's
-        definition (Abhijit Menon-Sen)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Allow the second argument of <function>pg_get_expr()</> to be zero
-        when deparsing an expression that does not contain variables (Tom)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Modify <function>pg_relation_size()</> to use <literal>regclass</>
-        (Heikki)
-       </para>
-
-       <para>
-        <function>pg_relation_size(data_type_name)</> no longer works.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add <literal>boot_val</> and <literal>reset_val</> columns to
-        <literal>pg_settings</> output (Greg Smith)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add source file name and line number columns to
-        <literal>pg_settings</> output for variables set in a configuration
-        file (Magnus, Alvaro)
-       </para>
-
-       <para>
-        For security reasons, these columns are only visible to superusers.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add support for <varname>CURRENT_CATALOG</>,
-        <varname>CURRENT_SCHEMA</>, <varname>SET CATALOG</>, <varname>SET
-        SCHEMA</> (Peter)
-       </para>
-
-       <para>
-        These provide <acronym>SQL</>-standard syntax for existing features.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add <function>pg_typeof()</> which returns the data type
-        of any value (Brendan Jurd)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Make <function>version()</> return information about whether
-        the server is a 32- or 64-bit binary (Bruce)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Fix the behavior of information schema columns
-        <structfield>is_insertable_into</> and <structfield>is_updatable</> to
-        be consistent (Peter)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Improve the behavior of information schema
-        <structfield>datetime_precision</> columns (Peter)
-       </para>
-
-       <para>
-        These columns now show zero for <type>date</> columns, and 6
-        (the default precision) for <type>time</>, <type>timestamp</>, and
-        <type>interval</> without a declared precision, rather than showing
-        null as formerly.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Convert remaining builtin set-returning functions to use
-        <literal>OUT</> parameters (Jaime Casanova)
-       </para>
-
-       <para>
-        This makes it possible to call these functions without specifying
-        a column list:  <function>pg_show_all_settings()</>,
-        <function>pg_lock_status()</>, <function>pg_prepared_xact()</>,
-        <function>pg_prepared_statement()</>, <function>pg_cursor()</>
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Make <function>pg_*_is_visible()</> and
-        <function>has_*_privilege()</> functions return <literal>NULL</>
-        for invalid OIDs, rather than reporting an error (Tom)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Extend <function>has_*_privilege()</> functions to allow inquiring
-        about the OR of multiple privileges in one call (Stephen
-        Frost, Tom)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add <function>has_column_privilege()</> and
-        <function>has_any_column_privilege()</> functions (Stephen
-        Frost, Tom)
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-    <sect4>
-     <title>Function Creation</title>
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Support variadic functions (functions with a variable number
-        of arguments) (Pavel Stehule)
-       </para>
-
-       <para>
-        Only trailing arguments can be optional, and they all must be
-        of the same data type.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Support default values for function arguments (Pavel Stehule)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add <command>CREATE FUNCTION ... RETURNS TABLE</> clause (Pavel
-        Stehule)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Allow <acronym>SQL</>-language functions to return the output
-        of an <command>INSERT</>/<command>UPDATE</>/<command>DELETE</>
-        <literal>RETURNING</> clause (Tom)
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-    <sect4>
-     <title>PL/pgSQL Server-Side Language</title>
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Support <literal>EXECUTE USING</> for easier insertion of data
-        values into a dynamic query string (Pavel Stehule)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Allow looping over the results of a cursor using a <literal>FOR</>
-        loop (Pavel Stehule)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Support <literal>RETURN QUERY EXECUTE</> (Pavel
-        Stehule)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Improve the <literal>RAISE</> command (Pavel Stehule)
-
-        <itemizedlist>
-         <listitem>
-          <para>
-           Support <literal>DETAIL</> and <literal>HINT</> fields
-          </para>
-         </listitem>
-         <listitem>
-          <para>
-           Support specification of the <literal>SQLSTATE</> error code
-          </para>
-         </listitem>
-         <listitem>
-          <para>
-           Support an exception name parameter
-          </para>
-         </listitem>
-         <listitem>
-          <para>
-           Allow <literal>RAISE</> without parameters in an exception
-           block to re-throw the current error
-          </para>
-         </listitem>
-        </itemizedlist>
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Allow specification of <varname>SQLSTATE</> codes
-        in <literal>EXCEPTION</> lists (Pavel Stehule)
-       </para>
-
-       <para>
-        This is useful for handling custom <varname>SQLSTATE</> codes.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Support the <literal>CASE</> statement (Pavel Stehule)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Make <command>RETURN QUERY</> set the special <literal>FOUND</> and
-        <command>GET DIAGNOSTICS</> <literal>ROW_COUNT</> variables
-        (Pavel Stehule)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Make <command>FETCH</> and <command>MOVE</> set the
-        <command>GET DIAGNOSTICS</> <literal>ROW_COUNT</> variable
-        (Andrew Gierth)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Make <command>EXIT</> without a label always exit the innermost
-        loop (Tom)
-       </para>
-
-       <para>
-        Formerly, if there were a <literal>BEGIN</> block more closely nested
-        than any loop, it would exit that block instead.  The new behavior
-        matches Oracle(TM) and is also what was previously stated by our own
-        documentation.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Make processing of string literals and nested block comments
-        match the main SQL parser's processing (Tom)
-       </para>
-
-       <para>
-        In particular, the format string in <command>RAISE</> now works
-        the same as any other string literal, including being subject
-        to <varname>standard_conforming_strings</>.  This change also
-        fixes other cases in which valid commands would fail when
-        <varname>standard_conforming_strings</> is on.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Avoid memory leakage when the same function is called at varying
-        exception-block nesting depths (Tom)
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-   </sect3>
-
-   <sect3>
-    <title>Client Applications</title>
-
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Fix <literal>pg_ctl restart</> to preserve command-line arguments
-       (Bruce)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <literal>-w</>/<literal>--no-password</> option that
-       prevents password prompting in all utilities that have a
-       <literal>-W</>/<literal>--password</> option (Peter)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Remove <option>-q</> (quiet) option of <application>createdb</>,
-       <application>createuser</>, <application>dropdb</>,
-       <application>dropuser</> (Peter)
-      </para>
-
-      <para>
-       These options have had no effect since <productname>PostgreSQL</>
-       8.3.
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-    <sect4>
-     <title><application>psql</></title>
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Remove verbose startup banner; now just suggest <literal>help</>
-        (Joshua Drake)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Make <literal>help</> show common backslash commands (Greg
-        Sabino Mullane)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add <literal>\pset format wrapped</> mode to wrap output to the
-        screen width, or file/pipe output too if <literal>\pset columns</>
-        is set (Bryce Nesbitt)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Allow all supported spellings of boolean values in <command>\pset</>,
-        rather than just <literal>on</> and <literal>off</> (Bruce)
-       </para>
-
-       <para>
-        Formerly, any string other than <quote>off</> was silently taken
-        to mean <literal>true</>.  <application>psql</> will now complain
-        about unrecognized spellings (but still take them as <literal>true</>).
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Use the pager for wide output (Bruce)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Require a space between a one-letter backslash command and its first
-        argument (Bernd Helmle)
-       </para>
-
-       <para>
-        This removes a historical source of ambiguity.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Improve tab completion support for schema-qualified and
-        quoted identifiers (Greg Sabino Mullane)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add optional <literal>on</>/<literal>off</> argument for
-        <command>\timing</> (David Fetter)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Display access control rights on multiple lines (Brendan
-        Jurd, Andreas Scherbaum)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Make <command>\l</> show database access privileges (Andrew Gilligan)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Make <command>\l+</> show database sizes, if permissions
-        allow (Andrew Gilligan)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add the <command>\ef</> command to edit function definitions
-        (Abhijit Menon-Sen)
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-    <sect4>
-     <title><application>psql</> \d* commands</title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Make <command>\d*</> commands that do not have a pattern argument
-        show system objects only if the <literal>S</> modifier is specified
-        (Greg Sabino Mullane, Bruce)
-       </para>
-
-       <para>
-        The former behavior was inconsistent across different variants
-        of <command>\d</>, and in most cases it provided no easy way to see
-        just user objects.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Improve <command>\d*</> commands to work with older
-        <productname>PostgreSQL</> server versions (back to 7.4),
-        not only the current server version
-        (Guillaume Lelarge)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Make <command>\d</> show foreign-key constraints that reference
-        the selected table (Kenneth D'Souza)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Make <command>\d</> on a sequence show its column values
-        (Euler Taveira de Oliveira)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add column storage type and other relation options to the
-        <command>\d+</> display (Gregory Stark, Euler Taveira de
-        Oliveira)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Show relation size in <command>\dt+</> output (Dickson S.
-        Guedes)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Show the possible values of <literal>enum</> types in <command>\dT+</>
-        (David Fetter)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Allow <command>\dC</> to accept a wildcard pattern, which matches
-        either datatype involved in the cast (Tom)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add a function type column to <command>\df</>'s output, and add
-        options to list only selected types of functions (David Fetter)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Make <command>\df</> not hide functions that take or return
-        type <type>cstring</> (Tom)
-       </para>
-
-       <para>
-        Previously, such functions were hidden because most of them are
-        datatype I/O functions, which were deemed uninteresting.  The new
-        policy about hiding system functions by default makes this wart
-        unnecessary.
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-    <sect4>
-     <title><application>pg_dump</></title>
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Add a <literal>--no-tablespaces</> option to
-        <application>pg_dump</>/<application>pg_dumpall</>/<application>pg_restore</>
-        so that dumps can be restored to clusters that have non-matching
-        tablespace layouts (Gavin Roy)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Remove <option>-d</> and <option>-D</> options from
-        <application>pg_dump</> and <application>pg_dumpall</> (Tom)
-       </para>
-
-       <para>
-        These options were too frequently confused with the option to
-        select a database name in other <productname>PostgreSQL</>
-        client applications.  The functionality is still available,
-        but you must now spell out the long option name
-        <option>--inserts</> or <option>--column-inserts</>.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Remove <option>-i</>/<option>--ignore-version</> option from
-        <application>pg_dump</> and <application>pg_dumpall</> (Tom)
-       </para>
-
-       <para>
-        Use of this option does not throw an error, but it has no
-        effect.  This option was removed because the version checks
-        are necessary for safety.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Disable <varname>statement_timeout</> during dump and restore
-        (Joshua Drake)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add <application>pg_dump</>/<application>pg_dumpall</> option
-        <option>--lock-wait-timeout</> (David Gould)
-       </para>
-
-       <para>
-        This allows dumps to fail if unable to acquire a shared lock
-        within the specified amount of time.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Reorder <application>pg_dump</> <literal>--data-only</> output
-        to dump tables referenced by foreign keys before
-        the referencing tables (Tom)
-       </para>
-
-       <para>
-        This allows data loads when foreign keys are already present.
-        If circular references make a safe ordering impossible, a
-        <literal>NOTICE</> is issued.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Allow <application>pg_dump</>, <application>pg_dumpall</>, and
-        <application>pg_restore</> to use a specified role (Benedek
-        L&aacute;szl&oacute;)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Allow <application>pg_restore</> to use multiple concurrent
-        connections to do the restore (Andrew)
-       </para>
-
-       <para>
-        The number of concurrent connections is controlled by the option
-        <literal>--jobs</>.  This is supported only for custom-format archives.
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-   </sect3>
-
-   <sect3>
-    <title>Programming Tools</title>
-
-    <sect4>
-     <title><application>libpq</></title>
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Allow the <type>OID</> to be specified when importing a large
-        object, via new function <function>lo_import_with_oid()</> (Tatsuo)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add <quote>events</> support (Andrew Chernow, Merlin Moncure)
-       </para>
-
-       <para>
-        This adds the ability to register callbacks to manage private
-        data associated with <structname>PGconn</> and <structname>PGresult</>
-        objects.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Improve error handling to allow the return of multiple
-        error messages as multi-line error reports (Magnus)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Make <function>PQexecParams()</> and related functions return
-        <varname>PGRES_EMPTY_QUERY</> for an empty query (Tom)
-       </para>
-
-       <para>
-        They previously returned <varname>PGRES_COMMAND_OK</>.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Document how to avoid the overhead of <function>WSACleanup()</>
-        on Windows (Andrew Chernow)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Do not rely on Kerberos tickets to determine the default database
-        username (Magnus)
-       </para>
-
-       <para>
-        Previously, a Kerberos-capable build of libpq would use the
-        principal name from any available Kerberos ticket as default
-        database username, even if the connection wasn't using Kerberos
-        authentication.  This was deemed inconsistent and confusing.
-        The default username is now determined the same way with or
-        without Kerberos.  Note however that the database username must still
-        match the ticket when Kerberos authentication is used.
-       </para>
-      </listitem>
-     </itemizedlist>
-
-    </sect4>
-
-    <sect4>
-     <title><application>libpq</> <acronym>SSL</> (Secure Sockets Layer)
-      support</title>
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Fix certificate validation for <acronym>SSL</> connections
-        (Magnus)
-       </para>
-
-       <para>
-        <application>libpq</> now supports verifying both the certificate
-        and the name of the server when making <acronym>SSL</>
-        connections. If a root certificate is not available to use for
-        verification, <acronym>SSL</> connections will fail. The
-        <literal>sslmode</> parameter is used to enable certificate
-        verification and set the level of checking.
-        The default is still not to do any verification, allowing connections
-        to SSL-enabled servers without requiring a root certificate on the
-        client.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Support wildcard server certificates (Magnus)
-       </para>
-
-       <para>
-        If a certificate <acronym>CN</> starts with <literal>*</>, it will
-        be treated as a wildcard when matching the hostname, allowing the
-        use of the same certificate for multiple servers.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Allow the file locations for client certificates to be specified
-        (Mark Woodward, Alvaro, Magnus)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add a <function>PQinitOpenSSL</> function to allow greater control
-        over OpenSSL/libcrypto initialization (Andrew Chernow)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Make <application>libpq</> unregister its <application>OpenSSL</>
-        callbacks when no database connections remain open
-        (Bruce, Magnus, Russell Smith)
-       </para>
-
-       <para>
-        This is required for applications that unload the libpq library,
-        otherwise invalid <application>OpenSSL</> callbacks will remain.
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-    <sect4>
-     <title><application>ecpg</></title>
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Add localization support for messages (Euler Taveira de
-        Oliveira)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        ecpg parser is now automatically generated from the server
-        parser (Michael)
-       </para>
-
-       <para>
-        Previously the ecpg parser was hand-maintained.
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-    <sect4>
-     <title>Server Programming Interface (<acronym>SPI</>)</title>
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Add support for single-use plans with out-of-line
-        parameters (Tom)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add new <varname>SPI_OK_REWRITTEN</> return code for
-        <function>SPI_execute()</> (Heikki)
-       </para>
-
-       <para>
-        This is used when a command is rewritten to another type of
-        command.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Remove unnecessary inclusions from <filename>executor/spi.h</> (Tom)
-       </para>
-
-       <para>
-        SPI-using modules might need to add some <literal>#include</>
-        lines if they were depending on <filename>spi.h</> to include
-        things for them.
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-   </sect3>
-
-   <sect3>
-    <title>Build Options</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Update build system to use <productname>Autoconf</> 2.61 (Peter)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Require <productname>GNU bison</> for source code builds (Peter)
-      </para>
-
-      <para>
-       This has effectively been required for several years, but now there
-       is no infrastructure claiming to support other parser tools.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <application>pg_config</> <literal>--htmldir</> option
-       (Peter)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Pass <type>float4</> by value inside the server (Zoltan
-       Boszormenyi)
-      </para>
-
-      <para>
-       Add <application>configure</> option
-       <literal>--disable-float4-byval</> to use the old behavior.
-       External C functions that use old-style (version 0) call convention
-       and pass or return <type>float4</> values will be broken by this
-       change, so you may need the <application>configure</> option if you
-       have such functions and don't want to update them.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Pass <type>float8</>, <type>int8</>, and related datatypes
-       by value inside the server on 64-bit platforms (Zoltan Boszormenyi)
-      </para>
-
-      <para>
-       Add <application>configure</> option
-       <literal>--disable-float8-byval</> to use the old behavior.
-       As above, this change might break old-style external C functions.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add configure options <literal>--with-segsize</>,
-       <literal>--with-blocksize</>, <literal>--with-wal-blocksize</>,
-       <literal>--with-wal-segsize</> (Zdenek Kotala, Tom)
-      </para>
-
-      <para>
-       This simplifies build-time control over several constants that
-       previously could only be changed by editing
-       <filename>pg_config_manual.h</>.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow threaded builds on <productname>Solaris</> 2.5 (Bruce)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Use the system's <function>getopt_long()</> on <productname>Solaris</>
-       (Zdenek Kotala, Tom)
-      </para>
-
-      <para>
-       This makes option processing more consistent with what Solaris users
-       expect.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add support for the <productname>Sun Studio</> compiler on
-       <productname>Linux</> (Julius Stroffek)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Append the major version number to the backend <application>gettext</>
-       domain, and the <literal>soname</> major version number to
-       libraries' <application>gettext</> domain (Peter)
-      </para>
-
-      <para>
-       This simplifies parallel installations of multiple versions.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add support for code coverage testing with <application>gcov</>
-       (Michelle Caisse)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow out-of-tree builds on <productname>Mingw</> and
-       <productname>Cygwin</> (Richard Evans)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Fix the use of <productname>Mingw</> as a cross-compiling source
-       platform (Peter)
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title>Source Code</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Support 64-bit time zone data files (Heikki)
-      </para>
-
-      <para>
-       This adds support for daylight saving time (<acronym>DST</>)
-       calculations beyond the year 2038.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Deprecate use of platform's <type>time_t</> data type (Tom)
-      </para>
-
-      <para>
-       Some platforms have migrated to 64-bit <type>time_t</>, some have
-       not, and Windows can't make up its mind what it's doing.  Define
-       <type>pg_time_t</> to have the same meaning as <type>time_t</>,
-       but always be 64 bits (unless the platform has no 64-bit integer type),
-       and use that type in all module APIs and on-disk data formats.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Fix bug in handling of the time zone database when cross-compiling
-       (Richard Evans)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Link backend object files in one step, rather than in stages
-       (Peter)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Improve <application>gettext</> support to allow better translation
-       of plurals (Peter)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add message translation support to the PL languages (Alvaro, Peter)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add more <application>DTrace</> probes (Robert Lor)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Enable <application>DTrace</> support on <application>Mac OS X
-       Leopard</> and other non-Solaris platforms (Robert Lor)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Simplify and standardize conversions between C strings and
-       <type>text</> datums, by providing common functions for the purpose
-       (Brendan Jurd, Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Clean up the <filename>include/catalog/</> header files so that
-       frontend programs can include them without including
-       <filename>postgres.h</>
-       (Zdenek Kotala)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Make <type>name</> char-aligned, and suppress zero-padding of
-       <type>name</> entries in indexes (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Recover better if dynamically-loaded code executes <function>exit()</>
-       (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add a hook to let plug-ins monitor the executor (Itagaki
-       Takahiro)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add a hook to allow the planner's statistics lookup behavior to
-       be overridden (Simon Riggs)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <function>shmem_startup_hook()</> for custom shared memory
-       requirements (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Replace the index access method <function>amgetmulti</> entry point
-       with <function>amgetbitmap</>, and extend the API for
-       <function>amgettuple</> to support run-time determination of
-       operator lossiness (Heikki, Tom, Teodor)
-      </para>
-
-      <para>
-       The API for GIN and GiST opclass <function>consistent</> functions
-       has been extended as well.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add support for partial-match searches in <acronym>GIN</> indexes
-       (Teodor Sigaev, Oleg Bartunov)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Replace <structname>pg_class</> column <structfield>reltriggers</>
-       with boolean <structfield>relhastriggers</> (Simon)
-      </para>
-
-      <para>
-       Also remove unused <structname>pg_class</> columns
-       <structfield>relukeys</>, <structfield>relfkeys</>, and
-       <structfield>relrefs</>.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add a <structfield>relistemp</> column to <structname>pg_class</>
-       to ease identification of temporary tables (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Move platform <acronym>FAQ</>s into the main documentation
-       (Peter)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Prevent parser input files from being built with any conflicts
-       (Peter)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add support for the <literal>KOI8U</> (Ukrainian) encoding
-       (Peter)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add Japanese message translations (Japan PostgreSQL Users Group)
-      </para>
-
-      <para>
-       This used to be maintained as a separate project.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Fix problem when setting <varname>LC_MESSAGES</> on
-       <application>MSVC</>-built systems (Hiroshi Inoue, Hiroshi
-       Saito, Magnus)
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title>Contrib</title>
-
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Add <filename>contrib/auto_explain</> to automatically run
-       <command>EXPLAIN</> on queries exceeding a specified duration
-       (Itagaki Takahiro, Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <filename>contrib/btree_gin</> to allow GIN indexes to
-       handle more datatypes (Oleg, Teodor)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <filename>contrib/citext</> to provide a case-insensitive,
-       multibyte-aware text data type (David Wheeler)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <filename>contrib/pg_stat_statements</> for server-wide
-       tracking of statement execution statistics (Itagaki Takahiro)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add duration and query mode options to <filename>contrib/pgbench</>
-       (Itagaki Takahiro)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Make <filename>contrib/pgbench</> use table names
-       <structname>pgbench_accounts</>, <structname>pgbench_branches</>,
-       <structname>pgbench_history</>, and <structname>pgbench_tellers</>,
-       rather than just <structname>accounts</>, <structname>branches</>,
-       <structname>history</>, and <structname>tellers</> (Tom)
-      </para>
-
-      <para>
-       This is to reduce the risk of accidentally destroying real data
-       by running <application>pgbench</>.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Fix <filename>contrib/pgstattuple</> to handle tables and
-       indexes with over 2 billion pages (Tatsuhito Kasahara)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       In <filename>contrib/fuzzystrmatch</>, add a version of the
-       Levenshtein string-distance function that allows the user to
-       specify the costs of insertion, deletion, and substitution
-       (Volkan Yazici)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Make <filename>contrib/ltree</> support multibyte encodings
-       (laser)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Enable <filename>contrib/dblink</> to use connection information
-       stored in the SQL/MED catalogs (Joe Conway)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Improve <filename>contrib/dblink</>'s reporting of errors from
-       the remote server (Joe Conway)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Make <filename>contrib/dblink</> set <varname>client_encoding</>
-       to match the local database's encoding (Joe Conway)
-      </para>
-
-      <para>
-       This prevents encoding problems when communicating with a remote
-       database that uses a different encoding.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Make sure <filename>contrib/dblink</> uses a password supplied
-       by the user, and not accidentally taken from the server's
-       <filename>.pgpass</> file (Joe Conway)
-      </para>
-
-      <para>
-       This is a minor security enhancement.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <function>fsm_page_contents()</>
-       to <filename>contrib/pageinspect</> (Heikki)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Modify <function>get_raw_page()</> to support free space map
-       (<filename>*_fsm</>) files.  Also update
-       <filename>contrib/pg_freespacemap</>.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add support for multibyte encodings to <filename>contrib/pg_trgm</>
-       (Teodor)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Rewrite <filename>contrib/intagg</> to use new
-       functions <function>array_agg()</> and <function>unnest()</>
-       (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Make <filename>contrib/pg_standby</> recover all available WAL before
-       failover (Fujii Masao, Simon, Heikki)
-      </para>
-
-      <para>
-       To make this work safely, you now need to set the new
-       <literal>recovery_end_command</> option in <filename>recovery.conf</>
-       to clean up the trigger file after failover. <application>pg_standby</>
-       will no longer remove the trigger file itself.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       <filename>contrib/pg_standby</>'s <option>-l</> option is now a no-op,
-       because it is unsafe to use a symlink (Simon)
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-  </sect2>
- </sect1>
diff --git a/doc/src/sgml/release-9.0.sgml b/doc/src/sgml/release-9.0.sgml
deleted file mode 100644
index c50203a5c84b9dc3ea62d6778c4959ef5f225923..0000000000000000000000000000000000000000
--- a/doc/src/sgml/release-9.0.sgml
+++ /dev/null
@@ -1,11091 +0,0 @@
-<!-- doc/src/sgml/release-9.0.sgml -->
-<!-- See header comment in release.sgml about typical markup -->
-
- <sect1 id="release-9-0-23">
-  <title>Release 9.0.23</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2015-10-08</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 9.0.22.
-   For information about new features in the 9.0 major release, see
-   <xref linkend="release-9-0">.
-  </para>
-
-  <para>
-   This is expected to be the last <productname>PostgreSQL</> release
-   in the 9.0.X series.  Users are encouraged to update to a newer
-   release branch soon.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 9.0.23</title>
-
-   <para>
-    A dump/restore is not required for those running 9.0.X.
-   </para>
-
-   <para>
-    However, if you are upgrading from a version earlier than 9.0.18,
-    see <xref linkend="release-9-0-18">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <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>
-      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>
-      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>
-      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>
-      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>
-      Use fuzzy path cost tiebreaking rule in all supported branches (Tom Lane)
-     </para>
-
-     <para>
-      This change is meant to avoid platform-specific behavior when
-      alternative plan choices have effectively-identical estimated costs.
-     </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>
-      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 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 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>
-      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>
-      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 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 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-0-22">
-  <title>Release 9.0.22</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2015-06-12</para>
-  </formalpara>
-
-  <para>
-   This release contains a small number of fixes from 9.0.21.
-   For information about new features in the 9.0 major release, see
-   <xref linkend="release-9-0">.
-  </para>
-
-  <para>
-   The <productname>PostgreSQL</> community will stop releasing updates
-   for the 9.0.X release series in September 2015.
-   Users are encouraged to update to a newer release branch soon.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 9.0.22</title>
-
-   <para>
-    A dump/restore is not required for those running 9.0.X.
-   </para>
-
-   <para>
-    However, if you are upgrading from a version earlier than 9.0.18,
-    see <xref linkend="release-9-0-18">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <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>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-9-0-21">
-  <title>Release 9.0.21</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2015-06-04</para>
-  </formalpara>
-
-  <para>
-   This release contains a small number of fixes from 9.0.20.
-   For information about new features in the 9.0 major release, see
-   <xref linkend="release-9-0">.
-  </para>
-
-  <para>
-   The <productname>PostgreSQL</> community will stop releasing updates
-   for the 9.0.X release series in September 2015.
-   Users are encouraged to update to a newer release branch soon.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 9.0.21</title>
-
-   <para>
-    A dump/restore is not required for those running 9.0.X.
-   </para>
-
-   <para>
-    However, if you are upgrading from a version earlier than 9.0.18,
-    see <xref linkend="release-9-0-18">.
-   </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>
-    </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>
-
-    <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-0-20">
-  <title>Release 9.0.20</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2015-05-22</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 9.0.19.
-   For information about new features in the 9.0 major release, see
-   <xref linkend="release-9-0">.
-  </para>
-
-  <para>
-   The <productname>PostgreSQL</> community will stop releasing updates
-   for the 9.0.X release series in September 2015.
-   Users are encouraged to update to a newer release branch soon.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 9.0.20</title>
-
-   <para>
-    A dump/restore is not required for those running 9.0.X.
-   </para>
-
-   <para>
-    However, if you are upgrading from a version earlier than 9.0.18,
-    see <xref linkend="release-9-0-18">.
-   </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>
-      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>
-      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>
-      Avoid <quote>cannot GetMultiXactIdMembers() during recovery</> error
-      (&Aacute;lvaro Herrera)
-     </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>
-      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>
-      Add the name of the target server to object description strings for
-      foreign-server user mappings (&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>
-      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>
-      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>
-      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>
-      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>
-      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-0-19">
-  <title>Release 9.0.19</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2015-02-05</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 9.0.18.
-   For information about new features in the 9.0 major release, see
-   <xref linkend="release-9-0">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 9.0.19</title>
-
-   <para>
-    A dump/restore is not required for those running 9.0.X.
-   </para>
-
-   <para>
-    However, if you are upgrading from a version earlier than 9.0.18,
-    see <xref linkend="release-9-0-18">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <listitem>
-     <para>
-      Improve ispell dictionary's defenses against bad affix files (Tom Lane)
-     </para>
-    </listitem>
-
-    <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>
-
-    <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>
-
-    <listitem>
-     <para>
-      Fix planner problems with nested append relations, such as inherited
-      tables within <literal>UNION ALL</> subqueries (Tom Lane)
-     </para>
-    </listitem>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <listitem>
-     <para>
-      Avoid creating unnecessary <filename>.ready</> marker files for
-      timeline history files (Fujii Masao)
-     </para>
-    </listitem>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <listitem>
-     <para>
-      Warn if OS X's <function>setlocale()</> starts an unwanted extra
-      thread inside the postmaster (Noah Misch)
-     </para>
-    </listitem>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <listitem>
-     <para>
-      Properly handle out-of-memory conditions while parsing connection
-      options in <application>libpq</> (Alex Shulgin, Heikki Linnakangas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix array overrun in <application>ecpg</>'s version
-      of <function>ParseDateTime()</> (Michael Paquier)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      In <application>initdb</>, give a clearer error message if a password
-      file is specified but is empty (Mats Erik Andersson)
-     </para>
-    </listitem>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <listitem>
-     <para>
-      Fix possible deadlock during parallel restore of a schema-only dump
-      (Robert Haas, Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix core dump in <literal>pg_dump --binary-upgrade</> on zero-column
-      composite type (Rushabh Lathia)
-     </para>
-    </listitem>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <listitem>
-     <para>
-      In non-MSVC Windows builds, ensure <filename>libpq.dll</> is installed
-      with execute permissions (Noah Misch)
-     </para>
-    </listitem>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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-0-18">
-  <title>Release 9.0.18</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2014-07-24</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 9.0.17.
-   For information about new features in the 9.0 major release, see
-   <xref linkend="release-9-0">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 9.0.18</title>
-
-   <para>
-    A dump/restore is not required for those running 9.0.X.
-   </para>
-
-   <para>
-    However, this release corrects an index corruption problem in some GiST
-    indexes.  See the first changelog entry 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.0.15,
-    see <xref linkend="release-9-0-15">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <listitem>
-     <para>
-      Fix possibly-incorrect cache invalidation during nested calls
-      to <function>ReceiveSharedInvalidMessages</> (Andres Freund)
-     </para>
-    </listitem>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <listitem>
-     <para>
-      Fix possible crash when invoking a user-defined function while
-      rewinding a cursor (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix query-lifespan memory leak while evaluating the arguments for a
-      function in <literal>FROM</> (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix session-lifespan memory leaks in regular-expression processing
-      (Tom Lane, Arthur O'Dwyer, Greg Stark)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix data encoding error in <filename>hungarian.stop</> (Tom Lane)
-     </para>
-    </listitem>
-
-    <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>
-
-    <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>
-
-    <listitem>
-     <para>
-      Fix <command>REASSIGN OWNED</> to not fail for text search objects
-      (&Aacute;lvaro Herrera)
-     </para>
-    </listitem>
-
-    <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>
-
-    <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>
-
-    <listitem>
-     <para>
-      Fix tablespace creation WAL replay to work on Windows (MauMau)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix detection of socket creation failures on Windows (Bruce Momjian)
-     </para>
-    </listitem>
-
-    <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>
-
-    <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>
-
-    <listitem>
-     <para>
-      Fix linking of <application>libpython</> on OS X (Tom Lane)
-     </para>
-
-     <para>
-      The method we previously used can fail with the Python library
-      supplied by Xcode 5.0 and later.
-     </para>
-    </listitem>
-
-    <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>
-
-    <listitem>
-     <para>
-      Ensure that LDAP lookup attempts in <application>libpq</> time out as
-      intended (Laurenz Albe)
-     </para>
-    </listitem>
-
-    <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>
-
-    <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>
-
-    <listitem>
-     <para>
-      In <filename>contrib/pgcrypto</> functions, ensure sensitive
-      information is cleared from stack variables before returning
-      (Marko Kreen)
-     </para>
-    </listitem>
-
-    <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>
-
-    <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-0-17">
-  <title>Release 9.0.17</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2014-03-20</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 9.0.16.
-   For information about new features in the 9.0 major release, see
-   <xref linkend="release-9-0">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 9.0.17</title>
-
-   <para>
-    A dump/restore is not required for those running 9.0.X.
-   </para>
-
-   <para>
-    However, if you are upgrading from a version earlier than 9.0.15,
-    see <xref linkend="release-9-0-15">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <listitem>
-     <para>
-      Fix test to see if hot standby connections can be allowed immediately
-      after a crash (Heikki Linnakangas)
-     </para>
-    </listitem>
-
-    <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>
-
-    <listitem>
-     <para>
-      Prevent intermittent <quote>could not reserve shared memory region</>
-      failures on recent Windows versions (MauMau)
-     </para>
-    </listitem>
-
-    <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-0-16">
-  <title>Release 9.0.16</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2014-02-20</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 9.0.15.
-   For information about new features in the 9.0 major release, see
-   <xref linkend="release-9-0">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 9.0.16</title>
-
-   <para>
-    A dump/restore is not required for those running 9.0.X.
-   </para>
-
-   <para>
-    However, if you are upgrading from a version earlier than 9.0.15,
-    see <xref linkend="release-9-0-15">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <listitem>
-     <para>
-      Fix checks for all-zero client addresses in pgstat functions (Kevin
-      Grittner)
-     </para>
-    </listitem>
-
-    <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>
-
-    <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>
-
-    <listitem>
-     <para>
-      Accept <literal>SHIFT_JIS</> as an encoding name for locale checking
-      purposes (Tatsuo Ishii)
-     </para>
-    </listitem>
-
-    <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>
-
-    <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>
-
-    <listitem>
-     <para>
-      Fix misaligned descriptors in <application>ecpg</> (MauMau)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      In <application>ecpg</>, handle lack of a hostname in the connection
-      parameters properly (Michael Meskes)
-     </para>
-    </listitem>
-
-    <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>
-
-    <listitem>
-     <para>
-      In <filename>contrib/isn</>, fix incorrect calculation of the check
-      digit for ISMN values (Fabien Coelho)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure client-code-only installation procedure works as documented
-      (Peter Eisentraut)
-     </para>
-    </listitem>
-
-    <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>
-
-    <listitem>
-     <para>
-      Avoid using the deprecated <literal>dllwrap</> tool in Cygwin builds
-      (Marco Atzeri)
-     </para>
-    </listitem>
-
-    <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>
-
-    <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-0-15">
-  <title>Release 9.0.15</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2013-12-05</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 9.0.14.
-   For information about new features in the 9.0 major release, see
-   <xref linkend="release-9-0">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 9.0.15</title>
-
-   <para>
-    A dump/restore is not required for those running 9.0.X.
-   </para>
-
-   <para>
-    However, this release corrects a number of potential data corruption
-    issues.  See the first two 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.0.13,
-    see <xref linkend="release-9-0-13">.
-   </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.  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 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>
-      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>
-      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>
-      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 premature deletion of temporary files (Andres Freund)
-     </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>
-      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>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-0-14">
-  <title>Release 9.0.14</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2013-10-10</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 9.0.13.
-   For information about new features in the 9.0 major release, see
-   <xref linkend="release-9-0">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 9.0.14</title>
-
-   <para>
-    A dump/restore is not required for those running 9.0.X.
-   </para>
-
-   <para>
-    However, if you are upgrading from a version earlier than 9.0.13,
-    see <xref linkend="release-9-0-13">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Prevent corruption of multi-byte characters when attempting to
-      case-fold identifiers (Andrew Dunstan)
-     </para>
-
-     <para>
-      <productname>PostgreSQL</> case-folds non-ASCII characters only
-      when using a single-byte server encoding.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix checkpoint memory leak in background writer when <literal>wal_level =
-      hot_standby</> (Naoya Anzai)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix memory leak caused by <function>lo_open()</function> failure
-      (Heikki Linnakangas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix memory overcommit bug when <varname>work_mem</> is using more
-      than 24GB of memory (Stephen Frost)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix deadlock bug in libpq when using SSL (Stephen Frost)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible SSL state corruption in threaded libpq applications
-      (Nick Phillips, Stephen Frost)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Properly compute row estimates for boolean columns containing many NULL
-      values (Andrew Gierth)
-     </para>
-
-     <para>
-      Previously tests like <literal>col IS NOT TRUE</> and <literal>col IS
-      NOT FALSE</> did not properly factor in NULL values when estimating
-      plan costs.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent pushing down <literal>WHERE</> clauses into unsafe
-      <literal>UNION/INTERSECT</> subqueries (Tom Lane)
-     </para>
-
-     <para>
-      Subqueries of a <literal>UNION</> or <literal>INTERSECT</> that
-      contain set-returning functions or volatile functions in their
-      <literal>SELECT</> lists could be improperly optimized, leading to
-      run-time errors or incorrect query results.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix rare case of <quote>failed to locate grouping columns</>
-      planner failure (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve view dumping code's handling of dropped columns in referenced
-      tables (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Properly record index comments created using <literal>UNIQUE</>
-      and <literal>PRIMARY KEY</> syntax (Andres Freund)
-     </para>
-
-     <para>
-      This fixes a parallel <application>pg_restore</> failure.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <command>REINDEX TABLE</> and <command>REINDEX DATABASE</>
-      to properly revalidate constraints and mark invalidated indexes as
-      valid (Noah Misch)
-     </para>
-
-     <para>
-      <command>REINDEX INDEX</> has always worked properly.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible deadlock during concurrent <command>CREATE INDEX
-      CONCURRENTLY</> operations (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <function>regexp_matches()</> handling of zero-length matches
-      (Jeevan Chalke)
-     </para>
-
-     <para>
-      Previously, zero-length matches like '^' could return too many matches.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix crash for overly-complex regular expressions (Heikki Linnakangas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix regular expression match failures for back references combined with
-      non-greedy quantifiers (Jeevan Chalke)
-     </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>
-      Allow <command>ALTER DEFAULT PRIVILEGES</> to operate on schemas
-      without requiring CREATE permission (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Loosen restriction on keywords used in queries (Tom Lane)
-     </para>
-
-     <para>
-      Specifically, lessen keyword restrictions for role names, language
-      names, <command>EXPLAIN</> and <command>COPY</> options, and
-      <command>SET</> values.  This allows <literal>COPY ... (FORMAT
-      BINARY)</> to work as expected; previously <literal>BINARY</> needed
-      to be quoted.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <function>pgp_pub_decrypt()</> so it works for secret keys with
-      passwords (Marko Kreen)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Remove rare inaccurate warning during vacuum of index-less tables
-      (Heikki Linnakangas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure that <command>VACUUM ANALYZE</> still runs the ANALYZE phase
-      if its attempt to truncate the file is cancelled due to lock conflicts
-      (Kevin Grittner)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid possible failure when performing transaction control commands (e.g
-      ROLLBACK) in prepared queries (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure that floating-point data input accepts standard spellings
-      of <quote>infinity</> on all platforms (Tom Lane)
-     </para>
-
-     <para>
-      The C99 standard says that allowable spellings are <literal>inf</>,
-      <literal>+inf</>, <literal>-inf</>, <literal>infinity</>,
-      <literal>+infinity</>, and <literal>-infinity</>.  Make sure we
-      recognize these even if the platform's <function>strtod</> function
-      doesn't.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Expand ability to compare rows to records and arrays (Rafal Rzepecki,
-      Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2013d
-      for DST law changes in Israel, Morocco, Palestine, and Paraguay.
-      Also, historical zone data corrections for Macquarie Island.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-9-0-13">
-  <title>Release 9.0.13</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2013-04-04</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 9.0.12.
-   For information about new features in the 9.0 major release, see
-   <xref linkend="release-9-0">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 9.0.13</title>
-
-   <para>
-    A dump/restore is not required for those running 9.0.X.
-   </para>
-
-   <para>
-    However, this release corrects several errors in management of GiST
-    indexes.  After installing this update, it is advisable to
-    <command>REINDEX</> any GiST indexes that meet one or more of the
-    conditions described below.
-   </para>
-
-   <para>
-    Also, if you are upgrading from a version earlier than 9.0.6,
-    see <xref linkend="release-9-0-6">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Fix insecure parsing of server command-line switches (Mitsumasa
-      Kondo, Kyotaro Horiguchi)
-     </para>
-
-     <para>
-      A connection request containing a database name that begins with
-      <quote><literal>-</></quote> could be crafted to damage or destroy
-      files within the server's data directory, even if the request is
-      eventually rejected.  (CVE-2013-1899)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Reset OpenSSL randomness state in each postmaster child process
-      (Marko Kreen)
-     </para>
-
-     <para>
-      This avoids a scenario wherein random numbers generated by
-      <filename>contrib/pgcrypto</> functions might be relatively easy for
-      another database user to guess.  The risk is only significant when
-      the postmaster is configured with <varname>ssl</> = <literal>on</>
-      but most connections don't use SSL encryption.  (CVE-2013-1900)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix GiST indexes to not use <quote>fuzzy</> geometric comparisons when
-      it's not appropriate to do so (Alexander Korotkov)
-     </para>
-
-     <para>
-      The core geometric types perform comparisons using <quote>fuzzy</>
-      equality, but <function>gist_box_same</> must do exact comparisons,
-      else GiST indexes using it might become inconsistent.  After installing
-      this update, users should <command>REINDEX</> any GiST indexes on
-      <type>box</>, <type>polygon</>, <type>circle</>, or <type>point</>
-      columns, since all of these use <function>gist_box_same</>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix erroneous range-union and penalty logic in GiST indexes that use
-      <filename>contrib/btree_gist</> for variable-width data types, that is
-      <type>text</>, <type>bytea</>, <type>bit</>, and <type>numeric</>
-      columns (Tom Lane)
-     </para>
-
-     <para>
-      These errors could result in inconsistent indexes in which some keys
-      that are present would not be found by searches, and also in useless
-      index bloat.  Users are advised to <command>REINDEX</> such indexes
-      after installing this update.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix bugs in GiST page splitting code for multi-column indexes
-      (Tom Lane)
-     </para>
-
-     <para>
-      These errors could result in inconsistent indexes in which some keys
-      that are present would not be found by searches, and also in indexes
-      that are unnecessarily inefficient to search.  Users are advised to
-      <command>REINDEX</> multi-column GiST indexes after installing this
-      update.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <function>gist_point_consistent</>
-      to handle fuzziness consistently (Alexander Korotkov)
-     </para>
-
-     <para>
-      Index scans on GiST indexes on <type>point</> columns would sometimes
-      yield results different from a sequential scan, because
-      <function>gist_point_consistent</> disagreed with the underlying
-      operator code about whether to do comparisons exactly or fuzzily.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix buffer leak in WAL replay (Heikki Linnakangas)
-     </para>
-
-     <para>
-      This bug could result in <quote>incorrect local pin count</> errors
-      during replay, making recovery impossible.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix race condition in <command>DELETE RETURNING</> (Tom Lane)
-     </para>
-
-     <para>
-      Under the right circumstances, <command>DELETE RETURNING</> could
-      attempt to fetch data from a shared buffer that the current process
-      no longer has any pin on.  If some other process changed the buffer
-      meanwhile, this would lead to garbage <literal>RETURNING</> output, or
-      even a crash.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix infinite-loop risk in regular expression compilation (Tom Lane,
-      Don Porter)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix potential null-pointer dereference in regular expression compilation
-      (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <function>to_char()</> to use ASCII-only case-folding rules where
-      appropriate (Tom Lane)
-     </para>
-
-     <para>
-      This fixes misbehavior of some template patterns that should be
-      locale-independent, but mishandled <quote><literal>I</></quote> and
-      <quote><literal>i</></quote> in Turkish locales.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix unwanted rejection of timestamp <literal>1999-12-31 24:00:00</>
-      (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix logic error when a single transaction does <command>UNLISTEN</>
-      then <command>LISTEN</> (Tom Lane)
-     </para>
-
-     <para>
-      The session wound up not listening for notify events at all, though it
-      surely should listen in this case.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Remove useless <quote>picksplit doesn't support secondary split</> log
-      messages (Josh Hansen, Tom Lane)
-     </para>
-
-     <para>
-      This message seems to have been added in expectation of code that was
-      never written, and probably never will be, since GiST's default
-      handling of secondary splits is actually pretty good.  So stop nagging
-      end users about it.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible failure to send a session's last few transaction
-      commit/abort counts to the statistics collector (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Eliminate memory leaks in PL/Perl's <function>spi_prepare()</> function
-      (Alex Hunsaker, Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>pg_dumpall</> to handle database names containing
-      <quote><literal>=</></quote> correctly (Heikki Linnakangas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid crash in <application>pg_dump</> when an incorrect connection
-      string is given (Heikki Linnakangas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ignore invalid indexes in <application>pg_dump</> and
-      <application>pg_upgrade</> (Michael Paquier, Bruce Momjian)
-     </para>
-
-     <para>
-      Dumping invalid indexes can cause problems at restore time, for example
-      if the reason the index creation failed was because it tried to enforce
-      a uniqueness condition not satisfied by the table's data.  Also, if the
-      index creation is in fact still in progress, it seems reasonable to
-      consider it to be an uncommitted DDL change, which
-      <application>pg_dump</> wouldn't be expected to dump anyway.
-      <application>pg_upgrade</> now also skips invalid indexes rather than
-      failing.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <filename>contrib/pg_trgm</>'s <function>similarity()</> function
-      to return zero for trigram-less strings (Tom Lane)
-     </para>
-
-     <para>
-      Previously it returned <literal>NaN</> due to internal division by zero.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2013b
-      for DST law changes in Chile, Haiti, Morocco, Paraguay, and some
-      Russian areas.  Also, historical zone data corrections for numerous
-      places.
-     </para>
-
-     <para>
-      Also, update the time zone abbreviation files for recent changes in
-      Russia and elsewhere: <literal>CHOT</>, <literal>GET</>,
-      <literal>IRKT</>, <literal>KGT</>, <literal>KRAT</>, <literal>MAGT</>,
-      <literal>MAWT</>, <literal>MSK</>, <literal>NOVT</>, <literal>OMST</>,
-      <literal>TKT</>, <literal>VLAT</>, <literal>WST</>, <literal>YAKT</>,
-      <literal>YEKT</> now follow their current meanings, and
-      <literal>VOLT</> (Europe/Volgograd) and <literal>MIST</>
-      (Antarctica/Macquarie) are added to the default abbreviations list.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-9-0-12">
-  <title>Release 9.0.12</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2013-02-07</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 9.0.11.
-   For information about new features in the 9.0 major release, see
-   <xref linkend="release-9-0">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 9.0.12</title>
-
-   <para>
-    A dump/restore is not required for those running 9.0.X.
-   </para>
-
-   <para>
-    However, if you are upgrading from a version earlier than 9.0.6,
-    see <xref linkend="release-9-0-6">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Prevent execution of <function>enum_recv</> from SQL (Tom Lane)
-     </para>
-
-     <para>
-      The function was misdeclared, allowing a simple SQL command to crash the
-      server.  In principle an attacker might be able to use it to examine the
-      contents of server memory.  Our thanks to Sumit Soni (via Secunia SVCRP)
-      for reporting this issue.  (CVE-2013-0255)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix multiple problems in detection of when a consistent database
-      state has been reached during WAL replay (Fujii Masao, Heikki
-      Linnakangas, Simon Riggs, Andres Freund)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update minimum recovery point when truncating a relation file (Heikki
-      Linnakangas)
-     </para>
-
-     <para>
-      Once data has been discarded, it's no longer safe to stop recovery at
-      an earlier point in the timeline.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix missing cancellations in hot standby mode (Noah Misch, Simon Riggs)
-     </para>
-
-     <para>
-      The need to cancel conflicting hot-standby queries would sometimes be
-      missed, allowing those queries to see inconsistent data.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix SQL grammar to allow subscripting or field selection from a
-      sub-SELECT result (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix performance problems with autovacuum truncation in busy workloads
-      (Jan Wieck)
-     </para>
-
-     <para>
-      Truncation of empty pages at the end of a table requires exclusive
-      lock, but autovacuum was coded to fail (and release the table lock)
-      when there are conflicting lock requests.  Under load, it is easily
-      possible that truncation would never occur, resulting in table bloat.
-      Fix by performing a partial truncation, releasing the lock, then
-      attempting to re-acquire the lock and continue.  This fix also greatly
-      reduces the average time before autovacuum releases the lock after a
-      conflicting request arrives.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Protect against race conditions when scanning
-      <structname>pg_tablespace</> (Stephen Frost, Tom Lane)
-     </para>
-
-     <para>
-      <command>CREATE DATABASE</> and <command>DROP DATABASE</> could
-      misbehave if there were concurrent updates of
-      <structname>pg_tablespace</> entries.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent <command>DROP OWNED</> from trying to drop whole databases or
-      tablespaces (&Aacute;lvaro Herrera)
-     </para>
-
-     <para>
-      For safety, ownership of these objects must be reassigned, not dropped.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix error in <link
-      linkend="guc-vacuum-freeze-table-age"><varname>vacuum_freeze_table_age</></link>
-      implementation (Andres Freund)
-     </para>
-
-     <para>
-      In installations that have existed for more than <link
-      linkend="guc-vacuum-freeze-min-age"><varname>vacuum_freeze_min_age</></link>
-      transactions, this mistake prevented autovacuum from using partial-table
-      scans, so that a full-table scan would always happen instead.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent misbehavior when a <symbol>RowExpr</> or <symbol>XmlExpr</>
-      is parse-analyzed twice (Andres Freund, Tom Lane)
-     </para>
-
-     <para>
-      This mistake could be user-visible in contexts such as
-      <literal>CREATE TABLE LIKE INCLUDING INDEXES</>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve defenses against integer overflow in hashtable sizing
-      calculations (Jeff Davis)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Reject out-of-range dates in <function>to_date()</> (Hitoshi Harada)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure that non-ASCII prompt strings are translated to the correct
-      code page on Windows (Alexander Law, Noah Misch)
-     </para>
-
-     <para>
-      This bug affected <application>psql</> and some other client programs.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible crash in <application>psql</>'s <command>\?</> command
-      when not connected to a database (Meng Qingzhong)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>pg_upgrade</> to deal with invalid indexes safely
-      (Bruce Momjian)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix one-byte buffer overrun in <application>libpq</>'s
-      <function>PQprintTuples</> (Xi Wang)
-     </para>
-
-     <para>
-      This ancient function is not used anywhere by
-      <productname>PostgreSQL</> itself, but it might still be used by some
-      client code.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <application>ecpglib</> use translated messages properly
-      (Chen Huajun)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Properly install <application>ecpg_compat</> and
-      <application>pgtypes</> libraries on MSVC (Jiang Guiqing)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Include our version of <function>isinf()</> in
-      <application>libecpg</> if it's not provided by the system
-      (Jiang Guiqing)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Rearrange configure's tests for supplied functions so it is not
-      fooled by bogus exports from libedit/libreadline (Christoph Berg)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure Windows build number increases over time (Magnus Hagander)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <application>pgxs</> build executables with the right
-      <literal>.exe</> suffix when cross-compiling for Windows
-      (Zoltan Boszormenyi)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Add new timezone abbreviation <literal>FET</> (Tom Lane)
-     </para>
-
-     <para>
-      This is now used in some eastern-European time zones.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-9-0-11">
-  <title>Release 9.0.11</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2012-12-06</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 9.0.10.
-   For information about new features in the 9.0 major release, see
-   <xref linkend="release-9-0">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 9.0.11</title>
-
-   <para>
-    A dump/restore is not required for those running 9.0.X.
-   </para>
-
-   <para>
-    However, if you are upgrading from a version earlier than 9.0.6,
-    see <xref linkend="release-9-0-6">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Fix multiple bugs associated with <command>CREATE INDEX
-      CONCURRENTLY</> (Andres Freund, Tom Lane)
-     </para>
-
-     <para>
-      Fix <command>CREATE INDEX CONCURRENTLY</> to use
-      in-place updates when changing the state of an index's
-      <structname>pg_index</> row.  This prevents race conditions that could
-      cause concurrent sessions to miss updating the target index, thus
-      resulting in corrupt concurrently-created indexes.
-     </para>
-
-     <para>
-      Also, fix various other operations to ensure that they ignore
-      invalid indexes resulting from a failed <command>CREATE INDEX
-      CONCURRENTLY</> command.  The most important of these is
-      <command>VACUUM</>, because an auto-vacuum could easily be launched
-      on the table before corrective action can be taken to fix or remove
-      the invalid index.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix buffer locking during WAL replay (Tom Lane)
-     </para>
-
-     <para>
-      The WAL replay code was insufficiently careful about locking buffers
-      when replaying WAL records that affect more than one page.  This could
-      result in hot standby queries transiently seeing inconsistent states,
-      resulting in wrong answers or unexpected failures.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix an error in WAL generation logic for GIN indexes (Tom Lane)
-     </para>
-
-     <para>
-      This could result in index corruption, if a torn-page failure occurred.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Properly remove startup process's virtual XID lock when promoting a
-      hot standby server to normal running (Simon Riggs)
-     </para>
-
-     <para>
-      This oversight could prevent subsequent execution of certain
-      operations such as <command>CREATE INDEX CONCURRENTLY</>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid bogus <quote>out-of-sequence timeline ID</> errors in standby
-      mode (Heikki Linnakangas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent the postmaster from launching new child processes after it's
-      received a shutdown signal (Tom Lane)
-     </para>
-
-     <para>
-      This mistake could result in shutdown taking longer than it should, or
-      even never completing at all without additional user action.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid corruption of internal hash tables when out of memory
-      (Hitoshi Harada)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix planning of non-strict equivalence clauses above outer joins
-      (Tom Lane)
-     </para>
-
-     <para>
-      The planner could derive incorrect constraints from a clause equating
-      a non-strict construct to something else, for example
-      <literal>WHERE COALESCE(foo, 0) = 0</>
-      when <literal>foo</> is coming from the nullable side of an outer join.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve planner's ability to prove exclusion constraints from
-      equivalence classes (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix partial-row matching in hashed subplans to handle cross-type cases
-      correctly (Tom Lane)
-     </para>
-
-     <para>
-      This affects multicolumn <literal>NOT IN</> subplans, such as
-      <literal>WHERE (a, b) NOT IN (SELECT x, y FROM ...)</>
-      when for instance <literal>b</> and <literal>y</> are <type>int4</>
-      and <type>int8</> respectively.  This mistake led to wrong answers
-      or crashes depending on the specific datatypes involved.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Acquire buffer lock when re-fetching the old tuple for an
-      <literal>AFTER ROW UPDATE/DELETE</> trigger (Andres Freund)
-     </para>
-
-     <para>
-      In very unusual circumstances, this oversight could result in passing
-      incorrect data to the precheck logic for a foreign-key enforcement
-      trigger.  That could result in a crash, or in an incorrect decision
-      about whether to fire the trigger.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <command>ALTER COLUMN TYPE</> to handle inherited check
-      constraints properly (Pavan Deolasee)
-     </para>
-
-     <para>
-      This worked correctly in pre-8.4 releases, and now works correctly
-      in 8.4 and later.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <command>REASSIGN OWNED</> to handle grants on tablespaces
-      (&Aacute;lvaro Herrera)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ignore incorrect <structname>pg_attribute</> entries for system
-      columns for views (Tom Lane)
-     </para>
-
-     <para>
-      Views do not have any system columns.  However, we forgot to
-      remove such entries when converting a table to a view.  That's fixed
-      properly for 9.3 and later, but in previous branches we need to defend
-      against existing mis-converted views.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix rule printing to dump <literal>INSERT INTO <replaceable>table</>
-      DEFAULT VALUES</literal> correctly (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Guard against stack overflow when there are too many
-      <literal>UNION</>/<literal>INTERSECT</>/<literal>EXCEPT</> clauses
-      in a query (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent platform-dependent failures when dividing the minimum possible
-      integer value by -1 (Xi Wang, Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible access past end of string in date parsing
-      (Hitoshi Harada)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix failure to advance XID epoch if XID wraparound happens during a
-      checkpoint and <varname>wal_level</> is <literal>hot_standby</>
-      (Tom Lane, Andres Freund)
-     </para>
-
-     <para>
-      While this mistake had no particular impact on
-      <productname>PostgreSQL</productname> itself, it was bad for
-      applications that rely on <function>txid_current()</> and related
-      functions: the TXID value would appear to go backwards.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Produce an understandable error message if the length of the path name
-      for a Unix-domain socket exceeds the platform-specific limit
-      (Tom Lane, Andrew Dunstan)
-     </para>
-
-     <para>
-      Formerly, this would result in something quite unhelpful, such as
-      <quote>Non-recoverable failure in name resolution</>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix memory leaks when sending composite column values to the client
-      (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <application>pg_ctl</> more robust about reading the
-      <filename>postmaster.pid</> file (Heikki Linnakangas)
-     </para>
-
-     <para>
-      Fix race conditions and possible file descriptor leakage.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible crash in <application>psql</> if incorrectly-encoded data
-      is presented and the <varname>client_encoding</> setting is a
-      client-only encoding, such as SJIS (Jiang Guiqing)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix bugs in the <filename>restore.sql</> script emitted by
-      <application>pg_dump</> in <literal>tar</> output format (Tom Lane)
-     </para>
-
-     <para>
-      The script would fail outright on tables whose names include
-      upper-case characters.  Also, make the script capable of restoring
-      data in <option>--inserts</> mode as well as the regular COPY mode.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>pg_restore</> to accept POSIX-conformant
-      <literal>tar</> files (Brian Weaver, Tom Lane)
-     </para>
-
-     <para>
-      The original coding of <application>pg_dump</>'s <literal>tar</>
-      output mode produced files that are not fully conformant with the
-      POSIX standard.  This has been corrected for version 9.3.  This
-      patch updates previous branches so that they will accept both the
-      incorrect and the corrected formats, in hopes of avoiding
-      compatibility problems when 9.3 comes out.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>pg_resetxlog</> to locate <filename>postmaster.pid</>
-      correctly when given a relative path to the data directory (Tom Lane)
-     </para>
-
-     <para>
-      This mistake could lead to <application>pg_resetxlog</> not noticing
-      that there is an active postmaster using the data directory.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>libpq</>'s <function>lo_import()</> and
-      <function>lo_export()</> functions to report file I/O errors properly
-      (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>ecpg</>'s processing of nested structure pointer
-      variables (Muhammad Usama)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>ecpg</>'s <function>ecpg_get_data</> function to
-      handle arrays properly (Michael Meskes)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <filename>contrib/pageinspect</>'s btree page inspection
-      functions take buffer locks while examining pages (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>pgxs</> support for building loadable modules on AIX
-      (Tom Lane)
-     </para>
-
-     <para>
-      Building modules outside the original source tree didn't work on AIX.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2012j
-      for DST law changes in Cuba, Israel, Jordan, Libya, Palestine, Western
-      Samoa, and portions of Brazil.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-9-0-10">
-  <title>Release 9.0.10</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2012-09-24</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 9.0.9.
-   For information about new features in the 9.0 major release, see
-   <xref linkend="release-9-0">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 9.0.10</title>
-
-   <para>
-    A dump/restore is not required for those running 9.0.X.
-   </para>
-
-   <para>
-    However, if you are upgrading from a version earlier than 9.0.6,
-    see <xref linkend="release-9-0-6">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Fix planner's assignment of executor parameters, and fix executor's
-      rescan logic for CTE plan nodes (Tom Lane)
-     </para>
-
-     <para>
-      These errors could result in wrong answers from queries that scan the
-      same <literal>WITH</> subquery multiple times.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve page-splitting decisions in GiST indexes (Alexander Korotkov,
-      Robert Haas, Tom Lane)
-     </para>
-
-     <para>
-      Multi-column GiST indexes might suffer unexpected bloat due to this
-      error.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix cascading privilege revoke to stop if privileges are still held
-      (Tom Lane)
-     </para>
-
-     <para>
-      If we revoke a grant option from some role <replaceable>X</>, but
-      <replaceable>X</> still holds that option via a grant from someone
-      else, we should not recursively revoke the corresponding privilege
-      from role(s) <replaceable>Y</> that <replaceable>X</> had granted it
-      to.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve error messages for Hot Standby misconfiguration errors
-      (Gurjeet Singh)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix handling of <literal>SIGFPE</> when PL/Perl is in use (Andres Freund)
-     </para>
-
-     <para>
-      Perl resets the process's <literal>SIGFPE</> handler to
-      <literal>SIG_IGN</>, which could result in crashes later on.  Restore
-      the normal Postgres signal handler after initializing PL/Perl.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent PL/Perl from crashing if a recursive PL/Perl function is
-      redefined while being executed (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Work around possible misoptimization in PL/Perl (Tom Lane)
-     </para>
-
-     <para>
-      Some Linux distributions contain an incorrect version of
-      <filename>pthread.h</> that results in incorrect compiled code in
-      PL/Perl, leading to crashes if a PL/Perl function calls another one
-      that throws an error.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>pg_upgrade</>'s handling of line endings on Windows
-      (Andrew Dunstan)
-     </para>
-
-     <para>
-      Previously, <application>pg_upgrade</> might add or remove carriage
-      returns in places such as function bodies.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      On Windows, make <application>pg_upgrade</> use backslash path
-      separators in the scripts it emits (Andrew Dunstan)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2012f
-      for DST law changes in Fiji
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-9-0-9">
-  <title>Release 9.0.9</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2012-08-17</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 9.0.8.
-   For information about new features in the 9.0 major release, see
-   <xref linkend="release-9-0">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 9.0.9</title>
-
-   <para>
-    A dump/restore is not required for those running 9.0.X.
-   </para>
-
-   <para>
-    However, if you are upgrading from a version earlier than 9.0.6,
-    see <xref linkend="release-9-0-6">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Prevent access to external files/URLs via XML entity references
-      (Noah Misch, Tom Lane)
-     </para>
-
-     <para>
-      <function>xml_parse()</> would attempt to fetch external files or
-      URLs as needed to resolve DTD and entity references in an XML value,
-      thus allowing unprivileged database users to attempt to fetch data
-      with the privileges of the database server.  While the external data
-      wouldn't get returned directly to the user, portions of it could be
-      exposed in error messages if the data didn't parse as valid XML; and
-      in any case the mere ability to check existence of a file might be
-      useful to an attacker.  (CVE-2012-3489)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent access to external files/URLs via <filename>contrib/xml2</>'s
-      <function>xslt_process()</> (Peter Eisentraut)
-     </para>
-
-     <para>
-      <application>libxslt</> offers the ability to read and write both
-      files and URLs through stylesheet commands, thus allowing
-      unprivileged database users to both read and write data with the
-      privileges of the database server.  Disable that through proper use
-      of <application>libxslt</>'s security options.  (CVE-2012-3488)
-     </para>
-
-     <para>
-      Also, remove <function>xslt_process()</>'s ability to fetch documents
-      and stylesheets from external files/URLs.  While this was a
-      documented <quote>feature</>, it was long regarded as a bad idea.
-      The fix for CVE-2012-3489 broke that capability, and rather than
-      expend effort on trying to fix it, we're just going to summarily
-      remove it.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent too-early recycling of btree index pages (Noah Misch)
-     </para>
-
-     <para>
-      When we allowed read-only transactions to skip assigning XIDs, we
-      introduced the possibility that a deleted btree page could be
-      recycled while a read-only transaction was still in flight to it.
-      This would result in incorrect index search results.  The probability
-      of such an error occurring in the field seems very low because of the
-      timing requirements, but nonetheless it should be fixed.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix crash-safety bug with newly-created-or-reset sequences (Tom Lane)
-     </para>
-
-     <para>
-      If <command>ALTER SEQUENCE</> was executed on a freshly created or
-      reset sequence, and then precisely one <function>nextval()</> call
-      was made on it, and then the server crashed, WAL replay would restore
-      the sequence to a state in which it appeared that no
-      <function>nextval()</> had been done, thus allowing the first
-      sequence value to be returned again by the next
-      <function>nextval()</> call.  In particular this could manifest for
-      <type>serial</> columns, since creation of a serial column's sequence
-      includes an <command>ALTER SEQUENCE OWNED BY</> step.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <function>txid_current()</> to report the correct epoch when not
-      in hot standby (Heikki Linnakangas)
-     </para>
-
-     <para>
-      This fixes a regression introduced in the previous minor release.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix bug in startup of Hot Standby when a master transaction has many
-      subtransactions (Andres Freund)
-     </para>
-
-     <para>
-      This mistake led to failures reported as <quote>out-of-order XID
-      insertion in KnownAssignedXids</>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure the <filename>backup_label</> file is fsync'd after
-      <function>pg_start_backup()</> (Dave Kerr)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix timeout handling in walsender processes (Tom Lane)
-     </para>
-
-     <para>
-      WAL sender background processes neglected to establish a
-      <systemitem>SIGALRM</> handler, meaning they would wait forever in
-      some corner cases where a timeout ought to happen.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Back-patch 9.1 improvement to compress the fsync request queue
-      (Robert Haas)
-     </para>
-
-     <para>
-      This improves performance during checkpoints.  The 9.1 change
-      has now seen enough field testing to seem safe to back-patch.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <literal>LISTEN</>/<literal>NOTIFY</> to cope better with I/O
-      problems, such as out of disk space (Tom Lane)
-     </para>
-
-     <para>
-      After a write failure, all subsequent attempts to send more
-      <literal>NOTIFY</> messages would fail with messages like
-      <quote>Could not read from file "pg_notify/<replaceable>nnnn</>" at
-      offset <replaceable>nnnnn</>: Success</quote>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Only allow autovacuum to be auto-canceled by a directly blocked
-      process (Tom Lane)
-     </para>
-
-     <para>
-      The original coding could allow inconsistent behavior in some cases;
-      in particular, an autovacuum could get canceled after less than
-      <literal>deadlock_timeout</> grace period.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve logging of autovacuum cancels (Robert Haas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix log collector so that <literal>log_truncate_on_rotation</> works
-      during the very first log rotation after server start (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <literal>WITH</> attached to a nested set operation
-      (<literal>UNION</>/<literal>INTERSECT</>/<literal>EXCEPT</>)
-      (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure that a whole-row reference to a subquery doesn't include any
-      extra <literal>GROUP BY</> or <literal>ORDER BY</> columns (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Disallow copying whole-row references in <literal>CHECK</>
-      constraints and index definitions during <command>CREATE TABLE</>
-      (Tom Lane)
-     </para>
-
-     <para>
-      This situation can arise in <command>CREATE TABLE</> with
-      <literal>LIKE</> or <literal>INHERITS</>.  The copied whole-row
-      variable was incorrectly labeled with the row type of the original
-      table not the new one.  Rejecting the case seems reasonable for
-      <literal>LIKE</>, since the row types might well diverge later.  For
-      <literal>INHERITS</> we should ideally allow it, with an implicit
-      coercion to the parent table's row type; but that will require more
-      work than seems safe to back-patch.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix memory leak in <literal>ARRAY(SELECT ...)</> subqueries (Heikki
-      Linnakangas, Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix extraction of common prefixes from regular expressions (Tom Lane)
-     </para>
-
-     <para>
-      The code could get confused by quantified parenthesized
-      subexpressions, such as <literal>^(foo)?bar</>.  This would lead to
-      incorrect index optimization of searches for such patterns.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix bugs with parsing signed
-      <replaceable>hh</><literal>:</><replaceable>mm</> and
-      <replaceable>hh</><literal>:</><replaceable>mm</><literal>:</><replaceable>ss</>
-      fields in <type>interval</> constants (Amit Kapila, Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Use Postgres' encoding conversion functions, not Python's, when
-      converting a Python Unicode string to the server encoding in
-      PL/Python (Jan Urbanski)
-     </para>
-
-     <para>
-      This avoids some corner-case problems, notably that Python doesn't
-      support all the encodings Postgres does.  A notable functional change
-      is that if the server encoding is SQL_ASCII, you will get the UTF-8
-      representation of the string; formerly, any non-ASCII characters in
-      the string would result in an error.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix mapping of PostgreSQL encodings to Python encodings in PL/Python
-      (Jan Urbanski)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Report errors properly in <filename>contrib/xml2</>'s
-      <function>xslt_process()</> (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2012e
-      for DST law changes in Morocco and Tokelau
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-9-0-8">
-  <title>Release 9.0.8</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2012-06-04</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 9.0.7.
-   For information about new features in the 9.0 major release, see
-   <xref linkend="release-9-0">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 9.0.8</title>
-
-   <para>
-    A dump/restore is not required for those running 9.0.X.
-   </para>
-
-   <para>
-    However, if you are upgrading from a version earlier than 9.0.6,
-    see <xref linkend="release-9-0-6">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Fix incorrect password transformation in
-      <filename>contrib/pgcrypto</>'s DES <function>crypt()</> function
-      (Solar Designer)
-     </para>
-
-     <para>
-      If a password string contained the byte value <literal>0x80</>, the
-      remainder of the password was ignored, causing the password to be much
-      weaker than it appeared.  With this fix, the rest of the string is
-      properly included in the DES hash.  Any stored password values that are
-      affected by this bug will thus no longer match, so the stored values may
-      need to be updated.  (CVE-2012-2143)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ignore <literal>SECURITY DEFINER</> and <literal>SET</> attributes for
-      a procedural language's call handler (Tom Lane)
-     </para>
-
-     <para>
-      Applying such attributes to a call handler could crash the server.
-      (CVE-2012-2655)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Allow numeric timezone offsets in <type>timestamp</> input to be up to
-      16 hours away from UTC (Tom Lane)
-     </para>
-
-     <para>
-      Some historical time zones have offsets larger than 15 hours, the
-      previous limit.  This could result in dumped data values being rejected
-      during reload.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix timestamp conversion to cope when the given time is exactly the
-      last DST transition time for the current timezone (Tom Lane)
-     </para>
-
-     <para>
-      This oversight has been there a long time, but was not noticed
-      previously because most DST-using zones are presumed to have an
-      indefinite sequence of future DST transitions.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <type>text</> to <type>name</> and <type>char</> to <type>name</>
-      casts to perform string truncation correctly in multibyte encodings
-      (Karl Schnaitter)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix memory copying bug in <function>to_tsquery()</> (Heikki Linnakangas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure <function>txid_current()</> reports the correct epoch when
-      executed in hot standby (Simon Riggs)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix planner's handling of outer PlaceHolderVars within subqueries (Tom
-      Lane)
-     </para>
-
-     <para>
-      This bug concerns sub-SELECTs that reference variables coming from the
-      nullable side of an outer join of the surrounding query.
-      In 9.1, queries affected by this bug would fail with <quote>ERROR:
-      Upper-level PlaceHolderVar found where not expected</>.  But in 9.0 and
-      8.4, you'd silently get possibly-wrong answers, since the value
-      transmitted into the subquery wouldn't go to null when it should.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix slow session startup when <structname>pg_attribute</> is very large
-      (Tom Lane)
-     </para>
-
-     <para>
-      If <structname>pg_attribute</> exceeds one-fourth of
-      <varname>shared_buffers</>, cache rebuilding code that is sometimes
-      needed during session start would trigger the synchronized-scan logic,
-      causing it to take many times longer than normal.  The problem was
-      particularly acute if many new sessions were starting at once.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure sequential scans check for query cancel reasonably often (Merlin
-      Moncure)
-     </para>
-
-     <para>
-      A scan encountering many consecutive pages that contain no live tuples
-      would not respond to interrupts meanwhile.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure the Windows implementation of <function>PGSemaphoreLock()</>
-      clears <varname>ImmediateInterruptOK</> before returning (Tom Lane)
-     </para>
-
-     <para>
-      This oversight meant that a query-cancel interrupt received later
-      in the same query could be accepted at an unsafe time, with
-      unpredictable but not good consequences.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Show whole-row variables safely when printing views or rules
-      (Abbas Butt, Tom Lane)
-     </para>
-
-     <para>
-      Corner cases involving ambiguous names (that is, the name could be
-      either a table or column name of the query) were printed in an
-      ambiguous way, risking that the view or rule would be interpreted
-      differently after dump and reload.  Avoid the ambiguous case by
-      attaching a no-op cast.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <command>COPY FROM</> to properly handle null marker strings that
-      correspond to invalid encoding (Tom Lane)
-     </para>
-
-     <para>
-      A null marker string such as <literal>E'\\0'</> should work, and did
-      work in the past, but the case got broken in 8.4.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure autovacuum worker processes perform stack depth checking
-      properly (Heikki Linnakangas)
-     </para>
-
-     <para>
-      Previously, infinite recursion in a function invoked by
-      auto-<command>ANALYZE</> could crash worker processes.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix logging collector to not lose log coherency under high load (Andrew
-      Dunstan)
-     </para>
-
-     <para>
-      The collector previously could fail to reassemble large messages if it
-      got too busy.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix logging collector to ensure it will restart file rotation
-      after receiving <systemitem>SIGHUP</> (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix WAL replay logic for GIN indexes to not fail if the index was
-      subsequently dropped (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix memory leak in PL/pgSQL's <command>RETURN NEXT</> command (Joe
-      Conway)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix PL/pgSQL's <command>GET DIAGNOSTICS</> command when the target
-      is the function's first variable (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix potential access off the end of memory in <application>psql</>'s
-      expanded display (<command>\x</>) mode (Peter Eisentraut)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix several performance problems in <application>pg_dump</> when
-      the database contains many objects (Jeff Janes, Tom Lane)
-     </para>
-
-     <para>
-      <application>pg_dump</> could get very slow if the database contained
-      many schemas, or if many objects are in dependency loops, or if there
-      are many owned sequences.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>pg_upgrade</> for the case that a database stored in a
-      non-default tablespace contains a table in the cluster's default
-      tablespace (Bruce Momjian)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      In <application>ecpg</>, fix rare memory leaks and possible overwrite
-      of one byte after the <structname>sqlca_t</> structure (Peter Eisentraut)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <filename>contrib/dblink</>'s <function>dblink_exec()</> to not leak
-      temporary database connections upon error (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <filename>contrib/dblink</> to report the correct connection name in
-      error messages (Kyotaro Horiguchi)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <filename>contrib/vacuumlo</> to use multiple transactions when
-      dropping many large objects (Tim Lewis, Robert Haas, Tom Lane)
-     </para>
-
-     <para>
-      This change avoids exceeding <varname>max_locks_per_transaction</> when
-      many objects need to be dropped.  The behavior can be adjusted with the
-      new <literal>-l</> (limit) option.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2012c
-      for DST law changes in Antarctica, Armenia, Chile, Cuba, Falkland
-      Islands, Gaza, Haiti, Hebron, Morocco, Syria, and Tokelau Islands;
-      also historical corrections for Canada.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-9-0-7">
-  <title>Release 9.0.7</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2012-02-27</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 9.0.6.
-   For information about new features in the 9.0 major release, see
-   <xref linkend="release-9-0">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 9.0.7</title>
-
-   <para>
-    A dump/restore is not required for those running 9.0.X.
-   </para>
-
-   <para>
-    However, if you are upgrading from a version earlier than 9.0.6,
-    see <xref linkend="release-9-0-6">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Require execute permission on the trigger function for
-      <command>CREATE TRIGGER</> (Robert Haas)
-     </para>
-
-     <para>
-      This missing check could allow another user to execute a trigger
-      function with forged input data, by installing it on a table he owns.
-      This is only of significance for trigger functions marked
-      <literal>SECURITY DEFINER</>, since otherwise trigger functions run
-      as the table owner anyway.  (CVE-2012-0866)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Remove arbitrary limitation on length of common name in SSL
-      certificates (Heikki Linnakangas)
-     </para>
-
-     <para>
-      Both <application>libpq</> and the server truncated the common name
-      extracted from an SSL certificate at 32 bytes.  Normally this would
-      cause nothing worse than an unexpected verification failure, but there
-      are some rather-implausible scenarios in which it might allow one
-      certificate holder to impersonate another.  The victim would have to
-      have a common name exactly 32 bytes long, and the attacker would have
-      to persuade a trusted CA to issue a certificate in which the common
-      name has that string as a prefix.  Impersonating a server would also
-      require some additional exploit to redirect client connections.
-      (CVE-2012-0867)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Convert newlines to spaces in names written in <application>pg_dump</>
-      comments (Robert Haas)
-     </para>
-
-     <para>
-      <application>pg_dump</> was incautious about sanitizing object names
-      that are emitted within SQL comments in its output script.  A name
-      containing a newline would at least render the script syntactically
-      incorrect.  Maliciously crafted object names could present a SQL
-      injection risk when the script is reloaded.  (CVE-2012-0868)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix btree index corruption from insertions concurrent with vacuuming
-      (Tom Lane)
-     </para>
-
-     <para>
-      An index page split caused by an insertion could sometimes cause a
-      concurrently-running <command>VACUUM</> to miss removing index entries
-      that it should remove.  After the corresponding table rows are removed,
-      the dangling index entries would cause errors (such as <quote>could not
-      read block N in file ...</>) or worse, silently wrong query results
-      after unrelated rows are re-inserted at the now-free table locations.
-      This bug has been present since release 8.2, but occurs so infrequently
-      that it was not diagnosed until now.  If you have reason to suspect
-      that it has happened in your database, reindexing the affected index
-      will fix things.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix transient zeroing of shared buffers during WAL replay (Tom Lane)
-     </para>
-
-     <para>
-      The replay logic would sometimes zero and refill a shared buffer, so
-      that the contents were transiently invalid.  In hot standby mode this
-      can result in a query that's executing in parallel seeing garbage data.
-      Various symptoms could result from that, but the most common one seems
-      to be <quote>invalid memory alloc request size</>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix postmaster to attempt restart after a hot-standby crash (Tom Lane)
-     </para>
-
-     <para>
-      A logic error caused the postmaster to terminate, rather than attempt
-      to restart the cluster, if any backend process crashed while operating
-      in hot standby mode.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <command>CLUSTER</>/<command>VACUUM FULL</> handling of toast
-      values owned by recently-updated rows (Tom Lane)
-     </para>
-
-     <para>
-      This oversight could lead to <quote>duplicate key value violates unique
-      constraint</> errors being reported against the toast table's index
-      during one of these commands.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update per-column permissions, not only per-table permissions, when
-      changing table owner (Tom Lane)
-     </para>
-
-     <para>
-      Failure to do this meant that any previously granted column permissions
-      were still shown as having been granted by the old owner.  This meant
-      that neither the new owner nor a superuser could revoke the
-      now-untraceable-to-table-owner permissions.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Support foreign data wrappers and foreign servers in
-      <command>REASSIGN OWNED</> (Alvaro Herrera)
-     </para>
-
-     <para>
-      This command failed with <quote>unexpected classid</> errors if
-      it needed to change the ownership of any such objects.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Allow non-existent values for some settings in <command>ALTER
-      USER/DATABASE SET</> (Heikki Linnakangas)
-     </para>
-
-     <para>
-      Allow <varname>default_text_search_config</>,
-      <varname>default_tablespace</>, and <varname>temp_tablespaces</> to be
-      set to names that are not known.  This is because they might be known
-      in another database where the setting is intended to be used, or for the
-      tablespace cases because the tablespace might not be created yet.  The
-      same issue was previously recognized for <varname>search_path</>, and
-      these settings now act like that one.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid crashing when we have problems deleting table files post-commit
-      (Tom Lane)
-     </para>
-
-     <para>
-      Dropping a table should lead to deleting the underlying disk files only
-      after the transaction commits.  In event of failure then (for instance,
-      because of wrong file permissions) the code is supposed to just emit a
-      warning message and go on, since it's too late to abort the
-      transaction.  This logic got broken as of release 8.4, causing such
-      situations to result in a PANIC and an unrestartable database.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Recover from errors occurring during WAL replay of <command>DROP
-      TABLESPACE</> (Tom Lane)
-     </para>
-
-     <para>
-      Replay will attempt to remove the tablespace's directories, but there
-      are various reasons why this might fail (for example, incorrect
-      ownership or permissions on those directories).  Formerly the replay
-      code would panic, rendering the database unrestartable without manual
-      intervention.  It seems better to log the problem and continue, since
-      the only consequence of failure to remove the directories is some
-      wasted disk space.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix race condition in logging AccessExclusiveLocks for hot standby
-      (Simon Riggs)
-     </para>
-
-     <para>
-      Sometimes a lock would be logged as being held by <quote>transaction
-      zero</>.  This is at least known to produce assertion failures on
-      slave servers, and might be the cause of more serious problems.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Track the OID counter correctly during WAL replay, even when it wraps
-      around (Tom Lane)
-     </para>
-
-     <para>
-      Previously the OID counter would remain stuck at a high value until the
-      system exited replay mode.  The practical consequences of that are
-      usually nil, but there are scenarios wherein a standby server that's
-      been promoted to master might take a long time to advance the OID
-      counter to a reasonable value once values are needed.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent emitting misleading <quote>consistent recovery state reached</>
-      log message at the beginning of crash recovery (Heikki Linnakangas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix initial value of
-      <structname>pg_stat_replication</>.<structfield>replay_location</>
-      (Fujii Masao)
-     </para>
-
-     <para>
-      Previously, the value shown would be wrong until at least one WAL
-      record had been replayed.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix regular expression back-references with <literal>*</> attached
-      (Tom Lane)
-     </para>
-
-     <para>
-      Rather than enforcing an exact string match, the code would effectively
-      accept any string that satisfies the pattern sub-expression referenced
-      by the back-reference symbol.
-     </para>
-
-     <para>
-      A similar problem still afflicts back-references that are embedded in a
-      larger quantified expression, rather than being the immediate subject
-      of the quantifier.  This will be addressed in a future
-      <productname>PostgreSQL</> release.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix recently-introduced memory leak in processing of
-      <type>inet</>/<type>cidr</> values (Heikki Linnakangas)
-     </para>
-
-     <para>
-      A patch in the December 2011 releases of <productname>PostgreSQL</>
-      caused memory leakage in these operations, which could be significant
-      in scenarios such as building a btree index on such a column.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix dangling pointer after <command>CREATE TABLE AS</>/<command>SELECT
-      INTO</> in a SQL-language function (Tom Lane)
-     </para>
-
-     <para>
-      In most cases this only led to an assertion failure in assert-enabled
-      builds, but worse consequences seem possible.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid double close of file handle in syslogger on Windows (MauMau)
-     </para>
-
-     <para>
-      Ordinarily this error was invisible, but it would cause an exception
-      when running on a debug version of Windows.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix I/O-conversion-related memory leaks in plpgsql
-      (Andres Freund, Jan Urbanski, Tom Lane)
-     </para>
-
-     <para>
-      Certain operations would leak memory until the end of the current
-      function.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve <application>pg_dump</>'s handling of inherited table columns
-      (Tom Lane)
-     </para>
-
-     <para>
-      <application>pg_dump</> mishandled situations where a child column has
-      a different default expression than its parent column.  If the default
-      is textually identical to the parent's default, but not actually the
-      same (for instance, because of schema search path differences) it would
-      not be recognized as different, so that after dump and restore the
-      child would be allowed to inherit the parent's default.  Child columns
-      that are <literal>NOT NULL</> where their parent is not could also be
-      restored subtly incorrectly.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>pg_restore</>'s direct-to-database mode for
-      INSERT-style table data (Tom Lane)
-     </para>
-
-     <para>
-      Direct-to-database restores from archive files made with
-      <option>--inserts</> or <option>--column-inserts</> options fail when
-      using <application>pg_restore</> from a release dated September or
-      December 2011, as a result of an oversight in a fix for another
-      problem.  The archive file itself is not at fault, and text-mode
-      output is okay.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Allow <application>pg_upgrade</> to process tables containing
-      <type>regclass</> columns (Bruce Momjian)
-     </para>
-
-     <para>
-      Since <application>pg_upgrade</> now takes care to preserve
-      <structname>pg_class</> OIDs, there was no longer any reason for this
-      restriction.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <application>libpq</> ignore <literal>ENOTDIR</> errors
-      when looking for an SSL client certificate file
-      (Magnus Hagander)
-     </para>
-
-     <para>
-      This allows SSL connections to be established, though without a
-      certificate, even when the user's home directory is set to something
-      like <literal>/dev/null</>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix some more field alignment issues in <application>ecpg</>'s SQLDA area
-      (Zoltan Boszormenyi)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Allow <literal>AT</> option in <application>ecpg</>
-      <literal>DEALLOCATE</> statements (Michael Meskes)
-     </para>
-
-     <para>
-      The infrastructure to support this has been there for awhile, but
-      through an oversight there was still an error check rejecting the case.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Do not use the variable name when defining a varchar structure in ecpg
-      (Michael Meskes)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <filename>contrib/auto_explain</>'s JSON output mode to produce
-      valid JSON (Andrew Dunstan)
-     </para>
-
-     <para>
-      The output used brackets at the top level, when it should have used
-      braces.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix error in <filename>contrib/intarray</>'s <literal>int[] &amp;
-      int[]</> operator (Guillaume Lelarge)
-     </para>
-
-     <para>
-      If the smallest integer the two input arrays have in common is 1,
-      and there are smaller values in either array, then 1 would be
-      incorrectly omitted from the result.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix error detection in <filename>contrib/pgcrypto</>'s
-      <function>encrypt_iv()</> and <function>decrypt_iv()</>
-      (Marko Kreen)
-     </para>
-
-     <para>
-      These functions failed to report certain types of invalid-input errors,
-      and would instead return random garbage values for incorrect input.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix one-byte buffer overrun in <filename>contrib/test_parser</>
-      (Paul Guyot)
-     </para>
-
-     <para>
-      The code would try to read one more byte than it should, which would
-      crash in corner cases.
-      Since <filename>contrib/test_parser</> is only example code, this is
-      not a security issue in itself, but bad example code is still bad.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Use <function>__sync_lock_test_and_set()</> for spinlocks on ARM, if
-      available (Martin Pitt)
-     </para>
-
-     <para>
-      This function replaces our previous use of the <literal>SWPB</>
-      instruction, which is deprecated and not available on ARMv6 and later.
-      Reports suggest that the old code doesn't fail in an obvious way on
-      recent ARM boards, but simply doesn't interlock concurrent accesses,
-      leading to bizarre failures in multiprocess operation.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Use <option>-fexcess-precision=standard</> option when building with
-      gcc versions that accept it (Andrew Dunstan)
-     </para>
-
-     <para>
-      This prevents assorted scenarios wherein recent versions of gcc will
-      produce creative results.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Allow use of threaded Python on FreeBSD (Chris Rees)
-     </para>
-
-     <para>
-      Our configure script previously believed that this combination wouldn't
-      work; but FreeBSD fixed the problem, so remove that error check.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-9-0-6">
-  <title>Release 9.0.6</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2011-12-05</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 9.0.5.
-   For information about new features in the 9.0 major release, see
-   <xref linkend="release-9-0">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 9.0.6</title>
-
-   <para>
-    A dump/restore is not required for those running 9.0.X.
-   </para>
-
-   <para>
-    However, a longstanding error was discovered in the definition of the
-    <literal>information_schema.referential_constraints</> view.  If you
-    rely on correct results from that view, you should replace its
-    definition as explained in the first changelog item below.
-   </para>
-
-   <para>
-    Also, if you are upgrading from a version earlier than 9.0.4,
-    see <xref linkend="release-9-0-4">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Fix bugs in <literal>information_schema.referential_constraints</> view
-      (Tom Lane)
-     </para>
-
-     <para>
-      This view was being insufficiently careful about matching the
-      foreign-key constraint to the depended-on primary or unique key
-      constraint.  That could result in failure to show a foreign key
-      constraint at all, or showing it multiple times, or claiming that it
-      depends on a different constraint than the one it really does.
-     </para>
-
-     <para>
-      Since the view definition is installed by <application>initdb</>,
-      merely upgrading will not fix the problem.  If you need to fix this
-      in an existing installation, you can (as a superuser) drop the
-      <literal>information_schema</> schema then re-create it by sourcing
-      <filename><replaceable>SHAREDIR</>/information_schema.sql</filename>.
-      (Run <literal>pg_config --sharedir</> if you're uncertain where
-      <replaceable>SHAREDIR</> is.)  This must be repeated in each database
-      to be fixed.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible crash during <command>UPDATE</> or <command>DELETE</> that
-      joins to the output of a scalar-returning function (Tom Lane)
-     </para>
-
-     <para>
-      A crash could only occur if the target row had been concurrently
-      updated, so this problem surfaced only intermittently.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix incorrect replay of WAL records for GIN index updates
-      (Tom Lane)
-     </para>
-
-     <para>
-      This could result in transiently failing to find index entries after
-      a crash, or on a hot-standby server.  The problem would be repaired
-      by the next <command>VACUUM</> of the index, however.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix TOAST-related data corruption during <literal>CREATE TABLE dest AS
-      SELECT * FROM src</> or <literal>INSERT INTO dest SELECT * FROM src</>
-      (Tom Lane)
-     </para>
-
-     <para>
-      If a table has been modified by <command>ALTER TABLE ADD COLUMN</>,
-      attempts to copy its data verbatim to another table could produce
-      corrupt results in certain corner cases.
-      The problem can only manifest in this precise form in 8.4 and later,
-      but we patched earlier versions as well in case there are other code
-      paths that could trigger the same bug.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible failures during hot standby startup (Simon Riggs)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Start hot standby faster when initial snapshot is incomplete
-      (Simon Riggs)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix race condition during toast table access from stale syscache entries
-      (Tom Lane)
-     </para>
-
-     <para>
-      The typical symptom was transient errors like <quote>missing chunk
-      number 0 for toast value NNNNN in pg_toast_2619</>, where the cited
-      toast table would always belong to a system catalog.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Track dependencies of functions on items used in parameter default
-      expressions (Tom Lane)
-     </para>
-
-     <para>
-      Previously, a referenced object could be dropped without having dropped
-      or modified the function, leading to misbehavior when the function was
-      used.  Note that merely installing this update will not fix the missing
-      dependency entries; to do that, you'd need to <command>CREATE OR
-      REPLACE</> each such function afterwards.  If you have functions whose
-      defaults depend on non-built-in objects, doing so is recommended.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Allow inlining of set-returning SQL functions with multiple OUT
-      parameters (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Don't trust deferred-unique indexes for join removal (Tom Lane and Marti
-      Raudsepp)
-     </para>
-
-     <para>
-      A deferred uniqueness constraint might not hold intra-transaction,
-      so assuming that it does could give incorrect query results.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <function>DatumGetInetP()</> unpack inet datums that have a 1-byte
-      header, and add a new macro, <function>DatumGetInetPP()</>, that does
-      not (Heikki Linnakangas)
-     </para>
-
-     <para>
-      This change affects no core code, but might prevent crashes in add-on
-      code that expects <function>DatumGetInetP()</> to produce an unpacked
-      datum as per usual convention.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve locale support in <type>money</> type's input and output
-      (Tom Lane)
-     </para>
-
-     <para>
-      Aside from not supporting all standard
-      <link linkend="guc-lc-monetary"><varname>lc_monetary</></link>
-      formatting options, the input and output functions were inconsistent,
-      meaning there were locales in which dumped <type>money</> values could
-      not be re-read.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Don't let <link
-      linkend="guc-transform-null-equals"><varname>transform_null_equals</></link>
-      affect <literal>CASE foo WHEN NULL ...</> constructs
-      (Heikki Linnakangas)
-     </para>
-
-     <para>
-      <varname>transform_null_equals</> is only supposed to affect
-      <literal>foo = NULL</> expressions written directly by the user, not
-      equality checks generated internally by this form of <literal>CASE</>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Change foreign-key trigger creation order to better support
-      self-referential foreign keys (Tom Lane)
-     </para>
-
-     <para>
-      For a cascading foreign key that references its own table, a row update
-      will fire both the <literal>ON UPDATE</> trigger and the
-      <literal>CHECK</> trigger as one event.  The <literal>ON UPDATE</>
-      trigger must execute first, else the <literal>CHECK</> will check a
-      non-final state of the row and possibly throw an inappropriate error.
-      However, the firing order of these triggers is determined by their
-      names, which generally sort in creation order since the triggers have
-      auto-generated names following the convention
-      <quote>RI_ConstraintTrigger_NNNN</>.  A proper fix would require
-      modifying that convention, which we will do in 9.2, but it seems risky
-      to change it in existing releases.  So this patch just changes the
-      creation order of the triggers.  Users encountering this type of error
-      should drop and re-create the foreign key constraint to get its
-      triggers into the right order.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid floating-point underflow while tracking buffer allocation rate
-      (Greg Matthews)
-     </para>
-
-     <para>
-      While harmless in itself, on certain platforms this would result in
-      annoying kernel log messages.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Preserve configuration file name and line number values when starting
-      child processes under Windows (Tom Lane)
-     </para>
-
-     <para>
-      Formerly, these would not be displayed correctly in the
-      <structname>pg_settings</> view.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix incorrect field alignment in <application>ecpg</>'s SQLDA area
-      (Zoltan Boszormenyi)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Preserve blank lines within commands in <application>psql</>'s command
-      history (Robert Haas)
-     </para>
-
-     <para>
-      The former behavior could cause problems if an empty line was removed
-      from within a string literal, for example.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>pg_dump</> to dump user-defined casts between
-      auto-generated types, such as table rowtypes (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Assorted fixes for <application>pg_upgrade</> (Bruce Momjian)
-     </para>
-
-     <para>
-      Handle exclusion constraints correctly, avoid failures on Windows,
-      don't complain about mismatched toast table names in 8.4 databases.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Use the preferred version of <application>xsubpp</> to build PL/Perl,
-      not necessarily the operating system's main copy
-      (David Wheeler and Alex Hunsaker)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix incorrect coding in <filename>contrib/dict_int</> and
-      <filename>contrib/dict_xsyn</> (Tom Lane)
-     </para>
-
-     <para>
-      Some functions incorrectly assumed that memory returned by
-      <function>palloc()</> is guaranteed zeroed.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix assorted errors in <filename>contrib/unaccent</>'s configuration
-      file parsing (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Honor query cancel interrupts promptly in <function>pgstatindex()</>
-      (Robert Haas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix incorrect quoting of log file name in Mac OS X start script
-      (Sidar Lopez)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure VPATH builds properly install all server header files
-      (Peter Eisentraut)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Shorten file names reported in verbose error messages (Peter Eisentraut)
-     </para>
-
-     <para>
-      Regular builds have always reported just the name of the C file
-      containing the error message call, but VPATH builds formerly
-      reported an absolute path name.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix interpretation of Windows timezone names for Central America
-      (Tom Lane)
-     </para>
-
-     <para>
-      Map <quote>Central America Standard Time</> to <literal>CST6</>, not
-      <literal>CST6CDT</>, because DST is generally not observed anywhere in
-      Central America.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2011n
-      for DST law changes in Brazil, Cuba, Fiji, Palestine, Russia, and Samoa;
-      also historical corrections for Alaska and British East Africa.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-9-0-5">
-  <title>Release 9.0.5</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2011-09-26</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 9.0.4.
-   For information about new features in the 9.0 major release, see
-   <xref linkend="release-9-0">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 9.0.5</title>
-
-   <para>
-    A dump/restore is not required for those running 9.0.X.
-   </para>
-
-   <para>
-    However, if you are upgrading from a version earlier than 9.0.4,
-    see <xref linkend="release-9-0-4">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Fix catalog cache invalidation after a <command>VACUUM FULL</> or
-      <command>CLUSTER</> on a system catalog (Tom Lane)
-     </para>
-
-     <para>
-      In some cases the relocation of a system catalog row to another place
-      would not be recognized by concurrent server processes, allowing catalog
-      corruption to occur if they then tried to update that row.  The
-      worst-case outcome could be as bad as complete loss of a table.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix incorrect order of operations during sinval reset processing,
-      and ensure that TOAST OIDs are preserved in system catalogs (Tom
-      Lane)
-     </para>
-
-     <para>
-      These mistakes could lead to transient failures after a <command>VACUUM
-      FULL</> or <command>CLUSTER</> on a system catalog.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix bugs in indexing of in-doubt HOT-updated tuples (Tom Lane)
-     </para>
-
-     <para>
-      These bugs could result in index corruption after reindexing a system
-      catalog.  They are not believed to affect user indexes.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix multiple bugs in GiST index page split processing (Heikki
-      Linnakangas)
-     </para>
-
-     <para>
-      The probability of occurrence was low, but these could lead to index
-      corruption.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible buffer overrun in <function>tsvector_concat()</>
-      (Tom Lane)
-     </para>
-
-     <para>
-      The function could underestimate the amount of memory needed for its
-      result, leading to server crashes.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix crash in <function>xml_recv</> when processing a
-      <quote>standalone</> parameter (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <function>pg_options_to_table</> return NULL for an option with no
-      value (Tom Lane)
-     </para>
-
-     <para>
-      Previously such cases would result in a server crash.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid possibly accessing off the end of memory in <command>ANALYZE</>
-      and in SJIS-2004 encoding conversion (Noah Misch)
-     </para>
-
-     <para>
-      This fixes some very-low-probability server crash scenarios.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Protect <function>pg_stat_reset_shared()</> against NULL input (Magnus
-      Hagander)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible failure when a recovery conflict deadlock is detected
-      within a sub-transaction (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid spurious conflicts while recycling btree index pages during hot
-      standby (Noah Misch, Simon Riggs)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Shut down WAL receiver if it's still running at end of recovery (Heikki
-      Linnakangas)
-     </para>
-
-     <para>
-      The postmaster formerly panicked in this situation, but it's actually a
-      legitimate case.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix race condition in relcache init file invalidation (Tom Lane)
-     </para>
-
-     <para>
-      There was a window wherein a new backend process could read a stale init
-      file but miss the inval messages that would tell it the data is stale.
-      The result would be bizarre failures in catalog accesses, typically
-      <quote>could not read block 0 in file ...</> later during startup.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix memory leak at end of a GiST index scan (Tom Lane)
-     </para>
-
-     <para>
-      Commands that perform many separate GiST index scans, such as
-      verification of a new GiST-based exclusion constraint on a table
-      already containing many rows, could transiently require large amounts of
-      memory due to this leak.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix memory leak when encoding conversion has to be done on incoming
-      command strings and <command>LISTEN</> is active (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix incorrect memory accounting (leading to possible memory bloat) in
-      tuplestores supporting holdable cursors and plpgsql's <literal>RETURN
-      NEXT</> command (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix trigger <literal>WHEN</> conditions when both <literal>BEFORE</> and
-      <literal>AFTER</> triggers exist (Tom Lane)
-     </para>
-
-     <para>
-      Evaluation of <literal>WHEN</> conditions for <literal>AFTER ROW
-      UPDATE</> triggers could crash if there had been a <literal>BEFORE
-      ROW</> trigger fired for the same update.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix performance problem when constructing a large, lossy bitmap
-      (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix join selectivity estimation for unique columns (Tom Lane)
-     </para>
-
-     <para>
-      This fixes an erroneous planner heuristic that could lead to poor
-      estimates of the result size of a join.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix nested PlaceHolderVar expressions that appear only in sub-select
-      target lists (Tom Lane)
-     </para>
-
-     <para>
-      This mistake could result in outputs of an outer join incorrectly
-      appearing as NULL.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Allow the planner to assume that empty parent tables really are empty
-      (Tom Lane)
-     </para>
-
-     <para>
-      Normally an empty table is assumed to have a certain minimum size for
-      planning purposes; but this heuristic seems to do more harm than good
-      for the parent table of an inheritance hierarchy, which often is
-      permanently empty.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Allow nested <literal>EXISTS</> queries to be optimized properly (Tom
-      Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix array- and path-creating functions to ensure padding bytes are
-      zeroes (Tom Lane)
-     </para>
-
-     <para>
-      This avoids some situations where the planner will think that
-      semantically-equal constants are not equal, resulting in poor
-      optimization.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <command>EXPLAIN</> to handle gating Result nodes within
-      inner-indexscan subplans (Tom Lane)
-     </para>
-
-     <para>
-      The usual symptom of this oversight was <quote>bogus varno</> errors.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix btree preprocessing of <replaceable>indexedcol</> <literal>IS
-      NULL</> conditions (Dean Rasheed)
-     </para>
-
-     <para>
-      Such a condition is unsatisfiable if combined with any other type of
-      btree-indexable condition on the same index column.  The case was
-      handled incorrectly in 9.0.0 and later, leading to query output where
-      there should be none.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Work around gcc 4.6.0 bug that breaks WAL replay (Tom Lane)
-     </para>
-
-     <para>
-      This could lead to loss of committed transactions after a server crash.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix dump bug for <literal>VALUES</> in a view (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Disallow <literal>SELECT FOR UPDATE/SHARE</> on sequences (Tom Lane)
-     </para>
-
-     <para>
-      This operation doesn't work as expected and can lead to failures.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <command>VACUUM</> so that it always updates
-      <literal>pg_class</>.<literal>reltuples</>/<literal>relpages</> (Tom
-      Lane)
-     </para>
-
-     <para>
-      This fixes some scenarios where autovacuum could make increasingly poor
-      decisions about when to vacuum tables.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Defend against integer overflow when computing size of a hash table (Tom
-      Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix cases where <command>CLUSTER</> might attempt to access
-      already-removed TOAST data (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix premature timeout failures during initial authentication transaction
-      (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix portability bugs in use of credentials control messages for
-      <quote>peer</> authentication (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix SSPI login when multiple roundtrips are required (Ahmed Shinwari,
-      Magnus Hagander)
-     </para>
-
-     <para>
-      The typical symptom of this problem was <quote>The function requested is
-      not supported</> errors during SSPI login.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix failure when adding a new variable of a custom variable class to
-      <filename>postgresql.conf</> (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Throw an error if <filename>pg_hba.conf</> contains <literal>hostssl</>
-      but SSL is disabled (Tom Lane)
-     </para>
-
-     <para>
-      This was concluded to be more user-friendly than the previous behavior
-      of silently ignoring such lines.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix failure when <command>DROP OWNED BY</> attempts to remove default
-      privileges on sequences (Shigeru Hanada)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix typo in <function>pg_srand48</> seed initialization (Andres Freund)
-     </para>
-
-     <para>
-      This led to failure to use all bits of the provided seed.  This function
-      is not used on most platforms (only those without <function>srandom</>),
-      and the potential security exposure from a less-random-than-expected
-      seed seems minimal in any case.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid integer overflow when the sum of <literal>LIMIT</> and
-      <literal>OFFSET</> values exceeds 2^63 (Heikki Linnakangas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Add overflow checks to <type>int4</> and <type>int8</> versions of
-      <function>generate_series()</> (Robert Haas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix trailing-zero removal in <function>to_char()</> (Marti Raudsepp)
-     </para>
-
-     <para>
-      In a format with <literal>FM</> and no digit positions
-      after the decimal point, zeroes to the left of the decimal point could
-      be removed incorrectly.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <function>pg_size_pretty()</> to avoid overflow for inputs close to
-      2^63 (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Weaken plpgsql's check for typmod matching in record values (Tom Lane)
-     </para>
-
-     <para>
-      An overly enthusiastic check could lead to discarding length modifiers
-      that should have been kept.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Correctly handle quotes in locale names during <application>initdb</>
-      (Heikki Linnakangas)
-     </para>
-
-     <para>
-      The case can arise with some Windows locales, such as <quote>People's
-      Republic of China</>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      In <application>pg_upgrade</>, avoid dumping orphaned temporary tables
-      (Bruce Momjian)
-     </para>
-
-     <para>
-      This prevents situations wherein table OID assignments could get out of
-      sync between old and new installations.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>pg_upgrade</> to preserve toast tables' relfrozenxids
-      during an upgrade from 8.3 (Bruce Momjian)
-     </para>
-
-     <para>
-      Failure to do this could lead to <filename>pg_clog</> files being
-      removed too soon after the upgrade.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      In <application>pg_upgrade</>, fix the <literal>-l</> (log) option to
-      work on Windows (Bruce Momjian)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      In <application>pg_ctl</>, support silent mode for service registrations
-      on Windows (MauMau)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>psql</>'s counting of script file line numbers during
-      <literal>COPY</> from a different file (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>pg_restore</>'s direct-to-database mode for
-      <varname>standard_conforming_strings</> (Tom Lane)
-     </para>
-
-     <para>
-      <application>pg_restore</> could emit incorrect commands when restoring
-      directly to a database server from an archive file that had been made
-      with <varname>standard_conforming_strings</> set to <literal>on</>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Be more user-friendly about unsupported cases for parallel
-      <application>pg_restore</> (Tom Lane)
-     </para>
-
-     <para>
-      This change ensures that such cases are detected and reported before
-      any restore actions have been taken.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix write-past-buffer-end and memory leak in <application>libpq</>'s
-      LDAP service lookup code (Albe Laurenz)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      In <application>libpq</>, avoid failures when using nonblocking I/O
-      and an SSL connection (Martin Pihlak, Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve libpq's handling of failures during connection startup
-      (Tom Lane)
-     </para>
-
-     <para>
-      In particular, the response to a server report of <function>fork()</>
-      failure during SSL connection startup is now saner.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve <application>libpq</>'s error reporting for SSL failures (Tom
-      Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <function>PQsetvalue()</> to avoid possible crash when adding a new
-      tuple to a <structname>PGresult</> originally obtained from a server
-      query (Andrew Chernow)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <application>ecpglib</> write <type>double</> values with 15 digits
-      precision (Akira Kurosawa)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      In <application>ecpglib</>, be sure <literal>LC_NUMERIC</> setting is
-      restored after an error (Michael Meskes)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Apply upstream fix for blowfish signed-character bug (CVE-2011-2483)
-      (Tom Lane)
-     </para>
-
-     <para>
-      <filename>contrib/pg_crypto</>'s blowfish encryption code could give
-      wrong results on platforms where char is signed (which is most),
-      leading to encrypted passwords being weaker than they should be.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix memory leak in <filename>contrib/seg</> (Heikki Linnakangas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <function>pgstatindex()</> to give consistent results for empty
-      indexes (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Allow building with perl 5.14 (Alex Hunsaker)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix assorted issues with build and install file paths containing spaces
-      (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2011i
-      for DST law changes in Canada, Egypt, Russia, Samoa, and South Sudan.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-9-0-4">
-  <title>Release 9.0.4</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2011-04-18</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 9.0.3.
-   For information about new features in the 9.0 major release, see
-   <xref linkend="release-9-0">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 9.0.4</title>
-
-   <para>
-    A dump/restore is not required for those running 9.0.X.
-   </para>
-
-   <para>
-    However, if your installation was upgraded from a previous major
-    release by running <application>pg_upgrade</>, you should take
-    action to prevent possible data loss due to a now-fixed bug in
-    <application>pg_upgrade</>.  The recommended solution is to run
-    <command>VACUUM FREEZE</> on all TOAST tables.
-    More information is available at <ulink
-    url="http://wiki.postgresql.org/wiki/20110408pg_upgrade_fix">
-    http://wiki.postgresql.org/wiki/20110408pg_upgrade_fix</ulink>.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Fix <application>pg_upgrade</>'s handling of TOAST tables
-      (Bruce Momjian)
-     </para>
-
-     <para>
-      The <structname>pg_class</>.<structfield>relfrozenxid</> value for
-      TOAST tables was not correctly copied into the new installation
-      during <application>pg_upgrade</>.  This could later result in
-      <literal>pg_clog</> files being discarded while they were still
-      needed to validate tuples in the TOAST tables, leading to
-      <quote>could not access status of transaction</> failures.
-     </para>
-
-     <para>
-      This error poses a significant risk of data loss for installations
-      that have been upgraded with <application>pg_upgrade</>.  This patch
-      corrects the problem for future uses of <application>pg_upgrade</>,
-      but does not in itself cure the issue in installations that have been
-      processed with a buggy version of <application>pg_upgrade</>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Suppress incorrect <quote>PD_ALL_VISIBLE flag was incorrectly set</>
-      warning (Heikki Linnakangas)
-     </para>
-
-     <para>
-      <command>VACUUM</> would sometimes issue this warning in cases that
-      are actually valid.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Use better SQLSTATE error codes for hot standby conflict cases
-      (Tatsuo Ishii and Simon Riggs)
-     </para>
-
-     <para>
-      All retryable conflict errors now have an error code that indicates
-      that a retry is possible.  Also, session closure due to the database
-      being dropped on the master is now reported as
-      <literal>ERRCODE_DATABASE_DROPPED</>, rather than
-      <literal>ERRCODE_ADMIN_SHUTDOWN</>, so that connection poolers can
-      handle the situation correctly.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent intermittent hang in interactions of startup process with
-      bgwriter process (Simon Riggs)
-     </para>
-
-     <para>
-      This affected recovery in non-hot-standby cases.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Disallow including a composite type in itself (Tom Lane)
-     </para>
-
-     <para>
-      This prevents scenarios wherein the server could recurse infinitely
-      while processing the composite type.  While there are some possible
-      uses for such a structure, they don't seem compelling enough to
-      justify the effort required to make sure it always works safely.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid potential deadlock during catalog cache initialization
-      (Nikhil Sontakke)
-     </para>
-
-     <para>
-      In some cases the cache loading code would acquire share lock on a
-      system index before locking the index's catalog.  This could deadlock
-      against processes trying to acquire exclusive locks in the other,
-      more standard order.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix dangling-pointer problem in <literal>BEFORE ROW UPDATE</> trigger
-      handling when there was a concurrent update to the target tuple
-      (Tom Lane)
-     </para>
-
-     <para>
-      This bug has been observed to result in intermittent <quote>cannot
-      extract system attribute from virtual tuple</> failures while trying to
-      do <literal>UPDATE RETURNING ctid</>.  There is a very small probability
-      of more serious errors, such as generating incorrect index entries for
-      the updated tuple.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Disallow <command>DROP TABLE</> when there are pending deferred trigger
-      events for the table (Tom Lane)
-     </para>
-
-     <para>
-      Formerly the <command>DROP</> would go through, leading to
-      <quote>could not open relation with OID nnn</> errors when the
-      triggers were eventually fired.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Allow <quote>replication</> as a user name in
-      <filename>pg_hba.conf</> (Andrew Dunstan)
-     </para>
-
-     <para>
-      <quote>replication</> is special in the database name column, but it
-      was mistakenly also treated as special in the user name column.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent crash triggered by constant-false WHERE conditions during
-      GEQO optimization (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve planner's handling of semi-join and anti-join cases
-      (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix handling of <literal>SELECT FOR UPDATE</> in a sub-SELECT
-      (Tom Lane)
-     </para>
-
-     <para>
-      This bug typically led to <quote>cannot extract system attribute from
-      virtual tuple</> errors.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix selectivity estimation for text search to account for NULLs
-      (Jesper Krogh)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix get_actual_variable_range() to support hypothetical indexes
-      injected by an index adviser plugin (Gurjeet Singh)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix PL/Python memory leak involving array slices (Daniel Popowich)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Allow <application>libpq</>'s SSL initialization to succeed when
-      user's home directory is unavailable (Tom Lane)
-     </para>
-
-     <para>
-      If the SSL mode is such that a root certificate file is not required,
-      there is no need to fail.  This change restores the behavior to what
-      it was in pre-9.0 releases.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>libpq</> to return a useful error message for errors
-      detected in <function>conninfo_array_parse</> (Joseph Adams)
-     </para>
-
-     <para>
-      A typo caused the library to return NULL, rather than the
-      <structname>PGconn</> structure containing the error message, to the
-      application.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>ecpg</> preprocessor's handling of float constants
-      (Heikki Linnakangas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix parallel <application>pg_restore</> to handle comments on
-      POST_DATA items correctly (Arnd Hannemann)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>pg_restore</> to cope with long lines (over 1KB) in
-      TOC files (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Put in more safeguards against crashing due to division-by-zero
-      with overly enthusiastic compiler optimization (Aurelien Jarno)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Support use of dlopen() in FreeBSD and OpenBSD on MIPS (Tom Lane)
-     </para>
-
-     <para>
-      There was a hard-wired assumption that this system function was not
-      available on MIPS hardware on these systems.  Use a compile-time test
-      instead, since more recent versions have it.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix compilation failures on HP-UX (Heikki Linnakangas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid crash when trying to write to the Windows console very early
-      in process startup (Rushabh Lathia)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Support building with MinGW 64 bit compiler for Windows
-      (Andrew Dunstan)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix version-incompatibility problem with <application>libintl</> on
-      Windows (Hiroshi Inoue)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix usage of <application>xcopy</> in Windows build scripts to
-      work correctly under Windows 7 (Andrew Dunstan)
-     </para>
-
-     <para>
-      This affects the build scripts only, not installation or usage.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix path separator used by <application>pg_regress</> on Cygwin
-      (Andrew Dunstan)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2011f
-      for DST law changes in Chile, Cuba, Falkland Islands, Morocco, Samoa,
-      and Turkey; also historical corrections for South Australia, Alaska,
-      and Hawaii.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-9-0-3">
-  <title>Release 9.0.3</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2011-01-31</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 9.0.2.
-   For information about new features in the 9.0 major release, see
-   <xref linkend="release-9-0">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 9.0.3</title>
-
-   <para>
-    A dump/restore is not required for those running 9.0.X.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Before exiting <application>walreceiver</>, ensure all the received WAL
-      is fsync'd to disk (Heikki Linnakangas)
-     </para>
-
-     <para>
-      Otherwise the standby server could replay some un-synced WAL, conceivably
-      leading to data corruption if the system crashes just at that point.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid excess fsync activity in <application>walreceiver</>
-      (Heikki Linnakangas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <command>ALTER TABLE</> revalidate uniqueness and exclusion
-      constraints when needed (Noah Misch)
-     </para>
-
-     <para>
-      This was broken in 9.0 by a change that was intended to suppress
-      revalidation during <command>VACUUM FULL</> and <command>CLUSTER</>,
-      but unintentionally affected <command>ALTER TABLE</> as well.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix EvalPlanQual for <command>UPDATE</> of an inheritance tree in which
-      the tables are not all alike (Tom Lane)
-     </para>
-
-     <para>
-      Any variation in the table row types (including dropped columns present
-      in only some child tables) would confuse the EvalPlanQual code, leading
-      to misbehavior or even crashes.  Since EvalPlanQual is only executed
-      during concurrent updates to the same row, the problem was only seen
-      intermittently.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid failures when <command>EXPLAIN</> tries to display a simple-form
-      <literal>CASE</> expression (Tom Lane)
-     </para>
-
-     <para>
-      If the <literal>CASE</>'s test expression was a constant, the planner
-      could simplify the <literal>CASE</> into a form that confused the
-      expression-display code, resulting in <quote>unexpected CASE WHEN
-      clause</> errors.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix assignment to an array slice that is before the existing range
-      of subscripts (Tom Lane)
-     </para>
-
-     <para>
-      If there was a gap between the newly added subscripts and the first
-      pre-existing subscript, the code miscalculated how many entries needed
-      to be copied from the old array's null bitmap, potentially leading to
-      data corruption or crash.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid unexpected conversion overflow in planner for very distant date
-      values (Tom Lane)
-     </para>
-
-     <para>
-      The <type>date</> type supports a wider range of dates than can be
-      represented by the <type>timestamp</> types, but the planner assumed it
-      could always convert a date to timestamp with impunity.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix PL/Python crash when an array contains null entries (Alex Hunsaker)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Remove <application>ecpg</>'s fixed length limit for constants defining
-      an array dimension (Michael Meskes)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix erroneous parsing of <type>tsquery</> values containing
-      <literal>... &amp; !(subexpression) | ...</literal> (Tom Lane)
-     </para>
-
-     <para>
-      Queries containing this combination of operators were not executed
-      correctly.  The same error existed in <filename>contrib/intarray</>'s
-      <type>query_int</> type and <filename>contrib/ltree</>'s
-      <type>ltxtquery</> type.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix buffer overrun in <filename>contrib/intarray</>'s input function
-      for the <type>query_int</> type (Apple)
-     </para>
-
-     <para>
-      This bug is a security risk since the function's return address could
-      be overwritten.  Thanks to Apple Inc's security team for reporting this
-      issue and supplying the fix.  (CVE-2010-4015)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix bug in <filename>contrib/seg</>'s GiST picksplit algorithm
-      (Alexander Korotkov)
-     </para>
-
-     <para>
-      This could result in considerable inefficiency, though not actually
-      incorrect answers, in a GiST index on a <type>seg</> column.
-      If you have such an index, consider <command>REINDEX</>ing it after
-      installing this update.  (This is identical to the bug that was fixed in
-      <filename>contrib/cube</> in the previous update.)
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-9-0-2">
-  <title>Release 9.0.2</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2010-12-16</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 9.0.1.
-   For information about new features in the 9.0 major release, see
-   <xref linkend="release-9-0">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 9.0.2</title>
-
-   <para>
-    A dump/restore is not required for those running 9.0.X.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Force the default
-      <link linkend="guc-wal-sync-method"><varname>wal_sync_method</></link>
-      to be <literal>fdatasync</> on Linux (Tom Lane, Marti Raudsepp)
-     </para>
-
-     <para>
-      The default on Linux has actually been <literal>fdatasync</> for many
-      years, but recent kernel changes caused <productname>PostgreSQL</> to
-      choose <literal>open_datasync</> instead.  This choice did not result
-      in any performance improvement, and caused outright failures on
-      certain filesystems, notably <literal>ext4</> with the
-      <literal>data=journal</> mount option.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <quote>too many KnownAssignedXids</> error during Hot Standby
-      replay (Heikki Linnakangas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix race condition in lock acquisition during Hot Standby (Simon Riggs)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid unnecessary conflicts during Hot Standby (Simon Riggs)
-     </para>
-
-     <para>
-      This fixes some cases where replay was considered to conflict with
-      standby queries (causing delay of replay or possibly cancellation of
-      the queries), but there was no real conflict.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix assorted bugs in WAL replay logic for GIN indexes (Tom Lane)
-     </para>
-
-     <para>
-      This could result in <quote>bad buffer id: 0</> failures or
-      corruption of index contents during replication.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix recovery from base backup when the starting checkpoint WAL record
-      is not in the same WAL segment as its redo point (Jeff Davis)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix corner-case bug when streaming replication is enabled immediately
-      after creating the master database cluster (Heikki Linnakangas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix persistent slowdown of autovacuum workers when multiple workers
-      remain active for a long time (Tom Lane)
-     </para>
-
-     <para>
-      The effective <varname>vacuum_cost_limit</> for an autovacuum worker
-      could drop to nearly zero if it processed enough tables, causing it
-      to run extremely slowly.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix long-term memory leak in autovacuum launcher (Alvaro Herrera)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid failure when trying to report an impending transaction
-      wraparound condition from outside a transaction (Tom Lane)
-     </para>
-
-     <para>
-      This oversight prevented recovery after transaction wraparound got
-      too close, because database startup processing would fail.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Add support for detecting register-stack overrun on <literal>IA64</>
-      (Tom Lane)
-     </para>
-
-     <para>
-      The <literal>IA64</> architecture has two hardware stacks.  Full
-      prevention of stack-overrun failures requires checking both.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Add a check for stack overflow in <function>copyObject()</> (Tom Lane)
-     </para>
-
-     <para>
-      Certain code paths could crash due to stack overflow given a
-      sufficiently complex query.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix detection of page splits in temporary GiST indexes (Heikki
-      Linnakangas)
-     </para>
-
-     <para>
-      It is possible to have a <quote>concurrent</> page split in a
-      temporary index, if for example there is an open cursor scanning the
-      index when an insertion is done.  GiST failed to detect this case and
-      hence could deliver wrong results when execution of the cursor
-      continued.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix error checking during early connection processing (Tom Lane)
-     </para>
-
-     <para>
-      The check for too many child processes was skipped in some cases,
-      possibly leading to postmaster crash when attempting to add the new
-      child process to fixed-size arrays.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve efficiency of window functions (Tom Lane)
-     </para>
-
-     <para>
-      Certain cases where a large number of tuples needed to be read in
-      advance, but <varname>work_mem</> was large enough to allow them all
-      to be held in memory, were unexpectedly slow.
-      <function>percent_rank()</>, <function>cume_dist()</> and
-      <function>ntile()</> in particular were subject to this problem.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid memory leakage while <command>ANALYZE</>'ing complex index
-      expressions (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure an index that uses a whole-row Var still depends on its table
-      (Tom Lane)
-     </para>
-
-     <para>
-      An index declared like <literal>create index i on t (foo(t.*))</>
-      would not automatically get dropped when its table was dropped.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Add missing support in <command>DROP OWNED BY</> for removing foreign
-      data wrapper/server privileges belonging to a user (Heikki Linnakangas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Do not <quote>inline</> a SQL function with multiple <literal>OUT</>
-      parameters (Tom Lane)
-     </para>
-
-     <para>
-      This avoids a possible crash due to loss of information about the
-      expected result rowtype.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix crash when inline-ing a set-returning function whose argument list
-      contains a reference to an inline-able user function (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Behave correctly if <literal>ORDER BY</>, <literal>LIMIT</>,
-      <literal>FOR UPDATE</>, or <literal>WITH</> is attached to the
-      <literal>VALUES</> part of <literal>INSERT ... VALUES</> (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make the <literal>OFF</> keyword unreserved (Heikki Linnakangas)
-     </para>
-
-     <para>
-      This prevents problems with using <literal>off</> as a variable name in
-      <application>PL/pgSQL</>.  That worked before 9.0, but was now broken
-      because <application>PL/pgSQL</> now treats all core reserved words
-      as reserved.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix constant-folding of <literal>COALESCE()</> expressions (Tom Lane)
-     </para>
-
-     <para>
-      The planner would sometimes attempt to evaluate sub-expressions that
-      in fact could never be reached, possibly leading to unexpected errors.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <quote>could not find pathkey item to sort</> planner failure
-      with comparison of whole-row Vars (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix postmaster crash when connection acceptance
-      (<function>accept()</> or one of the calls made immediately after it)
-      fails, and the postmaster was compiled with GSSAPI support (Alexander
-      Chernikov)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Retry after receiving an invalid response packet from a RADIUS
-      authentication server (Magnus Hagander)
-     </para>
-
-     <para>
-      This fixes a low-risk potential denial of service condition.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix missed unlink of temporary files when <varname>log_temp_files</>
-      is active (Tom Lane)
-     </para>
-
-     <para>
-      If an error occurred while attempting to emit the log message, the
-      unlink was not done, resulting in accumulation of temp files.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Add print functionality for <structname>InhRelation</> nodes (Tom Lane)
-     </para>
-
-     <para>
-      This avoids a failure when <varname>debug_print_parse</> is enabled
-      and certain types of query are executed.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix incorrect calculation of distance from a point to a horizontal
-      line segment (Tom Lane)
-     </para>
-
-     <para>
-      This bug affected several different geometric distance-measurement
-      operators.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix incorrect calculation of transaction status in
-      <application>ecpg</> (Itagaki Takahiro)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix errors in <application>psql</>'s Unicode-escape support (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Speed up parallel <application>pg_restore</> when the archive
-      contains many large objects (blobs) (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>PL/pgSQL</>'s handling of <quote>simple</>
-      expressions to not fail in recursion or error-recovery cases (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>PL/pgSQL</>'s error reporting for no-such-column
-      cases (Tom Lane)
-     </para>
-
-     <para>
-      As of 9.0, it would sometimes report <quote>missing FROM-clause entry
-      for table foo</> when <quote>record foo has no field bar</> would be
-      more appropriate.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>PL/Python</> to honor typmod (i.e., length or
-      precision restrictions) when assigning to tuple fields (Tom Lane)
-     </para>
-
-     <para>
-      This fixes a regression from 8.4.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>PL/Python</>'s handling of set-returning functions
-      (Jan Urbanski)
-     </para>
-
-     <para>
-      Attempts to call SPI functions within the iterator generating a set
-      result would fail.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix bug in <filename>contrib/cube</>'s GiST picksplit algorithm
-      (Alexander Korotkov)
-     </para>
-
-     <para>
-      This could result in considerable inefficiency, though not actually
-      incorrect answers, in a GiST index on a <type>cube</> column.
-      If you have such an index, consider <command>REINDEX</>ing it after
-      installing this update.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Don't emit <quote>identifier will be truncated</> notices in
-      <filename>contrib/dblink</> except when creating new connections
-      (Itagaki Takahiro)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix potential coredump on missing public key in
-      <filename>contrib/pgcrypto</> (Marti Raudsepp)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix buffer overrun in <filename>contrib/pg_upgrade</> (Hernan Gonzalez)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix memory leak in <filename>contrib/xml2</>'s XPath query functions
-      (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2010o
-      for DST law changes in Fiji and Samoa;
-      also historical corrections for Hong Kong.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-9-0-1">
-  <title>Release 9.0.1</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2010-10-04</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 9.0.0.
-   For information about new features in the 9.0 major release, see
-   <xref linkend="release-9-0">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 9.0.1</title>
-
-   <para>
-    A dump/restore is not required for those running 9.0.X.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Use a separate interpreter for each calling SQL userid in PL/Perl and
-      PL/Tcl (Tom Lane)
-     </para>
-
-     <para>
-      This change prevents security problems that can be caused by subverting
-      Perl or Tcl code that will be executed later in the same session under
-      another SQL user identity (for example, within a <literal>SECURITY
-      DEFINER</> function).  Most scripting languages offer numerous ways that
-      that might be done, such as redefining standard functions or operators
-      called by the target function.  Without this change, any SQL user with
-      Perl or Tcl language usage rights can do essentially anything with the
-      SQL privileges of the target function's owner.
-     </para>
-
-     <para>
-      The cost of this change is that intentional communication among Perl
-      and Tcl functions becomes more difficult.  To provide an escape hatch,
-      PL/PerlU and PL/TclU functions continue to use only one interpreter
-      per session.  This is not considered a security issue since all such
-      functions execute at the trust level of a database superuser already.
-     </para>
-
-     <para>
-      It is likely that third-party procedural languages that claim to offer
-      trusted execution have similar security issues.  We advise contacting
-      the authors of any PL you are depending on for security-critical
-      purposes.
-     </para>
-
-     <para>
-      Our thanks to Tim Bunce for pointing out this issue (CVE-2010-3433).
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve <function>pg_get_expr()</> security fix so that the function
-      can still be used on the output of a sub-select (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix incorrect placement of placeholder evaluation (Tom Lane)
-     </para>
-
-     <para>
-      This bug could result in query outputs being non-null when they
-      should be null, in cases where the inner side of an outer join
-      is a sub-select with non-strict expressions in its output list.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix join removal's handling of placeholder expressions (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible duplicate scans of <literal>UNION ALL</> member relations
-      (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent infinite loop in ProcessIncomingNotify() after unlistening
-      (Jeff Davis)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent show_session_authorization() from crashing within autovacuum
-      processes (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Re-allow input of Julian dates prior to 0001-01-01 AD (Tom Lane)
-     </para>
-
-     <para>
-      Input such as <literal>'J100000'::date</> worked before 8.4,
-      but was unintentionally broken by added error-checking.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make psql recognize <command>DISCARD ALL</> as a command that should
-      not be encased in a transaction block in autocommit-off mode
-      (Itagaki Takahiro)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update build infrastructure and documentation to reflect the source code
-      repository's move from CVS to Git (Magnus Hagander and others)
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-9-0">
-  <title>Release 9.0</title>
-
-  <formalpara>
-   <title>Release date:</title>
-   <para>2010-09-20</para>
-  </formalpara>
-
-  <sect2>
-   <title>Overview</title>
-
-   <para>
-    This release of
-    <productname>PostgreSQL</> adds features that have been requested
-    for years, such as easy-to-use replication, a mass permission-changing
-    facility, and anonymous code blocks. While past major releases have
-    been conservative in their scope, this release shows a
-    bold new desire to provide facilities that new and existing
-    users of <productname>PostgreSQL</> will embrace. This has all
-    been done with few incompatibilities. Major enhancements include:
-   </para>
-
-   <itemizedlist>
-
-    <!-- This list duplicates items below, but without authors or details-->
-
-    <listitem>
-
-     <para>
-      Built-in replication based on log shipping.  This advance consists of
-      two features: Streaming Replication, allowing continuous archive
-      (<acronym>WAL</>) files to be streamed over a network connection to a
-      standby server, and Hot Standby, allowing continuous archive standby
-      servers to execute read-only queries.  The net effect is to support a
-      single master with multiple read-only slave servers.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Easier database object permissions management. <link
-      linkend="SQL-GRANT"><command>GRANT</>/<command>REVOKE IN
-      SCHEMA</></link> supports mass permissions changes on existing objects,
-      while <link linkend="SQL-ALTERDEFAULTPRIVILEGES"><command>ALTER DEFAULT
-      PRIVILEGES</></link> allows control of privileges for objects created in
-      the future.  Large objects (BLOBs) now support permissions management as
-      well.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Broadly enhanced stored procedure support.
-      The <link linkend="SQL-DO"><command>DO</></link> statement supports
-      ad-hoc or <quote>anonymous</> code blocks.
-      Functions can now be called using named parameters.
-      <link linkend="plpgsql">PL/pgSQL</link> is now installed by default, and
-      <link linkend="plperl">PL/Perl</link> and <link
-      linkend="plpython">PL/Python</link> have been enhanced in several ways,
-      including support for Python3.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Full support for <link linkend="install-windows">64-bit
-      <productname>Windows</></link>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      More advanced reporting queries, including additional windowing options
-      (<literal>PRECEDING</> and <literal>FOLLOWING</>) and the ability to
-      control the order in which values are fed to aggregate functions.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      New trigger features, including
-      SQL-standard-compliant <link
-      linkend="SQL-CREATETRIGGER">per-column triggers</link> and
-      conditional trigger execution.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      <link linkend="SQL-CREATETABLE-compatibility">Deferrable
-      unique constraints</link>. Mass updates to unique keys are now possible
-      without trickery.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      <link linkend="ddl-constraints-exclusion">Exclusion constraints</link>.
-      These provide a generalized version of unique constraints, allowing
-      enforcement of complex conditions.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      New and enhanced security features, including RADIUS authentication,
-      LDAP authentication improvements, and a new contrib module
-      <link linkend="passwordcheck"><filename>passwordcheck</></link>
-      for testing password strength.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      New high-performance implementation of the
-      <link linkend="SQL-LISTEN"><command>LISTEN</></link>/<link
-      linkend="SQL-NOTIFY"><command>NOTIFY</></link> feature.
-      Pending events are now stored in a memory-based queue rather than
-      a table.  Also, a <quote>payload</> string can be sent with each
-      event, rather than transmitting just an event name as before.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      New implementation of
-      <link linkend="SQL-VACUUM"><command>VACUUM FULL</></link>.
-      This command now rewrites the entire table and indexes, rather than
-      moving individual rows to compact space.  It is substantially faster
-      in most cases, and no longer results in index bloat.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      New contrib module
-      <link linkend="pgupgrade"><filename>pg_upgrade</></link>
-      to support in-place upgrades from 8.3 or 8.4 to 9.0.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Multiple performance enhancements for specific types of queries,
-      including elimination of unnecessary joins.  This helps optimize some
-      automatically-generated queries, such as those produced by
-      object-relational mappers (ORMs).
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      <link linkend="SQL-EXPLAIN "><command>EXPLAIN</></link> enhancements.
-      The output is now available in JSON, XML, or YAML format, and includes
-      buffer utilization and other data not previously available.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      <link linkend="hstore"><filename>hstore</></link> improvements,
-      including new functions and greater data capacity.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-   <para>
-    The above items are explained in more detail in the sections below.
-   </para>
-
-  </sect2>
-
-  <sect2>
-
-  <title>Migration to Version 9.0</title>
-
-  <para>
-   A dump/restore using <application>pg_dump</application>,
-   or use of <application>pg_upgrade</application>, is required
-   for those wishing to migrate data from any previous
-   release.
-  </para>
-
-  <para>
-   Version 9.0 contains a number of changes that selectively break backwards
-   compatibility in order to support new features and code quality
-   improvements.  In particular, users who make extensive use of PL/pgSQL,
-   Point-In-Time Recovery (PITR), or Warm Standby should test their
-   applications because of slight user-visible changes in those areas.
-   Observe the following incompatibilities:
-  </para>
-
-  <sect3>
-   <title>Server Settings</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Remove server parameter <varname>add_missing_from</>, which was
-      defaulted to off for many years (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Remove server parameter <varname>regex_flavor</>, which
-      was defaulted to <link
-      linkend="posix-syntax-details"><literal>advanced</></link>
-      for many years (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      <link linkend="guc-archive-mode"><varname>archive_mode</></link>
-      now only affects <link
-      linkend="guc-archive-command"><varname>archive_command</></link>;
-      a new setting, <link
-      linkend="guc-wal-level"><varname>wal_level</></link>, affects
-      the contents of the write-ahead log (Heikki Linnakangas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      <link linkend="guc-log-temp-files"><varname>log_temp_files</></link>
-      now uses default file size units of kilobytes (Robert Haas)
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect3>
-
-  <sect3>
-   <title>Queries</title>
-
-   <itemizedlist>
-
-   <listitem>
-    <para>
-     When querying a <link linkend="ddl-inherit">parent table</link>,
-     do not do any separate permission checks on child tables
-     scanned as part of the query (Peter Eisentraut)
-    </para>
-
-    <para>
-     The SQL standard specifies this behavior, and it is also much more
-     convenient in practice than the former behavior of checking permissions
-     on each child as well as the parent.
-    </para>
-   </listitem>
-
-   </itemizedlist>
-
-  </sect3>
-
-  <sect3>
-   <title>Data Types</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      <link linkend="datatype-binary"><type>bytea</></link> output now
-      appears in hex format by default (Peter Eisentraut)
-     </para>
-
-     <para>
-      The server parameter <link
-      linkend="guc-bytea-output"><varname>bytea_output</></link> can be
-      used to select the traditional output format if needed for
-      compatibility.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Array input now considers only plain ASCII whitespace characters
-      to be potentially ignorable; it will never ignore non-ASCII characters,
-      even if they are whitespace according to some locales (Tom Lane)
-     </para>
-
-     <para>
-      This avoids some corner cases where array values could be interpreted
-      differently depending on the server's locale settings.
-     </para>
-    </listitem>
-
-   <listitem>
-    <para>
-     Improve standards compliance of <link
-     linkend="functions-similarto-regexp"><literal>SIMILAR TO</></link>
-     patterns and SQL-style <function>substring()</> patterns (Tom Lane)
-    </para>
-
-    <para>
-     This includes treating <literal>?</> and <literal>{...}</> as
-     pattern metacharacters, while they were simple literal characters
-     before; that corresponds to new features added in SQL:2008.
-     Also, <literal>^</> and <literal>$</> are now treated as simple
-     literal characters; formerly they were treated as metacharacters,
-     as if the pattern were following POSIX rather than SQL rules.
-     Also, in SQL-standard <function>substring()</>, use of parentheses
-     for nesting no longer interferes with capturing of a substring.
-     Also, processing of bracket expressions (character classes) is
-     now more standards-compliant.
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>
-     Reject negative length values in 3-parameter <link
-     linkend="functions-string-sql"><function>substring()</></link>
-     for bit strings, per the SQL standard (Tom Lane)
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>
-     Make <function>date_trunc</> truncate rather than round when reducing
-     precision of fractional seconds (Tom Lane)
-    </para>
-
-    <para>
-     The code always acted this way for integer-based dates/times.
-     Now float-based dates/times behave similarly.
-    </para>
-   </listitem>
-
-  </itemizedlist>
-
-  </sect3>
-
-  <sect3>
-   <title>Object Renaming</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Tighten enforcement of column name consistency during <command>RENAME</>
-      when a child table inherits the same column from multiple unrelated
-      parents (KaiGai Kohei)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      No longer automatically rename indexes and index columns when the
-      underlying table columns are renamed (Tom Lane)
-     </para>
-
-     <para>
-      Administrators can still rename such indexes and columns manually.
-      This change will require an update of the JDBC driver, and possibly other
-      drivers, so that unique indexes are correctly recognized after a rename.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      <command>CREATE OR REPLACE FUNCTION</command> can no longer change
-      the declared names of function parameters (Pavel Stehule)
-     </para>
-
-     <para>
-      In order to avoid creating ambiguity in named-parameter calls, it is
-      no longer allowed to change the aliases for input parameters
-      in the declaration of an existing function (although names can still
-      be assigned to previously unnamed parameters).  You now have to
-      <command>DROP</command> and recreate the function to do that.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect3>
-
-  <sect3>
-   <title>PL/pgSQL</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      PL/pgSQL now throws an error if a variable name conflicts with a
-      column name used in a query (Tom Lane)
-     </para>
-
-     <para>
-      The former behavior was to bind ambiguous names to PL/pgSQL variables
-      in preference to query columns, which often resulted in surprising
-      misbehavior. Throwing an error allows easy detection of ambiguous
-      situations.  Although it's recommended that functions encountering this
-      type of error be modified to remove the conflict, the old behavior can
-      be restored if necessary via the configuration parameter <link
-      linkend="plpgsql-var-subst"><varname>plpgsql.variable_conflict</></link>,
-      or via the per-function option <literal>#variable_conflict</>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      PL/pgSQL no longer allows variable names that match certain SQL
-      reserved words (Tom Lane)
-     </para>
-
-     <para>
-      This is a consequence of aligning the PL/pgSQL parser to match the
-      core SQL parser more closely.  If necessary,
-      variable names can be double-quoted to avoid this restriction.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      PL/pgSQL now requires columns of composite results to match the
-      expected type modifier as well as base type (Pavel Stehule, Tom Lane)
-     </para>
-
-     <para>
-      For example, if a column of the result type is declared as
-      <literal>NUMERIC(30,2)</>, it is no longer acceptable to return a
-      <literal>NUMERIC</> of some other precision in that column.  Previous
-      versions neglected to check the type modifier and would thus allow
-      result rows that didn't actually conform to the declared restrictions.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      PL/pgSQL now treats selection into composite fields more consistently
-      (Tom Lane)
-     </para>
-
-     <para>
-      Formerly, a statement like
-      <literal>SELECT ... INTO <replaceable>rec</>.<replaceable>fld</> FROM ...</literal>
-      was treated as a scalar assignment even if the record field
-      <replaceable>fld</> was of composite type.  Now it is treated as a
-      record assignment, the same as when the <literal>INTO</> target is a
-      regular variable of composite type.  So the values to be assigned to the
-      field's subfields should be written as separate columns of the
-      <command>SELECT</> list, not as a <literal>ROW(...)</> construct as in
-      previous versions.
-     </para>
-
-     <para>
-      If you need to do this in a way that will work in both 9.0 and previous
-      releases, you can write something like
-      <literal><replaceable>rec</>.<replaceable>fld</> := ROW(...) FROM ...</literal>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Remove PL/pgSQL's <literal>RENAME</> declaration (Tom Lane)
-     </para>
-
-     <para>
-      Instead of <literal>RENAME</>, use <link
-      linkend="plpgsql-declaration-alias"><literal>ALIAS</></link>,
-      which can now create an alias for any variable, not only dollar sign
-      parameter names (such as <literal>$1</>) as before.
-     </para>
-    </listitem>
-   </itemizedlist>
-
-  </sect3>
-
-  <sect3>
-   <title>Other Incompatibilities</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Deprecate use of <literal>=&gt;</> as an operator name (Robert Haas)
-     </para>
-
-     <para>
-      Future versions of <productname>PostgreSQL</> will probably reject
-      this operator name entirely, in order to support the SQL-standard
-      notation for named function parameters.  For the moment, it is
-      still allowed, but a warning is emitted when such an operator is
-      defined.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Remove support for platforms that don't have a working 64-bit
-      integer data type (Tom Lane)
-     </para>
-
-     <para>
-      It is believed all still-supported platforms have working 64-bit
-      integer data types.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-  </sect3>
- </sect2>
-
- <sect2>
-  <title>Changes</title>
-   <para>
-    Version 9.0 has an unprecedented number of new major features,
-    and over 200 enhancements, improvements, new commands,
-    new functions, and other changes.
-   </para>
-
-  <sect3>
-   <title>Server</title>
-
-   <sect4>
-    <title>Continuous Archiving and Streaming Replication</title>
-
-    <para>
-     PostgreSQL's existing standby-server capability has been expanded both to
-     support read-only queries on standby servers and to greatly reduce
-     the lag between master and standby servers.  For many users, this
-     will be a useful and low-administration form of replication, either
-     for high availability or for horizontal scalability.
-    </para>
-
-    <itemizedlist>
-     <listitem>
-      <para>
-       Allow a standby server to accept read-only queries
-       (Simon Riggs, Heikki Linnakangas)
-      </para>
-
-      <para>
-       This feature is called Hot Standby. There are new
-       <filename>postgresql.conf</> and <filename>recovery.conf</>
-       settings to control this feature, as well as extensive
-       <link linkend="hot-standby">documentation</link>.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow write-ahead log (<acronym>WAL</>) data to be streamed to a
-       standby server (Fujii Masao, Heikki Linnakangas)
-      </para>
-
-      <para>
-       This feature is called Streaming Replication.
-       Previously <acronym>WAL</> data could be sent to standby servers only
-       in units of entire <acronym>WAL</> files (normally 16 megabytes each).
-       Streaming Replication eliminates this inefficiency and allows updates
-       on the master to be propagated to standby servers with very little
-       delay.  There are new <filename>postgresql.conf</> and
-       <filename>recovery.conf</> settings to control this feature, as well as
-       extensive <link linkend="streaming-replication">documentation</link>.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <link
-       linkend="functions-recovery-info-table"><function>pg_last_xlog_receive_location()</></link>
-       and <function>pg_last_xlog_replay_location()</>, which
-       can be used to monitor standby server <acronym>WAL</>
-       activity (Simon Riggs, Fujii Masao, Heikki Linnakangas)
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect4>
-
-   <sect4>
-    <title>Performance</title>
-
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Allow per-tablespace values to be set for sequential and random page
-       cost estimates (<varname>seq_page_cost</>/<varname>random_page_cost</>)
-       via <link linkend="SQL-ALTERTABLESPACE"><command>ALTER TABLESPACE
-       ... SET/RESET</></link> (Robert Haas)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Improve performance and reliability of EvalPlanQual rechecks in join
-       queries (Tom Lane)
-      </para>
-
-      <para>
-       <command>UPDATE</>, <command>DELETE</>, and <command>SELECT FOR
-       UPDATE/SHARE</> queries that involve joins will now behave much better
-       when encountering freshly-updated rows.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Improve performance of <link
-       linkend="SQL-TRUNCATE"><command>TRUNCATE</></link> when
-       the table was created or truncated earlier in the same transaction
-       (Tom Lane)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Improve performance of finding inheritance child tables (Tom Lane)
-      </para>
-     </listitem>
-
-     </itemizedlist>
-
-   </sect4>
-
-   <sect4>
-    <title>Optimizer</title>
-
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Remove unnecessary <link linkend="queries-join">outer
-       joins</link> (Robert Haas)
-      </para>
-
-      <para>
-       Outer joins where the inner side is unique and not referenced above
-       the join are unnecessary and are therefore now removed.  This will
-       accelerate many automatically generated queries, such as those created
-       by object-relational mappers (ORMs).
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow <literal>IS NOT NULL</> restrictions to use indexes (Tom Lane)
-      </para>
-
-      <para>
-       This is particularly useful for finding
-       <function>MAX()</>/<function>MIN()</> values in indexes that
-       contain many null values.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Improve the optimizer's choices about when to use materialize nodes,
-       and when to use sorting versus hashing for <literal>DISTINCT</>
-       (Tom Lane)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Improve the optimizer's equivalence detection for expressions involving
-       <type>boolean</> <literal>&lt;&gt;</> operators (Tom Lane)
-      </para>
-     </listitem>
-    </itemizedlist>
-   </sect4>
-
-   <sect4>
-    <title><link linkend="geqo">GEQO</link></title>
-
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Use the same random seed every time GEQO plans a query (Andres
-       Freund)
-      </para>
-
-      <para>
-       While the Genetic Query Optimizer (GEQO) still selects
-       random plans, it now always selects the same random plans for identical
-       queries, thus giving more consistent performance. You can modify <link
-       linkend="guc-geqo-seed"><varname>geqo_seed</></link> to experiment with
-       alternative plans.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Improve GEQO plan selection (Tom Lane)
-      </para>
-
-      <para>
-       This avoids the rare error <quote>failed to make a valid plan</>,
-       and should also improve planning speed.
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect4>
-
-   <sect4>
-    <title>Optimizer Statistics</title>
-
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Improve <link linkend="SQL-ANALYZE"><command>ANALYZE</></link>
-       to support inheritance-tree statistics (Tom Lane)
-      </para>
-
-      <para>
-       This is particularly useful for partitioned tables.  However,
-       autovacuum does not yet automatically re-analyze parent tables
-       when child tables change.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Improve <link linkend="routine-vacuuming">autovacuum</link>'s
-       detection of when re-analyze is necessary (Tom Lane)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Improve optimizer's estimation for greater/less-than comparisons
-       (Tom Lane)
-      </para>
-
-      <para>
-       When looking up statistics for greater/less-than comparisons,
-       if the comparison value is in the first or last histogram bucket,
-       use an index (if available) to fetch the current actual column
-       minimum or maximum.  This greatly improves the accuracy of estimates
-       for comparison values near the ends of the data range, particularly
-       if the range is constantly changing due to addition of new data.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow setting of number-of-distinct-values statistics using <link
-       linkend="SQL-ALTERTABLE"><command>ALTER TABLE</></link>
-       (Robert Haas)
-      </para>
-
-      <para>
-       This allows users to override the estimated number or percentage of
-       distinct values for a column. This statistic is normally computed by
-       <command>ANALYZE</>, but the estimate can be poor, especially on tables
-       with very large numbers of rows.
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect4>
-
-   <sect4>
-    <title>Authentication</title>
-
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Add support for <link
-       linkend="auth-radius"><acronym>RADIUS</></link> (Remote
-       Authentication Dial In User Service) authentication
-       (Magnus Hagander)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow <link linkend="auth-ldap"><acronym>LDAP</></link>
-       (Lightweight Directory Access Protocol) authentication
-       to operate in <quote>search/bind</> mode
-       (Robert Fleming, Magnus Hagander)
-      </para>
-
-      <para>
-       This allows the user to be looked up first, then the system uses
-       the <acronym>DN</> (Distinguished Name) returned for that user.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <link
-       linkend="auth-pg-hba-conf"><literal>samehost</></link>
-       and <literal>samenet</> designations to
-       <filename>pg_hba.conf</> (Stef Walter)
-      </para>
-
-      <para>
-       These match the server's <acronym>IP</> address and subnet address
-       respectively.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Pass trusted SSL root certificate names to the client so the client
-       can return an appropriate client certificate (Craig Ringer)
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect4>
-
-   <sect4>
-    <title>Monitoring</title>
-
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Add the ability for clients to set an <link
-       linkend="libpq-connect-application-name">application
-       name</link>, which is displayed in
-       <structname>pg_stat_activity</> (Dave Page)
-      </para>
-
-      <para>
-       This allows administrators to characterize database traffic
-       and troubleshoot problems by source application.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add a SQLSTATE option (<literal>%e</>) to <link
-       linkend="guc-log-line-prefix"><varname>log_line_prefix</></link>
-       (Guillaume Smet)
-      </para>
-
-      <para>
-       This allows users to compile statistics on errors and messages
-       by error code number.
-      </para>
-
-     </listitem>
-
-     <listitem>
-      <para>
-       Write to the Windows event log in <acronym>UTF16</> encoding
-       (Itagaki Takahiro)
-      </para>
-
-      <para>
-       Now there is true multilingual support for PostgreSQL log messages
-       on Windows.
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect4>
-
-   <sect4>
-    <title>Statistics Counters</title>
-
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Add <link
-       linkend="monitoring-stats-funcs-table"><function>pg_stat_reset_shared('bgwriter')</></link>
-       to reset the cluster-wide shared statistics for the
-       background writer (Greg Smith)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <link
-       linkend="monitoring-stats-funcs-table"><function>pg_stat_reset_single_table_counters()</></link>
-       and <function>pg_stat_reset_single_function_counters()</>
-       to allow resetting the statistics counters for individual
-       tables and functions (Magnus Hagander)
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect4>
-
-   <sect4>
-    <title>Server Settings</title>
-
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Allow setting of configuration parameters based on <link
-       linkend="sql-alterrole">database/role combinations</link>
-       (Alvaro Herrera)
-      </para>
-
-      <para>
-       Previously only per-database and per-role settings were possible,
-       not combinations. All role and database settings are now stored
-       in the new <structname>pg_db_role_setting</> system catalog. A new
-       <application>psql</> command <literal>\drds</> shows these settings.
-       The legacy system views <structname>pg_roles</>,
-       <structname>pg_shadow</>, and <structname>pg_user</>
-       do not show combination settings, and therefore no longer
-       completely represent the configuration for a user or database.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add server parameter <link
-       linkend="guc-bonjour"><varname>bonjour</></link>, which
-       controls whether a Bonjour-enabled server advertises
-       itself via <productname>Bonjour</> (Tom Lane)
-      </para>
-
-      <para>
-       The default is off, meaning it does not advertise.  This allows
-       packagers to distribute Bonjour-enabled builds without worrying
-       that individual users might not want the feature.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add server parameter <link
-       linkend="guc-enable-material"><varname>enable_material</></link>, which
-       controls the use of materialize nodes in the optimizer
-       (Robert Haas)
-      </para>
-
-      <para>
-       The default is on.  When off, the optimizer will not add
-       materialize nodes purely for performance reasons, though they
-       will still be used when necessary for correctness.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Change server parameter <link
-       linkend="guc-log-temp-files"><varname>log_temp_files</></link> to
-       use default file size units of kilobytes (Robert Haas)
-      </para>
-
-      <para>
-       Previously this setting was interpreted in bytes if no units were
-       specified.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Log changes of parameter values when <filename>postgresql.conf</> is
-       reloaded (Peter Eisentraut)
-      </para>
-
-      <para>
-       This lets administrators and security staff audit changes of database
-       settings, and is also very convenient for checking the effects of
-       <filename>postgresql.conf</> edits.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Properly enforce superuser permissions for custom server parameters
-       (Tom Lane)
-      </para>
-
-      <para>
-       Non-superusers can no longer issue <command>ALTER
-       ROLE</>/<command>DATABASE SET</> for parameters that are not currently
-       known to the server.  This allows the server to correctly check that
-       superuser-only parameters are only set by superusers.  Previously,
-       the <literal>SET</> would be allowed and then ignored at session start,
-       making superuser-only custom parameters much less useful than they
-       should be.
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect4>
-
-  </sect3>
-
-  <sect3>
-   <title>Queries</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Perform <link linkend="SQL-FOR-UPDATE-SHARE"><command>SELECT
-      FOR UPDATE</>/<literal>SHARE</></link> processing after
-      applying <literal>LIMIT</>, so the number of rows returned
-      is always predictable (Tom Lane)
-     </para>
-
-     <para>
-      Previously, changes made by concurrent transactions could cause a
-      <command>SELECT FOR UPDATE</> to unexpectedly return fewer rows than
-      specified by its <literal>LIMIT</>. <literal>FOR UPDATE</> in combination
-      with <literal>ORDER BY</> can still produce surprising results, but that
-      can be corrected by placing <literal>FOR UPDATE</> in a subquery.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Allow mixing of traditional and SQL-standard <link
-      linkend="SQL-LIMIT"><literal>LIMIT</>/<literal>OFFSET</></link>
-      syntax (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Extend the supported frame options in <link
-      linkend="SQL-WINDOW">window functions</link> (Hitoshi
-      Harada)
-     </para>
-
-     <para>
-      Frames can now start with <literal>CURRENT ROW</>, and the <literal>ROWS
-      <replaceable>n</> PRECEDING</>/<literal>FOLLOWING</> options are now
-      supported.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <command>SELECT INTO</> and <command>CREATE TABLE AS</> return
-      row counts to the client in their command tags
-      (Boszormenyi Zoltan)
-     </para>
-
-     <para>
-      This can save an entire round-trip to the client, allowing result counts
-      and pagination to be calculated without an additional
-      <command>COUNT</command> query.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-   <sect4>
-    <title>Unicode Strings</title>
-
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Support Unicode surrogate pairs (dual 16-bit representation) in
-       <link
-       linkend="sql-syntax-strings-uescape"><literal>U&amp;</></link>
-       strings and identifiers (Peter Eisentraut)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Support Unicode escapes in <link
-       linkend="sql-syntax-strings-escape"><literal>E'...'</></link>
-       strings (Marko Kreen)
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect4>
-
-  </sect3>
-
-  <sect3>
-   <title>Object Manipulation</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Speed up <link linkend="SQL-CREATEDATABASE"><command>CREATE
-      DATABASE</></link> by deferring flushes to disk (Andres
-      Freund, Greg Stark)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Allow <link linkend="SQL-COMMENT">comments</link> on
-      columns of tables, views, and composite types only, not other
-      relation types such as indexes and <acronym>TOAST</> tables (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Allow the creation of <link
-      linkend="SQL-CREATETYPE-enum">enumerated types</link> containing
-      no values (Bruce Momjian)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Let values of columns having storage type <literal>MAIN</> remain on
-      the main heap page unless the row cannot fit on a page (Kevin Grittner)
-     </para>
-
-     <para>
-      Previously <literal>MAIN</> values were forced out to <acronym>TOAST</>
-      tables until the row size was less than one-quarter of the page size.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-   <sect4>
-    <title><command>ALTER TABLE</></title>
-
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Implement <literal>IF EXISTS</> for <literal>ALTER TABLE DROP COLUMN</>
-       and <literal>ALTER TABLE DROP CONSTRAINT </> (Andres Freund)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow <command>ALTER TABLE</> commands that rewrite tables to skip
-       <acronym>WAL</> logging (Itagaki Takahiro)
-      </para>
-
-      <para>
-       Such operations either produce a new copy of the table or are rolled
-       back, so <acronym>WAL</> archiving can be skipped, unless running in
-       continuous archiving mode.  This reduces I/O overhead and improves
-       performance.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Fix failure of <literal>ALTER TABLE <replaceable>table</> ADD COLUMN
-       <replaceable>col</> serial</literal> when done by non-owner of table
-       (Tom Lane)
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect4>
-
-   <sect4>
-    <title><link linkend="SQL-CREATETABLE"><command>CREATE TABLE</></link></title>
-
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Add support for copying <literal>COMMENTS</> and <literal>STORAGE</>
-       settings in <command>CREATE TABLE ... LIKE</> commands
-       (Itagaki Takahiro)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add a shortcut for copying all properties in <command>CREATE
-       TABLE ... LIKE</> commands (Itagaki Takahiro)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add the SQL-standard
-       <literal>CREATE TABLE ... OF <replaceable>type</></literal> command
-       (Peter Eisentraut)
-      </para>
-
-      <para>
-       This allows creation of a table that matches an existing composite
-       type. Additional constraints and defaults can be specified in the
-       command.
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect4>
-
-   <sect4>
-    <title>Constraints</title>
-
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Add <link linkend="SQL-CREATETABLE-compatibility">deferrable
-       unique constraints</link> (Dean Rasheed)
-      </para>
-
-      <para>
-       This allows mass updates, such as
-       <literal>UPDATE tab SET col = col + 1</>,
-       to work reliably
-       on columns that have unique indexes or are marked as primary keys.
-       If the constraint is specified as <literal>DEFERRABLE</> it will be
-       checked at the end of the statement, rather than after each row is
-       updated. The constraint check can also be deferred until the end of the
-       current transaction, allowing such updates to be spread over multiple
-       SQL commands.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add
-       <link linkend="ddl-constraints-exclusion">exclusion constraints</link>
-       (Jeff Davis)
-      </para>
-
-      <para>
-       Exclusion constraints generalize uniqueness constraints by allowing
-       arbitrary comparison operators, not just equality.  They are created
-       with the <link linkend="SQL-CREATETABLE-EXCLUDE"><command>CREATE
-       TABLE CONSTRAINT ... EXCLUDE</></link> clause.
-       The most common use of exclusion constraints is to specify that column
-       entries must not overlap, rather than simply not be equal.  This is
-       useful for time periods and other ranges, as well as arrays.
-       This feature enhances checking of data integrity for many
-       calendaring, time-management, and scientific applications.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Improve uniqueness-constraint violation error messages to
-       report the values causing the failure (Itagaki Takahiro)
-      </para>
-
-      <para>
-       For example, a uniqueness constraint violation might now report
-       <literal>Key (x)=(2) already exists</>.
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect4>
-
-   <sect4>
-    <title>Object Permissions</title>
-
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Add the ability to make mass permission changes across a whole
-       schema using the new <link
-       linkend="SQL-GRANT"><command>GRANT</>/<command>REVOKE
-       IN SCHEMA</></link> clause (Petr Jelinek)
-      </para>
-
-      <para>
-       This simplifies management of object permissions
-       and makes it easier to utilize database roles for application
-       data security.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <link linkend="SQL-ALTERDEFAULTPRIVILEGES"><command>ALTER
-       DEFAULT PRIVILEGES</></link> command to control privileges
-       of objects created later (Petr Jelinek)
-      </para>
-
-      <para>
-       This greatly simplifies the assignment of object privileges in a
-       complex database application.  Default privileges can be set for
-       tables, views, sequences, and functions. Defaults may be assigned on a
-       per-schema basis, or database-wide.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add the ability to control large object (BLOB) permissions with
-       <command>GRANT</>/<command>REVOKE</> (KaiGai Kohei)
-      </para>
-
-      <para>
-       Formerly, any database user could read or modify any large object.
-       Read and write permissions can now be granted and revoked per
-       large object, and the ownership of large objects is tracked.
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect4>
-
-  </sect3>
-
-  <sect3>
-   <title>Utility Operations</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Make <link linkend="SQL-LISTEN"><command>LISTEN</></link>/<link
-      linkend="SQL-NOTIFY"><command>NOTIFY</></link> store pending events
-      in a memory queue, rather than in a system table (Joachim
-      Wieland)
-     </para>
-
-     <para>
-      This substantially improves performance, while retaining the existing
-      features of transactional support and guaranteed delivery.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Allow <link linkend="SQL-NOTIFY"><command>NOTIFY</></link>
-      to pass an optional <quote>payload</> string to listeners
-      (Joachim Wieland)
-     </para>
-
-     <para>
-      This greatly improves the usefulness of
-      <command>LISTEN</>/<command>NOTIFY</> as a
-      general-purpose event queue system.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Allow <link linkend="SQL-CLUSTER"><command>CLUSTER</></link>
-      on all per-database system catalogs (Tom Lane)
-     </para>
-
-     <para>
-      Shared catalogs still cannot be clustered.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-   <sect4>
-    <title><link linkend="SQL-COPY"><command>COPY</></link></title>
-
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Accept <literal>COPY ... CSV FORCE QUOTE *</>
-       (Itagaki Takahiro)
-      </para>
-
-      <para>
-       Now <literal>*</> can be used as shorthand for <quote>all columns</>
-       in the <literal>FORCE QUOTE</> clause.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add new <command>COPY</> syntax that allows options to be
-       specified inside parentheses (Robert Haas, Emmanuel Cecchet)
-      </para>
-
-      <para>
-       This allows greater flexibility for future <command>COPY</> options.
-       The old syntax is still supported, but only for pre-existing options.
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect4>
-
-   <sect4>
-    <title><link linkend="SQL-EXPLAIN"><command>EXPLAIN</></link></title>
-
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Allow <command>EXPLAIN</> to output in <acronym>XML</>,
-       <acronym>JSON</>, or <acronym>YAML</> format (Robert Haas, Greg
-       Sabino Mullane)
-      </para>
-
-      <para>
-       The new output formats are easily machine-readable, supporting the
-       development of new tools for analysis of <command>EXPLAIN</> output.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add new <literal>BUFFERS</> option to report query
-       buffer usage during <command>EXPLAIN ANALYZE</> (Itagaki Takahiro)
-      </para>
-
-      <para>
-       This allows better query profiling for individual queries.
-       Buffer usage is no longer reported in the output for <link
-       linkend="runtime-config-statistics-monitor">log_statement_stats</link>
-       and related settings.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add hash usage information to <command>EXPLAIN</> output (Robert
-       Haas)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add new <command>EXPLAIN</> syntax that allows options to be
-       specified inside parentheses (Robert Haas)
-      </para>
-
-      <para>
-       This allows greater flexibility for future <command>EXPLAIN</> options.
-       The old syntax is still supported, but only for pre-existing options.
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect4>
-
-   <sect4>
-    <title><link linkend="SQL-VACUUM"><command>VACUUM</></link></title>
-
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Change <command>VACUUM FULL</> to rewrite the entire table and
-       rebuild its indexes, rather than moving individual rows around to
-       compact space (Itagaki Takahiro, Tom Lane)
-      </para>
-
-      <para>
-       The previous method was usually slower and caused index bloat.
-       Note that the new method will use more disk space transiently
-       during <command>VACUUM FULL</>; potentially as much as twice
-       the space normally occupied by the table and its indexes.
-      </para>
-
-     </listitem>
-
-     <listitem>
-      <para>
-       Add new <command>VACUUM</> syntax that allows options to be
-       specified inside parentheses (Itagaki Takahiro)
-      </para>
-
-      <para>
-       This allows greater flexibility for future <command>VACUUM</> options.
-       The old syntax is still supported, but only for pre-existing options.
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect4>
-
-   <sect4>
-    <title>Indexes</title>
-
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Allow an index to be named automatically by omitting the index name in
-       <link linkend="SQL-CREATEINDEX"><command>CREATE INDEX</></link>
-       (Tom Lane)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       By default, multicolumn indexes are now named after all their columns;
-       and index expression columns are now named based on their expressions
-       (Tom Lane)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Reindexing shared system catalogs is now fully transactional
-       and crash-safe (Tom Lane)
-      </para>
-
-      <para>
-       Formerly, reindexing a shared index was only allowed in standalone
-       mode, and a crash during the operation could leave the index in
-       worse condition than it was before.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <literal>point_ops</> operator class for <acronym>GiST</>
-      (Teodor Sigaev)
-      </para>
-
-      <para>
-       This feature permits <acronym>GiST</> indexing of <type>point</>
-       columns.  The index can be used for several types of queries
-       such as <replaceable>point</> <literal>&lt;@</> <replaceable>polygon</>
-       (point is in polygon).  This should make many
-       <productname>PostGIS</> queries faster.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Use red-black binary trees for <acronym>GIN</> index creation
-       (Teodor Sigaev)
-      </para>
-
-      <para>
-       Red-black trees are self-balancing.  This avoids slowdowns in
-       cases where the input is in nonrandom order.
-      </para>
-
-     </listitem>
-
-    </itemizedlist>
-
-   </sect4>
-
-  </sect3>
-
-  <sect3>
-   <title>Data Types</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Allow <link linkend="datatype-binary"><type>bytea</></link> values
-      to be written in hex notation (Peter Eisentraut)
-     </para>
-
-     <para>
-      The server parameter <link
-      linkend="guc-bytea-output"><varname>bytea_output</></link> controls
-      whether hex or traditional format is used for <type>bytea</>
-      output.  Libpq's <function>PQescapeByteaConn()</> function automatically
-      uses the hex format when connected to <productname>PostgreSQL</> 9.0
-      or newer servers.  However, pre-9.0 libpq versions will not
-      correctly process hex format from newer servers.
-     </para>
-
-     <para>
-      The new hex format will be directly compatible with more applications
-      that use binary data, allowing them to store and retrieve it without
-      extra conversion.  It is also significantly faster to read and write
-      than the traditional format.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Allow server parameter <link
-      linkend="guc-extra-float-digits">extra_float_digits</link>
-      to be increased to <literal>3</> (Tom Lane)
-     </para>
-
-     <para>
-      The previous maximum <varname>extra_float_digits</> setting was
-      <literal>2</>.  There are cases where 3 digits are needed to dump and
-      restore <type>float4</> values exactly.  <application>pg_dump</> will
-      now use the setting of 3 when dumping from a server that allows it.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Tighten input checking for <type>int2vector</> values (Caleb
-      Welton)
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-   <sect4>
-    <title><link linkend="textsearch">Full Text Search</link></title>
-
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Add prefix support in <literal>synonym</> dictionaries
-       (Teodor Sigaev)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <firstterm>filtering</> dictionaries (Teodor Sigaev)
-      </para>
-
-      <para>
-       Filtering dictionaries allow tokens to be modified then passed to
-       subsequent dictionaries.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow underscores in email-address tokens (Teodor Sigaev)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Use more standards-compliant rules for parsing <acronym>URL</> tokens
-       (Tom Lane)
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect4>
-
-  </sect3>
-
-  <sect3>
-   <title>Functions</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Allow function calls to supply parameter names and match them to named
-      parameters in the function definition (Pavel Stehule)
-     </para>
-
-     <para>
-      For example, if a function is defined to take parameters <literal>a</>
-      and <literal>b</>, it can be called with <literal>func(a := 7, b
-      := 12)</> or <literal>func(b := 12, a := 7)</>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Support locale-specific <link
-      linkend="functions-posix-regexp">regular expression</link>
-      processing with <acronym>UTF-8</> server encoding (Tom Lane)
-     </para>
-
-     <para>
-      Locale-specific regular expression functionality includes
-      case-insensitive matching and locale-specific character classes.
-      Previously, these features worked correctly for non-<acronym>ASCII</>
-      characters only if the database used a single-byte server encoding (such
-      as LATIN1).  They will still misbehave in multi-byte encodings other
-      than <acronym>UTF-8</>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Add support for scientific notation in <link
-      linkend="functions-formatting"><function>to_char()</></link>
-      (<link linkend="functions-formatting-numeric-table"><literal>EEEE</>
-      specification</link>)
-      (Pavel Stehule, Brendan Jurd)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <function>to_char()</> honor <link
-      linkend="functions-formatting-datetimemod-table"><literal>FM</></link>
-      (fill mode) in <literal>Y</>, <literal>YY</>, and
-      <literal>YYY</> specifications (Bruce Momjian, Tom Lane)
-     </para>
-
-     <para>
-      It was already honored by <literal>YYYY</>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <function>to_char()</> to output localized numeric and monetary
-      strings in the correct encoding on <productname>Windows</>
-      (Hiroshi Inoue, Itagaki Takahiro, Bruce Momjian)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Correct calculations of <link
-      linkend="functions-geometry-op-table"><quote>overlaps</quote></link>
-      and <quote>contains</quote> operations for polygons (Teodor Sigaev)
-     </para>
-
-     <para>
-      The polygon <literal>&amp;&amp;</> (overlaps) operator formerly just
-      checked to see if the two polygons' bounding boxes overlapped.  It now
-      does a more correct check.  The polygon <literal>@&gt;</> and
-      <literal>&lt;@</> (contains/contained by) operators formerly checked
-      to see if one polygon's vertexes were all contained in the other;
-      this can wrongly report <quote>true</> for some non-convex polygons.
-      Now they check that all line segments of one polygon are contained in
-      the other.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-   <sect4>
-    <title>Aggregates</title>
-
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Allow aggregate functions to use <link
-       linkend="syntax-aggregates"><literal>ORDER BY</></link> (Andrew Gierth)
-      </para>
-
-      <para>
-       For example, this is now supported: <literal>array_agg(a ORDER BY
-       b)</>.  This is useful with aggregates for which the order of input
-       values is significant, and eliminates the need to use a nonstandard
-       subquery to determine the ordering.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Multi-argument aggregate functions can now use <literal>DISTINCT</>
-       (Andrew Gierth)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add the <link
-       linkend="functions-aggregate-table"><function>string_agg()</></link>
-       aggregate function to combine values into a single
-       string (Pavel Stehule)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Aggregate functions that are called with <literal>DISTINCT</> are
-       now passed NULL values if the aggregate transition function is
-       not marked as <literal>STRICT</> (Andrew Gierth)
-      </para>
-
-      <para>
-       For example, <literal>agg(DISTINCT x)</> might pass a NULL <literal>x</>
-       value to <function>agg()</>.  This is more consistent with the behavior
-       in non-<literal>DISTINCT</> cases.
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect4>
-
-   <sect4>
-    <title>Bit Strings</title>
-
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Add <link
-       linkend="functions-binarystring-other"><function>get_bit()</></link>
-       and <function>set_bit()</> functions for <type>bit</>
-       strings, mirroring those for <type>bytea</> (Leonardo
-       F)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Implement <link
-       linkend="functions-string-sql"><function>OVERLAY()</></link>
-       (replace) for <type>bit</> strings and <type>bytea</>
-       (Leonardo F)
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect4>
-
-   <sect4>
-    <title>Object Information Functions</title>
-
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Add <link
-       linkend="functions-admin-dbsize"><function>pg_table_size()</></link>
-       and <function>pg_indexes_size()</> to provide a more
-       user-friendly interface to the <function>pg_relation_size()</>
-       function (Bernd Helmle)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <link
-       linkend="functions-info-access-table"><function>has_sequence_privilege()</></link>
-       for sequence permission checking (Abhijit Menon-Sen)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Update the <link linkend="information-schema">information_schema</link>
-       views to conform to SQL:2008
-       (Peter Eisentraut)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Make the <literal>information_schema</> views correctly display maximum
-       octet lengths for <type>char</> and <type>varchar</> columns (Peter
-       Eisentraut)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Speed up <literal>information_schema</> privilege views
-       (Joachim Wieland)
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect4>
-
-   <sect4>
-    <title>Function and Trigger Creation</title>
-
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Support execution of anonymous code blocks using the <link
-       linkend="SQL-DO"><command>DO</></link> statement
-       (Petr Jelinek, Joshua Tolley, Hannu Valtonen)
-      </para>
-
-      <para>
-       This allows execution of server-side code without the need to create
-       and delete a temporary function definition.  Code can be executed in
-       any language for which the user has permissions to define a function.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Implement SQL-standard-compliant <link
-       linkend="SQL-CREATETRIGGER">per-column triggers</link>
-       (Itagaki Takahiro)
-      </para>
-
-      <para>
-       Such triggers are fired only when the specified column(s) are affected
-       by the query, e.g. appear in an <command>UPDATE</>'s <literal>SET</>
-       list.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add the <literal>WHEN</> clause to <link
-       linkend="SQL-CREATETRIGGER"><command>CREATE TRIGGER</></link>
-       to allow control over whether a trigger is fired (Itagaki
-       Takahiro)
-      </para>
-
-      <para>
-       While the same type of check can always be performed inside the
-       trigger, doing it in an external <literal>WHEN</> clause can have
-       performance benefits.
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect4>
-
-  </sect3>
-
-  <sect3>
-   <title>Server-Side Languages</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Add the <literal>OR REPLACE</> clause to <link
-      linkend="SQL-CREATELANGUAGE"><command>CREATE LANGUAGE</></link>
-      (Tom Lane)
-     </para>
-
-     <para>
-      This is helpful to optionally install a language if it does not
-      already exist, and is particularly helpful now that PL/pgSQL is
-      installed by default.
-     </para>
-    </listitem>
-
-    </itemizedlist>
-
-    <sect4>
-    <title><link linkend="plpgsql">PL/pgSQL</link> Server-Side
-    Language</title>
-
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Install PL/pgSQL by default (Bruce Momjian)
-      </para>
-
-      <para>
-       The language can still be removed from a particular database if the
-       administrator has security or performance concerns about making it
-       available.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Improve handling of cases where PL/pgSQL variable names conflict with
-       identifiers used in queries within a function
-       (Tom Lane)
-      </para>
-
-      <para>
-       The default behavior is now to throw an error when there is a conflict,
-       so as to avoid surprising behaviors.  This can be modified, via the
-       configuration parameter <link
-       linkend="plpgsql-var-subst"><varname>plpgsql.variable_conflict</></link>
-       or the per-function option <literal>#variable_conflict</>, to allow
-       either the variable or the query-supplied column to be used.  In any
-       case PL/pgSQL will no longer attempt to substitute variables in places
-       where they would not be syntactically valid.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Make PL/pgSQL use the main lexer, rather than its own version
-       (Tom Lane)
-      </para>
-
-      <para>
-       This ensures accurate tracking of the main system's behavior for details
-       such as string escaping.  Some user-visible details, such as the set
-       of keywords considered reserved in PL/pgSQL, have changed in
-       consequence.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Avoid throwing an unnecessary error for an invalid record reference
-       (Tom Lane)
-      </para>
-
-      <para>
-       An error is now thrown only if the reference is actually fetched,
-       rather than whenever the enclosing expression is reached.  For
-       example, many people have tried to do this in triggers:
-<programlisting>
-if TG_OP = 'INSERT' and NEW.col1 = ... then
-</programlisting>
-       This will now actually work as expected.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Improve PL/pgSQL's ability to handle row types with dropped columns
-       (Pavel Stehule)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow input parameters to be assigned values within
-       PL/pgSQL functions (Steve Prentice)
-      </para>
-
-      <para>
-       Formerly, input parameters were treated as being declared
-       <literal>CONST</>, so the function's code could not change their
-       values.  This restriction has been removed to simplify
-       porting of functions from other DBMSes that do not impose the
-       equivalent restriction.  An input parameter now acts like a local
-       variable initialized to the passed-in value.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Improve error location reporting in PL/pgSQL (Tom Lane)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <replaceable>count</> and <literal>ALL</> options to <command>MOVE
-       FORWARD</>/<literal>BACKWARD</> in PL/pgSQL (Pavel Stehule)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow PL/pgSQL's <literal>WHERE CURRENT OF</> to use a cursor
-       variable (Tom Lane)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow PL/pgSQL's <command>OPEN <replaceable>cursor</> FOR EXECUTE</> to
-       use parameters (Pavel Stehule, Itagaki Takahiro)
-      </para>
-
-      <para>
-       This is accomplished with a new <literal>USING</> clause.
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect4>
-
-   <sect4>
-    <title><link linkend="plperl">PL/Perl</link> Server-Side Language</title>
-
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Add new PL/Perl functions: <link
-       linkend="plperl-utility-functions"><function>quote_literal()</></link>,
-       <function>quote_nullable()</>, <function>quote_ident()</>,
-       <function>encode_bytea()</>, <function>decode_bytea()</>,
-       <function>looks_like_number()</>,
-       <function>encode_array_literal()</>,
-       <function>encode_array_constructor()</> (Tim Bunce)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add server parameter <link
-       linkend="guc-plperl-on-init"><varname>plperl.on_init</></link> to
-       specify a PL/Perl initialization function (Tim
-       Bunce)
-      </para>
-
-      <para>
-       <link
-       linkend="guc-plperl-on-plperl-init"><varname>plperl.on_plperl_init</></link>
-       and <link
-       linkend="guc-plperl-on-plperl-init"><varname>plperl.on_plperlu_init</></link>
-       are also available for initialization that is specific to the trusted
-       or untrusted language respectively.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Support <command>END</> blocks in PL/Perl (Tim Bunce)
-      </para>
-
-      <para>
-       <command>END</> blocks do not currently allow database access.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow <command>use strict</> in PL/Perl (Tim Bunce)
-      </para>
-
-      <para>
-       Perl <literal>strict</> checks can also be globally enabled with the
-       new server parameter <link
-       linkend="guc-plperl-use-strict"><varname>plperl.use_strict</></link>.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow <command>require</> in PL/Perl (Tim Bunce)
-      </para>
-
-      <para>
-       This basically tests to see if the module is loaded, and if not,
-       generates an error.  It will not allow loading of modules that
-       the administrator has not preloaded via the initialization parameters.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow <command>use feature</> in PL/Perl if Perl version 5.10 or
-       later is used (Tim Bunce)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Verify that PL/Perl return values are valid in the server encoding
-       (Andrew Dunstan)
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect4>
-
-   <sect4>
-    <title><link linkend="plpython">PL/Python</link> Server-Side Language</title>
-
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Add Unicode support in PL/Python (Peter Eisentraut)
-      </para>
-
-      <para>
-       Strings are automatically converted from/to the server encoding as
-       necessary.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Improve <type>bytea</> support in PL/Python (Caleb Welton)
-      </para>
-
-      <para>
-       <type>Bytea</> values passed into PL/Python are now represented as
-       binary, rather than the PostgreSQL <type>bytea</> text format.
-       <type>Bytea</> values containing null bytes are now also output
-       properly from PL/Python.  Passing of boolean, integer, and float
-       values was also improved.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Support <link linkend="plpython-arrays">arrays</link> as parameters and
-       return values in PL/Python (Peter Eisentraut)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Improve mapping of SQL domains to Python types (Peter Eisentraut)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <application>Python</> 3 support to PL/Python (Peter Eisentraut)
-      </para>
-
-      <para>
-       The new server-side language is called <link
-       linkend="plpython-python23"><literal>plpython3u</></link>.  This
-       cannot be used in the same session with the
-       <application>Python</> 2 server-side language.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Improve error location and exception reporting in PL/Python (Peter Eisentraut)
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect4>
-
-  </sect3>
-
-  <sect3>
-   <title>Client Applications</title>
-
-   <itemizedlist>
-
-    <listitem>
-    <para>
-     Add an <option>--analyze-only</> option to <link
-     linkend="APP-VACUUMDB"><command>vacuumdb</></link>, to analyze without
-     vacuuming (Bruce Momjian)
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-   <sect4>
-    <title><link linkend="APP-PSQL"><application>psql</></link></title>
-
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Add support for quoting/escaping the values of <application>psql</>
-       <link linkend="APP-PSQL-variables">variables</link> as SQL strings or
-       identifiers (Pavel Stehule, Robert Haas)
-      </para>
-
-      <para>
-       For example, <literal>:'var'</> will produce the value of
-       <literal>var</> quoted and properly escaped as a literal string, while
-       <literal>:"var"</> will produce its value quoted and escaped as an
-       identifier.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Ignore a leading UTF-8-encoded Unicode byte-order marker in
-       script files read by <application>psql</> (Itagaki Takahiro)
-      </para>
-
-      <para>
-       This is enabled when the client encoding is <acronym>UTF-8</>.
-       It improves compatibility with certain editors, mostly on Windows,
-       that insist on inserting such markers.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Fix <command>psql --file -</> to properly honor <link
-       linkend="R1-APP-PSQL-3"><option>--single-transaction</></link>
-       (Bruce Momjian)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Avoid overwriting of <application>psql</>'s command-line history when
-       two <application>psql</> sessions are run concurrently (Tom Lane)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Improve <application>psql</>'s tab completion support (Itagaki
-       Takahiro)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Show <literal>\timing</> output when it is enabled, regardless of
-       <quote>quiet</> mode (Peter Eisentraut)
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-    <sect5>
-    <title><application>psql</> Display</title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Improve display of wrapped columns in <application>psql</> (Roger
-        Leigh)
-       </para>
-
-       <para>
-        This behavior is now the default.
-        The previous formatting is available by using <command>\pset linestyle
-        old-ascii</>.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Allow <application>psql</> to use fancy Unicode line-drawing
-        characters via <command>\pset linestyle unicode</> (Roger Leigh)
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect5>
-
-    <sect5>
-     <title><application>psql</> <link
-     linkend="APP-PSQL-meta-commands"><command>\d</></link>
-     Commands</title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Make <command>\d</> show child tables that inherit from the specified
-        parent (Damien Clochard)
-       </para>
-
-       <para>
-        <command>\d</> shows only the number of child tables, while
-        <command>\d+</> shows the names of all child tables.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Show definitions of index columns in <command>\d index_name</>
-        (Khee Chin)
-       </para>
-
-       <para>
-        The definition is useful for expression indexes.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Show a view's defining query only in
-        <command>\d+</>, not in <command>\d</> (Peter Eisentraut)
-       </para>
-
-       <para>
-        Always including the query was deemed overly verbose.
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect5>
-   </sect4>
-
-   <sect4>
-    <title><link linkend="APP-PGDUMP"><application>pg_dump</></link></title>
-
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Make <application>pg_dump</>/<application>pg_restore</>
-       <link linkend="pg-dump-options"><option>--clean</></link>
-       also remove large objects (Itagaki Takahiro)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Fix <application>pg_dump</> to properly dump large objects when
-       <literal>standard_conforming_strings</> is enabled (Tom Lane)
-      </para>
-
-      <para>
-       The previous coding could fail when dumping to an archive file
-       and then generating script output from <application>pg_restore</>.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       <application>pg_restore</> now emits large-object data in hex format
-       when generating script output (Tom Lane)
-      </para>
-
-      <para>
-       This could cause compatibility problems if the script is then
-       loaded into a pre-9.0 server.  To work around that, restore
-       directly to the server, instead.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow <application>pg_dump</> to dump comments attached to columns
-       of composite types (Taro Minowa (Higepon))
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Make <application>pg_dump</> <link
-       linkend="pg-dump-options"><option>--verbose</></link>
-       output the <application>pg_dump</> and server versions
-       in text output mode (Jim Cox, Tom Lane)
-      </para>
-
-      <para>
-       These were already provided in custom output mode.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       <application>pg_restore</> now complains if any command-line arguments
-       remain after the switches and optional file name (Tom Lane)
-      </para>
-
-      <para>
-       Previously, it silently ignored any such arguments.
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect4>
-
-   <sect4>
-    <title><link
-    linkend="app-pg-ctl"><application>pg_ctl</></link></title>
-
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Allow <application>pg_ctl</> to be used safely to start the
-       <application>postmaster</> during a system reboot (Tom Lane)
-      </para>
-
-      <para>
-       Previously, <application>pg_ctl</>'s parent process could have been
-       mistakenly identified as a running <application>postmaster</> based on
-       a stale <application>postmaster</> lock file, resulting in a transient
-       failure to start the database.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Give <application>pg_ctl</> the ability to initialize the database
-       (by invoking <application>initdb</>) (Zdenek Kotala)
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect4>
-
-  </sect3>
-
-  <sect3>
-   <title><application>Development Tools</></title>
-
-   <sect4>
-    <title><link linkend="libpq"><application>libpq</></link></title>
-
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Add new <application>libpq</> functions
-       <link
-       linkend="libpq-connect"><function>PQconnectdbParams()</></link>
-       and <function>PQconnectStartParams()</> (Guillaume
-       Lelarge)
-      </para>
-
-      <para>
-       These functions are similar to <function>PQconnectdb()</> and
-       <function>PQconnectStart()</> except that they accept a null-terminated
-       array of connection options, rather than requiring all options to
-       be provided in a single string.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <application>libpq</> functions <link
-       linkend="libpq-exec-escape-string"><function>PQescapeLiteral()</></link>
-       and <function>PQescapeIdentifier()</> (Robert Haas)
-      </para>
-
-      <para>
-       These functions return appropriately quoted and escaped SQL string
-       literals and identifiers. The caller is not required to pre-allocate
-       the string result, as is required by <function>PQescapeStringConn()</>.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add support for a per-user service file (<link
-       linkend="libpq-pgservice"><filename>.pg_service.conf</></link>),
-       which is checked before the site-wide service file
-       (Peter Eisentraut)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Properly report an error if the specified <application>libpq</> service
-       cannot be found (Peter Eisentraut)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <link linkend="libpq-keepalives">TCP keepalive settings</link>
-       in libpq (Tollef Fog Heen, Fujii Masao, Robert Haas)
-      </para>
-
-      <para>
-       Keepalive settings were already supported on the server end of
-       TCP connections.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Avoid extra system calls to block and unblock <literal>SIGPIPE</>
-       in <application>libpq</>, on platforms that offer alternative methods
-       (Jeremy Kerr)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       When a <link linkend="libpq-pgpass"><filename>.pgpass</></link>-supplied
-       password fails, mention where the password came from in the error
-       message (Bruce Momjian)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Load all SSL certificates given in the client certificate file
-       (Tom Lane)
-      </para>
-
-      <para>
-       This improves support for indirectly-signed SSL certificates.
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect4>
-
-   <sect4>
-    <title><link linkend="ecpg"><application>ecpg</></link></title>
-
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Add <link linkend="ecpg-descriptors"><acronym>SQLDA</></link>
-       (SQL Descriptor Area) support to <application>ecpg</>
-       (Boszormenyi Zoltan)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add the <link linkend="ecpg-descriptors"><command>DESCRIBE</>
-       [ <literal>OUTPUT</> ]</link> statement to <application>ecpg</>
-       (Boszormenyi Zoltan)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add an <link linkend="ecpg-library">ECPGtransactionStatus</link>
-       function to return the current transaction status (Bernd Helmle)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add the <literal>string</> data type in <application>ecpg</>
-       Informix-compatibility mode (Boszormenyi Zoltan)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow <application>ecpg</> to use <literal>new</> and <literal>old</>
-       variable names without restriction (Michael Meskes)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow <application>ecpg</> to use variable names in
-       <function>free()</> (Michael Meskes)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Make <function>ecpg_dynamic_type()</> return zero for non-SQL3 data
-       types (Michael Meskes)
-      </para>
-
-      <para>
-       Previously it returned the negative of the data type OID.
-       This could be confused with valid type OIDs, however.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Support <type>long long</> types on platforms that already have 64-bit
-       <type>long</> (Michael Meskes)
-      </para>
-     </listitem>
-
-     </itemizedlist>
-
-     <sect5>
-      <title><application>ecpg</> Cursors</title>
-
-      <itemizedlist>
-
-      <listitem>
-       <para>
-        Add out-of-scope cursor support in <application>ecpg</>'s native mode
-        (Boszormenyi Zoltan)
-       </para>
-
-       <para>
-        This allows <command>DECLARE</> to use variables that are not in
-        scope when <command>OPEN</> is called. This facility already existed
-        in <application>ecpg</>'s Informix-compatibility mode.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Allow dynamic cursor names in <application>ecpg</> (Boszormenyi Zoltan)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Allow <application>ecpg</> to use noise words <literal>FROM</> and
-        <literal>IN</> in <command>FETCH</> and <command>MOVE</> (Boszormenyi
-        Zoltan)
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect5>
-
-   </sect4>
-
-  </sect3>
-
-  <sect3>
-   <title>Build Options</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Enable client thread safety by default (Bruce Momjian)
-     </para>
-
-     <para>
-      The thread-safety option can be disabled with <link
-      linkend="configure"><literal>configure</></link>
-      <option>--disable-thread-safety</>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Add support for controlling the Linux out-of-memory killer
-      (Alex Hunsaker, Tom Lane)
-     </para>
-
-     <para>
-      Now that <filename>/proc/self/oom_adj</> allows disabling
-      of the <productname>Linux</> out-of-memory (<acronym>OOM</>)
-      killer, it's recommendable to disable OOM kills for the postmaster.
-      It may then be desirable to re-enable OOM kills for the postmaster's
-      child processes.  The new compile-time option <link
-      linkend="linux-memory-overcommit"><literal>LINUX_OOM_ADJ</></link>
-      allows the killer to be reactivated for child processes.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-   <sect4>
-    <title>Makefiles</title>
-
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       New <filename>Makefile</> targets <link
-       linkend="build"><literal>world</></link>,
-       <literal>install-world</>, and <literal>installcheck-world</>
-       (Andrew Dunstan)
-      </para>
-
-      <para>
-       These are similar to the existing <literal>all</>, <literal>install</>,
-       and <literal>installcheck</> targets, but they also build the
-       <acronym>HTML</> documentation, build and test <filename>contrib</>,
-       and test server-side languages and <application>ecpg</>.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add data and documentation installation location control to
-       <acronym>PGXS</> Makefiles (Mark Cave-Ayland)
-      </para>
-     </listitem>
-
-    <listitem>
-     <para>
-      Add Makefile rules to build the <productname>PostgreSQL</> documentation
-      as a single <acronym>HTML</> file or as a single plain-text file
-      (Peter Eisentraut, Bruce Momjian)
-     </para>
-    </listitem>
-
-    </itemizedlist>
-
-   </sect4>
-
-   <sect4>
-    <title>Windows</title>
-
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Support compiling on <link
-       linkend="install-windows">64-bit
-       <productname>Windows</></link> and running in 64-bit
-       mode (Tsutomu Yamada, Magnus Hagander)
-      </para>
-
-      <para>
-       This allows for large shared memory sizes on <productname>Windows</>.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Support server builds using <link
-       linkend="install-windows-full"><productname>Visual Studio
-       2008</></link> (Magnus Hagander)
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect4>
-
-  </sect3>
-
-  <sect3>
-   <title>Source Code</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Distribute prebuilt documentation in a subdirectory tree, rather than
-      as tar archive files inside the distribution tarball
-      (Peter Eisentraut)
-     </para>
-
-     <para>
-      For example, the prebuilt <acronym>HTML</> documentation is now in
-      <filename>doc/src/sgml/html/</>; the manual pages are packaged
-      similarly.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make the server's lexer reentrant (Tom Lane)
-     </para>
-
-     <para>
-      This was needed for use of the lexer by PL/pgSQL.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve speed of memory allocation (Tom Lane, Greg Stark)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      User-defined constraint triggers now have entries in
-      <structname>pg_constraint</> as well as <structname>pg_trigger</>
-      (Tom Lane)
-     </para>
-
-     <para>
-      Because of this change,
-      <structname>pg_constraint</>.<structfield>pgconstrname</> is now
-      redundant and has been removed.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Add system catalog columns
-      <structname>pg_constraint</>.<structfield>conindid</> and
-      <structname>pg_trigger</>.<structfield>tgconstrindid</>
-      to better document the use of indexes for constraint
-      enforcement (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Allow multiple conditions to be communicated to backends using a single
-      operating system signal (Fujii Masao)
-     </para>
-
-     <para>
-      This allows new features to be added without a platform-specific
-      constraint on the number of signal conditions.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve source code test coverage, including <filename>contrib</>, PL/Python,
-      and PL/Perl (Peter Eisentraut, Andrew Dunstan)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Remove the use of flat files for system table bootstrapping
-      (Tom Lane, Alvaro Herrera)
-     </para>
-
-     <para>
-      This improves performance when using many roles or
-      databases, and eliminates some possible failure conditions.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Automatically generate the initial contents of
-      <structname>pg_attribute</> for <quote>bootstrapped</> catalogs
-      (John Naylor)
-     </para>
-
-     <para>
-      This greatly simplifies changes to these catalogs.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Split the processing of
-      <command>INSERT</>/<command>UPDATE</>/<command>DELETE</> operations out
-      of <filename>execMain.c</> (Marko Tiikkaja)
-     </para>
-
-     <para>
-      Updates are now executed in a separate ModifyTable node.  This change is
-      necessary infrastructure for future improvements.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Simplify translation of <application>psql</>'s SQL help text
-      (Peter Eisentraut)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Reduce the lengths of some file names so that all file paths in the
-      distribution tarball are less than 100 characters (Tom Lane)
-     </para>
-
-     <para>
-      Some decompression programs have problems with longer file paths.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Add a new <link
-      linkend="errcodes-table"><literal>ERRCODE_INVALID_PASSWORD</></link>
-      <literal>SQLSTATE</> error code (Bruce Momjian)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      With authors' permissions, remove the few remaining personal source code
-      copyright notices (Bruce Momjian)
-     </para>
-
-     <para>
-      The personal copyright notices were insignificant but the community
-      occasionally had to answer questions about them.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Add new documentation <link linkend="non-durability">section</link>
-      about running <productname>PostgreSQL</> in non-durable mode
-      to improve performance (Bruce Momjian)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Restructure the <acronym>HTML</> documentation
-      <filename>Makefile</> rules to make their dependency checks work
-      correctly, avoiding unnecessary rebuilds (Peter Eisentraut)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Use <productname>DocBook</> <acronym>XSL</> stylesheets for man page
-      building, rather than <productname>Docbook2X</> (Peter Eisentraut)
-     </para>
-
-     <para>
-      This changes the set of tools needed to build the man pages.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve PL/Perl code structure (Tim Bunce)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve error context reports in PL/Perl (Alexey Klyukin)
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-   <sect4>
-    <title>New Build Requirements</title>
-
-     <para>
-      Note that these requirements do not apply when building from a
-      distribution tarball, since tarballs include the files that these
-      programs are used to build.
-     </para>
-
-    <itemizedlist>
-     <listitem>
-      <para>
-       Require <application>Autoconf</> 2.63 to build
-       <application>configure</> (Peter Eisentraut)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Require <application>Flex</> 2.5.31 or later to build
-       from a <acronym>CVS</> checkout (Tom Lane)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Require <application>Perl</> version 5.8 or later to build
-       from a <acronym>CVS</> checkout (John Naylor, Andrew Dunstan)
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect4>
-
-   <sect4>
-    <title>Portability</title>
-
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Use a more modern <acronym>API</> for <application>Bonjour</> (Tom Lane)
-      </para>
-
-      <para>
-       Bonjour support now requires <productname>OS X</> 10.3 or later.
-       The older API has been deprecated by Apple.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add spinlock support for the <productname>SuperH</>
-       architecture (Nobuhiro Iwamatsu)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow non-<application>GCC</> compilers to use inline functions if
-       they support them (Kurt Harriman)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Remove support for platforms that don't have a working 64-bit
-       integer data type (Tom Lane)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Restructure use of <literal>LDFLAGS</> to be more consistent
-       across platforms (Tom Lane)
-      </para>
-
-      <para>
-       <literal>LDFLAGS</> is now used for linking both executables and shared
-       libraries, and we add on <literal>LDFLAGS_EX</> when linking
-       executables, or <literal>LDFLAGS_SL</> when linking shared libraries.
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect4>
-
-   <sect4>
-    <title>Server Programming</title>
-
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Make backend header files safe to include in <productname>C++</>
-       (Kurt Harriman, Peter Eisentraut)
-      </para>
-
-      <para>
-       These changes remove keyword conflicts that previously made
-       <productname>C++</> usage difficult in backend code.  However, there
-       are still other complexities when using <productname>C++</> for backend
-       functions. <literal>extern "C" { }</> is still necessary in
-       appropriate places, and memory management and error handling are
-       still problematic.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <link
-       linkend="xaggr"><function>AggCheckCallContext()</></link>
-       for use in detecting if a <productname>C</> function is
-       being called as an aggregate (Hitoshi Harada)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Change calling convention for <function>SearchSysCache()</> and related
-       functions to avoid hard-wiring the maximum number of cache keys
-       (Robert Haas)
-      </para>
-
-      <para>
-       Existing calls will still work for the moment, but can be expected to
-       break in 9.1 or later if not converted to the new style.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Require calls of <function>fastgetattr()</> and
-       <function>heap_getattr()</> backend macros to provide a non-NULL fourth
-       argument (Robert Haas)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Custom typanalyze functions should no longer rely on
-       <structname>VacAttrStats</>.<structfield>attr</> to determine the type
-       of data they will be passed (Tom Lane)
-      </para>
-
-      <para>
-       This was changed to allow collection of statistics on index columns
-       for which the storage type is different from the underlying column
-       data type.  There are new fields that tell the actual datatype being
-       analyzed.
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect4>
-
-   <sect4>
-    <title>Server Hooks</title>
-
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Add parser hooks for processing ColumnRef and ParamRef nodes
-       (Tom Lane)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add a ProcessUtility hook so loadable modules can control utility
-       commands (Itagaki Takahiro)
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect4>
-
-   <sect4>
-    <title>Binary Upgrade Support</title>
-
-    <itemizedlist>
-
-    <listitem>
-     <para>
-      Add <link linkend="pgupgrade"><filename>contrib/pg_upgrade</></link>
-      to support in-place upgrades (Bruce Momjian)
-     </para>
-
-     <para>
-      This avoids the requirement of dumping/reloading the database when
-      upgrading to a new major release of PostgreSQL, thus reducing downtime
-      by orders of magnitude. It supports upgrades to 9.0
-      from PostgreSQL 8.3 and 8.4.
-     </para>
-    </listitem>
-
-     <listitem>
-      <para>
-       Add support for preserving relation <link
-       linkend="catalog-pg-class"><structname>relfilenode</></link> values
-       during binary upgrades (Bruce Momjian)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add support for preserving <structname>pg_type</>
-       and <structname>pg_enum</> OIDs during binary upgrades
-       (Bruce Momjian)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Move data files within tablespaces into
-       <productname>PostgreSQL</>-version-specific subdirectories
-       (Bruce Momjian)
-      </para>
-
-      <para>
-       This simplifies binary upgrades.
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect4>
-
-  </sect3>
-
-  <sect3>
-   <title>Contrib</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Add multithreading option (<option>-j</>) to <link
-      linkend="pgbench"><filename>contrib/pgbench</></link>
-      (Itagaki Takahiro)
-     </para>
-
-     <para>
-      This allows multiple <acronym>CPU</>s to be used by pgbench,
-      reducing the risk of pgbench itself becoming the test bottleneck.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Add <command>\shell</> and <command>\setshell</> meta
-      commands to <link
-      linkend="pgbench"><filename>contrib/pgbench</></link>
-      (Michael Paquier)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      New features for <link
-      linkend="dict-xsyn"><filename>contrib/dict_xsyn</></link>
-      (Sergey Karpov)
-     </para>
-
-     <para>
-      The new options are <literal>matchorig</>, <literal>matchsynonyms</>,
-      and <literal>keepsynonyms</>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Add full text dictionary <link
-      linkend="unaccent"><filename>contrib/unaccent</></link>
-      (Teodor Sigaev)
-     </para>
-
-     <para>
-      This filtering dictionary removes accents from letters, which
-      makes full-text searches over multiple languages much easier.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Add <link
-      linkend="CONTRIB-DBLINK-GET-NOTIFY"><function>dblink_get_notify()</></link>
-      to <filename>contrib/dblink</> (Marcus Kempe)
-     </para>
-
-     <para>
-      This allows asynchronous notifications in <productname>dblink</>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve <filename>contrib/dblink</>'s handling of dropped columns
-      (Tom Lane)
-     </para>
-
-     <para>
-      This affects <link
-      linkend="CONTRIB-DBLINK-BUILD-SQL-INSERT"><function>dblink_build_sql_insert()</></link>
-      and related functions.  These functions now number columns according
-      to logical not physical column numbers.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Greatly increase <link
-      linkend="hstore"><filename>contrib/hstore</></link>'s data
-      length limit, and add B-tree and hash support so <literal>GROUP
-      BY</> and <literal>DISTINCT</> operations are possible on
-      <type>hstore</> columns (Andrew Gierth)
-     </para>
-
-     <para>
-      New functions and operators were also added.  These improvements
-      make <type>hstore</> a full-function key-value store embedded in
-      <productname>PostgreSQL</>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Add <link
-      linkend="passwordcheck"><filename>contrib/passwordcheck</></link>
-      to support site-specific password strength policies (Laurenz
-      Albe)
-     </para>
-
-     <para>
-      The source code of this module should be modified to implement
-      site-specific password policies.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Add <link
-      linkend="pgarchivecleanup"><filename>contrib/pg_archivecleanup</></link>
-      tool (Simon Riggs)
-     </para>
-
-     <para>
-      This is designed to be used in the
-      <literal>archive_cleanup_command</literal>
-      server parameter, to remove no-longer-needed archive files.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Add query text to <link
-      linkend="auto-explain"><filename>contrib/auto_explain</></link>
-      output (Andrew Dunstan)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Add buffer access counters to <link
-      linkend="pgstatstatements"><filename>contrib/pg_stat_statements</></link>
-      (Itagaki Takahiro)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update <link
-      linkend="server-start"><filename>contrib/start-scripts/linux</></link>
-      to use <filename>/proc/self/oom_adj</> to disable the
-      <link linkend="linux-memory-overcommit"><productname>Linux</>
-      out-of-memory</link> (<acronym>OOM</>) killer (Alex
-      Hunsaker, Tom Lane)
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect3>
- </sect2>
-</sect1>
diff --git a/doc/src/sgml/release-9.1.sgml b/doc/src/sgml/release-9.1.sgml
deleted file mode 100644
index e1b1f3aab21bb0d5b8b5e1c2b32d2b2d8e4d5660..0000000000000000000000000000000000000000
--- a/doc/src/sgml/release-9.1.sgml
+++ /dev/null
@@ -1,11763 +0,0 @@
-<!-- doc/src/sgml/release-9.1.sgml -->
-<!-- See header comment in release.sgml about typical markup -->
-
- <sect1 id="release-9-1-24">
-  <title>Release 9.1.24</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2016-10-27</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 9.1.23.
-   For information about new features in the 9.1 major release, see
-   <xref linkend="release-9-1">.
-  </para>
-
-  <para>
-   This is expected to be the last <productname>PostgreSQL</> release
-   in the 9.1.X series.  Users are encouraged to update to a newer
-   release branch soon.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 9.1.24</title>
-
-   <para>
-    A dump/restore is not required for those running 9.1.X.
-   </para>
-
-   <para>
-    However, if you are upgrading from a version earlier than 9.1.16,
-    see <xref linkend="release-9-1-16">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <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 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>
-      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>
-      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>
-      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-1-23">
-  <title>Release 9.1.23</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2016-08-11</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 9.1.22.
-   For information about new features in the 9.1 major release, see
-   <xref linkend="release-9-1">.
-  </para>
-
-  <para>
-   The <productname>PostgreSQL</> community will stop releasing updates
-   for the 9.1.X release series in September 2016.
-   Users are encouraged to update to a newer release branch soon.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 9.1.23</title>
-
-   <para>
-    A dump/restore is not required for those running 9.1.X.
-   </para>
-
-   <para>
-    However, if you are upgrading from a version earlier than 9.1.16,
-    see <xref linkend="release-9-1-16">.
-   </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>
-      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>
-      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>
-      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>
-      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>
-      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>
-      Make <application>pg_basebackup</> accept <literal>-Z 0</> as
-      specifying no compression (Fujii Masao)
-     </para>
-    </listitem>
-
-    <listitem>
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: REL9_1_STABLE [d56c02f1a] 2016-06-19 13:45:03 -0400
-Branch: REL9_1_STABLE [354b3a3ac] 2016-06-19 14:01:17 -0400
--->
-     <para>
-      Revert to the old heuristic timeout for <literal>pg_ctl start -w</>
-      (Tom Lane)
-     </para>
-
-     <para>
-      The new method adopted as of release 9.1.20 does not work
-      when <varname>silent_mode</> is enabled, so go back to the old way.
-     </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>
-      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-1-22">
-  <title>Release 9.1.22</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2016-05-12</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 9.1.21.
-   For information about new features in the 9.1 major release, see
-   <xref linkend="release-9-1">.
-  </para>
-
-  <para>
-   The <productname>PostgreSQL</> community will stop releasing updates
-   for the 9.1.X release series in September 2016.
-   Users are encouraged to update to a newer release branch soon.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 9.1.22</title>
-
-   <para>
-    A dump/restore is not required for those running 9.1.X.
-   </para>
-
-   <para>
-    However, if you are upgrading from a version earlier than 9.1.16,
-    see <xref linkend="release-9-1-16">.
-   </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 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>
-      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>
-      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-1-21">
-  <title>Release 9.1.21</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2016-03-31</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 9.1.20.
-   For information about new features in the 9.1 major release, see
-   <xref linkend="release-9-1">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 9.1.21</title>
-
-   <para>
-    A dump/restore is not required for those running 9.1.X.
-   </para>
-
-   <para>
-    However, if you are upgrading from a version earlier than 9.1.16,
-    see <xref linkend="release-9-1-16">.
-   </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 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-1-20">
-  <title>Release 9.1.20</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2016-02-11</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 9.1.19.
-   For information about new features in the 9.1 major release, see
-   <xref linkend="release-9-1">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 9.1.20</title>
-
-   <para>
-    A dump/restore is not required for those running 9.1.X.
-   </para>
-
-   <para>
-    However, if you are upgrading from a version earlier than 9.1.16,
-    see <xref linkend="release-9-1-16">.
-   </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>
-      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>
-      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>
-      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>
-      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>
-      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>
-      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>
-      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-1-19">
-  <title>Release 9.1.19</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2015-10-08</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 9.1.18.
-   For information about new features in the 9.1 major release, see
-   <xref linkend="release-9-1">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 9.1.19</title>
-
-   <para>
-    A dump/restore is not required for those running 9.1.X.
-   </para>
-
-   <para>
-    However, if you are upgrading from a version earlier than 9.1.16,
-    see <xref linkend="release-9-1-16">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <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>
-      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>
-      Back-patch 9.3-era addition of per-resource-owner lock caches
-      (Jeff Janes)
-     </para>
-
-     <para>
-      This substantially improves performance when <application>pg_dump</>
-      tries to dump a large number 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>
-      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>
-      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>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: REL9_1_STABLE [3218f8c33] 2015-08-15 11:02:33 -0400
-Branch: REL9_0_STABLE [9d6af7367] 2015-08-15 11:02:34 -0400
--->
-
-    <listitem>
-     <para>
-      Use fuzzy path cost tiebreaking rule in all supported branches (Tom Lane)
-     </para>
-
-     <para>
-      This change is meant to avoid platform-specific behavior when
-      alternative plan choices have effectively-identical estimated costs.
-     </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>
-      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 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 <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>
-      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 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-1-18">
-  <title>Release 9.1.18</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2015-06-12</para>
-  </formalpara>
-
-  <para>
-   This release contains a small number of fixes from 9.1.17.
-   For information about new features in the 9.1 major release, see
-   <xref linkend="release-9-1">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 9.1.18</title>
-
-   <para>
-    A dump/restore is not required for those running 9.1.X.
-   </para>
-
-   <para>
-    However, if you are upgrading from a version earlier than 9.1.16,
-    see <xref linkend="release-9-1-16">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <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>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-9-1-17">
-  <title>Release 9.1.17</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2015-06-04</para>
-  </formalpara>
-
-  <para>
-   This release contains a small number of fixes from 9.1.16.
-   For information about new features in the 9.1 major release, see
-   <xref linkend="release-9-1">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 9.1.17</title>
-
-   <para>
-    A dump/restore is not required for those running 9.1.X.
-   </para>
-
-   <para>
-    However, if you are upgrading from a version earlier than 9.1.16,
-    see <xref linkend="release-9-1-16">.
-   </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>
-    </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>
-
-    <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-1-16">
-  <title>Release 9.1.16</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2015-05-22</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 9.1.15.
-   For information about new features in the 9.1 major release, see
-   <xref linkend="release-9-1">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 9.1.16</title>
-
-   <para>
-    A dump/restore is not required for those running 9.1.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.1.14,
-    see <xref linkend="release-9-1-14">.
-   </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>
-      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>
-      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>
-      Avoid <quote>cannot GetMultiXactIdMembers() during recovery</> error
-      (&Aacute;lvaro Herrera)
-     </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>
-      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>
-      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>
-      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>
-      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>
-      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-1-15">
-  <title>Release 9.1.15</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2015-02-05</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 9.1.14.
-   For information about new features in the 9.1 major release, see
-   <xref linkend="release-9-1">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 9.1.15</title>
-
-   <para>
-    A dump/restore is not required for those running 9.1.X.
-   </para>
-
-   <para>
-    However, if you are upgrading from a version earlier than 9.1.14,
-    see <xref linkend="release-9-1-14">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <listitem>
-     <para>
-      Improve ispell dictionary's defenses against bad affix files (Tom Lane)
-     </para>
-    </listitem>
-
-    <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>
-
-    <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>
-
-    <listitem>
-     <para>
-      Fix planner problems with nested append relations, such as inherited
-      tables within <literal>UNION ALL</> subqueries (Tom Lane)
-     </para>
-    </listitem>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <listitem>
-     <para>
-      Avoid creating unnecessary <filename>.ready</> marker files for
-      timeline history files (Fujii Masao)
-     </para>
-    </listitem>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <listitem>
-     <para>
-      Warn if macOS's <function>setlocale()</> starts an unwanted extra
-      thread inside the postmaster (Noah Misch)
-     </para>
-    </listitem>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <listitem>
-     <para>
-      Properly handle out-of-memory conditions while parsing connection
-      options in <application>libpq</> (Alex Shulgin, Heikki Linnakangas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix array overrun in <application>ecpg</>'s version
-      of <function>ParseDateTime()</> (Michael Paquier)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      In <application>initdb</>, give a clearer error message if a password
-      file is specified but is empty (Mats Erik Andersson)
-     </para>
-    </listitem>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <listitem>
-     <para>
-      Fix possible deadlock during parallel restore of a schema-only dump
-      (Robert Haas, Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix core dump in <literal>pg_dump --binary-upgrade</> on zero-column
-      composite type (Rushabh Lathia)
-     </para>
-    </listitem>
-
-    <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>
-
-    <listitem>
-     <para>
-      Fix upgrade-from-unpackaged script for <filename>contrib/citext</>
-      (Tom Lane)
-     </para>
-    </listitem>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <listitem>
-     <para>
-      In non-MSVC Windows builds, ensure <filename>libpq.dll</> is installed
-      with execute permissions (Noah Misch)
-     </para>
-    </listitem>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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-1-14">
-  <title>Release 9.1.14</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2014-07-24</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 9.1.13.
-   For information about new features in the 9.1 major release, see
-   <xref linkend="release-9-1">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 9.1.14</title>
-
-   <para>
-    A dump/restore is not required for those running 9.1.X.
-   </para>
-
-   <para>
-    However, this release corrects an index corruption problem in some GiST
-    indexes.  See the first changelog entry 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.1.11,
-    see <xref linkend="release-9-1-11">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <listitem>
-     <para>
-      Fix feedback status when <xref linkend="guc-hot-standby-feedback"> is
-      turned off on-the-fly (Simon Riggs)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possibly-incorrect cache invalidation during nested calls
-      to <function>ReceiveSharedInvalidMessages</> (Andres Freund)
-     </para>
-    </listitem>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <listitem>
-     <para>
-      Fix possible crash when invoking a user-defined function while
-      rewinding a cursor (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix query-lifespan memory leak while evaluating the arguments for a
-      function in <literal>FROM</> (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix session-lifespan memory leaks in regular-expression processing
-      (Tom Lane, Arthur O'Dwyer, Greg Stark)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix data encoding error in <filename>hungarian.stop</> (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent foreign tables from being created with OIDS
-      when <xref linkend="guc-default-with-oids"> is true
-      (Etsuro Fujita)
-     </para>
-    </listitem>
-
-    <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>
-
-    <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>
-
-    <listitem>
-     <para>
-      Fix <command>REASSIGN OWNED</> to not fail for text search objects
-      (&Aacute;lvaro Herrera)
-     </para>
-    </listitem>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <listitem>
-     <para>
-      Fix tablespace creation WAL replay to work on Windows (MauMau)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix detection of socket creation failures on Windows (Bruce Momjian)
-     </para>
-    </listitem>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <listitem>
-     <para>
-      Ensure that LDAP lookup attempts in <application>libpq</> time out as
-      intended (Laurenz Albe)
-     </para>
-    </listitem>
-
-    <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>
-
-    <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>
-
-    <listitem>
-     <para>
-      In <filename>contrib/pgcrypto</> functions, ensure sensitive
-      information is cleared from stack variables before returning
-      (Marko Kreen)
-     </para>
-    </listitem>
-
-    <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>
-
-    <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-1-13">
-  <title>Release 9.1.13</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2014-03-20</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 9.1.12.
-   For information about new features in the 9.1 major release, see
-   <xref linkend="release-9-1">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 9.1.13</title>
-
-   <para>
-    A dump/restore is not required for those running 9.1.X.
-   </para>
-
-   <para>
-    However, if you are upgrading from a version earlier than 9.1.11,
-    see <xref linkend="release-9-1-11">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <listitem>
-     <para>
-      Fix <application>walsender</>'s failure to shut down cleanly when client
-      is <application>pg_receivexlog</> (Fujii Masao)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix test to see if hot standby connections can be allowed immediately
-      after a crash (Heikki Linnakangas)
-     </para>
-    </listitem>
-
-    <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>
-
-    <listitem>
-     <para>
-      Fix memory leak in PL/Perl when returning a composite result, including
-      multiple-OUT-parameter cases (Alex Hunsaker)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent intermittent <quote>could not reserve shared memory region</>
-      failures on recent Windows versions (MauMau)
-     </para>
-    </listitem>
-
-    <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-1-12">
-  <title>Release 9.1.12</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2014-02-20</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 9.1.11.
-   For information about new features in the 9.1 major release, see
-   <xref linkend="release-9-1">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 9.1.12</title>
-
-   <para>
-    A dump/restore is not required for those running 9.1.X.
-   </para>
-
-   <para>
-    However, if you are upgrading from a version earlier than 9.1.11,
-    see <xref linkend="release-9-1-11">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <listitem>
-     <para>
-      Fix race conditions in walsender shutdown logic and walreceiver
-      SIGHUP signal handler (Tom Lane)
-     </para>
-    </listitem>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <listitem>
-     <para>
-      Fix parser crash for <literal>EXISTS(SELECT * FROM
-      zero_column_table)</literal> (Tom Lane)
-     </para>
-    </listitem>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <listitem>
-     <para>
-      Fix checks for all-zero client addresses in pgstat functions (Kevin
-      Grittner)
-     </para>
-    </listitem>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <listitem>
-     <para>
-      Accept <literal>SHIFT_JIS</> as an encoding name for locale checking
-      purposes (Tatsuo Ishii)
-     </para>
-    </listitem>
-
-    <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>
-
-    <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>
-
-    <listitem>
-     <para>
-      Fix possible incorrect printing of filenames
-      in <application>pg_basebackup</>'s verbose mode (Magnus Hagander)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid including tablespaces inside PGDATA twice in base backups
-      (Dimitri Fontaine, Magnus Hagander)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix misaligned descriptors in <application>ecpg</> (MauMau)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      In <application>ecpg</>, handle lack of a hostname in the connection
-      parameters properly (Michael Meskes)
-     </para>
-    </listitem>
-
-    <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>
-
-    <listitem>
-     <para>
-      In <filename>contrib/isn</>, fix incorrect calculation of the check
-      digit for ISMN values (Fabien Coelho)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure client-code-only installation procedure works as documented
-      (Peter Eisentraut)
-     </para>
-    </listitem>
-
-    <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>
-
-    <listitem>
-     <para>
-      Avoid using the deprecated <literal>dllwrap</> tool in Cygwin builds
-      (Marco Atzeri)
-     </para>
-    </listitem>
-
-    <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>
-
-    <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-1-11">
-  <title>Release 9.1.11</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2013-12-05</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 9.1.10.
-   For information about new features in the 9.1 major release, see
-   <xref linkend="release-9-1">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 9.1.11</title>
-
-   <para>
-    A dump/restore is not required for those running 9.1.X.
-   </para>
-
-   <para>
-    However, this release corrects a number of potential data corruption
-    issues.  See the first two 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.1.9,
-    see <xref linkend="release-9-1-9">.
-   </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.  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 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>
-      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>
-      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>
-      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 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>
-      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>
-      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>
-      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-1-10">
-  <title>Release 9.1.10</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2013-10-10</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 9.1.9.
-   For information about new features in the 9.1 major release, see
-   <xref linkend="release-9-1">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 9.1.10</title>
-
-   <para>
-    A dump/restore is not required for those running 9.1.X.
-   </para>
-
-   <para>
-    However, if you are upgrading from a version earlier than 9.1.9,
-    see <xref linkend="release-9-1-9">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Prevent corruption of multi-byte characters when attempting to
-      case-fold identifiers (Andrew Dunstan)
-     </para>
-
-     <para>
-      <productname>PostgreSQL</> case-folds non-ASCII characters only
-      when using a single-byte server encoding.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix checkpoint memory leak in background writer when <literal>wal_level =
-      hot_standby</> (Naoya Anzai)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix memory leak caused by <function>lo_open()</function> failure
-      (Heikki Linnakangas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix memory overcommit bug when <varname>work_mem</> is using more
-      than 24GB of memory (Stephen Frost)
-     </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 possible SSL state corruption in threaded libpq applications
-      (Nick Phillips, Stephen Frost)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Properly compute row estimates for boolean columns containing many NULL
-      values (Andrew Gierth)
-     </para>
-
-     <para>
-      Previously tests like <literal>col IS NOT TRUE</> and <literal>col IS
-      NOT FALSE</> did not properly factor in NULL values when estimating
-      plan costs.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent pushing down <literal>WHERE</> clauses into unsafe
-      <literal>UNION/INTERSECT</> subqueries (Tom Lane)
-     </para>
-
-     <para>
-      Subqueries of a <literal>UNION</> or <literal>INTERSECT</> that
-      contain set-returning functions or volatile functions in their
-      <literal>SELECT</> lists could be improperly optimized, leading to
-      run-time errors or incorrect query results.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix rare case of <quote>failed to locate grouping columns</>
-      planner failure (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>pg_dump</> of foreign tables with dropped columns (Andrew Dunstan)
-     </para>
-
-     <para>
-      Previously such cases could cause a <application>pg_upgrade</> error.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Reorder <application>pg_dump</> processing of extension-related
-      rules and event triggers (Joe Conway)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Force dumping of extension tables if specified by <command>pg_dump
-      -t</> or <literal>-n</> (Joe Conway)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve view dumping code's handling of dropped columns in referenced
-      tables (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <command>pg_restore -l</> with the directory archive to display
-      the correct format name (Fujii Masao)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Properly record index comments created using <literal>UNIQUE</>
-      and <literal>PRIMARY KEY</> syntax (Andres Freund)
-     </para>
-
-     <para>
-      This fixes a parallel <application>pg_restore</> failure.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Properly guarantee transmission of WAL files before clean switchover
-      (Fujii Masao)
-     </para>
-
-     <para>
-      Previously, the streaming replication connection might close before all
-      WAL files had been replayed on the standby.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix WAL segment timeline handling during recovery (Mitsumasa Kondo,
-      Heikki Linnakangas)
-     </para>
-
-     <para>
-      WAL file recycling during standby recovery could lead to premature
-      recovery completion, resulting in data loss.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <command>REINDEX TABLE</> and <command>REINDEX DATABASE</>
-      to properly revalidate constraints and mark invalidated indexes as
-      valid (Noah Misch)
-     </para>
-
-     <para>
-      <command>REINDEX INDEX</> has always worked properly.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible deadlock during concurrent <command>CREATE INDEX
-      CONCURRENTLY</> operations (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <function>regexp_matches()</> handling of zero-length matches
-      (Jeevan Chalke)
-     </para>
-
-     <para>
-      Previously, zero-length matches like '^' could return too many matches.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix crash for overly-complex regular expressions (Heikki Linnakangas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix regular expression match failures for back references combined with
-      non-greedy quantifiers (Jeevan Chalke)
-     </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>
-      Allow <command>ALTER DEFAULT PRIVILEGES</> to operate on schemas
-      without requiring CREATE permission (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Loosen restriction on keywords used in queries (Tom Lane)
-     </para>
-
-     <para>
-      Specifically, lessen keyword restrictions for role names, language
-      names, <command>EXPLAIN</> and <command>COPY</> options, and
-      <command>SET</> values.  This allows <literal>COPY ... (FORMAT
-      BINARY)</> to work as expected; previously <literal>BINARY</> needed
-      to be quoted.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <function>pgp_pub_decrypt()</> so it works for secret keys with
-      passwords (Marko Kreen)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <application>pg_upgrade</> use <literal>pg_dump
-      --quote-all-identifiers</> to avoid problems with keyword changes
-      between releases (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Remove rare inaccurate warning during vacuum of index-less tables
-      (Heikki Linnakangas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure that <command>VACUUM ANALYZE</> still runs the ANALYZE phase
-      if its attempt to truncate the file is cancelled due to lock conflicts
-      (Kevin Grittner)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid possible failure when performing transaction control commands (e.g
-      <command>ROLLBACK</>) in prepared queries (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure that floating-point data input accepts standard spellings
-      of <quote>infinity</> on all platforms (Tom Lane)
-     </para>
-
-     <para>
-      The C99 standard says that allowable spellings are <literal>inf</>,
-      <literal>+inf</>, <literal>-inf</>, <literal>infinity</>,
-      <literal>+infinity</>, and <literal>-infinity</>.  Make sure we
-      recognize these even if the platform's <function>strtod</> function
-      doesn't.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Expand ability to compare rows to records and arrays (Rafal Rzepecki,
-      Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2013d
-      for DST law changes in Israel, Morocco, Palestine, and Paraguay.
-      Also, historical zone data corrections for Macquarie Island.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-9-1-9">
-  <title>Release 9.1.9</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2013-04-04</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 9.1.8.
-   For information about new features in the 9.1 major release, see
-   <xref linkend="release-9-1">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 9.1.9</title>
-
-   <para>
-    A dump/restore is not required for those running 9.1.X.
-   </para>
-
-   <para>
-    However, this release corrects several errors in management of GiST
-    indexes.  After installing this update, it is advisable to
-    <command>REINDEX</> any GiST indexes that meet one or more of the
-    conditions described below.
-   </para>
-
-   <para>
-    Also, if you are upgrading from a version earlier than 9.1.6,
-    see <xref linkend="release-9-1-6">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Fix insecure parsing of server command-line switches (Mitsumasa
-      Kondo, Kyotaro Horiguchi)
-     </para>
-
-     <para>
-      A connection request containing a database name that begins with
-      <quote><literal>-</></quote> could be crafted to damage or destroy
-      files within the server's data directory, even if the request is
-      eventually rejected.  (CVE-2013-1899)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Reset OpenSSL randomness state in each postmaster child process
-      (Marko Kreen)
-     </para>
-
-     <para>
-      This avoids a scenario wherein random numbers generated by
-      <filename>contrib/pgcrypto</> functions might be relatively easy for
-      another database user to guess.  The risk is only significant when
-      the postmaster is configured with <varname>ssl</> = <literal>on</>
-      but most connections don't use SSL encryption.  (CVE-2013-1900)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make REPLICATION privilege checks test current user not authenticated
-      user (Noah Misch)
-     </para>
-
-     <para>
-      An unprivileged database user could exploit this mistake to call
-      <function>pg_start_backup()</> or <function>pg_stop_backup()</>,
-      thus possibly interfering with creation of routine backups.
-      (CVE-2013-1901)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix GiST indexes to not use <quote>fuzzy</> geometric comparisons when
-      it's not appropriate to do so (Alexander Korotkov)
-     </para>
-
-     <para>
-      The core geometric types perform comparisons using <quote>fuzzy</>
-      equality, but <function>gist_box_same</> must do exact comparisons,
-      else GiST indexes using it might become inconsistent.  After installing
-      this update, users should <command>REINDEX</> any GiST indexes on
-      <type>box</>, <type>polygon</>, <type>circle</>, or <type>point</>
-      columns, since all of these use <function>gist_box_same</>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix erroneous range-union and penalty logic in GiST indexes that use
-      <filename>contrib/btree_gist</> for variable-width data types, that is
-      <type>text</>, <type>bytea</>, <type>bit</>, and <type>numeric</>
-      columns (Tom Lane)
-     </para>
-
-     <para>
-      These errors could result in inconsistent indexes in which some keys
-      that are present would not be found by searches, and also in useless
-      index bloat.  Users are advised to <command>REINDEX</> such indexes
-      after installing this update.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix bugs in GiST page splitting code for multi-column indexes
-      (Tom Lane)
-     </para>
-
-     <para>
-      These errors could result in inconsistent indexes in which some keys
-      that are present would not be found by searches, and also in indexes
-      that are unnecessarily inefficient to search.  Users are advised to
-      <command>REINDEX</> multi-column GiST indexes after installing this
-      update.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <function>gist_point_consistent</>
-      to handle fuzziness consistently (Alexander Korotkov)
-     </para>
-
-     <para>
-      Index scans on GiST indexes on <type>point</> columns would sometimes
-      yield results different from a sequential scan, because
-      <function>gist_point_consistent</> disagreed with the underlying
-      operator code about whether to do comparisons exactly or fuzzily.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix buffer leak in WAL replay (Heikki Linnakangas)
-     </para>
-
-     <para>
-      This bug could result in <quote>incorrect local pin count</> errors
-      during replay, making recovery impossible.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix race condition in <command>DELETE RETURNING</> (Tom Lane)
-     </para>
-
-     <para>
-      Under the right circumstances, <command>DELETE RETURNING</> could
-      attempt to fetch data from a shared buffer that the current process
-      no longer has any pin on.  If some other process changed the buffer
-      meanwhile, this would lead to garbage <literal>RETURNING</> output, or
-      even a crash.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix infinite-loop risk in regular expression compilation (Tom Lane,
-      Don Porter)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix potential null-pointer dereference in regular expression compilation
-      (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <function>to_char()</> to use ASCII-only case-folding rules where
-      appropriate (Tom Lane)
-     </para>
-
-     <para>
-      This fixes misbehavior of some template patterns that should be
-      locale-independent, but mishandled <quote><literal>I</></quote> and
-      <quote><literal>i</></quote> in Turkish locales.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix unwanted rejection of timestamp <literal>1999-12-31 24:00:00</>
-      (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix logic error when a single transaction does <command>UNLISTEN</>
-      then <command>LISTEN</> (Tom Lane)
-     </para>
-
-     <para>
-      The session wound up not listening for notify events at all, though it
-      surely should listen in this case.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible planner crash after columns have been added to a view
-      that's depended on by another view (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Remove useless <quote>picksplit doesn't support secondary split</> log
-      messages (Josh Hansen, Tom Lane)
-     </para>
-
-     <para>
-      This message seems to have been added in expectation of code that was
-      never written, and probably never will be, since GiST's default
-      handling of secondary splits is actually pretty good.  So stop nagging
-      end users about it.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible failure to send a session's last few transaction
-      commit/abort counts to the statistics collector (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Eliminate memory leaks in PL/Perl's <function>spi_prepare()</> function
-      (Alex Hunsaker, Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>pg_dumpall</> to handle database names containing
-      <quote><literal>=</></quote> correctly (Heikki Linnakangas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid crash in <application>pg_dump</> when an incorrect connection
-      string is given (Heikki Linnakangas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ignore invalid indexes in <application>pg_dump</> and
-      <application>pg_upgrade</> (Michael Paquier, Bruce Momjian)
-     </para>
-
-     <para>
-      Dumping invalid indexes can cause problems at restore time, for example
-      if the reason the index creation failed was because it tried to enforce
-      a uniqueness condition not satisfied by the table's data.  Also, if the
-      index creation is in fact still in progress, it seems reasonable to
-      consider it to be an uncommitted DDL change, which
-      <application>pg_dump</> wouldn't be expected to dump anyway.
-      <application>pg_upgrade</> now also skips invalid indexes rather than
-      failing.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      In <application>pg_basebackup</>, include only the current server
-      version's subdirectory when backing up a tablespace (Heikki
-      Linnakangas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Add a server version check in <application>pg_basebackup</> and
-      <application>pg_receivexlog</>, so they fail cleanly with version
-      combinations that won't work (Heikki Linnakangas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <filename>contrib/pg_trgm</>'s <function>similarity()</> function
-      to return zero for trigram-less strings (Tom Lane)
-     </para>
-
-     <para>
-      Previously it returned <literal>NaN</> due to internal division by zero.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2013b
-      for DST law changes in Chile, Haiti, Morocco, Paraguay, and some
-      Russian areas.  Also, historical zone data corrections for numerous
-      places.
-     </para>
-
-     <para>
-      Also, update the time zone abbreviation files for recent changes in
-      Russia and elsewhere: <literal>CHOT</>, <literal>GET</>,
-      <literal>IRKT</>, <literal>KGT</>, <literal>KRAT</>, <literal>MAGT</>,
-      <literal>MAWT</>, <literal>MSK</>, <literal>NOVT</>, <literal>OMST</>,
-      <literal>TKT</>, <literal>VLAT</>, <literal>WST</>, <literal>YAKT</>,
-      <literal>YEKT</> now follow their current meanings, and
-      <literal>VOLT</> (Europe/Volgograd) and <literal>MIST</>
-      (Antarctica/Macquarie) are added to the default abbreviations list.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-9-1-8">
-  <title>Release 9.1.8</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2013-02-07</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 9.1.7.
-   For information about new features in the 9.1 major release, see
-   <xref linkend="release-9-1">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 9.1.8</title>
-
-   <para>
-    A dump/restore is not required for those running 9.1.X.
-   </para>
-
-   <para>
-    However, if you are upgrading from a version earlier than 9.1.6,
-    see <xref linkend="release-9-1-6">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Prevent execution of <function>enum_recv</> from SQL (Tom Lane)
-     </para>
-
-     <para>
-      The function was misdeclared, allowing a simple SQL command to crash the
-      server.  In principle an attacker might be able to use it to examine the
-      contents of server memory.  Our thanks to Sumit Soni (via Secunia SVCRP)
-      for reporting this issue.  (CVE-2013-0255)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix multiple problems in detection of when a consistent database
-      state has been reached during WAL replay (Fujii Masao, Heikki
-      Linnakangas, Simon Riggs, Andres Freund)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update minimum recovery point when truncating a relation file (Heikki
-      Linnakangas)
-     </para>
-
-     <para>
-      Once data has been discarded, it's no longer safe to stop recovery at
-      an earlier point in the timeline.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix recycling of WAL segments after changing recovery target timeline
-      (Heikki Linnakangas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix missing cancellations in hot standby mode (Noah Misch, Simon Riggs)
-     </para>
-
-     <para>
-      The need to cancel conflicting hot-standby queries would sometimes be
-      missed, allowing those queries to see inconsistent data.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent recovery pause feature from pausing before users can connect
-      (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix SQL grammar to allow subscripting or field selection from a
-      sub-SELECT result (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix performance problems with autovacuum truncation in busy workloads
-      (Jan Wieck)
-     </para>
-
-     <para>
-      Truncation of empty pages at the end of a table requires exclusive
-      lock, but autovacuum was coded to fail (and release the table lock)
-      when there are conflicting lock requests.  Under load, it is easily
-      possible that truncation would never occur, resulting in table bloat.
-      Fix by performing a partial truncation, releasing the lock, then
-      attempting to re-acquire the lock and continue.  This fix also greatly
-      reduces the average time before autovacuum releases the lock after a
-      conflicting request arrives.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Protect against race conditions when scanning
-      <structname>pg_tablespace</> (Stephen Frost, Tom Lane)
-     </para>
-
-     <para>
-      <command>CREATE DATABASE</> and <command>DROP DATABASE</> could
-      misbehave if there were concurrent updates of
-      <structname>pg_tablespace</> entries.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent <command>DROP OWNED</> from trying to drop whole databases or
-      tablespaces (&Aacute;lvaro Herrera)
-     </para>
-
-     <para>
-      For safety, ownership of these objects must be reassigned, not dropped.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix error in <link
-      linkend="guc-vacuum-freeze-table-age"><varname>vacuum_freeze_table_age</></link>
-      implementation (Andres Freund)
-     </para>
-
-     <para>
-      In installations that have existed for more than <link
-      linkend="guc-vacuum-freeze-min-age"><varname>vacuum_freeze_min_age</></link>
-      transactions, this mistake prevented autovacuum from using partial-table
-      scans, so that a full-table scan would always happen instead.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent misbehavior when a <symbol>RowExpr</> or <symbol>XmlExpr</>
-      is parse-analyzed twice (Andres Freund, Tom Lane)
-     </para>
-
-     <para>
-      This mistake could be user-visible in contexts such as
-      <literal>CREATE TABLE LIKE INCLUDING INDEXES</>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve defenses against integer overflow in hashtable sizing
-      calculations (Jeff Davis)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix failure to ignore leftover temporary tables after a server crash
-      (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Reject out-of-range dates in <function>to_date()</> (Hitoshi Harada)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <function>pg_extension_config_dump()</> to handle
-      extension-update cases properly (Tom Lane)
-     </para>
-
-     <para>
-      This function will now replace any existing entry for the target
-      table, making it usable in extension update scripts.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix PL/Python's handling of functions used as triggers on multiple
-      tables (Andres Freund)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure that non-ASCII prompt strings are translated to the correct
-      code page on Windows (Alexander Law, Noah Misch)
-     </para>
-
-     <para>
-      This bug affected <application>psql</> and some other client programs.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible crash in <application>psql</>'s <command>\?</> command
-      when not connected to a database (Meng Qingzhong)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible error if a relation file is removed while
-      <application>pg_basebackup</> is running (Heikki Linnakangas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <application>pg_dump</> exclude data of unlogged tables when
-      running on a hot-standby server (Magnus Hagander)
-     </para>
-
-     <para>
-      This would fail anyway because the data is not available on the standby
-      server, so it seems most convenient to assume
-      <option>--no-unlogged-table-data</> automatically.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>pg_upgrade</> to deal with invalid indexes safely
-      (Bruce Momjian)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix one-byte buffer overrun in <application>libpq</>'s
-      <function>PQprintTuples</> (Xi Wang)
-     </para>
-
-     <para>
-      This ancient function is not used anywhere by
-      <productname>PostgreSQL</> itself, but it might still be used by some
-      client code.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <application>ecpglib</> use translated messages properly
-      (Chen Huajun)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Properly install <application>ecpg_compat</> and
-      <application>pgtypes</> libraries on MSVC (Jiang Guiqing)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Include our version of <function>isinf()</> in
-      <application>libecpg</> if it's not provided by the system
-      (Jiang Guiqing)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Rearrange configure's tests for supplied functions so it is not
-      fooled by bogus exports from libedit/libreadline (Christoph Berg)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure Windows build number increases over time (Magnus Hagander)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <application>pgxs</> build executables with the right
-      <literal>.exe</> suffix when cross-compiling for Windows
-      (Zoltan Boszormenyi)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Add new timezone abbreviation <literal>FET</> (Tom Lane)
-     </para>
-
-     <para>
-      This is now used in some eastern-European time zones.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-9-1-7">
-  <title>Release 9.1.7</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2012-12-06</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 9.1.6.
-   For information about new features in the 9.1 major release, see
-   <xref linkend="release-9-1">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 9.1.7</title>
-
-   <para>
-    A dump/restore is not required for those running 9.1.X.
-   </para>
-
-   <para>
-    However, if you are upgrading from a version earlier than 9.1.6,
-    see <xref linkend="release-9-1-6">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Fix multiple bugs associated with <command>CREATE INDEX
-      CONCURRENTLY</> (Andres Freund, Tom Lane)
-     </para>
-
-     <para>
-      Fix <command>CREATE INDEX CONCURRENTLY</> to use
-      in-place updates when changing the state of an index's
-      <structname>pg_index</> row.  This prevents race conditions that could
-      cause concurrent sessions to miss updating the target index, thus
-      resulting in corrupt concurrently-created indexes.
-     </para>
-
-     <para>
-      Also, fix various other operations to ensure that they ignore
-      invalid indexes resulting from a failed <command>CREATE INDEX
-      CONCURRENTLY</> command.  The most important of these is
-      <command>VACUUM</>, because an auto-vacuum could easily be launched
-      on the table before corrective action can be taken to fix or remove
-      the invalid index.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix buffer locking during WAL replay (Tom Lane)
-     </para>
-
-     <para>
-      The WAL replay code was insufficiently careful about locking buffers
-      when replaying WAL records that affect more than one page.  This could
-      result in hot standby queries transiently seeing inconsistent states,
-      resulting in wrong answers or unexpected failures.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix an error in WAL generation logic for GIN indexes (Tom Lane)
-     </para>
-
-     <para>
-      This could result in index corruption, if a torn-page failure occurred.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Properly remove startup process's virtual XID lock when promoting a
-      hot standby server to normal running (Simon Riggs)
-     </para>
-
-     <para>
-      This oversight could prevent subsequent execution of certain
-      operations such as <command>CREATE INDEX CONCURRENTLY</>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid bogus <quote>out-of-sequence timeline ID</> errors in standby
-      mode (Heikki Linnakangas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent the postmaster from launching new child processes after it's
-      received a shutdown signal (Tom Lane)
-     </para>
-
-     <para>
-      This mistake could result in shutdown taking longer than it should, or
-      even never completing at all without additional user action.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid corruption of internal hash tables when out of memory
-      (Hitoshi Harada)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent file descriptors for dropped tables from being held open past
-      transaction end (Tom Lane)
-     </para>
-
-     <para>
-      This should reduce problems with long-since-dropped tables continuing
-      to occupy disk space.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent database-wide crash and restart when a new child process is
-      unable to create a pipe for its latch (Tom Lane)
-     </para>
-
-     <para>
-      Although the new process must fail, there is no good reason to force a
-      database-wide restart, so avoid that.  This improves robustness when
-      the kernel is nearly out of file descriptors.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix planning of non-strict equivalence clauses above outer joins
-      (Tom Lane)
-     </para>
-
-     <para>
-      The planner could derive incorrect constraints from a clause equating
-      a non-strict construct to something else, for example
-      <literal>WHERE COALESCE(foo, 0) = 0</>
-      when <literal>foo</> is coming from the nullable side of an outer join.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <command>SELECT DISTINCT</> with index-optimized
-      <function>MIN</>/<function>MAX</> on an inheritance tree (Tom Lane)
-     </para>
-
-     <para>
-      The planner would fail with <quote>failed to re-find MinMaxAggInfo
-      record</> given this combination of factors.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve planner's ability to prove exclusion constraints from
-      equivalence classes (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix partial-row matching in hashed subplans to handle cross-type cases
-      correctly (Tom Lane)
-     </para>
-
-     <para>
-      This affects multicolumn <literal>NOT IN</> subplans, such as
-      <literal>WHERE (a, b) NOT IN (SELECT x, y FROM ...)</>
-      when for instance <literal>b</> and <literal>y</> are <type>int4</>
-      and <type>int8</> respectively.  This mistake led to wrong answers
-      or crashes depending on the specific datatypes involved.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Acquire buffer lock when re-fetching the old tuple for an
-      <literal>AFTER ROW UPDATE/DELETE</> trigger (Andres Freund)
-     </para>
-
-     <para>
-      In very unusual circumstances, this oversight could result in passing
-      incorrect data to a trigger <literal>WHEN</> condition, or to the
-      precheck logic for a foreign-key enforcement trigger.  That could
-      result in a crash, or in an incorrect decision about whether to
-      fire the trigger.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <command>ALTER COLUMN TYPE</> to handle inherited check
-      constraints properly (Pavan Deolasee)
-     </para>
-
-     <para>
-      This worked correctly in pre-8.4 releases, and now works correctly
-      in 8.4 and later.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <command>ALTER EXTENSION SET SCHEMA</>'s failure  to move some
-      subsidiary objects into the new schema (&Aacute;lvaro Herrera, Dimitri
-      Fontaine)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <command>REASSIGN OWNED</> to handle grants on tablespaces
-      (&Aacute;lvaro Herrera)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ignore incorrect <structname>pg_attribute</> entries for system
-      columns for views (Tom Lane)
-     </para>
-
-     <para>
-      Views do not have any system columns.  However, we forgot to
-      remove such entries when converting a table to a view.  That's fixed
-      properly for 9.3 and later, but in previous branches we need to defend
-      against existing mis-converted views.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix rule printing to dump <literal>INSERT INTO <replaceable>table</>
-      DEFAULT VALUES</literal> correctly (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Guard against stack overflow when there are too many
-      <literal>UNION</>/<literal>INTERSECT</>/<literal>EXCEPT</> clauses
-      in a query (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent platform-dependent failures when dividing the minimum possible
-      integer value by -1 (Xi Wang, Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible access past end of string in date parsing
-      (Hitoshi Harada)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix failure to advance XID epoch if XID wraparound happens during a
-      checkpoint and <varname>wal_level</> is <literal>hot_standby</>
-      (Tom Lane, Andres Freund)
-     </para>
-
-     <para>
-      While this mistake had no particular impact on
-      <productname>PostgreSQL</productname> itself, it was bad for
-      applications that rely on <function>txid_current()</> and related
-      functions: the TXID value would appear to go backwards.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix display of
-      <structname>pg_stat_replication</>.<structfield>sync_state</> at a
-      page boundary (Kyotaro Horiguchi)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Produce an understandable error message if the length of the path name
-      for a Unix-domain socket exceeds the platform-specific limit
-      (Tom Lane, Andrew Dunstan)
-     </para>
-
-     <para>
-      Formerly, this would result in something quite unhelpful, such as
-      <quote>Non-recoverable failure in name resolution</>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix memory leaks when sending composite column values to the client
-      (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <application>pg_ctl</> more robust about reading the
-      <filename>postmaster.pid</> file (Heikki Linnakangas)
-     </para>
-
-     <para>
-      Fix race conditions and possible file descriptor leakage.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible crash in <application>psql</> if incorrectly-encoded data
-      is presented and the <varname>client_encoding</> setting is a
-      client-only encoding, such as SJIS (Jiang Guiqing)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <application>pg_dump</> dump <literal>SEQUENCE SET</> items in
-      the data not pre-data section of the archive (Tom Lane)
-     </para>
-
-     <para>
-      This change fixes dumping of sequences that are marked as extension
-      configuration tables.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix bugs in the <filename>restore.sql</> script emitted by
-      <application>pg_dump</> in <literal>tar</> output format (Tom Lane)
-     </para>
-
-     <para>
-      The script would fail outright on tables whose names include
-      upper-case characters.  Also, make the script capable of restoring
-      data in <option>--inserts</> mode as well as the regular COPY mode.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>pg_restore</> to accept POSIX-conformant
-      <literal>tar</> files (Brian Weaver, Tom Lane)
-     </para>
-
-     <para>
-      The original coding of <application>pg_dump</>'s <literal>tar</>
-      output mode produced files that are not fully conformant with the
-      POSIX standard.  This has been corrected for version 9.3.  This
-      patch updates previous branches so that they will accept both the
-      incorrect and the corrected formats, in hopes of avoiding
-      compatibility problems when 9.3 comes out.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <literal>tar</> files emitted by <application>pg_basebackup</> to
-      be POSIX conformant (Brian Weaver, Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>pg_resetxlog</> to locate <filename>postmaster.pid</>
-      correctly when given a relative path to the data directory (Tom Lane)
-     </para>
-
-     <para>
-      This mistake could lead to <application>pg_resetxlog</> not noticing
-      that there is an active postmaster using the data directory.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>libpq</>'s <function>lo_import()</> and
-      <function>lo_export()</> functions to report file I/O errors properly
-      (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>ecpg</>'s processing of nested structure pointer
-      variables (Muhammad Usama)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>ecpg</>'s <function>ecpg_get_data</> function to
-      handle arrays properly (Michael Meskes)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <filename>contrib/pageinspect</>'s btree page inspection
-      functions take buffer locks while examining pages (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure that <literal>make install</> for an extension creates the
-      <filename>extension</> installation directory (C&eacute;dric Villemain)
-     </para>
-
-     <para>
-      Previously, this step was missed if <varname>MODULEDIR</> was set in
-      the extension's Makefile.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>pgxs</> support for building loadable modules on AIX
-      (Tom Lane)
-     </para>
-
-     <para>
-      Building modules outside the original source tree didn't work on AIX.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2012j
-      for DST law changes in Cuba, Israel, Jordan, Libya, Palestine, Western
-      Samoa, and portions of Brazil.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-9-1-6">
-  <title>Release 9.1.6</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2012-09-24</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 9.1.5.
-   For information about new features in the 9.1 major release, see
-   <xref linkend="release-9-1">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 9.1.6</title>
-
-   <para>
-    A dump/restore is not required for those running 9.1.X.
-   </para>
-
-   <para>
-    However, you may need to perform <command>REINDEX</> operations to
-    recover from the effects of the data corruption bug described in the
-    first changelog item below.
-   </para>
-
-   <para>
-    Also, if you are upgrading from a version earlier than 9.1.4,
-    see <xref linkend="release-9-1-4">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Fix persistence marking of shared buffers during WAL replay
-      (Jeff Davis)
-     </para>
-
-     <para>
-      This mistake can result in buffers not being written out during
-      checkpoints, resulting in data corruption if the server later crashes
-      without ever having written those buffers.  Corruption can occur on
-      any server following crash recovery, but it is significantly more
-      likely to occur on standby slave servers since those perform much
-      more WAL replay.  There is a low probability of corruption of btree
-      and GIN indexes.  There is a much higher probability of corruption of
-      table <quote>visibility maps</>.  Fortunately, visibility maps are
-      non-critical data in 9.1, so the worst consequence of such corruption
-      in 9.1 installations is transient inefficiency of vacuuming.  Table
-      data proper cannot be corrupted by this bug.
-     </para>
-
-     <para>
-      While no index corruption due to this bug is known to have occurred
-      in the field, as a precautionary measure it is recommended that
-      production installations <command>REINDEX</> all btree and GIN
-      indexes at a convenient time after upgrading to 9.1.6.
-     </para>
-
-     <para>
-      Also, if you intend to do an in-place upgrade to 9.2.X, before doing
-      so it is recommended to perform a <command>VACUUM</> of all tables
-      while having <link
-      linkend="guc-vacuum-freeze-table-age"><varname>vacuum_freeze_table_age</></link>
-      set to zero.  This will ensure that any lingering wrong data in the
-      visibility maps is corrected before 9.2.X can depend on it.  <link
-      linkend="guc-vacuum-cost-delay"><varname>vacuum_cost_delay</></link>
-      can be adjusted to reduce the performance impact of vacuuming, while
-      causing it to take longer to finish.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix planner's assignment of executor parameters, and fix executor's
-      rescan logic for CTE plan nodes (Tom Lane)
-     </para>
-
-     <para>
-      These errors could result in wrong answers from queries that scan the
-      same <literal>WITH</> subquery multiple times.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix misbehavior when <link
-      linkend="guc-default-transaction-isolation"><varname>default_transaction_isolation</></link>
-      is set to <literal>serializable</> (Kevin Grittner, Tom Lane, Heikki
-      Linnakangas)
-     </para>
-
-     <para>
-      Symptoms include crashes at process start on Windows, and crashes in
-      hot standby operation.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve selectivity estimation for text search queries involving
-      prefixes, i.e. <replaceable>word</><literal>:*</> patterns  (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve page-splitting decisions in GiST indexes (Alexander Korotkov,
-      Robert Haas, Tom Lane)
-     </para>
-
-     <para>
-      Multi-column GiST indexes might suffer unexpected bloat due to this
-      error.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix cascading privilege revoke to stop if privileges are still held
-      (Tom Lane)
-     </para>
-
-     <para>
-      If we revoke a grant option from some role <replaceable>X</>, but
-      <replaceable>X</> still holds that option via a grant from someone
-      else, we should not recursively revoke the corresponding privilege
-      from role(s) <replaceable>Y</> that <replaceable>X</> had granted it
-      to.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Disallow extensions from containing the schema they are assigned to
-      (Thom Brown)
-     </para>
-
-     <para>
-      This situation creates circular dependencies that confuse
-      <application>pg_dump</> and probably other things.  It's confusing
-      for humans too, so disallow it.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve error messages for Hot Standby misconfiguration errors
-      (Gurjeet Singh)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <application>configure</> probe for <function>mbstowcs_l</> (Tom
-      Lane)
-     </para>
-
-     <para>
-      This fixes build failures on some versions of AIX.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix handling of <literal>SIGFPE</> when PL/Perl is in use (Andres Freund)
-     </para>
-
-     <para>
-      Perl resets the process's <literal>SIGFPE</> handler to
-      <literal>SIG_IGN</>, which could result in crashes later on.  Restore
-      the normal Postgres signal handler after initializing PL/Perl.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent PL/Perl from crashing if a recursive PL/Perl function is
-      redefined while being executed (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Work around possible misoptimization in PL/Perl (Tom Lane)
-     </para>
-
-     <para>
-      Some Linux distributions contain an incorrect version of
-      <filename>pthread.h</> that results in incorrect compiled code in
-      PL/Perl, leading to crashes if a PL/Perl function calls another one
-      that throws an error.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix bugs in <filename>contrib/pg_trgm</>'s <literal>LIKE</> pattern
-      analysis code (Fujii Masao)
-     </para>
-
-     <para>
-      <literal>LIKE</> queries using a trigram index could produce wrong
-      results if the pattern contained <literal>LIKE</> escape characters.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>pg_upgrade</>'s handling of line endings on Windows
-      (Andrew Dunstan)
-     </para>
-
-     <para>
-      Previously, <application>pg_upgrade</> might add or remove carriage
-      returns in places such as function bodies.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      On Windows, make <application>pg_upgrade</> use backslash path
-      separators in the scripts it emits (Andrew Dunstan)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Remove unnecessary dependency on <application>pg_config</> from
-      <application>pg_upgrade</> (Peter Eisentraut)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2012f
-      for DST law changes in Fiji
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-9-1-5">
-  <title>Release 9.1.5</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2012-08-17</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 9.1.4.
-   For information about new features in the 9.1 major release, see
-   <xref linkend="release-9-1">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 9.1.5</title>
-
-   <para>
-    A dump/restore is not required for those running 9.1.X.
-   </para>
-
-   <para>
-    However, if you are upgrading from a version earlier than 9.1.4,
-    see <xref linkend="release-9-1-4">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Prevent access to external files/URLs via XML entity references
-      (Noah Misch, Tom Lane)
-     </para>
-
-     <para>
-      <function>xml_parse()</> would attempt to fetch external files or
-      URLs as needed to resolve DTD and entity references in an XML value,
-      thus allowing unprivileged database users to attempt to fetch data
-      with the privileges of the database server.  While the external data
-      wouldn't get returned directly to the user, portions of it could be
-      exposed in error messages if the data didn't parse as valid XML; and
-      in any case the mere ability to check existence of a file might be
-      useful to an attacker.  (CVE-2012-3489)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent access to external files/URLs via <filename>contrib/xml2</>'s
-      <function>xslt_process()</> (Peter Eisentraut)
-     </para>
-
-     <para>
-      <application>libxslt</> offers the ability to read and write both
-      files and URLs through stylesheet commands, thus allowing
-      unprivileged database users to both read and write data with the
-      privileges of the database server.  Disable that through proper use
-      of <application>libxslt</>'s security options.  (CVE-2012-3488)
-     </para>
-
-     <para>
-      Also, remove <function>xslt_process()</>'s ability to fetch documents
-      and stylesheets from external files/URLs.  While this was a
-      documented <quote>feature</>, it was long regarded as a bad idea.
-      The fix for CVE-2012-3489 broke that capability, and rather than
-      expend effort on trying to fix it, we're just going to summarily
-      remove it.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent too-early recycling of btree index pages (Noah Misch)
-     </para>
-
-     <para>
-      When we allowed read-only transactions to skip assigning XIDs, we
-      introduced the possibility that a deleted btree page could be
-      recycled while a read-only transaction was still in flight to it.
-      This would result in incorrect index search results.  The probability
-      of such an error occurring in the field seems very low because of the
-      timing requirements, but nonetheless it should be fixed.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix crash-safety bug with newly-created-or-reset sequences (Tom Lane)
-     </para>
-
-     <para>
-      If <command>ALTER SEQUENCE</> was executed on a freshly created or
-      reset sequence, and then precisely one <function>nextval()</> call
-      was made on it, and then the server crashed, WAL replay would restore
-      the sequence to a state in which it appeared that no
-      <function>nextval()</> had been done, thus allowing the first
-      sequence value to be returned again by the next
-      <function>nextval()</> call.  In particular this could manifest for
-      <type>serial</> columns, since creation of a serial column's sequence
-      includes an <command>ALTER SEQUENCE OWNED BY</> step.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix race condition in <literal>enum</>-type value comparisons (Robert
-      Haas, Tom Lane)
-     </para>
-
-     <para>
-      Comparisons could fail when encountering an enum value added since
-      the current query started.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <function>txid_current()</> to report the correct epoch when not
-      in hot standby (Heikki Linnakangas)
-     </para>
-
-     <para>
-      This fixes a regression introduced in the previous minor release.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent selection of unsuitable replication connections as
-      the synchronous standby (Fujii Masao)
-     </para>
-
-     <para>
-      The master might improperly choose pseudo-servers such as
-      <application>pg_receivexlog</> or <application>pg_basebackup</>
-      as the synchronous standby, and then wait indefinitely for them.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix bug in startup of Hot Standby when a master transaction has many
-      subtransactions (Andres Freund)
-     </para>
-
-     <para>
-      This mistake led to failures reported as <quote>out-of-order XID
-      insertion in KnownAssignedXids</>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure the <filename>backup_label</> file is fsync'd after
-      <function>pg_start_backup()</> (Dave Kerr)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix timeout handling in walsender processes (Tom Lane)
-     </para>
-
-     <para>
-      WAL sender background processes neglected to establish a
-      <systemitem>SIGALRM</> handler, meaning they would wait forever in
-      some corner cases where a timeout ought to happen.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Wake walsenders after each background flush by walwriter (Andres
-      Freund, Simon Riggs)
-     </para>
-
-     <para>
-      This greatly reduces replication delay when the workload contains
-      only asynchronously-committed transactions.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <literal>LISTEN</>/<literal>NOTIFY</> to cope better with I/O
-      problems, such as out of disk space (Tom Lane)
-     </para>
-
-     <para>
-      After a write failure, all subsequent attempts to send more
-      <literal>NOTIFY</> messages would fail with messages like
-      <quote>Could not read from file "pg_notify/<replaceable>nnnn</>" at
-      offset <replaceable>nnnnn</>: Success</quote>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Only allow autovacuum to be auto-canceled by a directly blocked
-      process (Tom Lane)
-     </para>
-
-     <para>
-      The original coding could allow inconsistent behavior in some cases;
-      in particular, an autovacuum could get canceled after less than
-      <literal>deadlock_timeout</> grace period.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve logging of autovacuum cancels (Robert Haas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix log collector so that <literal>log_truncate_on_rotation</> works
-      during the very first log rotation after server start (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <literal>WITH</> attached to a nested set operation
-      (<literal>UNION</>/<literal>INTERSECT</>/<literal>EXCEPT</>)
-      (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure that a whole-row reference to a subquery doesn't include any
-      extra <literal>GROUP BY</> or <literal>ORDER BY</> columns (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix dependencies generated during <literal>ALTER TABLE ... ADD
-      CONSTRAINT USING INDEX</> (Tom Lane)
-     </para>
-
-     <para>
-      This command left behind a redundant <structname>pg_depend</> entry
-      for the index, which could confuse later operations, notably
-      <literal>ALTER TABLE ... ALTER COLUMN TYPE</> on one of the indexed
-      columns.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <command>REASSIGN OWNED</> to work on extensions (Alvaro Herrera)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Disallow copying whole-row references in <literal>CHECK</>
-      constraints and index definitions during <command>CREATE TABLE</>
-      (Tom Lane)
-     </para>
-
-     <para>
-      This situation can arise in <command>CREATE TABLE</> with
-      <literal>LIKE</> or <literal>INHERITS</>.  The copied whole-row
-      variable was incorrectly labeled with the row type of the original
-      table not the new one.  Rejecting the case seems reasonable for
-      <literal>LIKE</>, since the row types might well diverge later.  For
-      <literal>INHERITS</> we should ideally allow it, with an implicit
-      coercion to the parent table's row type; but that will require more
-      work than seems safe to back-patch.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix memory leak in <literal>ARRAY(SELECT ...)</> subqueries (Heikki
-      Linnakangas, Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix planner to pass correct collation to operator selectivity
-      estimators (Tom Lane)
-     </para>
-
-     <para>
-      This was not previously required by any core selectivity estimation
-      function, but third-party code might need it.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix extraction of common prefixes from regular expressions (Tom Lane)
-     </para>
-
-     <para>
-      The code could get confused by quantified parenthesized
-      subexpressions, such as <literal>^(foo)?bar</>.  This would lead to
-      incorrect index optimization of searches for such patterns.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix bugs with parsing signed
-      <replaceable>hh</><literal>:</><replaceable>mm</> and
-      <replaceable>hh</><literal>:</><replaceable>mm</><literal>:</><replaceable>ss</>
-      fields in <type>interval</> constants (Amit Kapila, Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>pg_dump</> to better handle views containing partial
-      <literal>GROUP BY</> lists (Tom Lane)
-     </para>
-
-     <para>
-      A view that lists only a primary key column in <literal>GROUP BY</>,
-      but uses other table columns as if they were grouped, gets marked as
-      depending on the primary key.  Improper handling of such primary key
-      dependencies in <application>pg_dump</> resulted in poorly-ordered
-      dumps, which at best would be inefficient to restore and at worst
-      could result in outright failure of a parallel
-      <application>pg_restore</> run.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      In PL/Perl, avoid setting UTF8 flag when in SQL_ASCII encoding
-      (Alex Hunsaker, Kyotaro Horiguchi, Alvaro Herrera)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Use Postgres' encoding conversion functions, not Python's, when
-      converting a Python Unicode string to the server encoding in
-      PL/Python (Jan Urbanski)
-     </para>
-
-     <para>
-      This avoids some corner-case problems, notably that Python doesn't
-      support all the encodings Postgres does.  A notable functional change
-      is that if the server encoding is SQL_ASCII, you will get the UTF-8
-      representation of the string; formerly, any non-ASCII characters in
-      the string would result in an error.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix mapping of PostgreSQL encodings to Python encodings in PL/Python
-      (Jan Urbanski)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Report errors properly in <filename>contrib/xml2</>'s
-      <function>xslt_process()</> (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2012e
-      for DST law changes in Morocco and Tokelau
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-9-1-4">
-  <title>Release 9.1.4</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2012-06-04</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 9.1.3.
-   For information about new features in the 9.1 major release, see
-   <xref linkend="release-9-1">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 9.1.4</title>
-
-   <para>
-    A dump/restore is not required for those running 9.1.X.
-   </para>
-
-   <para>
-    However, if you use the <type>citext</> data type, and you upgraded
-    from a previous major release by running <application>pg_upgrade</>,
-    you should run <literal>CREATE EXTENSION citext FROM unpackaged</>
-    to avoid collation-related failures in <type>citext</> operations.
-    The same is necessary if you restore a dump from a pre-9.1 database
-    that contains an instance of the <type>citext</> data type.
-    If you've already run the <command>CREATE EXTENSION</> command before
-    upgrading to 9.1.4, you will instead need to do manual catalog updates
-    as explained in the third changelog item below.
-   </para>
-
-   <para>
-    Also, if you are upgrading from a version earlier than 9.1.2,
-    see <xref linkend="release-9-1-2">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Fix incorrect password transformation in
-      <filename>contrib/pgcrypto</>'s DES <function>crypt()</> function
-      (Solar Designer)
-     </para>
-
-     <para>
-      If a password string contained the byte value <literal>0x80</>, the
-      remainder of the password was ignored, causing the password to be much
-      weaker than it appeared.  With this fix, the rest of the string is
-      properly included in the DES hash.  Any stored password values that are
-      affected by this bug will thus no longer match, so the stored values may
-      need to be updated.  (CVE-2012-2143)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ignore <literal>SECURITY DEFINER</> and <literal>SET</> attributes for
-      a procedural language's call handler (Tom Lane)
-     </para>
-
-     <para>
-      Applying such attributes to a call handler could crash the server.
-      (CVE-2012-2655)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <filename>contrib/citext</>'s upgrade script fix collations of
-      <type>citext</> arrays and domains over <type>citext</>
-      (Tom Lane)
-     </para>
-
-     <para>
-      Release 9.1.2 provided a fix for collations of <type>citext</> columns
-      and indexes in databases upgraded or reloaded from pre-9.1
-      installations, but that fix was incomplete: it neglected to handle arrays
-      and domains over <type>citext</>.  This release extends the module's
-      upgrade script to handle these cases.  As before, if you have already
-      run the upgrade script, you'll need to run the collation update
-      commands by hand instead.  See the 9.1.2 release notes for more
-      information about doing this.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Allow numeric timezone offsets in <type>timestamp</> input to be up to
-      16 hours away from UTC (Tom Lane)
-     </para>
-
-     <para>
-      Some historical time zones have offsets larger than 15 hours, the
-      previous limit.  This could result in dumped data values being rejected
-      during reload.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix timestamp conversion to cope when the given time is exactly the
-      last DST transition time for the current timezone (Tom Lane)
-     </para>
-
-     <para>
-      This oversight has been there a long time, but was not noticed
-      previously because most DST-using zones are presumed to have an
-      indefinite sequence of future DST transitions.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <type>text</> to <type>name</> and <type>char</> to <type>name</>
-      casts to perform string truncation correctly in multibyte encodings
-      (Karl Schnaitter)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix memory copying bug in <function>to_tsquery()</> (Heikki Linnakangas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure <function>txid_current()</> reports the correct epoch when
-      executed in hot standby (Simon Riggs)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix planner's handling of outer PlaceHolderVars within subqueries (Tom
-      Lane)
-     </para>
-
-     <para>
-      This bug concerns sub-SELECTs that reference variables coming from the
-      nullable side of an outer join of the surrounding query.
-      In 9.1, queries affected by this bug would fail with <quote>ERROR:
-      Upper-level PlaceHolderVar found where not expected</>.  But in 9.0 and
-      8.4, you'd silently get possibly-wrong answers, since the value
-      transmitted into the subquery wouldn't go to null when it should.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix planning of <literal>UNION ALL</> subqueries with output columns
-      that are not simple variables (Tom Lane)
-     </para>
-
-     <para>
-      Planning of such cases got noticeably worse in 9.1 as a result of a
-      misguided fix for <quote>MergeAppend child's targetlist doesn't match
-      MergeAppend</> errors.  Revert that fix and do it another way.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix slow session startup when <structname>pg_attribute</> is very large
-      (Tom Lane)
-     </para>
-
-     <para>
-      If <structname>pg_attribute</> exceeds one-fourth of
-      <varname>shared_buffers</>, cache rebuilding code that is sometimes
-      needed during session start would trigger the synchronized-scan logic,
-      causing it to take many times longer than normal.  The problem was
-      particularly acute if many new sessions were starting at once.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure sequential scans check for query cancel reasonably often (Merlin
-      Moncure)
-     </para>
-
-     <para>
-      A scan encountering many consecutive pages that contain no live tuples
-      would not respond to interrupts meanwhile.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure the Windows implementation of <function>PGSemaphoreLock()</>
-      clears <varname>ImmediateInterruptOK</> before returning (Tom Lane)
-     </para>
-
-     <para>
-      This oversight meant that a query-cancel interrupt received later
-      in the same query could be accepted at an unsafe time, with
-      unpredictable but not good consequences.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Show whole-row variables safely when printing views or rules
-      (Abbas Butt, Tom Lane)
-     </para>
-
-     <para>
-      Corner cases involving ambiguous names (that is, the name could be
-      either a table or column name of the query) were printed in an
-      ambiguous way, risking that the view or rule would be interpreted
-      differently after dump and reload.  Avoid the ambiguous case by
-      attaching a no-op cast.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <command>COPY FROM</> to properly handle null marker strings that
-      correspond to invalid encoding (Tom Lane)
-     </para>
-
-     <para>
-      A null marker string such as <literal>E'\\0'</> should work, and did
-      work in the past, but the case got broken in 8.4.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <command>EXPLAIN VERBOSE</> for writable CTEs containing
-      <literal>RETURNING</> clauses (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <command>PREPARE TRANSACTION</> to work correctly in the presence
-      of advisory locks (Tom Lane)
-     </para>
-
-     <para>
-      Historically, <command>PREPARE TRANSACTION</> has simply ignored any
-      session-level advisory locks the session holds, but this case was
-      accidentally broken in 9.1.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix truncation of unlogged tables (Robert Haas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ignore missing schemas during non-interactive assignments of
-      <varname>search_path</> (Tom Lane)
-     </para>
-
-     <para>
-      This re-aligns 9.1's behavior with that of older branches.  Previously
-      9.1 would throw an error for nonexistent schemas mentioned in
-      <varname>search_path</> settings obtained from places such as
-      <command>ALTER DATABASE SET</>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix bugs with temporary or transient tables used in extension scripts
-      (Tom Lane)
-     </para>
-
-     <para>
-      This includes cases such as a rewriting <command>ALTER TABLE</> within
-      an extension update script, since that uses a transient table behind
-      the scenes.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure autovacuum worker processes perform stack depth checking
-      properly (Heikki Linnakangas)
-     </para>
-
-     <para>
-      Previously, infinite recursion in a function invoked by
-      auto-<command>ANALYZE</> could crash worker processes.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix logging collector to not lose log coherency under high load (Andrew
-      Dunstan)
-     </para>
-
-     <para>
-      The collector previously could fail to reassemble large messages if it
-      got too busy.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix logging collector to ensure it will restart file rotation
-      after receiving <systemitem>SIGHUP</> (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <quote>too many LWLocks taken</> failure in GiST indexes (Heikki
-      Linnakangas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix WAL replay logic for GIN indexes to not fail if the index was
-      subsequently dropped (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Correctly detect SSI conflicts of prepared transactions after a crash
-      (Dan Ports)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid synchronous replication delay when committing a transaction that
-      only modified temporary tables (Heikki Linnakangas)
-     </para>
-
-     <para>
-      In such a case the transaction's commit record need not be flushed to
-      standby servers, but some of the code didn't know that and waited for
-      it to happen anyway.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix error handling in <application>pg_basebackup</>
-      (Thomas Ogrisegg, Fujii Masao)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>walsender</> to not go into a busy loop if connection
-      is terminated (Fujii Masao)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix memory leak in PL/pgSQL's <command>RETURN NEXT</> command (Joe
-      Conway)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix PL/pgSQL's <command>GET DIAGNOSTICS</> command when the target
-      is the function's first variable (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure that PL/Perl package-qualifies the <varname>_TD</> variable
-      (Alex Hunsaker)
-     </para>
-
-     <para>
-      This bug caused trigger invocations to fail when they are nested
-      within a function invocation that changes the current package.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix PL/Python functions returning composite types to accept a string
-      for their result value (Jan Urbanski)
-     </para>
-
-     <para>
-      This case was accidentally broken by the 9.1 additions to allow a
-      composite result value to be supplied in other formats, such as
-      dictionaries.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix potential access off the end of memory in <application>psql</>'s
-      expanded display (<command>\x</>) mode (Peter Eisentraut)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix several performance problems in <application>pg_dump</> when
-      the database contains many objects (Jeff Janes, Tom Lane)
-     </para>
-
-     <para>
-      <application>pg_dump</> could get very slow if the database contained
-      many schemas, or if many objects are in dependency loops, or if there
-      are many owned sequences.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix memory and file descriptor leaks in <application>pg_restore</>
-      when reading a directory-format archive (Peter Eisentraut)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>pg_upgrade</> for the case that a database stored in a
-      non-default tablespace contains a table in the cluster's default
-      tablespace (Bruce Momjian)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      In <application>ecpg</>, fix rare memory leaks and possible overwrite
-      of one byte after the <structname>sqlca_t</> structure (Peter Eisentraut)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <filename>contrib/dblink</>'s <function>dblink_exec()</> to not leak
-      temporary database connections upon error (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <filename>contrib/dblink</> to report the correct connection name in
-      error messages (Kyotaro Horiguchi)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <filename>contrib/vacuumlo</> to use multiple transactions when
-      dropping many large objects (Tim Lewis, Robert Haas, Tom Lane)
-     </para>
-
-     <para>
-      This change avoids exceeding <varname>max_locks_per_transaction</> when
-      many objects need to be dropped.  The behavior can be adjusted with the
-      new <literal>-l</> (limit) option.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2012c
-      for DST law changes in Antarctica, Armenia, Chile, Cuba, Falkland
-      Islands, Gaza, Haiti, Hebron, Morocco, Syria, and Tokelau Islands;
-      also historical corrections for Canada.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-9-1-3">
-  <title>Release 9.1.3</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2012-02-27</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 9.1.2.
-   For information about new features in the 9.1 major release, see
-   <xref linkend="release-9-1">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 9.1.3</title>
-
-   <para>
-    A dump/restore is not required for those running 9.1.X.
-   </para>
-
-   <para>
-    However, if you are upgrading from a version earlier than 9.1.2,
-    see <xref linkend="release-9-1-2">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Require execute permission on the trigger function for
-      <command>CREATE TRIGGER</> (Robert Haas)
-     </para>
-
-     <para>
-      This missing check could allow another user to execute a trigger
-      function with forged input data, by installing it on a table he owns.
-      This is only of significance for trigger functions marked
-      <literal>SECURITY DEFINER</>, since otherwise trigger functions run
-      as the table owner anyway.  (CVE-2012-0866)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Remove arbitrary limitation on length of common name in SSL
-      certificates (Heikki Linnakangas)
-     </para>
-
-     <para>
-      Both <application>libpq</> and the server truncated the common name
-      extracted from an SSL certificate at 32 bytes.  Normally this would
-      cause nothing worse than an unexpected verification failure, but there
-      are some rather-implausible scenarios in which it might allow one
-      certificate holder to impersonate another.  The victim would have to
-      have a common name exactly 32 bytes long, and the attacker would have
-      to persuade a trusted CA to issue a certificate in which the common
-      name has that string as a prefix.  Impersonating a server would also
-      require some additional exploit to redirect client connections.
-      (CVE-2012-0867)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Convert newlines to spaces in names written in <application>pg_dump</>
-      comments (Robert Haas)
-     </para>
-
-     <para>
-      <application>pg_dump</> was incautious about sanitizing object names
-      that are emitted within SQL comments in its output script.  A name
-      containing a newline would at least render the script syntactically
-      incorrect.  Maliciously crafted object names could present a SQL
-      injection risk when the script is reloaded.  (CVE-2012-0868)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix btree index corruption from insertions concurrent with vacuuming
-      (Tom Lane)
-     </para>
-
-     <para>
-      An index page split caused by an insertion could sometimes cause a
-      concurrently-running <command>VACUUM</> to miss removing index entries
-      that it should remove.  After the corresponding table rows are removed,
-      the dangling index entries would cause errors (such as <quote>could not
-      read block N in file ...</>) or worse, silently wrong query results
-      after unrelated rows are re-inserted at the now-free table locations.
-      This bug has been present since release 8.2, but occurs so infrequently
-      that it was not diagnosed until now.  If you have reason to suspect
-      that it has happened in your database, reindexing the affected index
-      will fix things.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix transient zeroing of shared buffers during WAL replay (Tom Lane)
-     </para>
-
-     <para>
-      The replay logic would sometimes zero and refill a shared buffer, so
-      that the contents were transiently invalid.  In hot standby mode this
-      can result in a query that's executing in parallel seeing garbage data.
-      Various symptoms could result from that, but the most common one seems
-      to be <quote>invalid memory alloc request size</>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix handling of data-modifying <literal>WITH</> subplans in
-      <literal>READ COMMITTED</> rechecking (Tom Lane)
-     </para>
-
-     <para>
-      A <literal>WITH</> clause containing
-      <command>INSERT</>/<command>UPDATE</>/<command>DELETE</> would crash
-      if the parent <command>UPDATE</> or <command>DELETE</> command needed
-      to be re-evaluated at one or more rows due to concurrent updates
-      in <literal>READ COMMITTED</> mode.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix corner case in SSI transaction cleanup
-      (Dan Ports)
-     </para>
-
-     <para>
-      When finishing up a read-write serializable transaction,
-      a crash could occur if all remaining active serializable transactions
-      are read-only.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix postmaster to attempt restart after a hot-standby crash (Tom Lane)
-     </para>
-
-     <para>
-      A logic error caused the postmaster to terminate, rather than attempt
-      to restart the cluster, if any backend process crashed while operating
-      in hot standby mode.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <command>CLUSTER</>/<command>VACUUM FULL</> handling of toast
-      values owned by recently-updated rows (Tom Lane)
-     </para>
-
-     <para>
-      This oversight could lead to <quote>duplicate key value violates unique
-      constraint</> errors being reported against the toast table's index
-      during one of these commands.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update per-column permissions, not only per-table permissions, when
-      changing table owner (Tom Lane)
-     </para>
-
-     <para>
-      Failure to do this meant that any previously granted column permissions
-      were still shown as having been granted by the old owner.  This meant
-      that neither the new owner nor a superuser could revoke the
-      now-untraceable-to-table-owner permissions.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Support foreign data wrappers and foreign servers in
-      <command>REASSIGN OWNED</> (Alvaro Herrera)
-     </para>
-
-     <para>
-      This command failed with <quote>unexpected classid</> errors if
-      it needed to change the ownership of any such objects.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Allow non-existent values for some settings in <command>ALTER
-      USER/DATABASE SET</> (Heikki Linnakangas)
-     </para>
-
-     <para>
-      Allow <varname>default_text_search_config</>,
-      <varname>default_tablespace</>, and <varname>temp_tablespaces</> to be
-      set to names that are not known.  This is because they might be known
-      in another database where the setting is intended to be used, or for the
-      tablespace cases because the tablespace might not be created yet.  The
-      same issue was previously recognized for <varname>search_path</>, and
-      these settings now act like that one.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <quote>unsupported node type</> error caused by <literal>COLLATE</>
-      in an <command>INSERT</> expression (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid crashing when we have problems deleting table files post-commit
-      (Tom Lane)
-     </para>
-
-     <para>
-      Dropping a table should lead to deleting the underlying disk files only
-      after the transaction commits.  In event of failure then (for instance,
-      because of wrong file permissions) the code is supposed to just emit a
-      warning message and go on, since it's too late to abort the
-      transaction.  This logic got broken as of release 8.4, causing such
-      situations to result in a PANIC and an unrestartable database.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Recover from errors occurring during WAL replay of <command>DROP
-      TABLESPACE</> (Tom Lane)
-     </para>
-
-     <para>
-      Replay will attempt to remove the tablespace's directories, but there
-      are various reasons why this might fail (for example, incorrect
-      ownership or permissions on those directories).  Formerly the replay
-      code would panic, rendering the database unrestartable without manual
-      intervention.  It seems better to log the problem and continue, since
-      the only consequence of failure to remove the directories is some
-      wasted disk space.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix race condition in logging AccessExclusiveLocks for hot standby
-      (Simon Riggs)
-     </para>
-
-     <para>
-      Sometimes a lock would be logged as being held by <quote>transaction
-      zero</>.  This is at least known to produce assertion failures on
-      slave servers, and might be the cause of more serious problems.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Track the OID counter correctly during WAL replay, even when it wraps
-      around (Tom Lane)
-     </para>
-
-     <para>
-      Previously the OID counter would remain stuck at a high value until the
-      system exited replay mode.  The practical consequences of that are
-      usually nil, but there are scenarios wherein a standby server that's
-      been promoted to master might take a long time to advance the OID
-      counter to a reasonable value once values are needed.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent emitting misleading <quote>consistent recovery state reached</>
-      log message at the beginning of crash recovery (Heikki Linnakangas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix initial value of
-      <structname>pg_stat_replication</>.<structfield>replay_location</>
-      (Fujii Masao)
-     </para>
-
-     <para>
-      Previously, the value shown would be wrong until at least one WAL
-      record had been replayed.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix regular expression back-references with <literal>*</> attached
-      (Tom Lane)
-     </para>
-
-     <para>
-      Rather than enforcing an exact string match, the code would effectively
-      accept any string that satisfies the pattern sub-expression referenced
-      by the back-reference symbol.
-     </para>
-
-     <para>
-      A similar problem still afflicts back-references that are embedded in a
-      larger quantified expression, rather than being the immediate subject
-      of the quantifier.  This will be addressed in a future
-      <productname>PostgreSQL</> release.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix recently-introduced memory leak in processing of
-      <type>inet</>/<type>cidr</> values (Heikki Linnakangas)
-     </para>
-
-     <para>
-      A patch in the December 2011 releases of <productname>PostgreSQL</>
-      caused memory leakage in these operations, which could be significant
-      in scenarios such as building a btree index on such a column.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix planner's ability to push down index-expression restrictions
-      through <literal>UNION ALL</> (Tom Lane)
-     </para>
-
-     <para>
-      This type of optimization was inadvertently disabled by a fix for
-      another problem in 9.1.2.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix planning of <literal>WITH</> clauses referenced in
-      <command>UPDATE</>/<command>DELETE</> on an inherited table
-      (Tom Lane)
-     </para>
-
-     <para>
-      This bug led to <quote>could not find plan for CTE</> failures.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix GIN cost estimation to handle <literal>column IN (...)</>
-      index conditions (Marti Raudsepp)
-     </para>
-
-     <para>
-      This oversight would usually lead to crashes if such a condition could
-      be used with a GIN index.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent assertion failure when exiting a session with an open, failed
-      transaction (Tom Lane)
-     </para>
-
-     <para>
-      This bug has no impact on normal builds with asserts not enabled.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix dangling pointer after <command>CREATE TABLE AS</>/<command>SELECT
-      INTO</> in a SQL-language function (Tom Lane)
-     </para>
-
-     <para>
-      In most cases this only led to an assertion failure in assert-enabled
-      builds, but worse consequences seem possible.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid double close of file handle in syslogger on Windows (MauMau)
-     </para>
-
-     <para>
-      Ordinarily this error was invisible, but it would cause an exception
-      when running on a debug version of Windows.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix I/O-conversion-related memory leaks in plpgsql
-      (Andres Freund, Jan Urbanski, Tom Lane)
-     </para>
-
-     <para>
-      Certain operations would leak memory until the end of the current
-      function.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Work around bug in perl's SvPVutf8() function (Andrew Dunstan)
-     </para>
-
-     <para>
-      This function crashes when handed a typeglob or certain read-only
-      objects such as <literal>$^V</>.  Make plperl avoid passing those to
-      it.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      In <application>pg_dump</>, don't dump contents of an extension's
-      configuration tables if the extension itself is not being dumped
-      (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve <application>pg_dump</>'s handling of inherited table columns
-      (Tom Lane)
-     </para>
-
-     <para>
-      <application>pg_dump</> mishandled situations where a child column has
-      a different default expression than its parent column.  If the default
-      is textually identical to the parent's default, but not actually the
-      same (for instance, because of schema search path differences) it would
-      not be recognized as different, so that after dump and restore the
-      child would be allowed to inherit the parent's default.  Child columns
-      that are <literal>NOT NULL</> where their parent is not could also be
-      restored subtly incorrectly.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>pg_restore</>'s direct-to-database mode for
-      INSERT-style table data (Tom Lane)
-     </para>
-
-     <para>
-      Direct-to-database restores from archive files made with
-      <option>--inserts</> or <option>--column-inserts</> options fail when
-      using <application>pg_restore</> from a release dated September or
-      December 2011, as a result of an oversight in a fix for another
-      problem.  The archive file itself is not at fault, and text-mode
-      output is okay.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Teach <application>pg_upgrade</> to handle renaming of
-      <application>plpython</>'s shared library (Bruce Momjian)
-     </para>
-
-     <para>
-      Upgrading a pre-9.1 database that included plpython would fail because
-      of this oversight.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Allow <application>pg_upgrade</> to process tables containing
-      <type>regclass</> columns (Bruce Momjian)
-     </para>
-
-     <para>
-      Since <application>pg_upgrade</> now takes care to preserve
-      <structname>pg_class</> OIDs, there was no longer any reason for this
-      restriction.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <application>libpq</> ignore <literal>ENOTDIR</> errors
-      when looking for an SSL client certificate file
-      (Magnus Hagander)
-     </para>
-
-     <para>
-      This allows SSL connections to be established, though without a
-      certificate, even when the user's home directory is set to something
-      like <literal>/dev/null</>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix some more field alignment issues in <application>ecpg</>'s SQLDA area
-      (Zoltan Boszormenyi)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Allow <literal>AT</> option in <application>ecpg</>
-      <literal>DEALLOCATE</> statements (Michael Meskes)
-     </para>
-
-     <para>
-      The infrastructure to support this has been there for awhile, but
-      through an oversight there was still an error check rejecting the case.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Do not use the variable name when defining a varchar structure in ecpg
-      (Michael Meskes)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <filename>contrib/auto_explain</>'s JSON output mode to produce
-      valid JSON (Andrew Dunstan)
-     </para>
-
-     <para>
-      The output used brackets at the top level, when it should have used
-      braces.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix error in <filename>contrib/intarray</>'s <literal>int[] &amp;
-      int[]</> operator (Guillaume Lelarge)
-     </para>
-
-     <para>
-      If the smallest integer the two input arrays have in common is 1,
-      and there are smaller values in either array, then 1 would be
-      incorrectly omitted from the result.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix error detection in <filename>contrib/pgcrypto</>'s
-      <function>encrypt_iv()</> and <function>decrypt_iv()</>
-      (Marko Kreen)
-     </para>
-
-     <para>
-      These functions failed to report certain types of invalid-input errors,
-      and would instead return random garbage values for incorrect input.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix one-byte buffer overrun in <filename>contrib/test_parser</>
-      (Paul Guyot)
-     </para>
-
-     <para>
-      The code would try to read one more byte than it should, which would
-      crash in corner cases.
-      Since <filename>contrib/test_parser</> is only example code, this is
-      not a security issue in itself, but bad example code is still bad.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Use <function>__sync_lock_test_and_set()</> for spinlocks on ARM, if
-      available (Martin Pitt)
-     </para>
-
-     <para>
-      This function replaces our previous use of the <literal>SWPB</>
-      instruction, which is deprecated and not available on ARMv6 and later.
-      Reports suggest that the old code doesn't fail in an obvious way on
-      recent ARM boards, but simply doesn't interlock concurrent accesses,
-      leading to bizarre failures in multiprocess operation.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Use <option>-fexcess-precision=standard</> option when building with
-      gcc versions that accept it (Andrew Dunstan)
-     </para>
-
-     <para>
-      This prevents assorted scenarios wherein recent versions of gcc will
-      produce creative results.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Allow use of threaded Python on FreeBSD (Chris Rees)
-     </para>
-
-     <para>
-      Our configure script previously believed that this combination wouldn't
-      work; but FreeBSD fixed the problem, so remove that error check.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Allow MinGW builds to use standardly-named OpenSSL libraries
-      (Tomasz Ostrowski)
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-9-1-2">
-  <title>Release 9.1.2</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2011-12-05</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 9.1.1.
-   For information about new features in the 9.1 major release, see
-   <xref linkend="release-9-1">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 9.1.2</title>
-
-   <para>
-    A dump/restore is not required for those running 9.1.X.
-   </para>
-
-   <para>
-    However, a longstanding error was discovered in the definition of the
-    <literal>information_schema.referential_constraints</> view.  If you
-    rely on correct results from that view, you should replace its
-    definition as explained in the first changelog item below.
-   </para>
-
-   <para>
-    Also, if you use the <type>citext</> data type, and you upgraded
-    from a previous major release by running <application>pg_upgrade</>,
-    you should run <literal>CREATE EXTENSION citext FROM unpackaged</>
-    to avoid collation-related failures in <type>citext</> operations.
-    The same is necessary if you restore a dump from a pre-9.1 database
-    that contains an instance of the <type>citext</> data type.
-    If you've already run the <command>CREATE EXTENSION</> command before
-    upgrading to 9.1.2, you will instead need to do manual catalog updates
-    as explained in the second changelog item.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Fix bugs in <literal>information_schema.referential_constraints</> view
-      (Tom Lane)
-     </para>
-
-     <para>
-      This view was being insufficiently careful about matching the
-      foreign-key constraint to the depended-on primary or unique key
-      constraint.  That could result in failure to show a foreign key
-      constraint at all, or showing it multiple times, or claiming that it
-      depends on a different constraint than the one it really does.
-     </para>
-
-     <para>
-      Since the view definition is installed by <application>initdb</>,
-      merely upgrading will not fix the problem.  If you need to fix this
-      in an existing installation, you can (as a superuser) drop the
-      <literal>information_schema</> schema then re-create it by sourcing
-      <filename><replaceable>SHAREDIR</>/information_schema.sql</filename>.
-      (Run <literal>pg_config --sharedir</> if you're uncertain where
-      <replaceable>SHAREDIR</> is.)  This must be repeated in each database
-      to be fixed.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <filename>contrib/citext</>'s upgrade script fix collations of
-      <type>citext</> columns and indexes (Tom Lane)
-     </para>
-
-     <para>
-      Existing <type>citext</> columns and indexes aren't correctly marked as
-      being of a collatable data type during <application>pg_upgrade</> from
-      a pre-9.1 server, or when a pre-9.1 dump containing the <type>citext</>
-      type is loaded into a 9.1 server.
-      That leads to operations on these columns failing with errors
-      such as <quote>could not determine which collation to use for string
-      comparison</>.  This change allows them to be fixed by the same
-      script that upgrades the <type>citext</> module into a proper 9.1
-      extension during <literal>CREATE EXTENSION citext FROM unpackaged</>.
-     </para>
-
-     <para>
-      If you have a previously-upgraded database that is suffering from this
-      problem, and you already ran the <command>CREATE EXTENSION</> command,
-      you can manually run (as superuser) the <command>UPDATE</> commands
-      found at the end of
-      <filename><replaceable>SHAREDIR</>/extension/citext--unpackaged--1.0.sql</filename>.
-      (Run <literal>pg_config --sharedir</> if you're uncertain where
-      <replaceable>SHAREDIR</> is.)
-      There is no harm in doing this again if unsure.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible crash during <command>UPDATE</> or <command>DELETE</> that
-      joins to the output of a scalar-returning function (Tom Lane)
-     </para>
-
-     <para>
-      A crash could only occur if the target row had been concurrently
-      updated, so this problem surfaced only intermittently.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix incorrect replay of WAL records for GIN index updates
-      (Tom Lane)
-     </para>
-
-     <para>
-      This could result in transiently failing to find index entries after
-      a crash, or on a hot-standby server.  The problem would be repaired
-      by the next <command>VACUUM</> of the index, however.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix TOAST-related data corruption during <literal>CREATE TABLE dest AS
-      SELECT * FROM src</> or <literal>INSERT INTO dest SELECT * FROM src</>
-      (Tom Lane)
-     </para>
-
-     <para>
-      If a table has been modified by <command>ALTER TABLE ADD COLUMN</>,
-      attempts to copy its data verbatim to another table could produce
-      corrupt results in certain corner cases.
-      The problem can only manifest in this precise form in 8.4 and later,
-      but we patched earlier versions as well in case there are other code
-      paths that could trigger the same bug.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible failures during hot standby startup (Simon Riggs)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Start hot standby faster when initial snapshot is incomplete
-      (Simon Riggs)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix race condition during toast table access from stale syscache entries
-      (Tom Lane)
-     </para>
-
-     <para>
-      The typical symptom was transient errors like <quote>missing chunk
-      number 0 for toast value NNNNN in pg_toast_2619</>, where the cited
-      toast table would always belong to a system catalog.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Track dependencies of functions on items used in parameter default
-      expressions (Tom Lane)
-     </para>
-
-     <para>
-      Previously, a referenced object could be dropped without having dropped
-      or modified the function, leading to misbehavior when the function was
-      used.  Note that merely installing this update will not fix the missing
-      dependency entries; to do that, you'd need to <command>CREATE OR
-      REPLACE</> each such function afterwards.  If you have functions whose
-      defaults depend on non-built-in objects, doing so is recommended.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix incorrect management of placeholder variables in nestloop joins
-      (Tom Lane)
-     </para>
-
-     <para>
-      This bug is known to lead to <quote>variable not found in subplan target
-      list</> planner errors, and could possibly result in wrong query output
-      when outer joins are involved.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix window functions that sort by expressions involving aggregates
-      (Tom Lane)
-     </para>
-
-     <para>
-      Previously these could fail with <quote>could not find pathkey item to
-      sort</> planner errors.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <quote>MergeAppend child's targetlist doesn't match MergeAppend</>
-      planner errors (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix index matching for operators with both collatable and noncollatable
-      inputs (Tom Lane)
-     </para>
-
-     <para>
-      In 9.1.0, an indexable operator that has a non-collatable left-hand
-      input type and a collatable right-hand input type would not be
-      recognized as matching the left-hand column's index.  An example is
-      the <type>hstore</> <literal>?</> <type>text</> operator.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Allow inlining of set-returning SQL functions with multiple OUT
-      parameters (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Don't trust deferred-unique indexes for join removal (Tom Lane and Marti
-      Raudsepp)
-     </para>
-
-     <para>
-      A deferred uniqueness constraint might not hold intra-transaction,
-      so assuming that it does could give incorrect query results.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <function>DatumGetInetP()</> unpack inet datums that have a 1-byte
-      header, and add a new macro, <function>DatumGetInetPP()</>, that does
-      not (Heikki Linnakangas)
-     </para>
-
-     <para>
-      This change affects no core code, but might prevent crashes in add-on
-      code that expects <function>DatumGetInetP()</> to produce an unpacked
-      datum as per usual convention.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve locale support in <type>money</> type's input and output
-      (Tom Lane)
-     </para>
-
-     <para>
-      Aside from not supporting all standard
-      <link linkend="guc-lc-monetary"><varname>lc_monetary</></link>
-      formatting options, the input and output functions were inconsistent,
-      meaning there were locales in which dumped <type>money</> values could
-      not be re-read.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Don't let <link
-      linkend="guc-transform-null-equals"><varname>transform_null_equals</></link>
-      affect <literal>CASE foo WHEN NULL ...</> constructs
-      (Heikki Linnakangas)
-     </para>
-
-     <para>
-      <varname>transform_null_equals</> is only supposed to affect
-      <literal>foo = NULL</> expressions written directly by the user, not
-      equality checks generated internally by this form of <literal>CASE</>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Change foreign-key trigger creation order to better support
-      self-referential foreign keys (Tom Lane)
-     </para>
-
-     <para>
-      For a cascading foreign key that references its own table, a row update
-      will fire both the <literal>ON UPDATE</> trigger and the
-      <literal>CHECK</> trigger as one event.  The <literal>ON UPDATE</>
-      trigger must execute first, else the <literal>CHECK</> will check a
-      non-final state of the row and possibly throw an inappropriate error.
-      However, the firing order of these triggers is determined by their
-      names, which generally sort in creation order since the triggers have
-      auto-generated names following the convention
-      <quote>RI_ConstraintTrigger_NNNN</>.  A proper fix would require
-      modifying that convention, which we will do in 9.2, but it seems risky
-      to change it in existing releases.  So this patch just changes the
-      creation order of the triggers.  Users encountering this type of error
-      should drop and re-create the foreign key constraint to get its
-      triggers into the right order.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <literal>IF EXISTS</> to work correctly in <command>DROP OPERATOR
-      FAMILY</> (Robert Haas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Disallow dropping of an extension from within its own script
-      (Tom Lane)
-     </para>
-
-     <para>
-      This prevents odd behavior in case of incorrect management of extension
-      dependencies.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Don't mark auto-generated types as extension members (Robert Haas)
-     </para>
-
-     <para>
-      Relation rowtypes and automatically-generated array types do not need to
-      have their own extension membership entries in <structname>pg_depend</>,
-      and creating such entries complicates matters for extension upgrades.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Cope with invalid pre-existing <varname>search_path</> settings during
-      <command>CREATE EXTENSION</> (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid floating-point underflow while tracking buffer allocation rate
-      (Greg Matthews)
-     </para>
-
-     <para>
-      While harmless in itself, on certain platforms this would result in
-      annoying kernel log messages.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent autovacuum transactions from running in serializable mode
-      (Tom Lane)
-     </para>
-
-     <para>
-      Autovacuum formerly used the cluster-wide default transaction isolation
-      level, but there is no need for it to use anything higher than READ
-      COMMITTED, and using SERIALIZABLE could result in unnecessary delays
-      for other processes.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure walsender processes respond promptly to <systemitem>SIGTERM</>
-      (Magnus Hagander)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Exclude <filename>postmaster.opts</> from base backups
-      (Magnus Hagander)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Preserve configuration file name and line number values when starting
-      child processes under Windows (Tom Lane)
-     </para>
-
-     <para>
-      Formerly, these would not be displayed correctly in the
-      <structname>pg_settings</> view.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix incorrect field alignment in <application>ecpg</>'s SQLDA area
-      (Zoltan Boszormenyi)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Preserve blank lines within commands in <application>psql</>'s command
-      history (Robert Haas)
-     </para>
-
-     <para>
-      The former behavior could cause problems if an empty line was removed
-      from within a string literal, for example.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid platform-specific infinite loop in <application>pg_dump</>
-      (Steve Singer)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix compression of plain-text output format in <application>pg_dump</>
-      (Adrian Klaver and Tom Lane)
-     </para>
-
-     <para>
-      <application>pg_dump</> has historically understood <literal>-Z</> with
-      no <literal>-F</> switch to mean that it should emit a gzip-compressed
-      version of its plain text output.  Restore that behavior.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>pg_dump</> to dump user-defined casts between
-      auto-generated types, such as table rowtypes (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix missed quoting of foreign server names in <application>pg_dump</>
-      (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Assorted fixes for <application>pg_upgrade</> (Bruce Momjian)
-     </para>
-
-     <para>
-      Handle exclusion constraints correctly, avoid failures on Windows,
-      don't complain about mismatched toast table names in 8.4 databases.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      In PL/pgSQL, allow foreign tables to define row types
-      (Alexander Soudakov)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix up conversions of PL/Perl functions' results
-      (Alex Hunsaker and Tom Lane)
-     </para>
-
-     <para>
-      Restore the pre-9.1 behavior that PL/Perl functions returning
-      <type>void</> ignore the result value of their last Perl statement;
-      9.1.0 would throw an error if that statement returned a reference.
-      Also, make sure it works to return a string value for a composite type,
-      so long as the string meets the type's input format.
-      In addition, throw errors for attempts to return Perl arrays or hashes
-      when the function's declared result type is not an array or composite
-      type, respectively.  (Pre-9.1 versions rather uselessly returned
-      strings like <literal>ARRAY(0x221a9a0)</> or
-      <literal>HASH(0x221aa90)</> in such cases.)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure PL/Perl strings are always correctly UTF8-encoded
-      (Amit Khandekar and Alex Hunsaker)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Use the preferred version of <application>xsubpp</> to build PL/Perl,
-      not necessarily the operating system's main copy
-      (David Wheeler and Alex Hunsaker)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Correctly propagate SQLSTATE in PL/Python exceptions
-      (Mika Eloranta and Jan Urbanski)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Do not install PL/Python extension files for Python major versions
-      other than the one built against (Peter Eisentraut)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Change all the <filename>contrib</> extension script files to report
-      a useful error message if they are fed to <application>psql</>
-      (Andrew Dunstan and Tom Lane)
-     </para>
-
-     <para>
-      This should help teach people about the new method of using
-      <command>CREATE EXTENSION</> to load these files.  In most cases,
-      sourcing the scripts directly would fail anyway, but with
-      harder-to-interpret messages.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix incorrect coding in <filename>contrib/dict_int</> and
-      <filename>contrib/dict_xsyn</> (Tom Lane)
-     </para>
-
-     <para>
-      Some functions incorrectly assumed that memory returned by
-      <function>palloc()</> is guaranteed zeroed.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Remove <filename>contrib/sepgsql</> tests from the regular regression
-      test mechanism (Tom Lane)
-     </para>
-
-     <para>
-      Since these tests require root privileges for setup, they're impractical
-      to run automatically.  Switch over to a manual approach instead, and
-      provide a testing script to help with that.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix assorted errors in <filename>contrib/unaccent</>'s configuration
-      file parsing (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Honor query cancel interrupts promptly in <function>pgstatindex()</>
-      (Robert Haas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix incorrect quoting of log file name in macOS start script
-      (Sidar Lopez)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Revert unintentional enabling of <literal>WAL_DEBUG</> (Robert Haas)
-     </para>
-
-     <para>
-      Fortunately, as debugging tools go, this one is pretty cheap;
-      but it's not intended to be enabled by default, so revert.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure VPATH builds properly install all server header files
-      (Peter Eisentraut)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Shorten file names reported in verbose error messages (Peter Eisentraut)
-     </para>
-
-     <para>
-      Regular builds have always reported just the name of the C file
-      containing the error message call, but VPATH builds formerly
-      reported an absolute path name.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix interpretation of Windows timezone names for Central America
-      (Tom Lane)
-     </para>
-
-     <para>
-      Map <quote>Central America Standard Time</> to <literal>CST6</>, not
-      <literal>CST6CDT</>, because DST is generally not observed anywhere in
-      Central America.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2011n
-      for DST law changes in Brazil, Cuba, Fiji, Palestine, Russia, and Samoa;
-      also historical corrections for Alaska and British East Africa.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-9-1-1">
-  <title>Release 9.1.1</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2011-09-26</para>
-  </formalpara>
-
-  <para>
-   This release contains a small number of fixes from 9.1.0.
-   For information about new features in the 9.1 major release, see
-   <xref linkend="release-9-1">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 9.1.1</title>
-
-   <para>
-    A dump/restore is not required for those running 9.1.X.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Make <function>pg_options_to_table</> return NULL for an option with no
-      value (Tom Lane)
-     </para>
-
-     <para>
-      Previously such cases would result in a server crash.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix memory leak at end of a GiST index scan (Tom Lane)
-     </para>
-
-     <para>
-      Commands that perform many separate GiST index scans, such as
-      verification of a new GiST-based exclusion constraint on a table
-      already containing many rows, could transiently require large amounts of
-      memory due to this leak.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix explicit reference to <literal>pg_temp</> schema in <command>CREATE
-      TEMPORARY TABLE</> (Robert Haas)
-     </para>
-
-     <para>
-      This used to be allowed, but failed in 9.1.0.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-9-1">
-  <title>Release 9.1</title>
-
-  <formalpara>
-   <title>Release date:</title>
-   <para>2011-09-12</para>
-  </formalpara>
-
-  <sect2>
-   <title>Overview</title>
-
-   <para>
-    This release shows <productname>PostgreSQL</> moving beyond the
-    traditional relational-database feature set with new, ground-breaking
-    functionality that is unique to <productname>PostgreSQL</>.
-    The streaming replication feature introduced in release 9.0 is
-    significantly enhanced by adding a synchronous-replication option,
-    streaming backups, and monitoring improvements.
-    Major enhancements include:
-   </para>
-
-   <itemizedlist>
-
-    <!-- This list duplicates items below, but without authors or details-->
-
-    <listitem>
-     <para>
-      Allow <link linkend="synchronous-replication">synchronous
-      replication</link>
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Add support for <link linkend="SQL-CREATEFOREIGNTABLE">foreign
-      tables</link>
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Add per-column <link
-      linkend="collation">collation</link> support
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Add <link linkend="extend-extensions">extensions</link> which
-      simplify packaging of additions to <productname>PostgreSQL</>
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Add a true <link
-      linkend="xact-serializable">serializable isolation level</link>
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Support unlogged tables using the <literal>UNLOGGED</>
-      option in <link linkend="SQL-CREATETABLE"><command>CREATE
-      TABLE</></link>
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Allow data-modification commands
-      (<command>INSERT</>/<command>UPDATE</>/<command>DELETE</>) in
-      <link linkend="queries-with"><literal>WITH</></link> clauses
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Add nearest-neighbor (order-by-operator) searching to <link
-      linkend="GiST"><acronym>GiST</> indexes</link>
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Add a <link linkend="SQL-SECURITY-LABEL"><command>SECURITY
-      LABEL</></link> command and support for
-      <link linkend="sepgsql"><acronym>SELinux</> permissions control</link>
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update the <link linkend="plpython">PL/Python</link> server-side
-      language
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-   <para>
-    The above items are explained in more detail in the sections below.
-   </para>
-
-  </sect2>
-
-  <sect2>
-
-  <title>Migration to Version 9.1</title>
-
-   <para>
-    A dump/restore using <application>pg_dump</application>,
-    or use of <application>pg_upgrade</application>, is required
-    for those wishing to migrate data from any previous
-    release.
-   </para>
-
-   <para>
-    Version 9.1 contains a number of changes that may affect compatibility
-    with previous releases.  Observe the following incompatibilities:
-   </para>
-
-   <sect3>
-    <title>Strings</title>
-
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Change the default value of <link
-       linkend="guc-standard-conforming-strings"><varname>standard_conforming_strings</></link>
-       to on (Robert Haas)
-      </para>
-
-      <para>
-       By default, backslashes are now ordinary characters in string literals,
-       not escape characters.  This change removes a long-standing
-       incompatibility with the SQL standard.  <link
-       linkend="guc-escape-string-warning"><varname>escape_string_warning</></link>
-       has produced warnings about this usage for years.  <literal>E''</>
-       strings are the proper way to embed backslash escapes in strings and are
-       unaffected by this change.
-      </para>
-
-      <warning>
-       <para>
-        This change can break applications that are not expecting it and
-        do their own string escaping according to the old rules.  The
-        consequences could be as severe as introducing SQL-injection security
-        holes.  Be sure to test applications that are exposed to untrusted
-        input, to ensure that they correctly handle single quotes and
-        backslashes in text strings.
-       </para>
-      </warning>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title>Casting</title>
-
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Disallow function-style and attribute-style data type casts for
-       composite types (Tom Lane)
-      </para>
-
-      <para>
-       For example, disallow
-       <literal><replaceable>composite_value</>.text</literal> and
-       <literal>text(<replaceable>composite_value</>)</literal>.
-       Unintentional uses of this syntax have frequently resulted in bug
-       reports; although it was not a bug, it seems better to go back to
-       rejecting such expressions.
-       The <literal>CAST</> and <literal>::</> syntaxes are still available
-       for use when a cast of an entire composite value is actually intended.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Tighten casting checks for domains based on arrays (Tom Lane)
-      </para>
-
-      <para>
-       When a domain is based on an array type, it is allowed to <quote>look
-       through</> the domain type to access the array elements, including
-       subscripting the domain value to fetch or assign an element.
-       Assignment to an element of such a domain value, for instance via
-       <literal>UPDATE ... SET domaincol[5] = ...</>, will now result in
-       rechecking the domain type's constraints, whereas before the checks
-       were skipped.
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title>Arrays</title>
-
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Change <link
-       linkend="array-functions-table"><function>string_to_array()</></link>
-       to return an empty array for a zero-length string (Pavel
-       Stehule)
-      </para>
-
-      <para>
-       Previously this returned a null value.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Change <link
-       linkend="array-functions-table"><function>string_to_array()</></link>
-       so a <literal>NULL</> separator splits the string into characters
-       (Pavel Stehule)
-      </para>
-
-      <para>
-       Previously this returned a null value.
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title>Object Modification</title>
-
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Fix improper checks for before/after triggers (Tom Lane)
-      </para>
-
-      <para>
-       Triggers can now be fired in three cases: <literal>BEFORE</>,
-       <literal>AFTER</>, or <literal>INSTEAD OF</> some action.
-       Trigger function authors should verify that their logic behaves
-       sanely in all three cases.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-        Require superuser or <literal>CREATEROLE</> permissions in order to
-        set comments on roles (Tom Lane)
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title>Server Settings</title>
-
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Change <link
-       linkend="functions-recovery-info-table"><function>pg_last_xlog_receive_location()</></link>
-       so it never moves backwards (Fujii Masao)
-      </para>
-
-      <para>
-       Previously, the value of <function>pg_last_xlog_receive_location()</>
-       could move backward when streaming replication is restarted.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Have logging of replication connections honor <link
-       linkend="guc-log-connections"><varname>log_connections</></link>
-       (Magnus Hagander)
-      </para>
-
-      <para>
-       Previously, replication connections were always logged.
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title><link linkend="plpgsql">PL/pgSQL</link> Server-Side Language</title>
-
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Change PL/pgSQL's <literal>RAISE</> command without parameters
-       to be catchable by the attached exception block (Piyush Newe)
-      </para>
-
-      <para>
-       Previously <literal>RAISE</> in a code block was always scoped to
-       an attached exception block, so it was uncatchable at the same
-       scope.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Adjust PL/pgSQL's error line numbering code to be consistent
-       with other PLs (Pavel Stehule)
-      </para>
-
-      <para>
-       Previously, PL/pgSQL would ignore (not count) an empty line at the
-       start of the function body.  Since this was inconsistent with all
-       other languages, the special case was removed.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Make PL/pgSQL complain about conflicting IN and OUT parameter names
-       (Tom Lane)
-      </para>
-
-      <para>
-       Formerly, the collision was not detected, and the name would just
-       silently refer to only the OUT parameter.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Type modifiers of PL/pgSQL variables are now visible to the SQL parser
-       (Tom Lane)
-      </para>
-
-      <para>
-       A type modifier (such as a varchar length limit) attached to a PL/pgSQL
-       variable was formerly enforced during assignments, but was ignored for
-       all other purposes.  Such variables will now behave more like table
-       columns declared with the same modifier.  This is not expected to make
-       any visible difference in most cases, but it could result in subtle
-       changes for some SQL commands issued by PL/pgSQL functions.
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title>Contrib</title>
-
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       All contrib modules are now installed with <link
-       linkend="SQL-CREATEEXTENSION"><command>CREATE EXTENSION</></link>
-       rather than by manually invoking their SQL scripts
-       (Dimitri Fontaine, Tom Lane)
-      </para>
-
-      <para>
-       To update an existing database containing the 9.0 version of a contrib
-       module, use <literal>CREATE EXTENSION ... FROM unpackaged</literal>
-       to wrap the existing contrib module's objects into an extension.  When
-       updating from a pre-9.0 version, drop the contrib module's objects
-       using its old uninstall script, then use <literal>CREATE EXTENSION</>.
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title>Other Incompatibilities</title>
-
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Make <link
-       linkend="monitoring-stats-funcs-table"><function>pg_stat_reset()</></link>
-       reset all database-level statistics (Tomas Vondra)
-      </para>
-
-      <para>
-       Some <structname>pg_stat_database</> counters were not being reset.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-        Fix some <link
-        linkend="infoschema-triggers"><structname>information_schema.triggers</></link>
-        column names to match the new SQL-standard names (Dean Rasheed)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Treat <application>ECPG</> cursor names as case-insensitive
-       (Zoltan Boszormenyi)
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <para>
-    Below you will find a detailed account of the changes between
-    <productname>PostgreSQL</productname> 9.1 and the previous major
-    release.
-   </para>
-
-   <sect3>
-    <title>Server</title>
-
-    <sect4>
-     <title>Performance</title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Support unlogged tables using the <literal>UNLOGGED</>
-        option in <link linkend="SQL-CREATETABLE"><command>CREATE
-        TABLE</></link> (Robert Haas)
-       </para>
-
-       <para>
-        Such tables provide better update performance than regular tables,
-        but are not crash-safe: their contents are automatically cleared in
-        case of a server crash.  Their contents do not propagate to
-        replication slaves, either.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Allow <literal>FULL OUTER JOIN</literal> to be implemented as a
-        hash join, and allow either side of a <literal>LEFT OUTER JOIN</>
-        or <literal>RIGHT OUTER JOIN</> to be hashed (Tom Lane)
-       </para>
-
-       <para>
-        Previously <literal>FULL OUTER JOIN</literal> could only be
-        implemented as a merge join, and <literal>LEFT OUTER JOIN</literal>
-        and <literal>RIGHT OUTER JOIN</literal> could hash only the nullable
-        side of the join.  These changes provide additional query optimization
-        possibilities.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Merge duplicate fsync requests (Robert Haas, Greg Smith)
-       </para>
-
-       <para>
-        This greatly improves performance under heavy write loads.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Improve performance of <link
-        linkend="guc-commit-siblings"><varname>commit_siblings</></link>
-        (Greg Smith)
-       </para>
-
-       <para>
-        This allows the use of <varname>commit_siblings</varname> with
-        less overhead.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Reduce the memory requirement for large ispell dictionaries
-        (Pavel Stehule, Tom Lane)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Avoid leaving data files open after <quote>blind writes</>
-        (Alvaro Herrera)
-       </para>
-
-       <para>
-        This fixes scenarios in which backends might hold files open long
-        after they were deleted, preventing the kernel from reclaiming
-        disk space.
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-    <sect4>
-     <title>Optimizer</title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Allow inheritance table scans to return meaningfully-sorted
-        results (Greg Stark, Hans-Jurgen Schonig, Robert Haas, Tom Lane)
-       </para>
-
-       <para>
-        This allows better optimization of queries that use <literal>ORDER
-        BY</>, <literal>LIMIT</>, or <literal>MIN</>/<literal>MAX</> with
-        inherited tables.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-         Improve GIN index scan cost estimation (Teodor Sigaev)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Improve cost estimation for aggregates and window functions (Tom Lane)
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-    <sect4>
-     <title>Authentication</title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Support host names and host suffixes
-        (e.g. <literal>.example.com</>) in <link
-        linkend="auth-pg-hba-conf"><filename>pg_hba.conf</></link>
-        (Peter Eisentraut)
-       </para>
-
-       <para>
-        Previously only host <acronym>IP</> addresses and <acronym>CIDR</>
-        values were supported.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Support the key word <literal>all</> in the host column of <link
-        linkend="auth-pg-hba-conf"><filename>pg_hba.conf</></link>
-        (Peter Eisentraut)
-       </para>
-
-       <para>
-        Previously people used <literal>0.0.0.0/0</> or <literal>::/0</>
-        for this.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Reject <literal>local</> lines in <link
-        linkend="auth-pg-hba-conf"><filename>pg_hba.conf</></link>
-        on platforms that don't support Unix-socket connections
-        (Magnus Hagander)
-       </para>
-
-       <para>
-        Formerly, such lines were silently ignored, which could be surprising.
-        This makes the behavior more like other unsupported cases.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Allow <link linkend="gssapi-auth"><acronym>GSSAPI</></link>
-        to be used to authenticate to servers via <link
-        linkend="sspi-auth"><acronym>SSPI</></link> (Christian Ullrich)
-       </para>
-
-       <para>
-        Specifically this allows Unix-based <acronym>GSSAPI</> clients
-        to do <acronym>SSPI</> authentication with Windows servers.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        <link linkend="auth-ident"><literal>ident</literal></link>
-        authentication over local sockets is now known as
-        <link linkend="auth-peer"><literal>peer</literal></link>
-        (Magnus Hagander)
-       </para>
-
-       <para>
-        The old term is still accepted for backward compatibility, but since
-        the two methods are fundamentally different, it seemed better to adopt
-        different names for them.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Rewrite <link linkend="auth-peer"><acronym>peer</></link>
-        authentication to avoid use of credential control messages (Tom Lane)
-       </para>
-
-       <para>
-        This change makes the peer authentication code simpler and
-        better-performing.  However, it requires the platform to provide the
-        <function>getpeereid</> function or an equivalent socket operation.
-        So far as is known, the only platform for which peer authentication
-        worked before and now will not is pre-5.0 NetBSD.
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-    <sect4>
-     <title>Monitoring</title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Add details to the logging of restartpoints and checkpoints,
-        which is controlled by <link
-        linkend="guc-log-checkpoints"><varname>log_checkpoints</></link>
-        (Fujii Masao, Greg Smith)
-       </para>
-
-       <para>
-        New details include <acronym>WAL</> file and sync activity.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-         Add <link
-         linkend="guc-log-file-mode"><varname>log_file_mode</></link>
-         which controls the permissions on log files created by the
-         logging collector (Martin Pihlak)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Reduce the default maximum line length for <application>syslog</>
-        logging to 900 bytes plus prefixes (Noah Misch)
-       </para>
-
-       <para>
-        This avoids truncation of long log lines on syslog implementations
-        that have a 1KB length limit, rather than the more common 2KB.
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-    <sect4>
-     <title>Statistical Views</title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Add <structfield>client_hostname</structfield> column to <link
-        linkend="monitoring-stats-views-table"><structname>pg_stat_activity</></link>
-        (Peter Eisentraut)
-       </para>
-
-       <para>
-        Previously only the client address was reported.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add <link
-        linkend="monitoring-stats-views-table"><structname>pg_stat_xact_*</></link>
-        statistics functions and views (Joel Jacobson)
-       </para>
-
-       <para>
-        These are like the database-wide statistics counter views, but
-        reflect counts for only the current transaction.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-         Add time of last reset in database-level and background writer
-         statistics views (Tomas Vondra)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-         Add columns showing the number of vacuum and analyze operations
-         in <link
-         linkend="monitoring-stats-views-table"><structname>pg_stat_*_tables</></link>
-         views (Magnus Hagander)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add <structfield>buffers_backend_fsync</> column to <link
-        linkend="monitoring-stats-views-table"><structname>pg_stat_bgwriter</></link>
-        (Greg Smith)
-       </para>
-
-       <para>
-        This new column counts the number of times a backend fsyncs a
-        buffer.
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-    <sect4>
-     <title>Server Settings</title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Provide auto-tuning of <link
-        linkend="guc-wal-buffers"><varname>wal_buffers</></link> (Greg
-        Smith)
-       </para>
-
-       <para>
-        By default, the value of <varname>wal_buffers</> is now chosen
-        automatically based on the value of <varname>shared_buffers</>.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Increase the maximum values for
-        <link linkend="guc-deadlock-timeout"><varname>deadlock_timeout</varname></link>,
-        <link linkend="guc-log-min-duration-statement"><varname>log_min_duration_statement</varname></link>, and
-        <link linkend="guc-log-autovacuum-min-duration"><varname>log_autovacuum_min_duration</varname></link>
-        (Peter Eisentraut)
-       </para>
-
-       <para>
-        The maximum value for each of these parameters was previously
-        only about 35 minutes.  Much larger values are now allowed.
-       </para>
-      </listitem>
-
-      </itemizedlist>
-
-    </sect4>
-
-   </sect3>
-
-   <sect3>
-    <title>Replication and Recovery</title>
-
-   <sect4>
-    <title>Streaming Replication and Continuous Archiving</title>
-
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Allow <link linkend="synchronous-replication">synchronous
-       replication</link> (Simon Riggs, Fujii Masao)
-      </para>
-
-      <para>
-       This allows the primary server to wait for a standby to write a
-       transaction's information to disk before acknowledging the commit.
-       One standby at a time can take the role of the synchronous standby,
-       as controlled by the
-       <link linkend="guc-synchronous-standby-names"><varname>synchronous_standby_names</varname></link>
-       setting.  Synchronous replication can be enabled or disabled on a
-       per-transaction basis using the
-       <link linkend="guc-synchronous-commit"><varname>synchronous_commit</></link>
-       setting.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add protocol support for sending file system backups to standby servers
-       using the streaming replication network connection (Magnus Hagander,
-       Heikki Linnakangas)
-      </para>
-
-      <para>
-       This avoids the requirement of manually transferring a file
-       system backup when setting up a standby server.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add
-       <varname>replication_timeout</>
-       setting (Fujii Masao, Heikki Linnakangas)
-      </para>
-
-      <para>
-       Replication connections that are idle for more than the
-       <varname>replication_timeout</> interval will be terminated
-       automatically.  Formerly, a failed connection was typically not
-       detected until the TCP timeout elapsed, which is inconveniently
-       long in many situations.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add command-line tool <link
-       linkend="app-pgbasebackup"><application>pg_basebackup</></link>
-       for creating a new standby server or database backup (Magnus
-       Hagander)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add a <link linkend="SQL-CREATEROLE">replication permission</link>
-       for roles (Magnus Hagander)
-      </para>
-
-      <para>
-       This is a read-only permission used for streaming replication.
-       It allows a non-superuser role to be used for replication connections.
-       Previously only superusers could initiate replication
-       connections; superusers still have this permission by default.
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-    </sect4>
-
-    <sect4>
-     <title>Replication Monitoring</title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Add system view <link
-        linkend="monitoring-stats-views-table"><structname>pg_stat_replication</></link>
-        which displays activity of <acronym>WAL</> sender processes (Itagaki
-        Takahiro, Simon Riggs)
-       </para>
-
-       <para>
-        This reports the status of all connected standby servers.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add monitoring function <link
-        linkend="functions-recovery-info-table"><function>pg_last_xact_replay_timestamp()</></link>
-        (Fujii Masao)
-       </para>
-
-       <para>
-        This returns the time at which the primary generated the most
-        recent commit or abort record applied on the standby.
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-    <sect4>
-     <title>Hot Standby</title>
-
-     <itemizedlist>
-
-     <listitem>
-      <para>
-       Add configuration parameter <link
-       linkend="guc-hot-standby-feedback"><varname>hot_standby_feedback</></link>
-       to enable standbys to postpone cleanup of old row versions on the
-       primary (Simon Riggs)
-      </para>
-
-      <para>
-       This helps avoid canceling long-running queries on the standby.
-      </para>
-     </listitem>
-
-      <listitem>
-       <para>
-        Add the <link
-        linkend="monitoring-stats-views-table"><structname>pg_stat_database_conflicts</></link>
-        system view to show queries that have been canceled and the
-        reason (Magnus Hagander)
-       </para>
-
-       <para>
-        Cancellations can occur because of dropped tablespaces, lock
-        timeouts, old snapshots, pinned buffers, and deadlocks.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add a <structfield>conflicts</> count to <link
-        linkend="monitoring-stats-views-table"><structname>pg_stat_database</></link>
-        (Magnus Hagander)
-       </para>
-
-       <para>
-        This is the number of conflicts that occurred in the database.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Increase the maximum values for
-        <link linkend="guc-max-standby-archive-delay"><varname>max_standby_archive_delay</varname></link> and
-        <link linkend="guc-max-standby-streaming-delay"><varname>max_standby_streaming_delay</varname></link>
-       </para>
-
-       <para>
-        The maximum value for each of these parameters was previously
-        only about 35 minutes.  Much larger values are now allowed.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add <link
-        linkend="errcodes-table"><literal>ERRCODE_T_R_DATABASE_DROPPED</></link>
-        error code to report recovery conflicts due to dropped databases
-        (Tatsuo Ishii)
-       </para>
-
-       <para>
-        This is useful for connection pooling software.
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-    <sect4>
-     <title>Recovery Control</title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Add functions to control streaming replication replay (Simon Riggs)
-       </para>
-
-       <para>
-        The new functions are <link
-        linkend="functions-recovery-control-table"><function>pg_xlog_replay_pause()</></link>,
-        <link
-        linkend="functions-recovery-control-table"><function>pg_xlog_replay_resume()</></link>,
-        and the status function <link
-        linkend="functions-recovery-control-table"><function>pg_is_xlog_replay_paused()</></link>.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add <filename>recovery.conf</> setting
-        <varname>pause_at_recovery_target</>
-        to pause recovery at target (Simon Riggs)
-       </para>
-
-       <para>
-        This allows a recovery server to be queried to check whether
-        the recovery point is the one desired.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add the ability to create named restore points using <link
-        linkend="functions-admin-backup-table"><function>pg_create_restore_point()</></link>
-        (Jaime Casanova)
-       </para>
-
-       <para>
-        These named restore points can be specified as recovery
-        targets using the new <filename>recovery.conf</> setting
-        <link linkend="recovery-target-name"><varname>recovery_target_name</></link>.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Allow standby recovery to switch to a new timeline automatically
-        (Heikki Linnakangas)
-       </para>
-
-       <para>
-        Now standby servers scan the archive directory for new
-        timelines periodically.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add <link
-        linkend="guc-restart-after-crash"><varname>restart_after_crash</></link>
-        setting which disables automatic server restart after a backend
-        crash (Robert Haas)
-       </para>
-
-       <para>
-        This allows external cluster management software to control
-        whether the database server restarts or not.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Allow <link
-        linkend="recovery-config"><filename>recovery.conf</></link>
-        to use the same quoting behavior as <filename>postgresql.conf</>
-        (Dimitri Fontaine)
-       </para>
-
-       <para>
-        Previously all values had to be quoted.
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-   </sect3>
-
-   <sect3>
-    <title>Queries</title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Add a true <link
-        linkend="xact-serializable">serializable isolation level</link>
-        (Kevin Grittner, Dan Ports)
-       </para>
-
-       <para>
-        Previously, asking for serializable isolation guaranteed only that a
-        single MVCC snapshot would be used for the entire transaction, which
-        allowed certain documented anomalies.  The old snapshot isolation
-        behavior is still available by requesting the <link
-        linkend="xact-repeatable-read"><literal>REPEATABLE READ</></link>
-        isolation level.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Allow data-modification commands
-        (<command>INSERT</>/<command>UPDATE</>/<command>DELETE</>) in
-        <link linkend="queries-with"><literal>WITH</></link> clauses
-        (Marko Tiikkaja, Hitoshi Harada)
-       </para>
-
-       <para>
-        These commands can use <literal>RETURNING</> to pass data up to the
-        containing query.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Allow <link linkend="queries-with"><literal>WITH</></link>
-        clauses to be attached to <command>INSERT</>, <command>UPDATE</>,
-        <command>DELETE</> statements (Marko Tiikkaja, Hitoshi Harada)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Allow non-<link linkend="queries-group"><literal>GROUP
-        BY</></link> columns in the query target list when the primary
-        key is specified in the <literal>GROUP BY</> clause (Peter
-        Eisentraut)
-       </para>
-
-       <para>
-        The SQL standard allows this behavior, and
-        because of the primary key, the result is unambiguous.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Allow use of the key word <literal>DISTINCT</> in <link
-        linkend="queries-union"><literal>UNION</>/<literal>INTERSECT</>/<literal>EXCEPT</></link>
-        clauses (Tom Lane)
-       </para>
-
-       <para>
-        <literal>DISTINCT</> is the default behavior so use of this
-        key word is redundant, but the SQL standard allows it.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Fix ordinary queries with rules to use the same snapshot behavior
-        as <command>EXPLAIN ANALYZE</> (Marko Tiikkaja)
-       </para>
-
-       <para>
-        Previously <command>EXPLAIN ANALYZE</> used slightly different
-        snapshot timing for queries involving rules.  The
-        <command>EXPLAIN ANALYZE</> behavior was judged to be more logical.
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    <sect4>
-     <title>Strings</title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Add per-column <link
-        linkend="collation">collation</link> support
-        (Peter Eisentraut, Tom Lane)
-       </para>
-
-       <para>
-        Previously collation (the sort ordering of text strings) could only be
-        chosen at database creation.
-        Collation can now be set per column, domain, index, or
-        expression, via the SQL-standard <literal>COLLATE</> clause.
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-   </sect3>
-
-   <sect3>
-    <title>Object Manipulation</title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Add <link linkend="extend-extensions">extensions</link> which
-        simplify packaging of additions to <productname>PostgreSQL</>
-        (Dimitri Fontaine, Tom Lane)
-       </para>
-
-       <para>
-        Extensions are controlled by the new <link
-        linkend="SQL-CREATEEXTENSION"><command>CREATE</></link>/<link
-        linkend="SQL-ALTEREXTENSION"><command>ALTER</></link>/<link
-        linkend="SQL-DROPEXTENSION"><command>DROP EXTENSION</></link>
-        commands.  This replaces ad-hoc methods of grouping objects that
-        are added to a <productname>PostgreSQL</> installation.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add support for <link linkend="SQL-CREATEFOREIGNTABLE">foreign
-        tables</link> (Shigeru Hanada, Robert Haas, Jan Urbanski,
-        Heikki Linnakangas)
-       </para>
-
-       <para>
-        This allows data stored outside the database to be used like
-        native <productname>PostgreSQL</>-stored data.  Foreign tables
-        are currently read-only, however.
-       </para>
-      </listitem>
-
-     <listitem>
-      <para>
-         Allow new values to be added to an existing enum type via
-         <link linkend="SQL-ALTERTYPE"><command>ALTER TYPE</></link> (Andrew
-         Dunstan)
-      </para>
-     </listitem>
-
-      <listitem>
-       <para>
-        Add <link linkend="SQL-ALTERTYPE"><command>ALTER TYPE ...
-        ADD/DROP/ALTER/RENAME ATTRIBUTE</></link> (Peter Eisentraut)
-       </para>
-
-       <para>
-        This allows modification of composite types.
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    <sect4>
-     <title><command>ALTER</> Object</title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Add <literal>RESTRICT</>/<literal>CASCADE</> to <link
-        linkend="SQL-ALTERTYPE"><command>ALTER TYPE</></link> operations
-        on typed tables (Peter Eisentraut)
-       </para>
-
-       <para>
-        This controls
-        <literal>ADD</>/<literal>DROP</>/<literal>ALTER</>/<literal>RENAME
-        ATTRIBUTE</> cascading behavior.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Support <literal>ALTER TABLE <replaceable>name</> {OF | NOT OF}
-        <replaceable>type</></literal>
-        (Noah Misch)
-       </para>
-
-       <para>
-        This syntax allows a standalone table to be made into a typed table,
-        or a typed table to be made standalone.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add support for more object types in <command>ALTER ... SET
-        SCHEMA</> commands (Dimitri Fontaine)
-       </para>
-
-       <para>
-        This command is now supported for conversions, operators, operator
-        classes, operator families, text search configurations, text search
-        dictionaries, text search parsers, and text search templates.
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-    <sect4>
-     <title><link linkend="SQL-CREATETABLE"><command>CREATE/ALTER TABLE</></link></title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Add <command>ALTER TABLE ...
-        ADD UNIQUE/PRIMARY KEY USING INDEX</command>
-        (Gurjeet Singh)
-       </para>
-
-       <para>
-        This allows a primary key or unique constraint to be defined using an
-        existing unique index, including a concurrently created unique index.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Allow <command>ALTER TABLE</>
-        to add foreign keys without validation (Simon Riggs)
-       </para>
-
-       <para>
-        The new option is called <literal>NOT VALID</>.  The constraint's
-        state can later be modified to <literal>VALIDATED</> and validation
-        checks performed. Together these allow you to add a foreign key
-        with minimal impact on read and write operations.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Allow <link linkend="SQL-ALTERTABLE"><command>ALTER TABLE
-        ... SET DATA TYPE</command></link> to avoid table rewrites in
-        appropriate cases (Noah Misch, Robert Haas)
-       </para>
-
-       <para>
-        For example, converting a <type>varchar</> column to
-        <type>text</> no longer requires a rewrite of the table.
-        However, increasing the length constraint on a
-        <type>varchar</> column still requires a table rewrite.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add <link linkend="SQL-CREATETABLE"><command>CREATE TABLE IF
-        NOT EXISTS</></link> syntax (Robert Haas)
-       </para>
-
-       <para>
-        This allows table creation without causing an error if the
-        table already exists.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Fix possible <quote>tuple concurrently updated</quote> error
-        when two backends attempt to add an inheritance
-        child to the same table at the same time (Robert Haas)
-       </para>
-
-       <para>
-        <link linkend="sql-altertable"><command>ALTER TABLE</command></link>
-        now takes a stronger lock on the parent table, so that the sessions
-        cannot try to update it simultaneously.
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-    <sect4>
-     <title>Object Permissions</title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Add a <link linkend="SQL-SECURITY-LABEL"><command>SECURITY
-        LABEL</></link> command (KaiGai Kohei)
-       </para>
-
-       <para>
-        This allows security labels to be assigned to objects.
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-   </sect3>
-
-   <sect3>
-    <title>Utility Operations</title>
-
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Add transaction-level <link linkend="advisory-locks">advisory
-       locks</link> (Marko Tiikkaja)
-      </para>
-
-      <para>
-       These are similar to the existing session-level advisory locks,
-       but such locks are automatically released at transaction end.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Make <link linkend="SQL-TRUNCATE"><command>TRUNCATE ... RESTART
-       IDENTITY</></link> restart sequences transactionally (Steve
-       Singer)
-      </para>
-
-      <para>
-       Previously the counter could have been left out of sync if a
-       backend crashed between the on-commit truncation activity and
-       commit completion.
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-    <sect4>
-     <title><link linkend="SQL-COPY"><command>COPY</></link></title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Add <literal>ENCODING</> option to <link
-        linkend="SQL-COPY"><command>COPY TO/FROM</></link> (Hitoshi
-        Harada, Itagaki Takahiro)
-       </para>
-
-       <para>
-        This allows the encoding of the <command>COPY</> file to be
-        specified separately from client encoding.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add bidirectional <link linkend="SQL-COPY"><command>COPY</></link>
-        protocol support (Fujii Masao)
-       </para>
-
-       <para>
-        This is currently only used by streaming replication.
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-    <sect4>
-     <title><link linkend="SQL-EXPLAIN"><command>EXPLAIN</></link></title>
-
-      <itemizedlist>
-
-      <listitem>
-       <para>
-        Make <command>EXPLAIN VERBOSE</> show the function call expression
-        in a <literal>FunctionScan</literal> node (Tom Lane)
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-    <sect4>
-     <title><link linkend="SQL-VACUUM"><command>VACUUM</></link></title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Add additional details to the output of <link
-        linkend="SQL-VACUUM"><command>VACUUM FULL VERBOSE</></link>
-        and <link linkend="SQL-CLUSTER"><command>CLUSTER VERBOSE</></link>
-        (Itagaki Takahiro)
-       </para>
-
-       <para>
-        New information includes the live and dead tuple count and
-        whether <command>CLUSTER</> is using an index to rebuild.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Prevent <link linkend="autovacuum">autovacuum</link> from
-        waiting if it cannot acquire a table lock (Robert Haas)
-       </para>
-
-       <para>
-        It will try to vacuum that table later.
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-    <sect4>
-     <title><link linkend="SQL-CLUSTER"><command>CLUSTER</></link></title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Allow <command>CLUSTER</> to sort the table rather than scanning
-        the index when it seems likely to be cheaper (Leonardo Francalanci)
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-    <sect4>
-     <title>Indexes</title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Add nearest-neighbor (order-by-operator) searching to <link
-        linkend="GiST"><acronym>GiST</> indexes</link> (Teodor Sigaev, Tom Lane)
-       </para>
-
-       <para>
-        This allows <acronym>GiST</> indexes to quickly return the
-        <replaceable>N</> closest values in a query with <literal>LIMIT</>.
-        For example
-<programlisting><![CDATA[
-SELECT * FROM places ORDER BY location <-> point '(101,456)' LIMIT 10;
-]]>
-</programlisting>
-        finds the ten places closest to a given target point.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Allow <link linkend="GIN"><acronym>GIN</> indexes</link> to index null
-        and empty values (Tom Lane)
-       </para>
-
-       <para>
-        This allows full <acronym>GIN</> index scans, and fixes various
-        corner cases in which GIN scans would fail.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Allow <link linkend="GIN"><acronym>GIN</> indexes</link> to
-        better recognize duplicate search entries (Tom Lane)
-       </para>
-
-       <para>
-        This reduces the cost of index scans, especially in cases where
-        it avoids unnecessary full index scans.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Fix <link linkend="GiST"><acronym>GiST</> indexes</link> to be fully
-        crash-safe (Heikki Linnakangas)
-       </para>
-
-       <para>
-        Previously there were rare cases where a <command>REINDEX</>
-        would be required (you would be informed).
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-   </sect3>
-
-   <sect3>
-    <title>Data Types</title>
-
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Allow <type>numeric</> to use a more compact, two-byte header
-       in common cases (Robert Haas)
-      </para>
-
-      <para>
-       Previously all <type>numeric</> values had four-byte headers;
-       this change saves on disk storage.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-        Add support for dividing <type>money</> by <type>money</>
-        (Andy Balholm)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow binary I/O on type <type>void</type> (Radoslaw Smogura)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Improve hypotenuse calculations for geometric operators (Paul Matthews)
-      </para>
-
-      <para>
-       This avoids unnecessary overflows, and may also be more accurate.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Support hashing array values (Tom Lane)
-      </para>
-
-      <para>
-       This provides additional query optimization possibilities.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Don't treat a composite type as sortable unless all its column types
-       are sortable (Tom Lane)
-      </para>
-
-      <para>
-       This avoids possible <quote>could not identify a comparison function</>
-       failures at runtime, if it is possible to implement the query without
-       sorting.  Also, <command>ANALYZE</> won't try to use inappropriate
-       statistics-gathering methods for columns of such composite types.
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-    <sect4>
-     <title>Casting</title>
-
-     <itemizedlist>
-
-     <listitem>
-      <para>
-        Add support for casting between <type>money</> and <type>numeric</>
-        (Andy Balholm)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add support for casting from <type>int4</> and <type>int8</>
-       to <type>money</> (Joey Adams)
-      </para>
-     </listitem>
-
-      <listitem>
-       <para>
-        Allow casting a table's row type to the table's supertype if
-        it's a typed table (Peter Eisentraut)
-       </para>
-
-       <para>
-        This is analogous to the existing facility that allows casting a row
-        type to a supertable's row type.
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-    <sect4>
-     <title><link linkend="functions-xml"><acronym>XML</></link></title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Add <acronym>XML</> function <link
-        linkend="xml-exists"><literal>XMLEXISTS</></link> and <link
-        linkend="xml-exists"><function>xpath_exists()</></link>
-        functions (Mike Fowler)
-       </para>
-
-       <para>
-        These are used for XPath matching.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add <acronym>XML</> functions <link
-        linkend="xml-is-well-formed"><function>xml_is_well_formed()</></link>,
-        <link
-        linkend="xml-is-well-formed"><function>xml_is_well_formed_document()</></link>,
-        <link
-        linkend="xml-is-well-formed"><function>xml_is_well_formed_content()</></link>
-        (Mike Fowler)
-       </para>
-
-       <para>
-        These check whether the input is properly-formed <acronym>XML</>.
-        They provide functionality that was previously available only in
-        the deprecated <filename>contrib/xml2</filename> module.
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-   </sect3>
-
-   <sect3>
-    <title>Functions</title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Add SQL function <link
-        linkend="format"><function>format(text, ...)</></link>, which
-        behaves analogously to C's <function>printf()</> (Pavel Stehule,
-        Robert Haas)
-       </para>
-
-       <para>
-        It currently supports formats for strings, SQL literals, and
-        SQL identifiers.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add string functions <link
-        linkend="functions-string-other"><function>concat()</></link>,
-        <link
-        linkend="functions-string-other"><function>concat_ws()</></link>,
-        <link linkend="functions-string-other"><function>left()</></link>,
-        <link linkend="functions-string-other"><function>right()</></link>,
-        and <link
-        linkend="functions-string-other"><function>reverse()</></link>
-        (Pavel Stehule)
-       </para>
-
-       <para>
-        These improve compatibility with other database products.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-         Add function <link
-         linkend="functions-admin-genfile"><function>pg_read_binary_file()</></link>
-         to read binary files (Dimitri Fontaine, Itagaki Takahiro)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-         Add a single-parameter version of function <link
-         linkend="functions-admin-genfile"><function>pg_read_file()</></link>
-         to read an entire file (Dimitri Fontaine, Itagaki Takahiro)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-         Add three-parameter forms of <link
-         linkend="array-functions-table"><function>array_to_string()</></link>
-         and <link
-         linkend="array-functions-table"><function>string_to_array()</></link>
-         for null value processing control (Pavel Stehule)
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    <sect4>
-     <title>Object Information Functions</title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Add the <link
-        linkend="functions-info-catalog-table"><function>pg_describe_object()</></link>
-        function (Alvaro Herrera)
-       </para>
-
-       <para>
-        This function is used to obtain a human-readable string describing
-        an object, based on the <link
-        linkend="catalog-pg-class"><structname>pg_class</structname></link>
-        OID, object OID, and sub-object ID.  It can be used to help
-        interpret the contents of <link
-        linkend="catalog-pg-depend"><structname>pg_depend</structname></link>.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-         Update comments for built-in operators and their underlying
-         functions (Tom Lane)
-       </para>
-
-       <para>
-        Functions that are meant to be used via an associated operator
-        are now commented as such.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add variable <link
-        linkend="guc-quote-all-identifiers"><varname>quote_all_identifiers</></link>
-        to force the quoting of all identifiers in <command>EXPLAIN</>
-        and in system catalog functions like <link
-        linkend="functions-info-catalog-table"><function>pg_get_viewdef()</></link>
-        (Robert Haas)
-       </para>
-
-       <para>
-        This makes exporting schemas to tools and other databases with
-        different quoting rules easier.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add columns to the <link
-        linkend="infoschema-sequences"><structname>information_schema.sequences</></link>
-        system view (Peter Eisentraut)
-       </para>
-
-       <para>
-        Previously, though the view existed, the columns about the
-        sequence parameters were unimplemented.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Allow <literal>public</> as a pseudo-role name in <link
-        linkend="functions-info-access-table"><function>has_table_privilege()</></link>
-        and related functions (Alvaro Herrera)
-       </para>
-
-       <para>
-        This allows checking for public permissions.
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-    <sect4>
-     <title>Function and Trigger Creation</title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Support <link linkend="SQL-CREATETRIGGER"><literal>INSTEAD
-        OF</></link> triggers on views (Dean Rasheed)
-       </para>
-
-       <para>
-        This feature can be used to implement fully updatable views.
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-   </sect3>
-
-   <sect3>
-    <title>Server-Side Languages</title>
-
-    <sect4>
-     <title><link linkend="plpgsql">PL/pgSQL</link> Server-Side Language</title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Add <link linkend="plpgsql-foreach-array"><command>FOREACH IN
-        ARRAY</></link> to PL/pgSQL
-        (Pavel Stehule)
-       </para>
-
-       <para>
-        This is more efficient and readable than previous methods of
-        iterating through the elements of an array value.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Allow <command>RAISE</command> without parameters to be caught in
-        the same places that could catch a <command>RAISE ERROR</command>
-        from the same location (Piyush Newe)
-       </para>
-
-       <para>
-        The previous coding threw the error
-        from the block containing the active exception handler.
-        The new behavior is more consistent with other DBMS products.
-       </para>
-      </listitem>
-
-    </itemizedlist>
-
-    </sect4>
-
-    <sect4>
-     <title><link linkend="plperl">PL/Perl</link> Server-Side Language</title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Allow generic record arguments to PL/Perl functions (Andrew
-        Dunstan)
-       </para>
-
-       <para>
-        PL/Perl functions can now be declared to accept type <type>record</>.
-        The behavior is the same as for any named composite type.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Convert PL/Perl array arguments to Perl arrays (Alexey Klyukin,
-        Alex Hunsaker)
-       </para>
-
-       <para>
-        String representations are still available.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Convert PL/Perl composite-type arguments to Perl hashes
-        (Alexey Klyukin, Alex Hunsaker)
-       </para>
-
-       <para>
-        String representations are still available.
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-    <sect4>
-     <title><link linkend="plpython">PL/Python</link> Server-Side Language</title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Add table function support for PL/Python (Jan Urbanski)
-       </para>
-
-       <para>
-        PL/Python can now return multiple <literal>OUT</> parameters
-        and record sets.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add a validator to PL/Python (Jan Urbanski)
-       </para>
-
-       <para>
-        This allows PL/Python functions to be syntax-checked at function
-        creation time.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Allow exceptions for SQL queries in PL/Python (Jan Urbanski)
-       </para>
-
-       <para>
-        This allows access to SQL-generated exception error codes from
-        PL/Python exception blocks.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add explicit subtransactions to PL/Python (Jan Urbanski)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add PL/Python functions for quoting strings (Jan Urbanski)
-       </para>
-
-       <para>
-        These functions are <link
-        linkend="plpython-util"><literal>plpy.quote_ident</></link>,
-        <link linkend="plpython-util"><literal>plpy.quote_literal</></link>,
-        and <link
-        linkend="plpython-util"><literal>plpy.quote_nullable</></link>.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-         Add traceback information to PL/Python errors (Jan Urbanski)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-         Report PL/Python errors from iterators with <literal>PLy_elog</> (Jan
-         Urbanski)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Fix exception handling with Python 3 (Jan Urbanski)
-       </para>
-
-       <para>
-        Exception classes were previously not available in
-        <literal>plpy</> under Python 3.
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-   </sect3>
-
-   <sect3>
-    <title>Client Applications</title>
-
-    <itemizedlist>
-
-     <listitem>
-      <para>
-        Mark <link
-        linkend="APP-CREATELANG"><application>createlang</></link>
-        and <link linkend="APP-DROPLANG"><application>droplang</></link>
-        as deprecated now that they just invoke extension commands (Tom
-        Lane)
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-    <sect4>
-     <title><link linkend="APP-PSQL"><application>psql</></link></title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-         Add <application>psql</> command <literal>\conninfo</>
-         to show current connection information (David Christensen)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-         Add <application>psql</> command <literal>\sf</> to
-         show a function's definition (Pavel Stehule)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-         Add <application>psql</> command <literal>\dL</> to list
-         languages (Fernando Ike)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add the <option>S</> (<quote>system</>) option to <application>psql</>'s
-        <literal>\dn</> (list schemas) command (Tom Lane)
-       </para>
-
-       <para>
-        <literal>\dn</> without <literal>S</> now suppresses system
-        schemas.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Allow <application>psql</>'s <literal>\e</> and <literal>\ef</>
-        commands to accept a line number to be used to position the
-        cursor in the editor (Pavel Stehule)
-       </para>
-
-       <para>
-        This is passed to the editor according to the
-        <envar>PSQL_EDITOR_LINENUMBER_ARG</> environment variable.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Have <application>psql</> set the client encoding from the
-        operating system locale by default (Heikki Linnakangas)
-       </para>
-
-       <para>
-        This only happens if the <envar>PGCLIENTENCODING</> environment
-        variable is not set.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Make <literal>\d</literal> distinguish between unique
-        indexes and unique constraints (Josh Kupershmidt)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Make <literal>\dt+</literal> report <function>pg_table_size</>
-        instead of <function>pg_relation_size</> when talking to 9.0 or
-        later servers (Bernd Helmle)
-       </para>
-
-       <para>
-        This is a more useful measure of table size, but note that it is
-        not identical to what was previously reported in the same display.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Additional tab completion support (Itagaki Takahiro, Pavel Stehule,
-        Andrey Popp, Christoph Berg, David Fetter, Josh Kupershmidt)
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-    <sect4>
-     <title><link linkend="APP-PGDUMP"><application>pg_dump</></link></title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-         Add <link linkend="APP-PGDUMP"><application>pg_dump</></link>
-         and <link
-         linkend="APP-PG-DUMPALL"><application>pg_dumpall</></link>
-         option <option>--quote-all-identifiers</> to force quoting
-         of all identifiers (Robert Haas)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add <literal>directory</> format to <application>pg_dump</>
-        (Joachim Wieland, Heikki Linnakangas)
-       </para>
-
-       <para>
-        This is internally similar to the <literal>tar</>
-        <application>pg_dump</> format.
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-    <sect4>
-     <title><link linkend="APP-PG-CTL"><application>pg_ctl</></link></title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Fix <application>pg_ctl</>
-        so it no longer incorrectly reports that the server is not
-        running (Bruce Momjian)
-       </para>
-
-       <para>
-        Previously this could happen if the server was running but
-        <application>pg_ctl</> could not authenticate.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Improve <application>pg_ctl</> start's <quote>wait</quote>
-        (<option>-w</>) option (Bruce Momjian, Tom Lane)
-       </para>
-
-       <para>
-        The wait mode is now significantly more robust.  It will not get
-        confused by non-default postmaster port numbers, non-default
-        Unix-domain socket locations, permission problems, or stale
-        postmaster lock files.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-         Add <literal>promote</> option to <application>pg_ctl</> to
-         switch a standby server to primary (Fujii Masao)
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-   </sect3>
-
-   <sect3>
-    <title><application>Development Tools</></title>
-
-    <sect4>
-     <title><link linkend="libpq"><application>libpq</></link></title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Add a libpq connection option <link
-        linkend="libpq-connect-client-encoding"><literal>client_encoding</></link>
-        which behaves like the <envar>PGCLIENTENCODING</> environment
-        variable (Heikki Linnakangas)
-       </para>
-
-       <para>
-        The value <literal>auto</> sets the client encoding based on
-        the operating system locale.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add <link
-        linkend="libpq-pqlibversion"><function>PQlibVersion()</></link>
-        function which returns the libpq library version (Magnus
-        Hagander)
-       </para>
-
-       <para>
-        libpq already had <function>PQserverVersion()</> which returns
-        the server version.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Allow libpq-using clients to
-        check the user name of the server process
-        when connecting via Unix-domain sockets, with the new <link
-        linkend="libpq-connect-requirepeer"><literal>requirepeer</></link>
-        connection option
-        (Peter Eisentraut)
-       </para>
-
-       <para>
-        <productname>PostgreSQL</> already allowed servers to check
-        the client user name when connecting via Unix-domain sockets.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add <link linkend="libpq-pqping"><function>PQping()</></link>
-        and <link
-        linkend="libpq-pqpingparams"><function>PQpingParams()</></link>
-        to libpq (Bruce Momjian, Tom Lane)
-       </para>
-
-       <para>
-        These functions allow detection of the server's status without
-        trying to open a new session.
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-    <sect4>
-     <title><link linkend="ecpg"><application>ECPG</></link></title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Allow ECPG to accept dynamic cursor names even in
-        <literal>WHERE CURRENT OF</literal> clauses
-        (Zoltan Boszormenyi)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Make <application>ecpglib</> write <type>double</> values with a
-        precision of 15 digits, not 14 as formerly (Akira Kurosawa)
-       </para>
-      </listitem>
-
-     </itemizedlist>
-    </sect4>
-
-   </sect3>
-
-   <sect3>
-    <title>Build Options</title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Use <literal>+Olibmerrno</> compile flag with HP-UX C compilers
-        that accept it (Ibrar Ahmed)
-       </para>
-
-       <para>
-        This avoids possible misbehavior of math library calls on recent
-        HP platforms.
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    <sect4>
-     <title>Makefiles</title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Improved parallel make support (Peter Eisentraut)
-       </para>
-
-       <para>
-        This allows for faster compiles.  Also, <literal>make -k</>
-        now works more consistently.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-         Require <acronym>GNU</> <link
-         linkend="install-requirements"><application>make</></link>
-         3.80 or newer (Peter Eisentraut)
-       </para>
-
-       <para>
-        This is necessary because of the parallel-make improvements.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add <literal>make maintainer-check</> target
-        (Peter Eisentraut)
-       </para>
-
-       <para>
-        This target performs various source code checks that are not
-        appropriate for either the build or the regression tests.  Currently:
-        duplicate_oids, SGML syntax and tabs check, NLS syntax check.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Support <literal>make check</> in <filename>contrib</>
-        (Peter Eisentraut)
-       </para>
-
-       <para>
-        Formerly only <literal>make installcheck</> worked, but now
-        there is support for testing in a temporary installation.
-        The top-level <literal>make check-world</> target now includes
-        testing <filename>contrib</> this way.
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-    <sect4>
-     <title>Windows</title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-         On Windows, allow <link
-         linkend="app-pg-ctl"><application>pg_ctl</></link> to register
-         the service as auto-start or start-on-demand (Quan Zongliang)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add support for collecting <link linkend="windows-crash-dumps">crash
-        dumps</link> on Windows (Craig Ringer, Magnus Hagander)
-       </para>
-
-       <para>
-        <productname>minidumps</> can now be generated by non-debug
-        Windows binaries and analyzed by standard debugging tools.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Enable building with the MinGW64 compiler (Andrew Dunstan)
-       </para>
-
-       <para>
-        This allows building 64-bit Windows binaries even on non-Windows
-        platforms via cross-compiling.
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-   </sect3>
-
-   <sect3>
-    <title>Source Code</title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Revise the API for GUC variable assign hooks (Tom Lane)
-       </para>
-
-       <para>
-        The previous functions of assign hooks are now split between check
-        hooks and assign hooks, where the former can fail but the latter
-        shouldn't.  This change will impact add-on modules that define custom
-        GUC parameters.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add latches to the source code to support waiting for events (Heikki
-        Linnakangas)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-         Centralize data modification permissions-checking logic
-         (KaiGai Kohei)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-         Add missing <function>get_<replaceable>object</>_oid()</function> functions, for consistency
-         (Robert Haas)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-         Improve ability to use C++ compilers for <link
-         linkend="xfunc-c">compiling add-on modules</link> by removing
-         conflicting key words (Tom Lane)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-         Add support for DragonFly <acronym>BSD</> (Rumko)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-         Expose <function>quote_literal_cstr()</> for backend use
-         (Robert Haas)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Run <link linkend="build">regression tests</link> in the
-        default encoding (Peter Eisentraut)
-       </para>
-
-       <para>
-        Regression tests were previously always run with
-        <literal>SQL_ASCII</> encoding.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-         Add <application>src/tools/git_changelog</> to replace
-         <application>cvs2cl</> and <application>pgcvslog</> (Robert
-         Haas, Tom Lane)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add <application>git-external-diff</> script to
-        <filename>src/tools</> (Bruce Momjian)
-       </para>
-
-       <para>
-        This is used to generate context diffs from git.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-         Improve support for building with
-         <application>Clang</application> (Peter Eisentraut)
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    <sect4>
-     <title>Server Hooks</title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-         Add source code hooks to check permissions (Robert Haas,
-         Stephen Frost)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-         Add post-object-creation function hooks for use by security
-         frameworks (KaiGai Kohei)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-         Add a client authentication hook (KaiGai Kohei)
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-   </sect3>
-
-   <sect3>
-    <title>Contrib</title>
-
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Modify <filename>contrib</> modules and procedural
-       languages to install via the new <link
-       linkend="extend-extensions">extension</link> mechanism (Tom Lane,
-       Dimitri Fontaine)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <link linkend="file-fdw"><filename>contrib/file_fdw</></link>
-       foreign-data wrapper (Shigeru Hanada)
-      </para>
-
-      <para>
-       Foreign tables using this foreign data wrapper can read flat files
-       in a manner very similar to <command>COPY</>.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-        Add nearest-neighbor search support to <link
-        linkend="pgtrgm"><filename>contrib/pg_trgm</></link> and <link
-        linkend="btree-gist"><filename>contrib/btree_gist</></link>
-        (Teodor Sigaev)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-        Add <link
-        linkend="btree-gist"><filename>contrib/btree_gist</></link>
-        support for searching on not-equals (Jeff Davis)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-        Fix <link
-        linkend="fuzzystrmatch"><filename>contrib/fuzzystrmatch</></link>'s
-        <function>levenshtein()</> function to handle multibyte characters
-        (Alexander Korotkov)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-        Add <function>ssl_cipher()</> and <function>ssl_version()</>
-        functions to <link
-        linkend="sslinfo"><filename>contrib/sslinfo</></link> (Robert
-        Haas)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Fix <link linkend="intarray"><filename>contrib/intarray</></link>
-       and <link linkend="hstore"><filename>contrib/hstore</></link>
-       to give consistent results with indexed empty arrays (Tom Lane)
-      </para>
-
-      <para>
-       Previously an empty-array query that used an index might return
-       different results from one that used a sequential scan.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow <link linkend="intarray"><filename>contrib/intarray</></link>
-       to work properly on multidimensional arrays (Tom Lane)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       In
-       <link linkend="intarray"><filename>contrib/intarray</></link>,
-       avoid errors complaining about the presence of nulls in cases where no
-       nulls are actually present (Tom Lane)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       In
-       <link linkend="intarray"><filename>contrib/intarray</></link>,
-       fix behavior of containment operators with respect to empty arrays
-       (Tom Lane)
-      </para>
-
-      <para>
-       Empty arrays are now correctly considered to be contained in any other
-       array.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Remove <link linkend="xml2"><filename>contrib/xml2</></link>'s
-       arbitrary limit on the number of
-       <replaceable>parameter</>=<replaceable>value</> pairs that can be
-       handled by <function>xslt_process()</> (Pavel Stehule)
-      </para>
-
-      <para>
-       The previous limit was 10.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       In <link linkend="pageinspect"><filename>contrib/pageinspect</></link>,
-       fix heap_page_item to return infomasks as 32-bit values (Alvaro Herrera)
-      </para>
-
-      <para>
-       This avoids returning negative values, which was confusing.  The
-       underlying value is a 16-bit unsigned integer.
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-    <sect4>
-     <title>Security</title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Add <link linkend="sepgsql"><filename>contrib/sepgsql</></link>
-        to interface permission checks with <acronym>SELinux</> (KaiGai Kohei)
-       </para>
-
-       <para>
-        This uses the new <link
-        linkend="SQL-SECURITY-LABEL"><command>SECURITY LABEL</></link>
-        facility.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add contrib module <link
-        linkend="auth-delay"><filename>auth_delay</></link> (KaiGai
-        Kohei)
-       </para>
-
-       <para>
-        This causes the server to pause before returning authentication
-        failure;  it is designed to make brute force password attacks
-        more difficult.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add <filename>dummy_seclabel</>
-        contrib module (KaiGai Kohei)
-       </para>
-
-       <para>
-        This is used for permission regression testing.
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-    <sect4>
-     <title>Performance</title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-         Add support for <literal>LIKE</> and <literal>ILIKE</> index
-         searches to <link
-         linkend="pgtrgm"><filename>contrib/pg_trgm</></link> (Alexander
-         Korotkov)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-         Add <function>levenshtein_less_equal()</> function to <link
-         linkend="fuzzystrmatch"><filename>contrib/fuzzystrmatch</></link>,
-         which is optimized for small distances (Alexander Korotkov)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Improve performance of index lookups on <link
-        linkend="seg"><filename>contrib/seg</></link> columns (Alexander
-        Korotkov)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-         Improve performance of <link
-         linkend="pgupgrade"><application>pg_upgrade</></link> for
-         databases with many relations (Bruce Momjian)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-         Add flag to <link
-         linkend="pgbench"><filename>contrib/pgbench</></link> to
-         report per-statement latencies (Florian Pflug)
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-    <sect4>
-     <title>Fsync Testing</title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-         Move <filename>src/tools/test_fsync</> to <link
-         linkend="pgtestfsync"><filename>contrib/pg_test_fsync</></link>
-         (Bruce Momjian, Tom Lane)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add <literal>O_DIRECT</> support to <link
-        linkend="pgtestfsync"><filename>contrib/pg_test_fsync</></link>
-        (Bruce Momjian)
-       </para>
-
-       <para>
-        This matches the use of <literal>O_DIRECT</> by <link
-        linkend="guc-wal-sync-method"><varname>wal_sync_method</></link>.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-         Add new tests to <link
-         linkend="pgtestfsync"><filename>contrib/pg_test_fsync</></link>
-         (Bruce Momjian)
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-   </sect3>
-
-   <sect3>
-    <title>Documentation</title>
-
-    <itemizedlist>
-
-     <listitem>
-      <para>
-        Extensive <link linkend="ecpg"><application>ECPG</></link>
-        documentation improvements (Satoshi Nagayasu)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-        Extensive proofreading and documentation improvements
-        (Thom Brown, Josh Kupershmidt, Susanne Ebrecht)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add documentation for <link
-       linkend="guc-exit-on-error"><varname>exit_on_error</></link>
-       (Robert Haas)
-      </para>
-
-      <para>
-       This parameter causes sessions to exit on any error.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add documentation for <link
-       linkend="functions-info-catalog-table"><function>pg_options_to_table()</></link>
-       (Josh Berkus)
-      </para>
-
-      <para>
-       This function shows table storage options in a readable form.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Document that it is possible to access all composite type
-       fields using <link
-       linkend="field-selection"><literal>(compositeval).*</></link>
-       syntax (Peter Eisentraut)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Document that <link
-       linkend="functions-string-other"><function>translate()</></link>
-       removes characters in <literal>from</> that don't have a
-       corresponding <literal>to</> character (Josh Kupershmidt)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Merge documentation for <command>CREATE CONSTRAINT TRIGGER</> and <link
-       linkend="SQL-CREATETRIGGER"><command>CREATE TRIGGER</></link>
-       (Alvaro Herrera)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Centralize <link linkend="ddl-priv">permission</link> and <link
-       linkend="upgrading">upgrade</link> documentation (Bruce Momjian)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <link linkend="sysvipc-parameters">kernel tuning
-       documentation</link> for Solaris 10 (Josh Berkus)
-      </para>
-
-      <para>
-       Previously only Solaris 9 kernel tuning was documented.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Handle non-ASCII characters consistently in <filename>HISTORY</> file
-       (Peter Eisentraut)
-      </para>
-
-      <para>
-       While the <filename>HISTORY</> file is in English, we do have to deal
-       with non-ASCII letters in contributor names.  These are now
-       transliterated so that they are reasonably legible without assumptions
-       about character set.
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-  </sect2>
- </sect1>
diff --git a/doc/src/sgml/release-9.2.sgml b/doc/src/sgml/release-9.2.sgml
deleted file mode 100644
index e1bfb2e2b223a356e6a39b555cdbb5f7a9381bde..0000000000000000000000000000000000000000
--- a/doc/src/sgml/release-9.2.sgml
+++ /dev/null
@@ -1,12201 +0,0 @@
-<!-- doc/src/sgml/release-9.2.sgml -->
-<!-- See header comment in release.sgml about typical markup -->
-
- <sect1 id="release-9-2-24">
-  <title>Release 9.2.24</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2017-11-09</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 9.2.23.
-   For information about new features in the 9.2 major release, see
-   <xref linkend="release-9-2">.
-  </para>
-
-  <para>
-   This is expected to be the last <productname>PostgreSQL</productname>
-   release in the 9.2.X series.  Users are encouraged to update to a newer
-   release branch soon.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 9.2.24</title>
-
-   <para>
-    A dump/restore is not required for those running 9.2.X.
-   </para>
-
-   <para>
-    However, if you are upgrading from a version earlier than 9.2.22,
-    see <xref linkend="release-9-2-22">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Fix sample server-start scripts to become <literal>$PGUSER</literal>
-      before opening <literal>$PGLOG</literal> (Noah Misch)
-     </para>
-
-     <para>
-      Previously, the postmaster log file was opened while still running as
-      root.  The database owner could therefore mount an attack against
-      another system user by making <literal>$PGLOG</literal> be a symbolic
-      link to some other file, which would then become corrupted by appending
-      log messages.
-     </para>
-
-     <para>
-      By default, these scripts are not installed anywhere.  Users who have
-      made use of them will need to manually recopy them, or apply the same
-      changes to their modified versions.  If the
-      existing <literal>$PGLOG</literal> file is root-owned, it will need to
-      be removed or renamed out of the way before restarting the server with
-      the corrected script.
-      (CVE-2017-12172)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Properly reject attempts to convert infinite float values to
-      type <type>numeric</type> (Tom Lane, KaiGai Kohei)
-     </para>
-
-     <para>
-      Previously the behavior was platform-dependent.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix corner-case crashes when columns have been added to the end of a
-      view (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Record proper dependencies when a view or rule
-      contains <structname>FieldSelect</structname>
-      or <structname>FieldStore</structname> expression nodes (Tom Lane)
-     </para>
-
-     <para>
-      Lack of these dependencies could allow a column or data
-      type <command>DROP</command> to go through when it ought to fail,
-      thereby causing later uses of the view or rule to get errors.
-      This patch does not do anything to protect existing views/rules,
-      only ones created in the future.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Correctly detect hashability of range data types (Tom Lane)
-     </para>
-
-     <para>
-      The planner mistakenly assumed that any range type could be hashed
-      for use in hash joins or hash aggregation, but actually it must check
-      whether the range's subtype has hash support.  This does not affect any
-      of the built-in range types, since they're all hashable anyway.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix low-probability loss of <command>NOTIFY</command> messages due to
-      XID wraparound (Marko Tiikkaja, Tom Lane)
-     </para>
-
-     <para>
-      If a session executed no queries, but merely listened for
-      notifications, for more than 2 billion transactions, it started to miss
-      some notifications from concurrently-committing transactions.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent low-probability crash in processing of nested trigger firings
-      (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Correctly restore the umask setting when file creation fails
-      in <command>COPY</command> or <function>lo_export()</function>
-      (Peter Eisentraut)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Give a better error message for duplicate column names
-      in <command>ANALYZE</command> (Nathan Bossart)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>libpq</application> to not require user's home
-      directory to exist (Tom Lane)
-     </para>
-
-     <para>
-      In v10, failure to find the home directory while trying to
-      read <filename>~/.pgpass</filename> was treated as a hard error,
-      but it should just cause that file to not be found.  Both v10 and
-      previous release branches made the same mistake when
-      reading <filename>~/.pg_service.conf</filename>, though this was less
-      obvious since that file is not sought unless a service name is
-      specified.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>libpq</application> to guard against integer
-      overflow in the row count of a <structname>PGresult</structname>
-      (Michael Paquier)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Sync our copy of the timezone library with IANA release tzcode2017c
-      (Tom Lane)
-     </para>
-
-     <para>
-      This fixes various issues; the only one likely to be user-visible
-      is that the default DST rules for a POSIX-style zone name, if
-      no <filename>posixrules</filename> file exists in the timezone data
-      directory, now match current US law rather than what it was a dozen
-      years ago.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</application>
-      release 2017c for DST law changes in Fiji, Namibia, Northern Cyprus,
-      Sudan, Tonga, and Turks &amp; Caicos Islands, plus historical
-      corrections for Alaska, Apia, Burma, Calcutta, Detroit, Ireland,
-      Namibia, and Pago Pago.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-9-2-23">
-  <title>Release 9.2.23</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2017-08-31</para>
-  </formalpara>
-
-  <para>
-   This release contains a small number of fixes from 9.2.22.
-   For information about new features in the 9.2 major release, see
-   <xref linkend="release-9-2">.
-  </para>
-
-  <para>
-   The <productname>PostgreSQL</> community will stop releasing updates
-   for the 9.2.X release series in September 2017.
-   Users are encouraged to update to a newer release branch soon.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 9.2.23</title>
-
-   <para>
-    A dump/restore is not required for those running 9.2.X.
-   </para>
-
-   <para>
-    However, if you are upgrading from a version earlier than 9.2.22,
-    see <xref linkend="release-9-2-22">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Show foreign tables
-      in <structname>information_schema</>.<structname>table_privileges</>
-      view (Peter Eisentraut)
-     </para>
-
-     <para>
-      All other relevant <structname>information_schema</> views include
-      foreign tables, but this one ignored them.
-     </para>
-
-     <para>
-      Since this view definition is installed by <application>initdb</>,
-      merely upgrading will not fix the problem.  If you need to fix this
-      in an existing installation, you can, as a superuser, do this
-      in <application>psql</>:
-<programlisting>
-SET search_path TO information_schema;
-CREATE OR REPLACE VIEW table_privileges AS
-    SELECT CAST(u_grantor.rolname AS sql_identifier) AS grantor,
-           CAST(grantee.rolname AS sql_identifier) AS grantee,
-           CAST(current_database() AS sql_identifier) AS table_catalog,
-           CAST(nc.nspname AS sql_identifier) AS table_schema,
-           CAST(c.relname AS sql_identifier) AS table_name,
-           CAST(c.prtype AS character_data) AS privilege_type,
-           CAST(
-             CASE WHEN
-                  -- object owner always has grant options
-                  pg_has_role(grantee.oid, c.relowner, 'USAGE')
-                  OR c.grantable
-                  THEN 'YES' ELSE 'NO' END AS yes_or_no) AS is_grantable,
-           CAST(CASE WHEN c.prtype = 'SELECT' THEN 'YES' ELSE 'NO' END AS yes_or_no) AS with_hierarchy
-
-    FROM (
-            SELECT oid, relname, relnamespace, relkind, relowner, (aclexplode(coalesce(relacl, acldefault('r', relowner)))).* FROM pg_class
-         ) AS c (oid, relname, relnamespace, relkind, relowner, grantor, grantee, prtype, grantable),
-         pg_namespace nc,
-         pg_authid u_grantor,
-         (
-           SELECT oid, rolname FROM pg_authid
-           UNION ALL
-           SELECT 0::oid, 'PUBLIC'
-         ) AS grantee (oid, rolname)
-
-    WHERE c.relnamespace = nc.oid
-          AND c.relkind IN ('r', 'v', 'f')
-          AND c.grantee = grantee.oid
-          AND c.grantor = u_grantor.oid
-          AND c.prtype IN ('INSERT', 'SELECT', 'UPDATE', 'DELETE', 'TRUNCATE', 'REFERENCES', 'TRIGGER')
-          AND (pg_has_role(u_grantor.oid, 'USAGE')
-               OR pg_has_role(grantee.oid, 'USAGE')
-               OR grantee.rolname = 'PUBLIC');
-</programlisting>
-      This must be repeated in each database to be fixed,
-      including <literal>template0</>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Clean up handling of a fatal exit (e.g., due to receipt
-      of <systemitem>SIGTERM</>) that occurs while trying to execute
-      a <command>ROLLBACK</> of a failed transaction (Tom Lane)
-     </para>
-
-     <para>
-      This situation could result in an assertion failure.  In production
-      builds, the exit would still occur, but it would log an unexpected
-      message about <quote>cannot drop active portal</>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Remove assertion that could trigger during a fatal exit (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Correctly identify columns that are of a range type or domain type over
-      a composite type or domain type being searched for (Tom Lane)
-     </para>
-
-     <para>
-      Certain <command>ALTER</> commands that change the definition of a
-      composite type or domain type are supposed to fail if there are any
-      stored values of that type in the database, because they lack the
-      infrastructure needed to update or check such values.  Previously,
-      these checks could miss relevant values that are wrapped inside range
-      types or sub-domains, possibly allowing the database to become
-      inconsistent.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Change <application>ecpg</>'s parser to allow <literal>RETURNING</>
-      clauses without attached C variables (Michael Meskes)
-     </para>
-
-     <para>
-      This allows <application>ecpg</> programs to contain SQL constructs
-      that use <literal>RETURNING</> internally (for example, inside a CTE)
-      rather than using it to define values to be returned to the client.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve selection of compiler flags for PL/Perl on Windows (Tom Lane)
-     </para>
-
-     <para>
-      This fix avoids possible crashes of PL/Perl due to inconsistent
-      assumptions about the width of <type>time_t</> values.
-      A side-effect that may be visible to extension developers is
-      that <literal>_USE_32BIT_TIME_T</> is no longer defined globally
-      in <productname>PostgreSQL</> Windows builds.  This is not expected
-      to cause problems, because type <type>time_t</> is not used
-      in any <productname>PostgreSQL</> API definitions.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-9-2-22">
-  <title>Release 9.2.22</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2017-08-10</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 9.2.21.
-   For information about new features in the 9.2 major release, see
-   <xref linkend="release-9-2">.
-  </para>
-
-  <para>
-   The <productname>PostgreSQL</> community will stop releasing updates
-   for the 9.2.X release series in September 2017.
-   Users are encouraged to update to a newer release branch soon.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 9.2.22</title>
-
-   <para>
-    A dump/restore is not required for those running 9.2.X.
-   </para>
-
-   <para>
-    However, if you use foreign data servers that make use of user
-    passwords for authentication, see the first changelog entry below.
-   </para>
-
-   <para>
-    Also, if you are upgrading from a version earlier than 9.2.20,
-    see <xref linkend="release-9-2-20">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Further restrict visibility
-      of <structname>pg_user_mappings</>.<structfield>umoptions</>, to
-      protect passwords stored as user mapping options
-      (Noah Misch)
-     </para>
-
-     <para>
-      The fix for CVE-2017-7486 was incorrect: it allowed a user
-      to see the options in her own user mapping, even if she did not
-      have <literal>USAGE</> permission on the associated foreign server.
-      Such options might include a password that had been provided by the
-      server owner rather than the user herself.
-      Since <structname>information_schema.user_mapping_options</> does not
-      show the options in such cases, <structname>pg_user_mappings</>
-      should not either.
-      (CVE-2017-7547)
-     </para>
-
-     <para>
-      By itself, this patch will only fix the behavior in newly initdb'd
-      databases.  If you wish to apply this change in an existing database,
-      you will need to do the following:
-     </para>
-
-     <procedure>
-      <step>
-       <para>
-        Restart the postmaster after adding <literal>allow_system_table_mods
-        = true</> to <filename>postgresql.conf</>.  (In versions
-        supporting <command>ALTER SYSTEM</>, you can use that to make the
-        configuration change, but you'll still need a restart.)
-       </para>
-      </step>
-
-      <step>
-       <para>
-        In <emphasis>each</> database of the cluster,
-        run the following commands as superuser:
-<programlisting>
-SET search_path = pg_catalog;
-CREATE OR REPLACE VIEW pg_user_mappings AS
-    SELECT
-        U.oid       AS umid,
-        S.oid       AS srvid,
-        S.srvname   AS srvname,
-        U.umuser    AS umuser,
-        CASE WHEN U.umuser = 0 THEN
-            'public'
-        ELSE
-            A.rolname
-        END AS usename,
-        CASE WHEN (U.umuser &lt;&gt; 0 AND A.rolname = current_user
-                     AND (pg_has_role(S.srvowner, 'USAGE')
-                          OR has_server_privilege(S.oid, 'USAGE')))
-                    OR (U.umuser = 0 AND pg_has_role(S.srvowner, 'USAGE'))
-                    OR (SELECT rolsuper FROM pg_authid WHERE rolname = current_user)
-                    THEN U.umoptions
-                 ELSE NULL END AS umoptions
-    FROM pg_user_mapping U
-         LEFT JOIN pg_authid A ON (A.oid = U.umuser) JOIN
-        pg_foreign_server S ON (U.umserver = S.oid);
-</programlisting>
-       </para>
-      </step>
-
-      <step>
-       <para>
-        Do not forget to include the <literal>template0</>
-        and <literal>template1</> databases, or the vulnerability will still
-        exist in databases you create later.  To fix <literal>template0</>,
-        you'll need to temporarily make it accept connections.
-        In <productname>PostgreSQL</> 9.5 and later, you can use
-<programlisting>
-ALTER DATABASE template0 WITH ALLOW_CONNECTIONS true;
-</programlisting>
-        and then after fixing <literal>template0</>, undo that with
-<programlisting>
-ALTER DATABASE template0 WITH ALLOW_CONNECTIONS false;
-</programlisting>
-        In prior versions, instead use
-<programlisting>
-UPDATE pg_database SET datallowconn = true WHERE datname = 'template0';
-UPDATE pg_database SET datallowconn = false WHERE datname = 'template0';
-</programlisting>
-       </para>
-      </step>
-
-      <step>
-       <para>
-        Finally, remove the <literal>allow_system_table_mods</> configuration
-        setting, and again restart the postmaster.
-       </para>
-      </step>
-     </procedure>
-    </listitem>
-
-    <listitem>
-     <para>
-      Disallow empty passwords in all password-based authentication methods
-      (Heikki Linnakangas)
-     </para>
-
-     <para>
-      <application>libpq</> ignores empty password specifications, and does
-      not transmit them to the server.  So, if a user's password has been
-      set to the empty string, it's impossible to log in with that password
-      via <application>psql</> or other <application>libpq</>-based
-      clients.  An administrator might therefore believe that setting the
-      password to empty is equivalent to disabling password login.
-      However, with a modified or non-<application>libpq</>-based client,
-      logging in could be possible, depending on which authentication
-      method is configured.  In particular the most common
-      method, <literal>md5</>, accepted empty passwords.
-      Change the server to reject empty passwords in all cases.
-      (CVE-2017-7546)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      On Windows, retry process creation if we fail to reserve the address
-      range for our shared memory in the new process (Tom Lane, Amit
-      Kapila)
-     </para>
-
-     <para>
-      This is expected to fix infrequent child-process-launch failures that
-      are probably due to interference from antivirus products.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix low-probability corruption of shared predicate-lock hash table
-      in Windows builds (Thomas Munro, Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid logging clean closure of an SSL connection as though
-      it were a connection reset (Michael Paquier)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent sending SSL session tickets to clients (Tom Lane)
-     </para>
-
-     <para>
-      This fix prevents reconnection failures with ticket-aware client-side
-      SSL code.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix code for setting <xref linkend="guc-tcp-keepalives-idle"> on
-      Solaris (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix statistics collector to honor inquiry messages issued just after
-      a postmaster shutdown and immediate restart (Tom Lane)
-     </para>
-
-     <para>
-      Statistics inquiries issued within half a second of the previous
-      postmaster shutdown were effectively ignored.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure that the statistics collector's receive buffer size is at
-      least 100KB (Tom Lane)
-     </para>
-
-     <para>
-      This reduces the risk of dropped statistics data on older platforms
-      whose default receive buffer size is less than that.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible creation of an invalid WAL segment when a standby is
-      promoted just after it processes an <literal>XLOG_SWITCH</> WAL
-      record (Andres Freund)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <systemitem>SIGHUP</> and <systemitem>SIGUSR1</> handling in
-      walsender processes (Petr Jelinek, Andres Freund)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix unnecessarily slow restarts of <application>walreceiver</>
-      processes due to race condition in postmaster (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix cases where an <command>INSERT</> or <command>UPDATE</> assigns
-      to more than one element of a column that is of domain-over-array
-      type (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Move autogenerated array types out of the way during
-      <command>ALTER ... RENAME</> (Vik Fearing)
-     </para>
-
-     <para>
-      Previously, we would rename a conflicting autogenerated array type
-      out of the way during <command>CREATE</>; this fix extends that
-      behavior to renaming operations.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure that <command>ALTER USER ... SET</> accepts all the syntax
-      variants that <command>ALTER ROLE ... SET</> does (Peter Eisentraut)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Properly update dependency info when changing a datatype I/O
-      function's argument or return type from <type>opaque</> to the
-      correct type (Heikki Linnakangas)
-     </para>
-
-     <para>
-      <command>CREATE TYPE</> updates I/O functions declared in this
-      long-obsolete style, but it forgot to record a dependency on the
-      type, allowing a subsequent <command>DROP TYPE</> to leave broken
-      function definitions behind.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Reduce memory usage when <command>ANALYZE</> processes
-      a <type>tsvector</> column (Heikki Linnakangas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix unnecessary precision loss and sloppy rounding when multiplying
-      or dividing <type>money</> values by integers or floats (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Tighten checks for whitespace in functions that parse identifiers,
-      such as <function>regprocedurein()</> (Tom Lane)
-     </para>
-
-     <para>
-      Depending on the prevailing locale, these functions could
-      misinterpret fragments of multibyte characters as whitespace.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Use relevant <literal>#define</> symbols from Perl while
-      compiling <application>PL/Perl</> (Ashutosh Sharma, Tom Lane)
-     </para>
-
-     <para>
-      This avoids portability problems, typically manifesting as
-      a <quote>handshake</> mismatch during library load, when working with
-      recent Perl versions.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      In <application>psql</>, fix failure when <command>COPY FROM STDIN</>
-      is ended with a keyboard EOF signal and then another <command>COPY
-      FROM STDIN</> is attempted (Thomas Munro)
-     </para>
-
-     <para>
-      This misbehavior was observed on BSD-derived platforms (including
-      macOS), but not on most others.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>pg_dump</> to not emit invalid SQL for an empty
-      operator class (Daniel Gustafsson)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>pg_dump</> output to stdout on Windows (Kuntal Ghosh)
-     </para>
-
-     <para>
-      A compressed plain-text dump written to stdout would contain corrupt
-      data due to failure to put the file descriptor into binary mode.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <function>pg_get_ruledef()</> to print correct output for
-      the <literal>ON SELECT</> rule of a view whose columns have been
-      renamed (Tom Lane)
-     </para>
-
-     <para>
-      In some corner cases, <application>pg_dump</> relies
-      on <function>pg_get_ruledef()</> to dump views, so that this error
-      could result in dump/reload failures.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix dumping of function expressions in the <literal>FROM</> clause in
-      cases where the expression does not deparse into something that looks
-      like a function call (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>pg_basebackup</> output to stdout on Windows
-      (Haribabu Kommi)
-     </para>
-
-     <para>
-      A backup written to stdout would contain corrupt data due to failure
-      to put the file descriptor into binary mode.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>pg_upgrade</> to ensure that the ending WAL record
-      does not have <xref linkend="guc-wal-level"> = <literal>minimum</>
-      (Bruce Momjian)
-     </para>
-
-     <para>
-      This condition could prevent upgraded standby servers from
-      reconnecting.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Always use <option>-fPIC</>, not <option>-fpic</>, when building
-      shared libraries with gcc (Tom Lane)
-     </para>
-
-     <para>
-      This supports larger extension libraries on platforms where it makes
-      a difference.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix unescaped-braces issue in our build scripts for Microsoft MSVC,
-      to avoid a warning or error from recent Perl versions (Andrew
-      Dunstan)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      In MSVC builds, handle the case where the <application>openssl</>
-      library is not within a <filename>VC</> subdirectory (Andrew Dunstan)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      In MSVC builds, add proper include path for <application>libxml2</>
-      header files (Andrew Dunstan)
-     </para>
-
-     <para>
-      This fixes a former need to move things around in standard Windows
-      installations of <application>libxml2</>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      In MSVC builds, recognize a Tcl library that is
-      named <filename>tcl86.lib</> (Noah Misch)
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-9-2-21">
-  <title>Release 9.2.21</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2017-05-11</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 9.2.20.
-   For information about new features in the 9.2 major release, see
-   <xref linkend="release-9-2">.
-  </para>
-
-  <para>
-   The <productname>PostgreSQL</> community will stop releasing updates
-   for the 9.2.X release series in September 2017.
-   Users are encouraged to update to a newer release branch soon.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 9.2.21</title>
-
-   <para>
-    A dump/restore is not required for those running 9.2.X.
-   </para>
-
-   <para>
-    However, if you use foreign data servers that make use of user
-    passwords for authentication, see the first changelog entry below.
-   </para>
-
-   <para>
-    Also, if you are upgrading from a version earlier than 9.2.20,
-    see <xref linkend="release-9-2-20">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Restrict visibility
-      of <structname>pg_user_mappings</>.<structfield>umoptions</>, to
-      protect passwords stored as user mapping options
-      (Michael Paquier, Feike Steenbergen)
-     </para>
-
-     <para>
-      The previous coding allowed the owner of a foreign server object,
-      or anyone he has granted server <literal>USAGE</> permission to,
-      to see the options for all user mappings associated with that server.
-      This might well include passwords for other users.
-      Adjust the view definition to match the behavior of
-      <structname>information_schema.user_mapping_options</>, namely that
-      these options are visible to the user being mapped, or if the mapping
-      is for <literal>PUBLIC</literal> and the current user is the server
-      owner, or if the current user is a superuser.
-      (CVE-2017-7486)
-     </para>
-
-     <para>
-      By itself, this patch will only fix the behavior in newly initdb'd
-      databases.  If you wish to apply this change in an existing database,
-      follow the corrected procedure shown in the changelog entry for
-      CVE-2017-7547, in <xref linkend="release-9-2-22">.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent exposure of statistical information via leaky operators
-      (Peter Eisentraut)
-     </para>
-
-     <para>
-      Some selectivity estimation functions in the planner will apply
-      user-defined operators to values obtained
-      from <structname>pg_statistic</>, such as most common values and
-      histogram entries.  This occurs before table permissions are checked,
-      so a nefarious user could exploit the behavior to obtain these values
-      for table columns he does not have permission to read.  To fix,
-      fall back to a default estimate if the operator's implementation
-      function is not certified leak-proof and the calling user does not have
-      permission to read the table column whose statistics are needed.
-      At least one of these criteria is satisfied in most cases in practice.
-      (CVE-2017-7484)
-     </para>
-    </listitem>
-
-    <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>
-      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-2-20">
-  <title>Release 9.2.20</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2017-02-09</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 9.2.19.
-   For information about new features in the 9.2 major release, see
-   <xref linkend="release-9-2">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 9.2.20</title>
-
-   <para>
-    A dump/restore is not required for those running 9.2.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.2.11,
-    see <xref linkend="release-9-2-11">.
-   </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>
-<!--
-Author: Fujii Masao <fujii@postgresql.org>
-Branch: REL9_2_STABLE [38bec1805] 2017-01-25 07:02:25 +0900
--->
-     <para>
-      Fix WAL page header validation when re-reading segments (Takayuki
-      Tsunakawa, Amit Kapila)
-     </para>
-
-     <para>
-      In corner cases, a spurious <quote>out-of-sequence TLI</> error
-      could be reported during recovery.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      If the stats collector dies during hot standby, restart it (Takayuki
-      Tsunakawa)
-     </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>
-      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>
-      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>
-      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>
-      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-2-19">
-  <title>Release 9.2.19</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2016-10-27</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 9.2.18.
-   For information about new features in the 9.2 major release, see
-   <xref linkend="release-9-2">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 9.2.19</title>
-
-   <para>
-    A dump/restore is not required for those running 9.2.X.
-   </para>
-
-   <para>
-    However, if you are upgrading from a version earlier than 9.2.11,
-    see <xref linkend="release-9-2-11">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <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>
-      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-2-18">
-  <title>Release 9.2.18</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2016-08-11</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 9.2.17.
-   For information about new features in the 9.2 major release, see
-   <xref linkend="release-9-2">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 9.2.18</title>
-
-   <para>
-    A dump/restore is not required for those running 9.2.X.
-   </para>
-
-   <para>
-    However, if you are upgrading from a version earlier than 9.2.11,
-    see <xref linkend="release-9-2-11">.
-   </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>
-      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>
-      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>
-      Avoid crash in <literal>postgres -C</> when the specified variable
-      has a null string value (Michael Paquier)
-     </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>
-      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>
-      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>
-      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-2-17">
-  <title>Release 9.2.17</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2016-05-12</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 9.2.16.
-   For information about new features in the 9.2 major release, see
-   <xref linkend="release-9-2">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 9.2.17</title>
-
-   <para>
-    A dump/restore is not required for those running 9.2.X.
-   </para>
-
-   <para>
-    However, if you are upgrading from a version earlier than 9.2.11,
-    see <xref linkend="release-9-2-11">.
-   </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>
-      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>
-      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-2-16">
-  <title>Release 9.2.16</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2016-03-31</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 9.2.15.
-   For information about new features in the 9.2 major release, see
-   <xref linkend="release-9-2">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 9.2.16</title>
-
-   <para>
-    A dump/restore is not required for those running 9.2.X.
-   </para>
-
-   <para>
-    However, if you are upgrading from a version earlier than 9.2.11,
-    see <xref linkend="release-9-2-11">.
-   </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 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-2-15">
-  <title>Release 9.2.15</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2016-02-11</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 9.2.14.
-   For information about new features in the 9.2 major release, see
-   <xref linkend="release-9-2">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 9.2.15</title>
-
-   <para>
-    A dump/restore is not required for those running 9.2.X.
-   </para>
-
-   <para>
-    However, if you are upgrading from a version earlier than 9.2.11,
-    see <xref linkend="release-9-2-11">.
-   </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>
-      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>
-      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>
-      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>
-      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>
-      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>
-      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>
-      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-2-14">
-  <title>Release 9.2.14</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2015-10-08</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 9.2.13.
-   For information about new features in the 9.2 major release, see
-   <xref linkend="release-9-2">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 9.2.14</title>
-
-   <para>
-    A dump/restore is not required for those running 9.2.X.
-   </para>
-
-   <para>
-    However, if you are upgrading from a version earlier than 9.2.11,
-    see <xref linkend="release-9-2-11">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <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>
-      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>
-
-<!--
-Author: Tom Lane <tgl@sss.pgh.pa.us>
-Branch: REL9_2_STABLE [0e933fdf9] 2015-08-27 12:22:10 -0400
-Branch: REL9_1_STABLE [9b1b9446f] 2015-08-27 12:22:10 -0400
--->
-
-    <listitem>
-     <para>
-      Back-patch 9.3-era addition of per-resource-owner lock caches
-      (Jeff Janes)
-     </para>
-
-     <para>
-      This substantially improves performance when <application>pg_dump</>
-      tries to dump a large number 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>
-      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>
-      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>
-
-<!--
-Author: Joe Conway <mail@joeconway.com>
-Branch: REL9_2_STABLE [e90a629e1] 2015-09-22 14:58:38 -0700
--->
-
-    <listitem>
-     <para>
-      Fix <filename>contrib/sepgsql</>'s handling of <command>SELECT INTO</>
-      statements (Kohei KaiGai)
-     </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-2-13">
-  <title>Release 9.2.13</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2015-06-12</para>
-  </formalpara>
-
-  <para>
-   This release contains a small number of fixes from 9.2.12.
-   For information about new features in the 9.2 major release, see
-   <xref linkend="release-9-2">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 9.2.13</title>
-
-   <para>
-    A dump/restore is not required for those running 9.2.X.
-   </para>
-
-   <para>
-    However, if you are upgrading from a version earlier than 9.2.11,
-    see <xref linkend="release-9-2-11">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <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>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-9-2-12">
-  <title>Release 9.2.12</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2015-06-04</para>
-  </formalpara>
-
-  <para>
-   This release contains a small number of fixes from 9.2.11.
-   For information about new features in the 9.2 major release, see
-   <xref linkend="release-9-2">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 9.2.12</title>
-
-   <para>
-    A dump/restore is not required for those running 9.2.X.
-   </para>
-
-   <para>
-    However, if you are upgrading from a version earlier than 9.2.11,
-    see <xref linkend="release-9-2-11">.
-   </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>
-    </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>
-
-    <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-2-11">
-  <title>Release 9.2.11</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2015-05-22</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 9.2.10.
-   For information about new features in the 9.2 major release, see
-   <xref linkend="release-9-2">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 9.2.11</title>
-
-   <para>
-    A dump/restore is not required for those running 9.2.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.2.10,
-    see <xref linkend="release-9-2-10">.
-   </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>
-      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>
-
-<!--
-Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
-Branch: REL9_2_STABLE [97ff2a564] 2015-05-18 17:44:21 -0300
-Branch: REL9_1_STABLE [2360eea3b] 2015-05-18 17:44:21 -0300
-Branch: REL9_0_STABLE [850e1a566] 2015-05-18 17:44:21 -0300
--->
-
-    <listitem>
-     <para>
-      Avoid <quote>cannot GetMultiXactIdMembers() during recovery</> error
-      (&Aacute;lvaro Herrera)
-     </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>
-      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>
-      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>
-
-<!--
-Author: Andres Freund <andres@anarazel.de>
-Branch: REL9_2_STABLE [6b700301c] 2015-02-17 16:03:00 +0100
--->
-
-    <listitem>
-     <para>
-      Fix failure in <application>pg_receivexlog</> (Andres Freund)
-     </para>
-
-     <para>
-      A patch merge mistake in 9.2.10 led to <quote>could not create archive
-      status file</> errors.
-     </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>
-      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-2-10">
-  <title>Release 9.2.10</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2015-02-05</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 9.2.9.
-   For information about new features in the 9.2 major release, see
-   <xref linkend="release-9-2">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 9.2.10</title>
-
-   <para>
-    A dump/restore is not required for those running 9.2.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.2.9,
-    see <xref linkend="release-9-2-9">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <listitem>
-     <para>
-      Improve ispell dictionary's defenses against bad affix files (Tom Lane)
-     </para>
-    </listitem>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <listitem>
-     <para>
-      Fix mishandling of system columns,
-      particularly <structfield>tableoid</>, in FDW queries (Etsuro Fujita)
-     </para>
-    </listitem>
-
-    <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>
-
-    <listitem>
-     <para>
-      Fix planner problems with nested append relations, such as inherited
-      tables within <literal>UNION ALL</> subqueries (Tom Lane)
-     </para>
-    </listitem>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <listitem>
-     <para>
-      Prevent latest WAL file from being archived a second time at completion
-      of crash recovery (Fujii Masao)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid creating unnecessary <filename>.ready</> marker files for
-      timeline history files (Fujii Masao)
-     </para>
-    </listitem>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <listitem>
-     <para>
-      Warn if macOS's <function>setlocale()</> starts an unwanted extra
-      thread inside the postmaster (Noah Misch)
-     </para>
-    </listitem>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <listitem>
-     <para>
-      Properly handle out-of-memory conditions while parsing connection
-      options in <application>libpq</> (Alex Shulgin, Heikki Linnakangas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix array overrun in <application>ecpg</>'s version
-      of <function>ParseDateTime()</> (Michael Paquier)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      In <application>initdb</>, give a clearer error message if a password
-      file is specified but is empty (Mats Erik Andersson)
-     </para>
-    </listitem>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <listitem>
-     <para>
-      Fix <application>pg_dumpall</> to restore its ability to dump from
-      pre-8.1 servers (Gilles Darold)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible deadlock during parallel restore of a schema-only dump
-      (Robert Haas, Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix core dump in <literal>pg_dump --binary-upgrade</> on zero-column
-      composite type (Rushabh Lathia)
-     </para>
-    </listitem>
-
-    <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>
-
-    <listitem>
-     <para>
-      Fix failure of <filename>contrib/auto_explain</> to print per-node
-      timing information when doing <command>EXPLAIN ANALYZE</> (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix upgrade-from-unpackaged script for <filename>contrib/citext</>
-      (Tom Lane)
-     </para>
-    </listitem>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <listitem>
-     <para>
-      In non-MSVC Windows builds, ensure <filename>libpq.dll</> is installed
-      with execute permissions (Noah Misch)
-     </para>
-    </listitem>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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-2-9">
-  <title>Release 9.2.9</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2014-07-24</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 9.2.8.
-   For information about new features in the 9.2 major release, see
-   <xref linkend="release-9-2">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 9.2.9</title>
-
-   <para>
-    A dump/restore is not required for those running 9.2.X.
-   </para>
-
-   <para>
-    However, this release corrects an index corruption problem in some GiST
-    indexes.  See the first changelog entry 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.2.6,
-    see <xref linkend="release-9-2-6">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <listitem>
-     <para>
-      Fix corner-case infinite loop during insertion into an SP-GiST text
-      index (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix feedback status when <xref linkend="guc-hot-standby-feedback"> is
-      turned off on-the-fly (Simon Riggs)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possibly-incorrect cache invalidation during nested calls
-      to <function>ReceiveSharedInvalidMessages</> (Andres Freund)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix planner's mishandling of nested PlaceHolderVars generated in
-      nested-nestloop plans (Tom Lane)
-     </para>
-
-     <para>
-      This oversight could result in <quote>variable not found in subplan
-      target lists</> errors, or in silently wrong query results.
-     </para>
-    </listitem>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <listitem>
-     <para>
-      Fix possible crash when invoking a user-defined function while
-      rewinding a cursor (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix query-lifespan memory leak while evaluating the arguments for a
-      function in <literal>FROM</> (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix session-lifespan memory leaks in regular-expression processing
-      (Tom Lane, Arthur O'Dwyer, Greg Stark)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix data encoding error in <filename>hungarian.stop</> (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent foreign tables from being created with OIDS
-      when <xref linkend="guc-default-with-oids"> is true
-      (Etsuro Fujita)
-     </para>
-    </listitem>
-
-    <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>
-
-    <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>
-
-    <listitem>
-     <para>
-      Fix <command>REASSIGN OWNED</> to not fail for text search objects
-      (&Aacute;lvaro Herrera)
-     </para>
-    </listitem>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <listitem>
-     <para>
-      Fix tablespace creation WAL replay to work on Windows (MauMau)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix detection of socket creation failures on Windows (Bruce Momjian)
-     </para>
-    </listitem>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <listitem>
-     <para>
-      Ensure that LDAP lookup attempts in <application>libpq</> time out as
-      intended (Laurenz Albe)
-     </para>
-    </listitem>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <listitem>
-     <para>
-      Fix query-lifespan memory leak in <filename>contrib/dblink</>
-      (MauMau, Joe Conway)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      In <filename>contrib/pgcrypto</> functions, ensure sensitive
-      information is cleared from stack variables before returning
-      (Marko Kreen)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent use of already-freed memory in
-      <filename>contrib/pgstattuple</>'s <function>pgstat_heap()</>
-      (Noah Misch)
-     </para>
-    </listitem>
-
-    <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>
-
-    <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-2-8">
-  <title>Release 9.2.8</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2014-03-20</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 9.2.7.
-   For information about new features in the 9.2 major release, see
-   <xref linkend="release-9-2">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 9.2.8</title>
-
-   <para>
-    A dump/restore is not required for those running 9.2.X.
-   </para>
-
-   <para>
-    However, if you are upgrading from a version earlier than 9.2.6,
-    see <xref linkend="release-9-2-6">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <listitem>
-     <para>
-      Fix <application>walsender</>'s failure to shut down cleanly when client
-      is <application>pg_receivexlog</> (Fujii Masao)
-     </para>
-    </listitem>
-
-    <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>
-
-    <listitem>
-     <para>
-      Fix test to see if hot standby connections can be allowed immediately
-      after a crash (Heikki Linnakangas)
-     </para>
-    </listitem>
-
-    <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>
-
-    <listitem>
-     <para>
-      Fix memory leak in PL/Perl when returning a composite result, including
-      multiple-OUT-parameter cases (Alex Hunsaker)
-     </para>
-    </listitem>
-
-    <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>
-
-    <listitem>
-     <para>
-      Prevent intermittent <quote>could not reserve shared memory region</>
-      failures on recent Windows versions (MauMau)
-     </para>
-    </listitem>
-
-    <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-2-7">
-  <title>Release 9.2.7</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2014-02-20</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 9.2.6.
-   For information about new features in the 9.2 major release, see
-   <xref linkend="release-9-2">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 9.2.7</title>
-
-   <para>
-    A dump/restore is not required for those running 9.2.X.
-   </para>
-
-   <para>
-    However, if you are upgrading from a version earlier than 9.2.6,
-    see <xref linkend="release-9-2-6">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <listitem>
-     <para>
-      Fix race conditions in walsender shutdown logic and walreceiver
-      SIGHUP signal handler (Tom Lane)
-     </para>
-    </listitem>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <listitem>
-     <para>
-      Fix parser crash for <literal>EXISTS(SELECT * FROM
-      zero_column_table)</literal> (Tom Lane)
-     </para>
-    </listitem>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <listitem>
-     <para>
-      Properly distinguish numbers from non-numbers when generating JSON
-      output (Andrew Dunstan)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix checks for all-zero client addresses in pgstat functions (Kevin
-      Grittner)
-     </para>
-    </listitem>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <listitem>
-     <para>
-      Accept <literal>SHIFT_JIS</> as an encoding name for locale checking
-      purposes (Tatsuo Ishii)
-     </para>
-    </listitem>
-
-    <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>
-
-    <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>
-
-    <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>
-
-    <listitem>
-     <para>
-      Fix incorrect translation handling in
-      some <application>psql</> <literal>\d</> commands
-      (Peter Eisentraut, Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure <application>pg_basebackup</>'s background process is killed
-      when exiting its foreground process (Magnus Hagander)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible incorrect printing of filenames
-      in <application>pg_basebackup</>'s verbose mode (Magnus Hagander)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid including tablespaces inside PGDATA twice in base backups
-      (Dimitri Fontaine, Magnus Hagander)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix misaligned descriptors in <application>ecpg</> (MauMau)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      In <application>ecpg</>, handle lack of a hostname in the connection
-      parameters properly (Michael Meskes)
-     </para>
-    </listitem>
-
-    <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>
-
-    <listitem>
-     <para>
-      In <filename>contrib/isn</>, fix incorrect calculation of the check
-      digit for ISMN values (Fabien Coelho)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <filename>contrib/pg_stat_statement</>'s handling
-      of <literal>CURRENT_DATE</> and related constructs (Kyotaro
-      Horiguchi)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure client-code-only installation procedure works as documented
-      (Peter Eisentraut)
-     </para>
-    </listitem>
-
-    <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>
-
-    <listitem>
-     <para>
-      Avoid using the deprecated <literal>dllwrap</> tool in Cygwin builds
-      (Marco Atzeri)
-     </para>
-    </listitem>
-
-    <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>
-
-    <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-2-6">
-  <title>Release 9.2.6</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2013-12-05</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 9.2.5.
-   For information about new features in the 9.2 major release, see
-   <xref linkend="release-9-2">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 9.2.6</title>
-
-   <para>
-    A dump/restore is not required for those running 9.2.X.
-   </para>
-
-   <para>
-    However, this release corrects a number of potential data corruption
-    issues.  See the first two 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.2.4,
-    see <xref linkend="release-9-2-4">.
-   </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 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 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>
-      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 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>
-      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>
-      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>
-      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>
-      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>
-      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-2-5">
-  <title>Release 9.2.5</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2013-10-10</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 9.2.4.
-   For information about new features in the 9.2 major release, see
-   <xref linkend="release-9-2">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 9.2.5</title>
-
-   <para>
-    A dump/restore is not required for those running 9.2.X.
-   </para>
-
-   <para>
-    However, if you are upgrading from a version earlier than 9.2.4,
-    see <xref linkend="release-9-2-4">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Prevent corruption of multi-byte characters when attempting to
-      case-fold identifiers (Andrew Dunstan)
-     </para>
-
-     <para>
-      <productname>PostgreSQL</> case-folds non-ASCII characters only
-      when using a single-byte server encoding.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix memory leak when creating B-tree indexes on range columns
-      (Heikki Linnakangas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix checkpoint memory leak in background writer when <literal>wal_level =
-      hot_standby</> (Naoya Anzai)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix memory leak caused by <function>lo_open()</function> failure
-      (Heikki Linnakangas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix memory overcommit bug when <varname>work_mem</> is using more
-      than 24GB of memory (Stephen Frost)
-     </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 possible SSL state corruption in threaded libpq applications
-      (Nick Phillips, Stephen Frost)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve estimate of planner cost when choosing between generic and
-      custom plans (Tom Lane)
-     </para>
-
-     <para>
-      This change will favor generic plans when planning cost is high.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Properly compute row estimates for boolean columns containing many NULL
-      values (Andrew Gierth)
-     </para>
-
-     <para>
-      Previously tests like <literal>col IS NOT TRUE</> and <literal>col IS
-      NOT FALSE</> did not properly factor in NULL values when estimating
-      plan costs.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix accounting for qualifier evaluation costs in <literal>UNION ALL</>
-      and inheritance queries (Tom Lane)
-     </para>
-
-     <para>
-      This fixes cases where suboptimal query plans could be chosen if
-      some <literal>WHERE</> clauses are expensive to calculate.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent pushing down <literal>WHERE</> clauses into unsafe
-      <literal>UNION/INTERSECT</> subqueries (Tom Lane)
-     </para>
-
-     <para>
-      Subqueries of a <literal>UNION</> or <literal>INTERSECT</> that
-      contain set-returning functions or volatile functions in their
-      <literal>SELECT</> lists could be improperly optimized, leading to
-      run-time errors or incorrect query results.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix rare case of <quote>failed to locate grouping columns</>
-      planner failure (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>pg_dump</> of foreign tables with dropped columns (Andrew Dunstan)
-     </para>
-
-     <para>
-      Previously such cases could cause a <application>pg_upgrade</> error.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Reorder <application>pg_dump</> processing of extension-related
-      rules and event triggers (Joe Conway)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Force dumping of extension tables if specified by <command>pg_dump
-      -t</> or <literal>-n</> (Joe Conway)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve view dumping code's handling of dropped columns in referenced
-      tables (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <command>pg_restore -l</> with the directory archive to display
-      the correct format name (Fujii Masao)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Properly record index comments created using <literal>UNIQUE</>
-      and <literal>PRIMARY KEY</> syntax (Andres Freund)
-     </para>
-
-     <para>
-      This fixes a parallel <application>pg_restore</> failure.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Cause <command>pg_basebackup -x</> with an empty xlog directory
-      to throw an error rather than crashing (Magnus Hagander, Haruka
-      Takatsuka)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Properly guarantee transmission of WAL files before clean switchover
-      (Fujii Masao)
-     </para>
-
-     <para>
-      Previously, the streaming replication connection might close before all
-      WAL files had been replayed on the standby.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix WAL segment timeline handling during recovery (Mitsumasa Kondo,
-      Heikki Linnakangas)
-     </para>
-
-     <para>
-      WAL file recycling during standby recovery could lead to premature
-      recovery completion, resulting in data loss.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent errors in WAL replay due to references to uninitialized empty
-      pages (Andres Freund)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <command>REINDEX TABLE</> and <command>REINDEX DATABASE</>
-      to properly revalidate constraints and mark invalidated indexes as
-      valid (Noah Misch)
-     </para>
-
-     <para>
-      <command>REINDEX INDEX</> has always worked properly.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid deadlocks during insertion into SP-GiST indexes (Teodor Sigaev)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible deadlock during concurrent <command>CREATE INDEX
-      CONCURRENTLY</> operations (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix GiST index lookup crash (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <function>regexp_matches()</> handling of zero-length matches
-      (Jeevan Chalke)
-     </para>
-
-     <para>
-      Previously, zero-length matches like '^' could return too many matches.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix crash for overly-complex regular expressions (Heikki Linnakangas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix regular expression match failures for back references combined with
-      non-greedy quantifiers (Jeevan Chalke)
-     </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>
-      Allow <command>ALTER DEFAULT PRIVILEGES</> to operate on schemas
-      without requiring CREATE permission (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Loosen restriction on keywords used in queries (Tom Lane)
-     </para>
-
-     <para>
-      Specifically, lessen keyword restrictions for role names, language
-      names, <command>EXPLAIN</> and <command>COPY</> options, and
-      <command>SET</> values.  This allows <literal>COPY ... (FORMAT
-      BINARY)</> to work as expected; previously <literal>BINARY</> needed
-      to be quoted.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Print proper line number during <command>COPY</> failure (Heikki
-      Linnakangas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <function>pgp_pub_decrypt()</> so it works for secret keys with
-      passwords (Marko Kreen)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <application>pg_upgrade</> use <literal>pg_dump
-      --quote-all-identifiers</> to avoid problems with keyword changes
-      between releases (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Remove rare inaccurate warning during vacuum of index-less tables
-      (Heikki Linnakangas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure that <command>VACUUM ANALYZE</> still runs the ANALYZE phase
-      if its attempt to truncate the file is cancelled due to lock conflicts
-      (Kevin Grittner)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid possible failure when performing transaction control commands (e.g
-      <command>ROLLBACK</>) in prepared queries (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure that floating-point data input accepts standard spellings
-      of <quote>infinity</> on all platforms (Tom Lane)
-     </para>
-
-     <para>
-      The C99 standard says that allowable spellings are <literal>inf</>,
-      <literal>+inf</>, <literal>-inf</>, <literal>infinity</>,
-      <literal>+infinity</>, and <literal>-infinity</>.  Make sure we
-      recognize these even if the platform's <function>strtod</> function
-      doesn't.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid unnecessary reporting when <varname>track_activities</> is off
-      (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Expand ability to compare rows to records and arrays (Rafal Rzepecki,
-      Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent crash when <application>psql</>'s <envar>PSQLRC</> variable
-      contains a tilde (Bruce Momjian)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Add spinlock support for ARM64 (Mark Salter)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2013d
-      for DST law changes in Israel, Morocco, Palestine, and Paraguay.
-      Also, historical zone data corrections for Macquarie Island.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-9-2-4">
-  <title>Release 9.2.4</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2013-04-04</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 9.2.3.
-   For information about new features in the 9.2 major release, see
-   <xref linkend="release-9-2">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 9.2.4</title>
-
-   <para>
-    A dump/restore is not required for those running 9.2.X.
-   </para>
-
-   <para>
-    However, this release corrects several errors in management of GiST
-    indexes.  After installing this update, it is advisable to
-    <command>REINDEX</> any GiST indexes that meet one or more of the
-    conditions described below.
-   </para>
-
-   <para>
-    Also, if you are upgrading from a version earlier than 9.2.2,
-    see <xref linkend="release-9-2-2">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Fix insecure parsing of server command-line switches (Mitsumasa
-      Kondo, Kyotaro Horiguchi)
-     </para>
-
-     <para>
-      A connection request containing a database name that begins with
-      <quote><literal>-</></quote> could be crafted to damage or destroy
-      files within the server's data directory, even if the request is
-      eventually rejected.  (CVE-2013-1899)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Reset OpenSSL randomness state in each postmaster child process
-      (Marko Kreen)
-     </para>
-
-     <para>
-      This avoids a scenario wherein random numbers generated by
-      <filename>contrib/pgcrypto</> functions might be relatively easy for
-      another database user to guess.  The risk is only significant when
-      the postmaster is configured with <varname>ssl</> = <literal>on</>
-      but most connections don't use SSL encryption.  (CVE-2013-1900)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make REPLICATION privilege checks test current user not authenticated
-      user (Noah Misch)
-     </para>
-
-     <para>
-      An unprivileged database user could exploit this mistake to call
-      <function>pg_start_backup()</> or <function>pg_stop_backup()</>,
-      thus possibly interfering with creation of routine backups.
-      (CVE-2013-1901)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix GiST indexes to not use <quote>fuzzy</> geometric comparisons when
-      it's not appropriate to do so (Alexander Korotkov)
-     </para>
-
-     <para>
-      The core geometric types perform comparisons using <quote>fuzzy</>
-      equality, but <function>gist_box_same</> must do exact comparisons,
-      else GiST indexes using it might become inconsistent.  After installing
-      this update, users should <command>REINDEX</> any GiST indexes on
-      <type>box</>, <type>polygon</>, <type>circle</>, or <type>point</>
-      columns, since all of these use <function>gist_box_same</>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix erroneous range-union and penalty logic in GiST indexes that use
-      <filename>contrib/btree_gist</> for variable-width data types, that is
-      <type>text</>, <type>bytea</>, <type>bit</>, and <type>numeric</>
-      columns (Tom Lane)
-     </para>
-
-     <para>
-      These errors could result in inconsistent indexes in which some keys
-      that are present would not be found by searches, and also in useless
-      index bloat.  Users are advised to <command>REINDEX</> such indexes
-      after installing this update.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix bugs in GiST page splitting code for multi-column indexes
-      (Tom Lane)
-     </para>
-
-     <para>
-      These errors could result in inconsistent indexes in which some keys
-      that are present would not be found by searches, and also in indexes
-      that are unnecessarily inefficient to search.  Users are advised to
-      <command>REINDEX</> multi-column GiST indexes after installing this
-      update.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <function>gist_point_consistent</>
-      to handle fuzziness consistently (Alexander Korotkov)
-     </para>
-
-     <para>
-      Index scans on GiST indexes on <type>point</> columns would sometimes
-      yield results different from a sequential scan, because
-      <function>gist_point_consistent</> disagreed with the underlying
-      operator code about whether to do comparisons exactly or fuzzily.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix buffer leak in WAL replay (Heikki Linnakangas)
-     </para>
-
-     <para>
-      This bug could result in <quote>incorrect local pin count</> errors
-      during replay, making recovery impossible.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure we do crash recovery before entering archive recovery, if the
-      database was not stopped cleanly and a <filename>recovery.conf</> file
-      is present (Heikki Linnakangas, Kyotaro Horiguchi, Mitsumasa Kondo)
-     </para>
-
-     <para>
-      This is needed to ensure that the database is consistent in certain
-      scenarios, such as initializing a standby server with a filesystem
-      snapshot from a running server.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid deleting not-yet-archived WAL files during crash recovery
-      (Heikki Linnakangas, Fujii Masao)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix race condition in <command>DELETE RETURNING</> (Tom Lane)
-     </para>
-
-     <para>
-      Under the right circumstances, <command>DELETE RETURNING</> could
-      attempt to fetch data from a shared buffer that the current process
-      no longer has any pin on.  If some other process changed the buffer
-      meanwhile, this would lead to garbage <literal>RETURNING</> output, or
-      even a crash.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix infinite-loop risk in regular expression compilation (Tom Lane,
-      Don Porter)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix potential null-pointer dereference in regular expression compilation
-      (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <function>to_char()</> to use ASCII-only case-folding rules where
-      appropriate (Tom Lane)
-     </para>
-
-     <para>
-      This fixes misbehavior of some template patterns that should be
-      locale-independent, but mishandled <quote><literal>I</></quote> and
-      <quote><literal>i</></quote> in Turkish locales.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix unwanted rejection of timestamp <literal>1999-12-31 24:00:00</>
-      (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix SQL-language functions to be safely usable as support
-      functions for range types (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix logic error when a single transaction does <command>UNLISTEN</>
-      then <command>LISTEN</> (Tom Lane)
-     </para>
-
-     <para>
-      The session wound up not listening for notify events at all, though it
-      surely should listen in this case.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible planner crash after columns have been added to a view
-      that's depended on by another view (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix performance issue in <literal>EXPLAIN (ANALYZE, TIMING OFF)</>
-      (Pavel Stehule)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Remove useless <quote>picksplit doesn't support secondary split</> log
-      messages (Josh Hansen, Tom Lane)
-     </para>
-
-     <para>
-      This message seems to have been added in expectation of code that was
-      never written, and probably never will be, since GiST's default
-      handling of secondary splits is actually pretty good.  So stop nagging
-      end users about it.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Remove vestigial secondary-split support in
-      <function>gist_box_picksplit()</> (Tom Lane)
-     </para>
-
-     <para>
-      Not only was this implementation of secondary-split not better than the
-      default implementation, it's actually worse.  So remove it and let the
-      default code path handle the case.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible failure to send a session's last few transaction
-      commit/abort counts to the statistics collector (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Eliminate memory leaks in PL/Perl's <function>spi_prepare()</> function
-      (Alex Hunsaker, Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>pg_dumpall</> to handle database names containing
-      <quote><literal>=</></quote> correctly (Heikki Linnakangas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid crash in <application>pg_dump</> when an incorrect connection
-      string is given (Heikki Linnakangas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ignore invalid indexes in <application>pg_dump</> and
-      <application>pg_upgrade</> (Michael Paquier, Bruce Momjian)
-     </para>
-
-     <para>
-      Dumping invalid indexes can cause problems at restore time, for example
-      if the reason the index creation failed was because it tried to enforce
-      a uniqueness condition not satisfied by the table's data.  Also, if the
-      index creation is in fact still in progress, it seems reasonable to
-      consider it to be an uncommitted DDL change, which
-      <application>pg_dump</> wouldn't be expected to dump anyway.
-      <application>pg_upgrade</> now also skips invalid indexes rather than
-      failing.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      In <application>pg_basebackup</>, include only the current server
-      version's subdirectory when backing up a tablespace (Heikki
-      Linnakangas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Add a server version check in <application>pg_basebackup</> and
-      <application>pg_receivexlog</>, so they fail cleanly with version
-      combinations that won't work (Heikki Linnakangas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <filename>contrib/dblink</> to handle inconsistent settings of
-      <varname>DateStyle</> or <varname>IntervalStyle</> safely (Daniel
-      Farina, Tom Lane)
-     </para>
-
-     <para>
-      Previously, if the remote server had different settings of these
-      parameters, ambiguous dates might be read incorrectly.  This fix
-      ensures that datetime and interval columns fetched by a
-      <filename>dblink</> query will be interpreted correctly.  Note however
-      that inconsistent settings are still risky, since literal values
-      appearing in SQL commands sent to the remote server might be
-      interpreted differently than they would be locally.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <filename>contrib/pg_trgm</>'s <function>similarity()</> function
-      to return zero for trigram-less strings (Tom Lane)
-     </para>
-
-     <para>
-      Previously it returned <literal>NaN</> due to internal division by zero.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Enable building <productname>PostgreSQL</> with Microsoft Visual
-      Studio 2012 (Brar Piening, Noah Misch)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2013b
-      for DST law changes in Chile, Haiti, Morocco, Paraguay, and some
-      Russian areas.  Also, historical zone data corrections for numerous
-      places.
-     </para>
-
-     <para>
-      Also, update the time zone abbreviation files for recent changes in
-      Russia and elsewhere: <literal>CHOT</>, <literal>GET</>,
-      <literal>IRKT</>, <literal>KGT</>, <literal>KRAT</>, <literal>MAGT</>,
-      <literal>MAWT</>, <literal>MSK</>, <literal>NOVT</>, <literal>OMST</>,
-      <literal>TKT</>, <literal>VLAT</>, <literal>WST</>, <literal>YAKT</>,
-      <literal>YEKT</> now follow their current meanings, and
-      <literal>VOLT</> (Europe/Volgograd) and <literal>MIST</>
-      (Antarctica/Macquarie) are added to the default abbreviations list.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-9-2-3">
-  <title>Release 9.2.3</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2013-02-07</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 9.2.2.
-   For information about new features in the 9.2 major release, see
-   <xref linkend="release-9-2">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 9.2.3</title>
-
-   <para>
-    A dump/restore is not required for those running 9.2.X.
-   </para>
-
-   <para>
-    However, if you are upgrading from a version earlier than 9.2.2,
-    see <xref linkend="release-9-2-2">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Prevent execution of <function>enum_recv</> from SQL (Tom Lane)
-     </para>
-
-     <para>
-      The function was misdeclared, allowing a simple SQL command to crash the
-      server.  In principle an attacker might be able to use it to examine the
-      contents of server memory.  Our thanks to Sumit Soni (via Secunia SVCRP)
-      for reporting this issue.  (CVE-2013-0255)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix multiple problems in detection of when a consistent database
-      state has been reached during WAL replay (Fujii Masao, Heikki
-      Linnakangas, Simon Riggs, Andres Freund)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix detection of end-of-backup point when no actual redo work is
-      required (Heikki Linnakangas)
-     </para>
-
-     <para>
-      This mistake could result in incorrect <quote>WAL ends before end of
-      online backup</> errors.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update minimum recovery point when truncating a relation file (Heikki
-      Linnakangas)
-     </para>
-
-     <para>
-      Once data has been discarded, it's no longer safe to stop recovery at
-      an earlier point in the timeline.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix recycling of WAL segments after changing recovery target timeline
-      (Heikki Linnakangas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Properly restore timeline history files from archive on cascading
-      standby servers (Heikki Linnakangas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix lock conflict detection on hot-standby servers (Andres Freund,
-      Robert Haas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix missing cancellations in hot standby mode (Noah Misch, Simon Riggs)
-     </para>
-
-     <para>
-      The need to cancel conflicting hot-standby queries would sometimes be
-      missed, allowing those queries to see inconsistent data.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent recovery pause feature from pausing before users can connect
-      (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix SQL grammar to allow subscripting or field selection from a
-      sub-SELECT result (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix performance problems with autovacuum truncation in busy workloads
-      (Jan Wieck)
-     </para>
-
-     <para>
-      Truncation of empty pages at the end of a table requires exclusive
-      lock, but autovacuum was coded to fail (and release the table lock)
-      when there are conflicting lock requests.  Under load, it is easily
-      possible that truncation would never occur, resulting in table bloat.
-      Fix by performing a partial truncation, releasing the lock, then
-      attempting to re-acquire the lock and continue.  This fix also greatly
-      reduces the average time before autovacuum releases the lock after a
-      conflicting request arrives.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve performance of <function>SPI_execute</> and related
-      functions, thereby improving PL/pgSQL's <literal>EXECUTE</>
-      (Heikki Linnakangas, Tom Lane)
-     </para>
-
-     <para>
-      Remove some data-copying overhead that was added in 9.2 as a
-      consequence of revisions in the plan caching mechanism.  This
-      eliminates a performance regression compared to 9.1, and also saves
-      memory, especially when the query string to be executed contains many
-      SQL statements.
-     </para>
-
-     <para>
-      A side benefit is that multi-statement query strings are now
-      processed fully serially, that is we complete execution of earlier
-      statements before running parse analysis and planning on the
-      following ones.  This eliminates a long-standing issue, in that DDL
-      that should affect the behavior of a later statement will now behave as
-      expected.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Restore pre-9.2 cost estimates for index usage (Tom Lane)
-     </para>
-
-     <para>
-      An ill-considered change of a fudge factor led to undesirably high
-      cost estimates for use of very large indexes.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix intermittent crash in <literal>DROP INDEX CONCURRENTLY</> (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix potential corruption of shared-memory lock table during
-      <command>CREATE/DROP INDEX CONCURRENTLY</> (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <command>COPY</>'s multiple-tuple-insertion code for the case of
-      a tuple larger than page size minus fillfactor (Heikki Linnakangas)
-     </para>
-
-     <para>
-      The previous coding could get into an infinite loop.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Protect against race conditions when scanning
-      <structname>pg_tablespace</> (Stephen Frost, Tom Lane)
-     </para>
-
-     <para>
-      <command>CREATE DATABASE</> and <command>DROP DATABASE</> could
-      misbehave if there were concurrent updates of
-      <structname>pg_tablespace</> entries.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent <command>DROP OWNED</> from trying to drop whole databases or
-      tablespaces (&Aacute;lvaro Herrera)
-     </para>
-
-     <para>
-      For safety, ownership of these objects must be reassigned, not dropped.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix error in <link
-      linkend="guc-vacuum-freeze-table-age"><varname>vacuum_freeze_table_age</></link>
-      implementation (Andres Freund)
-     </para>
-
-     <para>
-      In installations that have existed for more than <link
-      linkend="guc-vacuum-freeze-min-age"><varname>vacuum_freeze_min_age</></link>
-      transactions, this mistake prevented autovacuum from using partial-table
-      scans, so that a full-table scan would always happen instead.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent misbehavior when a <symbol>RowExpr</> or <symbol>XmlExpr</>
-      is parse-analyzed twice (Andres Freund, Tom Lane)
-     </para>
-
-     <para>
-      This mistake could be user-visible in contexts such as
-      <literal>CREATE TABLE LIKE INCLUDING INDEXES</>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve defenses against integer overflow in hashtable sizing
-      calculations (Jeff Davis)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix some bugs associated with privileges on datatypes (Tom Lane)
-     </para>
-
-     <para>
-      There were some issues with default privileges for types, and
-      <application>pg_dump</> failed to dump such privileges at all.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix failure to ignore leftover temporary tables after a server crash
-      (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix failure to rotate postmaster log files for size reasons on
-      Windows (Jeff Janes, Heikki Linnakangas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Reject out-of-range dates in <function>to_date()</> (Hitoshi Harada)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <function>pg_extension_config_dump()</> to handle
-      extension-update cases properly (Tom Lane)
-     </para>
-
-     <para>
-      This function will now replace any existing entry for the target
-      table, making it usable in extension update scripts.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix PL/pgSQL's reporting of plan-time errors in possibly-simple
-      expressions (Tom Lane)
-     </para>
-
-     <para>
-      The previous coding resulted in sometimes omitting the first line in
-      the <literal>CONTEXT</> traceback for the error.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix PL/Python's handling of functions used as triggers on multiple
-      tables (Andres Freund)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure that non-ASCII prompt strings are translated to the correct
-      code page on Windows (Alexander Law, Noah Misch)
-     </para>
-
-     <para>
-      This bug affected <application>psql</> and some other client programs.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible crash in <application>psql</>'s <command>\?</> command
-      when not connected to a database (Meng Qingzhong)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible error if a relation file is removed while
-      <application>pg_basebackup</> is running (Heikki Linnakangas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Tolerate timeline switches while <literal>pg_basebackup -X fetch</>
-      is backing up a standby server (Heikki Linnakangas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <application>pg_dump</> exclude data of unlogged tables when
-      running on a hot-standby server (Magnus Hagander)
-     </para>
-
-     <para>
-      This would fail anyway because the data is not available on the standby
-      server, so it seems most convenient to assume
-      <option>--no-unlogged-table-data</> automatically.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>pg_upgrade</> to deal with invalid indexes safely
-      (Bruce Momjian)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>pg_upgrade</>'s -O/-o options (Marti Raudsepp)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix one-byte buffer overrun in <application>libpq</>'s
-      <function>PQprintTuples</> (Xi Wang)
-     </para>
-
-     <para>
-      This ancient function is not used anywhere by
-      <productname>PostgreSQL</> itself, but it might still be used by some
-      client code.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <application>ecpglib</> use translated messages properly
-      (Chen Huajun)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Properly install <application>ecpg_compat</> and
-      <application>pgtypes</> libraries on MSVC (Jiang Guiqing)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Include our version of <function>isinf()</> in
-      <application>libecpg</> if it's not provided by the system
-      (Jiang Guiqing)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Rearrange configure's tests for supplied functions so it is not
-      fooled by bogus exports from libedit/libreadline (Christoph Berg)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure Windows build number increases over time (Magnus Hagander)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <application>pgxs</> build executables with the right
-      <literal>.exe</> suffix when cross-compiling for Windows
-      (Zoltan Boszormenyi)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Add new timezone abbreviation <literal>FET</> (Tom Lane)
-     </para>
-
-     <para>
-      This is now used in some eastern-European time zones.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-9-2-2">
-  <title>Release 9.2.2</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2012-12-06</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 9.2.1.
-   For information about new features in the 9.2 major release, see
-   <xref linkend="release-9-2">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 9.2.2</title>
-
-   <para>
-    A dump/restore is not required for those running 9.2.X.
-   </para>
-
-   <para>
-    However, you may need to perform <command>REINDEX</> operations to
-    correct problems in concurrently-built indexes, as described in the first
-    changelog item below.
-   </para>
-
-   <para>
-    Also, if you are upgrading from version 9.2.0,
-    see <xref linkend="release-9-2-1">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Fix multiple bugs associated with <command>CREATE/DROP INDEX
-      CONCURRENTLY</> (Andres Freund, Tom Lane, Simon Riggs, Pavan Deolasee)
-     </para>
-
-     <para>
-      An error introduced while adding <command>DROP INDEX CONCURRENTLY</>
-      allowed incorrect indexing decisions to be made during the initial
-      phase of <command>CREATE INDEX CONCURRENTLY</>; so that indexes built
-      by that command could be corrupt.  It is recommended that indexes
-      built in 9.2.X with <command>CREATE INDEX CONCURRENTLY</> be rebuilt
-      after applying this update.
-     </para>
-
-     <para>
-      In addition, fix <command>CREATE/DROP INDEX CONCURRENTLY</> to use
-      in-place updates when changing the state of an index's
-      <structname>pg_index</> row.  This prevents race conditions that could
-      cause concurrent sessions to miss updating the target index, thus
-      again resulting in corrupt concurrently-created indexes.
-     </para>
-
-     <para>
-      Also, fix various other operations to ensure that they ignore
-      invalid indexes resulting from a failed <command>CREATE INDEX
-      CONCURRENTLY</> command.  The most important of these is
-      <command>VACUUM</>, because an auto-vacuum could easily be launched
-      on the table before corrective action can be taken to fix or remove
-      the invalid index.
-     </para>
-
-     <para>
-      Also fix <command>DROP INDEX CONCURRENTLY</> to not disable
-      insertions into the target index until all queries using it are done.
-     </para>
-
-     <para>
-      Also fix misbehavior if <command>DROP INDEX CONCURRENTLY</> is
-      canceled: the previous coding could leave an un-droppable index behind.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Correct predicate locking for <command>DROP INDEX CONCURRENTLY</>
-      (Kevin Grittner)
-     </para>
-
-     <para>
-      Previously, SSI predicate locks were processed at the wrong time,
-      possibly leading to incorrect behavior of serializable transactions
-      executing in parallel with the <command>DROP</>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix buffer locking during WAL replay (Tom Lane)
-     </para>
-
-     <para>
-      The WAL replay code was insufficiently careful about locking buffers
-      when replaying WAL records that affect more than one page.  This could
-      result in hot standby queries transiently seeing inconsistent states,
-      resulting in wrong answers or unexpected failures.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix an error in WAL generation logic for GIN indexes (Tom Lane)
-     </para>
-
-     <para>
-      This could result in index corruption, if a torn-page failure occurred.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix an error in WAL replay logic for SP-GiST indexes (Tom Lane)
-     </para>
-
-     <para>
-      This could result in index corruption after a crash, or on a standby
-      server.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix incorrect detection of end-of-base-backup location during WAL
-      recovery (Heikki Linnakangas)
-     </para>
-
-     <para>
-      This mistake allowed hot standby mode to start up before the database
-      reaches a consistent state.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Properly remove startup process's virtual XID lock when promoting a
-      hot standby server to normal running (Simon Riggs)
-     </para>
-
-     <para>
-      This oversight could prevent subsequent execution of certain
-      operations such as <command>CREATE INDEX CONCURRENTLY</>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid bogus <quote>out-of-sequence timeline ID</> errors in standby
-      mode (Heikki Linnakangas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent the postmaster from launching new child processes after it's
-      received a shutdown signal (Tom Lane)
-     </para>
-
-     <para>
-      This mistake could result in shutdown taking longer than it should, or
-      even never completing at all without additional user action.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix the syslogger process to not fail when
-      <varname>log_rotation_age</> exceeds 2^31 milliseconds (about 25 days)
-      (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <function>WaitLatch()</> to return promptly when the requested
-      timeout expires (Jeff Janes, Tom Lane)
-     </para>
-
-     <para>
-      With the previous coding, a steady stream of non-wait-terminating
-      interrupts could delay return from <function>WaitLatch()</>
-      indefinitely.  This has been shown to be a problem for the autovacuum
-      launcher process, and might cause trouble elsewhere as well.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid corruption of internal hash tables when out of memory
-      (Hitoshi Harada)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent file descriptors for dropped tables from being held open past
-      transaction end (Tom Lane)
-     </para>
-
-     <para>
-      This should reduce problems with long-since-dropped tables continuing
-      to occupy disk space.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent database-wide crash and restart when a new child process is
-      unable to create a pipe for its latch (Tom Lane)
-     </para>
-
-     <para>
-      Although the new process must fail, there is no good reason to force a
-      database-wide restart, so avoid that.  This improves robustness when
-      the kernel is nearly out of file descriptors.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid planner crash with joins to unflattened subqueries (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix planning of non-strict equivalence clauses above outer joins
-      (Tom Lane)
-     </para>
-
-     <para>
-      The planner could derive incorrect constraints from a clause equating
-      a non-strict construct to something else, for example
-      <literal>WHERE COALESCE(foo, 0) = 0</>
-      when <literal>foo</> is coming from the nullable side of an outer join.
-      9.2 showed this type of error in more cases than previous releases,
-      but the basic bug has been there for a long time.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <command>SELECT DISTINCT</> with index-optimized
-      <function>MIN</>/<function>MAX</> on an inheritance tree (Tom Lane)
-     </para>
-
-     <para>
-      The planner would fail with <quote>failed to re-find MinMaxAggInfo
-      record</> given this combination of factors.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make sure the planner sees implicit and explicit casts as equivalent
-      for all purposes, except in the minority of cases where there's
-      actually a semantic difference (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Include join clauses when considering whether partial indexes can be
-      used for a query (Tom Lane)
-     </para>
-
-     <para>
-      A strict join clause can be sufficient to establish an
-      <replaceable>x</> <literal>IS NOT NULL</> predicate, for example.
-      This fixes a planner regression in 9.2, since previous versions could
-      make comparable deductions.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Limit growth of planning time when there are many indexable join
-      clauses for the same index (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve planner's ability to prove exclusion constraints from
-      equivalence classes (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix partial-row matching in hashed subplans to handle cross-type cases
-      correctly (Tom Lane)
-     </para>
-
-     <para>
-      This affects multicolumn <literal>NOT IN</> subplans, such as
-      <literal>WHERE (a, b) NOT IN (SELECT x, y FROM ...)</>
-      when for instance <literal>b</> and <literal>y</> are <type>int4</>
-      and <type>int8</> respectively.  This mistake led to wrong answers
-      or crashes depending on the specific datatypes involved.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix btree mark/restore functions to handle array keys (Tom Lane)
-     </para>
-
-     <para>
-      This oversight could result in wrong answers from merge joins whose
-      inner side is an index scan using an
-      <literal><replaceable>indexed_column</> =
-      ANY(<replaceable>array</>)</literal> condition.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Revert patch for taking fewer snapshots (Tom Lane)
-     </para>
-
-     <para>
-      The 9.2 change to reduce the number of snapshots taken during query
-      execution led to some anomalous behaviors not seen in previous
-      releases, because execution would proceed with a snapshot acquired
-      before locking the tables used by the query.  Thus, for example,
-      a query would not be guaranteed to see updates committed by a
-      preceding transaction even if that transaction had exclusive lock.
-      We'll probably revisit this in future releases, but meanwhile put it
-      back the way it was before 9.2.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Acquire buffer lock when re-fetching the old tuple for an
-      <literal>AFTER ROW UPDATE/DELETE</> trigger (Andres Freund)
-     </para>
-
-     <para>
-      In very unusual circumstances, this oversight could result in passing
-      incorrect data to a trigger <literal>WHEN</> condition, or to the
-      precheck logic for a foreign-key enforcement trigger.  That could
-      result in a crash, or in an incorrect decision about whether to
-      fire the trigger.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <command>ALTER COLUMN TYPE</> to handle inherited check
-      constraints properly (Pavan Deolasee)
-     </para>
-
-     <para>
-      This worked correctly in pre-8.4 releases, and now works correctly
-      in 8.4 and later.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <command>ALTER EXTENSION SET SCHEMA</>'s failure  to move some
-      subsidiary objects into the new schema (&Aacute;lvaro Herrera, Dimitri
-      Fontaine)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Handle <command>CREATE TABLE AS EXECUTE</> correctly in extended query
-      protocol (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Don't modify the input parse tree in <command>DROP RULE IF NOT
-      EXISTS</> and <command>DROP TRIGGER IF NOT EXISTS</> (Tom Lane)
-     </para>
-
-     <para>
-      This mistake would cause errors if a cached statement of one of these
-      types was re-executed.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <command>REASSIGN OWNED</> to handle grants on tablespaces
-      (&Aacute;lvaro Herrera)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ignore incorrect <structname>pg_attribute</> entries for system
-      columns for views (Tom Lane)
-     </para>
-
-     <para>
-      Views do not have any system columns.  However, we forgot to
-      remove such entries when converting a table to a view.  That's fixed
-      properly for 9.3 and later, but in previous branches we need to defend
-      against existing mis-converted views.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix rule printing to dump <literal>INSERT INTO <replaceable>table</>
-      DEFAULT VALUES</literal> correctly (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Guard against stack overflow when there are too many
-      <literal>UNION</>/<literal>INTERSECT</>/<literal>EXCEPT</> clauses
-      in a query (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent platform-dependent failures when dividing the minimum possible
-      integer value by -1 (Xi Wang, Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible access past end of string in date parsing
-      (Hitoshi Harada)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix failure to advance XID epoch if XID wraparound happens during a
-      checkpoint and <varname>wal_level</> is <literal>hot_standby</>
-      (Tom Lane, Andres Freund)
-     </para>
-
-     <para>
-      While this mistake had no particular impact on
-      <productname>PostgreSQL</productname> itself, it was bad for
-      applications that rely on <function>txid_current()</> and related
-      functions: the TXID value would appear to go backwards.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <function>pg_terminate_backend()</> and
-      <function>pg_cancel_backend()</> to not throw error for a non-existent
-      target process (Josh Kupershmidt)
-     </para>
-
-     <para>
-      This case already worked as intended when called by a superuser,
-      but not so much when called by ordinary users.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix display of
-      <structname>pg_stat_replication</>.<structfield>sync_state</> at a
-      page boundary (Kyotaro Horiguchi)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Produce an understandable error message if the length of the path name
-      for a Unix-domain socket exceeds the platform-specific limit
-      (Tom Lane, Andrew Dunstan)
-     </para>
-
-     <para>
-      Formerly, this would result in something quite unhelpful, such as
-      <quote>Non-recoverable failure in name resolution</>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix memory leaks when sending composite column values to the client
-      (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Save some cycles by not searching for subtransaction locks at commit
-      (Simon Riggs)
-     </para>
-
-     <para>
-      In a transaction holding many exclusive locks, this useless activity
-      could be quite costly.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <application>pg_ctl</> more robust about reading the
-      <filename>postmaster.pid</> file (Heikki Linnakangas)
-     </para>
-
-     <para>
-      This fixes race conditions and possible file descriptor leakage.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible crash in <application>psql</> if incorrectly-encoded data
-      is presented and the <varname>client_encoding</> setting is a
-      client-only encoding, such as SJIS (Jiang Guiqing)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <application>pg_dump</> dump <literal>SEQUENCE SET</> items in
-      the data not pre-data section of the archive (Tom Lane)
-     </para>
-
-     <para>
-      This fixes an undesirable inconsistency between the meanings of
-      <option>--data-only</> and <option>--section=data</>, and also fixes
-      dumping of sequences that are marked as extension configuration tables.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>pg_dump</>'s handling of <command>DROP DATABASE</>
-      commands in <option>--clean</> mode (Guillaume Lelarge)
-     </para>
-
-     <para>
-      Beginning in 9.2.0, <literal>pg_dump --clean</> would issue a
-      <command>DROP DATABASE</> command, which was either useless or
-      dangerous depending on the usage scenario.  It no longer does that.
-      This change also fixes the combination of <option>--clean</> and
-      <option>--create</> to work sensibly, i.e., emit <command>DROP
-      DATABASE</> then <command>CREATE DATABASE</> before reconnecting to the
-      target database.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>pg_dump</> for views with circular dependencies and
-      no relation options (Tom Lane)
-     </para>
-
-     <para>
-      The previous fix to dump relation options when a view is
-      involved in a circular dependency didn't work right for the case
-      that the view has no options; it emitted <literal>ALTER VIEW foo
-      SET ()</> which is invalid syntax.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix bugs in the <filename>restore.sql</> script emitted by
-      <application>pg_dump</> in <literal>tar</> output format (Tom Lane)
-     </para>
-
-     <para>
-      The script would fail outright on tables whose names include
-      upper-case characters.  Also, make the script capable of restoring
-      data in <option>--inserts</> mode as well as the regular COPY mode.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>pg_restore</> to accept POSIX-conformant
-      <literal>tar</> files (Brian Weaver, Tom Lane)
-     </para>
-
-     <para>
-      The original coding of <application>pg_dump</>'s <literal>tar</>
-      output mode produced files that are not fully conformant with the
-      POSIX standard.  This has been corrected for version 9.3.  This
-      patch updates previous branches so that they will accept both the
-      incorrect and the corrected formats, in hopes of avoiding
-      compatibility problems when 9.3 comes out.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <literal>tar</> files emitted by <application>pg_basebackup</> to
-      be POSIX conformant (Brian Weaver, Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>pg_resetxlog</> to locate <filename>postmaster.pid</>
-      correctly when given a relative path to the data directory (Tom Lane)
-     </para>
-
-     <para>
-      This mistake could lead to <application>pg_resetxlog</> not noticing
-      that there is an active postmaster using the data directory.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>libpq</>'s <function>lo_import()</> and
-      <function>lo_export()</> functions to report file I/O errors properly
-      (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>ecpg</>'s processing of nested structure pointer
-      variables (Muhammad Usama)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>ecpg</>'s <function>ecpg_get_data</> function to
-      handle arrays properly (Michael Meskes)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent <application>pg_upgrade</> from trying to process TOAST tables
-      for system catalogs (Bruce Momjian)
-     </para>
-
-     <para>
-      This fixes an error seen when the <literal>information_schema</> has
-      been dropped and recreated.  Other failures were also possible.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve <application>pg_upgrade</> performance by setting
-      <varname>synchronous_commit</> to <literal>off</> in the new cluster
-      (Bruce Momjian)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <filename>contrib/pageinspect</>'s btree page inspection
-      functions take buffer locks while examining pages (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Work around unportable behavior of <literal>malloc(0)</> and
-      <literal>realloc(NULL, 0)</> (Tom Lane)
-     </para>
-
-     <para>
-      On platforms where these calls return <literal>NULL</>, some code
-      mistakenly thought that meant out-of-memory.
-      This is known to have broken <application>pg_dump</> for databases
-      containing no user-defined aggregates.  There might be other cases
-      as well.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure that <literal>make install</> for an extension creates the
-      <filename>extension</> installation directory (C&eacute;dric Villemain)
-     </para>
-
-     <para>
-      Previously, this step was missed if <varname>MODULEDIR</> was set in
-      the extension's Makefile.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>pgxs</> support for building loadable modules on AIX
-      (Tom Lane)
-     </para>
-
-     <para>
-      Building modules outside the original source tree didn't work on AIX.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2012j
-      for DST law changes in Cuba, Israel, Jordan, Libya, Palestine, Western
-      Samoa, and portions of Brazil.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-9-2-1">
-  <title>Release 9.2.1</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2012-09-24</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 9.2.0.
-   For information about new features in the 9.2 major release, see
-   <xref linkend="release-9-2">.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 9.2.1</title>
-
-   <para>
-    A dump/restore is not required for those running 9.2.X.
-   </para>
-
-   <para>
-    However, you may need to perform <command>REINDEX</> and/or
-    <command>VACUUM</> operations to recover from the effects of the data
-    corruption bug described in the first changelog item below.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Fix persistence marking of shared buffers during WAL replay
-      (Jeff Davis)
-     </para>
-
-     <para>
-      This mistake can result in buffers not being written out during
-      checkpoints, resulting in data corruption if the server later crashes
-      without ever having written those buffers.  Corruption can occur on
-      any server following crash recovery, but it is significantly more
-      likely to occur on standby slave servers since those perform much
-      more WAL replay.  There is a low probability of corruption of btree
-      and GIN indexes.  There is a much higher probability of corruption
-      of table <quote>visibility maps</>, which might lead to wrong answers
-      from index-only scans.  Table data proper cannot be corrupted by this
-      bug.
-     </para>
-
-     <para>
-      While no index corruption due to this bug is known to have occurred
-      in the field, as a precautionary measure it is recommended that
-      production installations <command>REINDEX</> all btree and GIN
-      indexes at a convenient time after upgrading to 9.2.1.
-     </para>
-
-     <para>
-      Also, it is recommended to perform a <command>VACUUM</> of all tables
-      while having <link
-      linkend="guc-vacuum-freeze-table-age"><varname>vacuum_freeze_table_age</></link>
-      set to zero.  This will fix any incorrect visibility map data.  <link
-      linkend="guc-vacuum-cost-delay"><varname>vacuum_cost_delay</></link>
-      can be adjusted to reduce the performance impact of vacuuming, while
-      causing it to take longer to finish.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible incorrect sorting of output from queries involving
-      <literal>WHERE <replaceable>indexed_column</> IN
-      (<replaceable>list_of_values</>)</literal> (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix planner failure for queries involving <literal>GROUP BY</>
-      expressions along with window functions and aggregates (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix planner's assignment of executor parameters (Tom Lane)
-     </para>
-
-     <para>
-      This error could result in wrong answers from queries that scan the
-      same <literal>WITH</> subquery multiple times.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve planner's handling of join conditions in index scans (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve selectivity estimation for text search queries involving
-      prefixes, i.e. <replaceable>word</><literal>:*</> patterns  (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix delayed recognition of permissions changes (Tom Lane)
-     </para>
-
-     <para>
-      A command that needed no locks other than ones its transaction already
-      had might fail to notice a concurrent <command>GRANT</> or
-      <command>REVOKE</> that committed since the start of its transaction.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <command>ANALYZE</> to not fail when a column is a domain over an
-      array type (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent PL/Perl from crashing if a recursive PL/Perl function is
-      redefined while being executed (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Work around possible misoptimization in PL/Perl (Tom Lane)
-     </para>
-
-     <para>
-      Some Linux distributions contain an incorrect version of
-      <filename>pthread.h</> that results in incorrect compiled code in
-      PL/Perl, leading to crashes if a PL/Perl function calls another one
-      that throws an error.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Remove unnecessary dependency on <application>pg_config</> from
-      <application>pg_upgrade</> (Peter Eisentraut)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</> release 2012f
-      for DST law changes in Fiji
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-9-2">
-  <title>Release 9.2</title>
-
-  <formalpara>
-   <title>Release date:</title>
-   <para>2012-09-10</para>
-  </formalpara>
-
-  <sect2>
-   <title>Overview</title>
-
-   <para>
-    This release has been largely focused on performance improvements, though
-    new SQL features are not lacking.  Work also continues in the area of
-    replication support.  Major enhancements include:
-   </para>
-
-   <itemizedlist>
-
-    <!-- This list duplicates items below, but without authors or details-->
-
-      <listitem>
-       <para>
-        Allow queries to retrieve data only from indexes, avoiding heap
-        access (<firstterm>index-only scans</>)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Allow the planner to generate custom plans for specific parameter
-        values even when using prepared statements
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Improve the planner's ability to use nested loops with inner
-        index scans
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Allow streaming replication slaves to forward data to other slaves
-        (<link linkend="cascading-replication"><firstterm>cascading
-        replication</></link>)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Allow <link
-        linkend="app-pgbasebackup"><application>pg_basebackup</></link>
-        to make base backups from standby servers
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add a <link
-        linkend="app-pgreceivexlog"><application>pg_receivexlog</></link>
-        tool to archive WAL file changes as they are written
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add the <link linkend="SPGiST">SP-GiST</link> (Space-Partitioned
-        GiST) index access method
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add support for <link linkend="rangetypes">range data types</link>
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add a <link linkend="datatype-json"><type>JSON</type></link>
-        data type
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add a <link
-        linkend="SQL-CREATEVIEW"><literal>security_barrier</></link>
-        option for views
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Allow <application>libpq</> connection strings to have the format of a
-        <link linkend="libpq-connstring"><acronym>URI</acronym></link>
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add a <link linkend="libpq-single-row-mode">single-row processing
-        mode</link> to <application>libpq</> for better handling of large
-        result sets
-       </para>
-      </listitem>
-
-   </itemizedlist>
-
-   <para>
-    The above items are explained in more detail in the sections below.
-   </para>
-
-  </sect2>
-
-  <sect2>
-
-  <title>Migration to Version 9.2</title>
-
-   <para>
-    A dump/restore using <application>pg_dump</application>, or use of
-    <application>pg_upgrade</application>, is required for those wishing
-    to migrate data from any previous release.
-   </para>
-
-   <para>
-    Version 9.2 contains a number of changes that may affect compatibility
-    with previous releases.  Observe the following incompatibilities:
-   </para>
-
-   <sect3>
-    <title>System Catalogs</title>
-
-    <itemizedlist>
-
-      <listitem>
-       <para>
-        Remove the <structfield>spclocation</> field from <link
-        linkend="catalog-pg-tablespace"><structname>pg_tablespace</></link>
-        (Magnus Hagander)
-       </para>
-
-       <para>
-        This field was duplicative of the symbolic links that actually define
-        tablespace locations, and thus risked errors of omission when moving
-        a tablespace.  This change allows tablespace directories to be moved
-        while the server is down, by manually adjusting the symbolic links.
-        To replace this field, we have added <link
-        linkend="functions-info-catalog-table"><function>pg_tablespace_location()</></link>
-        to allow querying of the symbolic links.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Move <type>tsvector</> most-common-element statistics to new
-        <link linkend="view-pg-stats"><structname>pg_stats</></link> columns
-        (Alexander Korotkov)
-       </para>
-
-       <para>
-        Consult <structfield>most_common_elems</>
-        and <structfield>most_common_elem_freqs</> for the data formerly
-        available in <structfield>most_common_vals</>
-        and <structfield>most_common_freqs</> for a <type>tsvector</> column.
-       </para>
-      </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title>Functions</title>
-
-    <itemizedlist>
-
-      <listitem>
-       <para>
-        Remove <link linkend="hstore">hstore</link>'s <literal>=&gt;</>
-        operator (Robert Haas)
-       </para>
-
-       <para>
-        Users should now use <function>hstore(text, text)</>.  Since
-        <productname>PostgreSQL</productname> 9.0, a warning message has been
-        emitted when an operator named <literal>=&gt;</> is created because
-        the <acronym>SQL</acronym> standard reserves that token for
-        another use.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Ensure that <link
-        linkend="functions-xml-processing"><function>xpath()</></link>
-        escapes special characters in string values (Florian Pflug)
-       </para>
-
-       <para>
-        Without this it is possible for the result not to be valid
-        <acronym>XML</acronym>.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Make <link
-        linkend="functions-admin-dbobject"><function>pg_relation_size()</></link>
-        and friends return NULL if the object does not exist (Phil Sorber)
-       </para>
-
-       <para>
-        This prevents queries that call these functions from returning
-        errors immediately after a concurrent <command>DROP</>.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Make <link
-        linkend="functions-datetime-extract"><function>EXTRACT(EPOCH FROM
-        <replaceable>timestamp without time zone</>)</function></link>
-        measure the epoch from local midnight, not <acronym>UTC</acronym>
-        midnight (Tom Lane)
-       </para>
-
-       <para>
-        This change reverts an ill-considered change made in release 7.3.
-        Measuring from <acronym>UTC</acronym> midnight was inconsistent
-        because it made the result dependent on the <link
-        linkend="guc-timezone"><varname>timezone</></link> setting, which
-        computations for <type>timestamp without time zone</> should not be.
-        The previous behavior remains available by casting the input value
-        to <type>timestamp with time zone</>.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Properly parse time strings with trailing <literal>yesterday</>,
-        <literal>today</>, and <literal>tomorrow</> (Dean Rasheed)
-       </para>
-
-       <para>
-        Previously, <literal>SELECT '04:00:00 yesterday'::timestamp</literal>
-        returned yesterday's date at midnight.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Fix <link
-        linkend="functions-formatting"><function>to_date()</></link> and
-        <function>to_timestamp()</> to wrap incomplete dates toward 2020
-        (Bruce Momjian)
-       </para>
-
-       <para>
-        Previously, supplied years and year masks of less than four digits
-        wrapped inconsistently.
-       </para>
-      </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title>Object Modification</title>
-
-    <itemizedlist>
-
-      <listitem>
-       <para>
-        Prevent  <link linkend="SQL-ALTERDOMAIN"><command>ALTER
-        DOMAIN</command></link> from working on non-domain types (Peter
-        Eisentraut)
-       </para>
-
-       <para>
-        Owner and schema changes were previously possible on non-domain
-        types.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        No longer forcibly lowercase procedural language names in <link
-        linkend="SQL-CREATEFUNCTION"><command>CREATE FUNCTION</></link>
-        (Robert Haas)
-       </para>
-
-       <para>
-        While unquoted language identifiers are still lowercased, strings
-        and quoted identifiers are no longer forcibly down-cased.
-        Thus for example <literal>CREATE FUNCTION ... LANGUAGE 'C'</>
-        will no longer work; it must be spelled <literal>'c'</>, or better
-        omit the quotes.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Change system-generated names of foreign key enforcement triggers
-        (Tom Lane)
-       </para>
-
-       <para>
-        This change ensures that the triggers fire in the correct order in
-        some corner cases involving self-referential foreign key constraints.
-       </para>
-      </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title>Command-Line Tools</title>
-
-    <itemizedlist>
-
-      <listitem>
-       <para>
-        Provide consistent backquote, variable
-        expansion, and quoted substring behavior in <link
-        linkend="APP-PSQL"><application>psql</></link> meta-command
-        arguments (Tom Lane)
-       </para>
-
-       <para>
-        Previously, such references were treated oddly when not separated by
-        whitespace from adjacent text.  For example <literal>'FOO'BAR</> was
-        output as <literal>FOO BAR</> (unexpected insertion of a space) and
-        <literal>FOO'BAR'BAZ</> was output unchanged (not removing the quotes
-        as most would expect).
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        No longer treat <link
-        linkend="APP-CLUSTERDB"><application>clusterdb</></link>
-        table names as double-quoted; no longer treat <link
-        linkend="APP-REINDEXDB"><application>reindexdb</></link> table
-        and index names as double-quoted (Bruce Momjian)
-       </para>
-
-       <para>
-        Users must now include double-quotes in the command arguments if
-        quoting is wanted.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        <link linkend="APP-CREATEUSER"><application>createuser</></link>
-        no longer prompts for option settings by default (Peter Eisentraut)
-       </para>
-
-       <para>
-        Use <option>--interactive</> to obtain the old behavior.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Disable prompting for the user name in <link
-        linkend="APP-DROPUSER"><application>dropuser</></link> unless
-        <option>--interactive</> is specified (Peter Eisentraut)
-       </para>
-      </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title>Server Settings</title>
-
-    <itemizedlist>
-
-      <listitem>
-       <para>
-        Add server parameters for specifying the <link
-        linkend="guc-ssl-ca-file">locations of server-side
-        <acronym>SSL</acronym> files</link> (Peter Eisentraut)
-       </para>
-
-       <para>
-        This allows changing the names and locations of the files that were
-        previously hard-coded as <filename>server.crt</>,
-        <filename>server.key</>, <filename>root.crt</>, and
-        <filename>root.crl</> in the data directory.
-        <emphasis>The server will no longer examine <filename>root.crt</> or
-        <filename>root.crl</> by default</emphasis>; to load these files, the
-        associated parameters must be set to non-default values.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Remove the <varname>silent_mode</> parameter (Heikki Linnakangas)
-       </para>
-
-       <para>
-        Similar behavior can be obtained with <command>pg_ctl start
-        -l postmaster.log</>.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Remove the <varname>wal_sender_delay</> parameter,
-        as it is no longer needed (Tom Lane)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Remove the <varname>custom_variable_classes</> parameter (Tom Lane)
-       </para>
-
-       <para>
-        The checking provided by this setting was dubious.  Now any
-        setting can be prefixed by any class name.
-       </para>
-      </listitem>
-
-    </itemizedlist>
-   </sect3>
-
-   <sect3>
-    <title>Monitoring</title>
-
-    <itemizedlist>
-
-      <listitem>
-       <para>
-        Rename <link
-        linkend="monitoring-stats-views-table"><structname>pg_stat_activity</></link><structfield>.procpid</>
-        to <structfield>pid</>, to match other system tables (Magnus Hagander)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Create a separate <structfield>pg_stat_activity</> column to
-        report process state (Scott Mead, Magnus Hagander)
-       </para>
-
-       <para>
-        The previous <structfield>query</> and <structfield>query_start</>
-        values now remain available for an idle session, allowing enhanced
-        analysis.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Rename <structname>pg_stat_activity</>.<structfield>current_query</> to
-        <structfield>query</> because it is not cleared when the query
-        completes (Magnus Hagander)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Change all <acronym>SQL</acronym>-level statistics timing values
-        to be <type>float8</> columns measured in milliseconds (Tom Lane)
-       </para>
-
-       <para>
-        This change eliminates the designed-in assumption that the values
-        are accurate to microseconds and no more (since the <type>float8</>
-        values can be fractional).
-        The columns affected are
-        <structname>pg_stat_user_functions</>.<structfield>total_time</>,
-        <structname>pg_stat_user_functions</>.<structfield>self_time</>,
-        <structname>pg_stat_xact_user_functions</>.<structfield>total_time</>,
-        and
-        <structname>pg_stat_xact_user_functions</>.<structfield>self_time</>.
-        The statistics functions underlying these columns now also return
-        <type>float8</> milliseconds, rather than <type>bigint</>
-        microseconds.
-        <filename>contrib/pg_stat_statements</>'
-        <structfield>total_time</> column is now also measured in
-        milliseconds.
-       </para>
-      </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <para>
-    Below you will find a detailed account of the changes between
-    <productname>PostgreSQL</productname> 9.2 and the previous major
-    release.
-   </para>
-
-   <sect3>
-    <title>Server</title>
-
-    <sect4>
-     <title>Performance</title>
-
-     <itemizedlist>
-      <listitem>
-       <para>
-        Allow queries to retrieve data only from indexes, avoiding heap
-        access (Robert Haas, Ibrar Ahmed, Heikki Linnakangas, Tom Lane)
-       </para>
-
-       <para>
-        This feature is often called <firstterm>index-only scans</>.
-        Heap access can be skipped for heap pages containing only tuples that
-        are visible to all sessions, as reported by the visibility map; so
-        the benefit applies mainly to mostly-static data.  The visibility map
-        was made crash-safe as a necessary part of implementing this feature.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add the <link linkend="SPGiST">SP-GiST</link> (Space-Partitioned
-        GiST) index access method (Teodor Sigaev, Oleg Bartunov, Tom
-        Lane)
-       </para>
-
-       <para>
-        SP-GiST is comparable to GiST in flexibility, but supports
-        unbalanced partitioned search structures rather than balanced
-        trees.  For suitable problems, SP-GiST can be faster than GiST in both
-        index build time and search time.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Allow group commit to work effectively under heavy load (Peter
-        Geoghegan, Simon Riggs, Heikki Linnakangas)
-       </para>
-
-       <para>
-        Previously, batching of commits became ineffective as the write
-        workload increased, because of internal lock contention.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Allow uncontended locks to be managed using a new
-        fast-path lock mechanism (Robert Haas)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Reduce overhead of creating virtual transaction ID locks (Robert
-        Haas)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Reduce the overhead of serializable isolation level locks (Dan
-        Ports)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Improve PowerPC and Itanium spinlock performance (Manabu Ori,
-        Robert Haas, Tom Lane)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Reduce overhead for shared invalidation cache messages (Robert
-        Haas)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Move the frequently accessed members of the <structname>PGPROC</>
-        shared memory array to a separate array (Pavan
-        Deolasee, Heikki Linnakangas, Robert Haas)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Improve <command>COPY</command> performance by adding tuples to
-        the heap in batches (Heikki Linnakangas)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Improve GiST index performance for geometric data types by producing
-        better trees with less memory allocation overhead (Alexander Korotkov)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Improve GiST index build times (Alexander Korotkov, Heikki
-        Linnakangas)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Allow hint bits to be set sooner for temporary and unlogged tables
-        (Robert Haas)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Allow sorting to be performed by inlined,
-        non-<acronym>SQL</acronym>-callable comparison functions (Peter
-        Geoghegan, Robert Haas, Tom Lane)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Make the number of CLOG buffers scale based on <link
-        linkend="guc-shared-buffers"><varname>shared_buffers</></link>
-        (Robert Haas, Simon Riggs, Tom Lane)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Improve performance of buffer pool scans that occur when tables or
-        databases are dropped (Jeff Janes, Simon Riggs)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Improve performance of checkpointer's fsync-request queue
-        when many tables are being dropped or truncated (Tom Lane)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Pass the safe number of file descriptors to child processes on Windows
-        (Heikki Linnakangas)
-       </para>
-
-       <para>
-        This allows Windows sessions to use more open file descriptors than
-        before.
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-    <sect4>
-     <title>Process Management</title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Create a dedicated background process to perform checkpoints (Simon
-        Riggs)
-       </para>
-
-       <para>
-        Formerly the background writer did both dirty-page writing and
-        checkpointing.  Separating this into two processes allows each goal
-        to be accomplished more predictably.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Improve asynchronous commit behavior by waking the walwriter sooner
-        (Simon Riggs)
-       </para>
-
-       <para>
-        Previously, only <link
-        linkend="guc-wal-writer-delay"><varname>wal_writer_delay</></link>
-        triggered <acronym>WAL</acronym> flushing to disk; now filling a
-        <acronym>WAL</acronym> buffer also triggers <acronym>WAL</acronym>
-        writes.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Allow the bgwriter, walwriter, checkpointer, statistics collector,
-        log collector, and archiver background processes to sleep more
-        efficiently during periods of inactivity (Peter Geoghegan, Tom Lane)
-       </para>
-
-       <para>
-        This series of changes reduces the frequency of process wake-ups when
-        there is nothing to do, dramatically reducing power consumption on
-        idle servers.
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-    <sect4>
-     <title>Optimizer</title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Allow the planner to generate custom plans for specific parameter
-        values even when using prepared statements
-        (Tom Lane)
-       </para>
-
-       <para>
-        In the past, a prepared statement always had a single
-        <quote>generic</> plan that was used for all parameter values, which
-        was frequently much inferior to the plans used for non-prepared
-        statements containing explicit constant values.  Now, the planner
-        attempts to generate custom plans for specific parameter values.
-        A generic plan will only be used after custom plans have repeatedly
-        proven to provide no benefit.  This change should eliminate the
-        performance penalties formerly seen from use of prepared statements
-        (including non-dynamic statements in PL/pgSQL).
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Improve the planner's ability to use nested loops with inner
-        index scans (Tom Lane)
-       </para>
-
-       <para>
-        The new <quote>parameterized path</> mechanism allows inner
-        index scans to use values from relations that are more than one join
-        level up from the scan.  This can greatly improve performance in
-        situations where semantic restrictions (such as outer joins) limit
-        the allowed join orderings.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Improve the planning <acronym>API</acronym> for foreign data wrappers
-        (Etsuro Fujita, Shigeru Hanada, Tom Lane)
-       </para>
-
-       <para>
-        Wrappers can now provide multiple access <quote>paths</> for their
-        tables, allowing more flexibility in join planning.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Recognize self-contradictory restriction clauses for non-table
-        relations (Tom Lane)
-       </para>
-
-       <para>
-        This check is only performed when <link
-        linkend="guc-constraint-exclusion"><varname>constraint_exclusion</></link>
-        is <literal>on</literal>.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Allow <literal>indexed_col op ANY(ARRAY[...])</> conditions to be
-        used in plain index scans and index-only scans (Tom Lane)
-       </para>
-
-       <para>
-        Formerly such conditions could only be used in bitmap index scans.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Support <function>MIN</>/<function>MAX</> index optimizations on
-        <type>boolean</type> columns (Marti Raudsepp)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Account for set-returning functions in <command>SELECT</> target
-        lists when setting row count estimates (Tom Lane)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Fix planner to handle indexes with duplicated columns more reliably
-        (Tom Lane)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Collect and use element-frequency statistics for arrays (Alexander
-        Korotkov, Tom Lane)
-       </para>
-
-       <para>
-        This change improves selectivity estimation for the array
-        <literal>&lt;@</literal>, <literal>&amp;&amp;</literal>, and
-        <literal>@&gt;</literal> operators (array containment and overlaps).
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Allow statistics to be collected for foreign tables
-        (Etsuro Fujita)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Improve cost estimates for use of partial indexes (Tom Lane)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Improve the planner's ability to use statistics for columns
-        referenced in subqueries (Tom Lane)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Improve statistical estimates for subqueries using
-        <literal>DISTINCT</> (Tom Lane)
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-    <sect4>
-     <title>Authentication</title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Do not treat role names and <literal>samerole</> specified in <link
-        linkend="auth-pg-hba-conf"><filename>pg_hba.conf</filename></link>
-        as automatically including superusers (Andrew Dunstan)
-       </para>
-
-       <para>
-        This makes it easier to use <literal>reject</> lines with group roles.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Adjust <filename>pg_hba.conf</filename> processing to handle token
-        parsing more consistently (Brendan Jurd, &Aacute;lvaro Herrera)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Disallow empty <filename>pg_hba.conf</filename> files (Tom Lane)
-       </para>
-
-       <para>
-        This was done to more quickly detect misconfiguration.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Make superuser privilege imply replication privilege (Noah Misch)
-       </para>
-
-       <para>
-        This avoids the need to explicitly assign such privileges.
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-    <sect4>
-     <title>Monitoring</title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Attempt to log the current query string during a backend crash
-        (Marti Raudsepp)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Make logging of autovacuum I/O activity more verbose (Greg
-        Smith, Noah Misch)
-       </para>
-
-       <para>
-        This logging is triggered by <link
-        linkend="guc-log-autovacuum-min-duration"><varname>log_autovacuum_min_duration</></link>.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Make <acronym>WAL</acronym> replay report failures sooner
-        (Fujii Masao)
-       </para>
-
-       <para>
-        There were some cases where failures were only reported once the
-        server went into master mode.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add <link
-        linkend="functions-admin-backup"><function>pg_xlog_location_diff()</></link>
-        to simplify WAL location comparisons (Euler Taveira de Oliveira)
-       </para>
-
-       <para>
-        This is useful for computing replication lag.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Support configurable event log application names on Windows
-        (MauMau, Magnus Hagander)
-       </para>
-
-       <para>
-        This allows different instances to use the event log
-        with different identifiers, by setting the <link
-        linkend="guc-event-source"><varname>event_source</></link>
-        server parameter, which is similar to how <link
-        linkend="guc-syslog-ident"><varname>syslog_ident</></link> works.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Change <quote>unexpected EOF</> messages to <literal>DEBUG1</> level,
-        except when there is an open transaction (Magnus Hagander)
-       </para>
-
-       <para>
-        This change reduces log chatter caused by applications that close
-        database connections ungracefully.
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-    <sect4>
-     <title>Statistical Views</title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Track temporary file sizes and file counts in the <link
-        linkend="pg-stat-database-view"><structname>pg_stat_database</></link>
-        system view (Tomas Vondra)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add a deadlock counter to the <structname>pg_stat_database</>
-        system view (Magnus Hagander)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add a server parameter <link
-        linkend="guc-track-io-timing"><varname>track_io_timing</></link>
-        to track I/O timings (Ants Aasma, Robert Haas)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Report checkpoint timing information in <link
-        linkend="pg-stat-bgwriter-view"><structname>pg_stat_bgwriter</></link>
-        (Greg Smith, Peter Geoghegan)
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-    <sect4>
-     <title>Server Settings</title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Silently ignore nonexistent schemas specified in <link
-        linkend="guc-search-path"><varname>search_path</></link> (Tom Lane)
-       </para>
-
-       <para>
-        This makes it more convenient to use generic path settings, which
-        might include some schemas that don't exist in all databases.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Allow superusers to set <link
-        linkend="guc-deadlock-timeout"><varname>deadlock_timeout</></link>
-        per-session, not just per-cluster (Noah Misch)
-       </para>
-
-       <para>
-        This allows <varname>deadlock_timeout</> to be reduced for
-        transactions that are likely to be involved in a deadlock, thus
-        detecting the failure more quickly.  Alternatively, increasing the
-        value can be used to reduce the chances of a session being chosen for
-        cancellation due to a deadlock.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add a server parameter <link
-        linkend="guc-temp-file-limit"><varname>temp_file_limit</></link>
-        to constrain temporary file space usage per session (Mark Kirkwood)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Allow a superuser to <command>SET</command> an extension's
-        superuser-only custom variable before loading the associated
-        extension (Tom Lane)
-       </para>
-
-       <para>
-        The system now remembers whether a <command>SET</command> was
-        performed by a superuser, so that proper privilege checking can be
-        done when the extension is loaded.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add <link linkend="app-postmaster">postmaster</link> <option>-C</>
-        option to query configuration parameters (Bruce Momjian)
-       </para>
-
-       <para>
-        This allows <application>pg_ctl</> to better handle cases where
-        <envar>PGDATA</> or <option>-D</> points to a configuration-only
-        directory.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Replace an empty locale name with the implied value in
-        <command>CREATE DATABASE</>
-        (Tom Lane)
-       </para>
-
-       <para>
-        This prevents cases where
-        <structname>pg_database</>.<structfield>datcollate</> or
-        <structfield>datctype</> could be interpreted differently after a
-        server restart.
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-     <sect5>
-      <title><filename>postgresql.conf</filename></title>
-
-      <itemizedlist>
-
-      <listitem>
-       <para>
-        Allow multiple errors in <filename>postgresql.conf</filename>
-        to be reported, rather than just the first one (Alexey Klyukin,
-        Tom Lane)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Allow a reload of <filename>postgresql.conf</filename> to be
-        processed by all sessions, even if there are some settings that
-        are invalid for particular sessions (Alexey Klyukin)
-       </para>
-
-       <para>
-        Previously, such not-valid-within-session values would cause all
-        setting changes to be ignored by that session.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add an <literal>include_if_exists</> facility for configuration
-        files (Greg Smith)
-       </para>
-
-       <para>
-        This works the same as <literal>include</>, except that an error
-        is not thrown if the file is missing.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Identify the server time zone during <application>initdb</>, and set
-        <filename>postgresql.conf</filename> entries
-        <link linkend="guc-timezone"><varname>timezone</></link> and
-        <link linkend="guc-log-timezone"><varname>log_timezone</></link>
-        accordingly (Tom Lane)
-       </para>
-
-       <para>
-        This avoids expensive time zone probes during server start.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Fix <link
-        linkend="view-pg-settings"><structname>pg_settings</></link> to
-        report <filename>postgresql.conf</filename> line numbers on Windows
-        (Tom Lane)
-       </para>
-      </listitem>
-
-      </itemizedlist>
-
-     </sect5>
-
-    </sect4>
-
-   </sect3>
-
-   <sect3>
-    <title>Replication and Recovery</title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Allow streaming replication slaves to forward data to other slaves
-        (<link linkend="cascading-replication"><firstterm>cascading
-        replication</></link>) (Fujii Masao)
-       </para>
-
-       <para>
-        Previously, only the master server could supply streaming
-        replication log files to standby servers.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add new <link
-        linkend="guc-synchronous-commit"><varname>synchronous_commit</></link>
-        mode <literal>remote_write</> (Fujii Masao, Simon Riggs)
-       </para>
-
-       <para>
-        This mode waits for the standby server to write transaction data to
-        its own operating system, but does not wait for the data to be
-        flushed to the standby's disk.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add a <link
-        linkend="app-pgreceivexlog"><application>pg_receivexlog</></link>
-        tool to archive WAL file changes as they are written, rather
-        than waiting for completed WAL files (Magnus Hagander)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Allow <link
-        linkend="app-pgbasebackup"><application>pg_basebackup</></link>
-        to make base backups from standby servers (Jun Ishizuka, Fujii Masao)
-       </para>
-
-       <para>
-        This feature lets the work of making new base backups be off-loaded
-        from the primary server.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Allow streaming of WAL files while <application>pg_basebackup</>
-        is performing a backup (Magnus Hagander)
-       </para>
-
-       <para>
-        This allows passing of WAL files to the standby before they are
-        discarded on the primary.
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title>Queries</title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Cancel the running query if the client gets disconnected
-        (Florian Pflug)
-       </para>
-
-       <para>
-        If the backend detects loss of client connection during a query, it
-        will now cancel the query rather than attempting to finish it.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Retain column names at run time for row expressions
-        (Andrew Dunstan, Tom Lane)
-       </para>
-
-       <para>
-        This change allows better results when a row value is converted to
-        <type>hstore</> or <type>json</> type: the fields of the resulting
-        value will now have the expected names.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Improve column labels used for sub-<command>SELECT</> results
-        (Marti Raudsepp)
-       </para>
-
-       <para>
-        Previously, the generic label <literal>?column?</> was used.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Improve heuristics for determining the types of unknown values
-        (Tom Lane)
-       </para>
-
-       <para>
-        The longstanding rule that an unknown constant might have the
-        same type as the value on the other side of the operator using it
-        is now applied when considering polymorphic operators, not only
-        for simple operator matches.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Warn about creating casts to or from domain types (Robert Haas)
-       </para>
-
-       <para>
-        Such casts have no effect.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        When a row fails a <literal>CHECK</> or <literal>NOT NULL</>
-        constraint, show the row's contents as error detail (Jan
-        Kundr&aacute;t)
-       </para>
-
-       <para>
-        This should make it easier to identify which row is problematic
-        when an insert or update is processing many rows.
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title>Object Manipulation</title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Provide more reliable operation during concurrent
-        <acronym>DDL</acronym> (Robert Haas, Noah Misch)
-       </para>
-
-       <para>
-        This change adds locking that should eliminate <quote>cache lookup
-        failed</> errors in many scenarios.  Also, it is no longer possible
-        to add relations to a schema that is being concurrently dropped, a
-        scenario that formerly led to inconsistent system catalog contents.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add <literal>CONCURRENTLY</> option to <link
-        linkend="SQL-DROPINDEX"><command>DROP INDEX</command></link>
-        (Simon Riggs)
-       </para>
-
-       <para>
-        This allows index removal without blocking other sessions.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Allow foreign data wrappers to have per-column options (Shigeru Hanada)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Improve pretty-printing of view definitions (Andrew Dunstan)
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    <sect4>
-     <title>Constraints</title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Allow <link linkend="ddl-constraints"><literal>CHECK</></link>
-        constraints to be declared <literal>NOT VALID</> (&Aacute;lvaro
-        Herrera)
-       </para>
-
-       <para>
-        Adding a <literal>NOT VALID</> constraint does not cause the table to
-        be scanned to verify that existing rows meet the constraint.
-        Subsequently, newly added or updated rows are checked.
-        Such constraints are ignored by the planner when considering
-        <varname>constraint_exclusion</>, since it is not certain that all
-        rows meet the constraint.
-       </para>
-
-       <para>
-        The new <command>ALTER TABLE VALIDATE</> command allows <literal>NOT
-        VALID</> constraints to be checked for existing rows, after which
-        they are converted into ordinary constraints.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Allow <literal>CHECK</> constraints to be declared <literal>NO
-        INHERIT</> (Nikhil Sontakke, Alex Hunsaker, &Aacute;lvaro Herrera)
-       </para>
-
-       <para>
-        This makes them enforceable only on the parent table, not on
-        child tables.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add the ability to <link linkend="SQL-ALTERTABLE">rename</link>
-        constraints (Peter Eisentraut)
-       </para>
-      </listitem>
-     </itemizedlist>
-
-    </sect4>
-
-    <sect4>
-     <title><command>ALTER</></title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Reduce need to rebuild tables and indexes for certain <link
-        linkend="SQL-ALTERTABLE"><command>ALTER TABLE</command></link>
-        ... <literal>ALTER COLUMN TYPE</> operations (Noah Misch)
-       </para>
-
-       <para>
-        Increasing the length limit for a <type>varchar</> or <type>varbit</>
-        column, or removing the limit altogether, no longer requires a table
-        rewrite.  Similarly, increasing the allowable precision of a
-        <type>numeric</> column, or changing a column from constrained
-        <type>numeric</> to unconstrained <type>numeric</>, no longer
-        requires a table rewrite.  Table rewrites are also avoided in similar
-        cases involving the <type>interval</>, <type>timestamp</>, and
-        <type>timestamptz</> types.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Avoid having <link linkend="SQL-ALTERTABLE"><command>ALTER
-        TABLE</command></link> revalidate foreign key constraints in some
-        cases where it is not necessary (Noah Misch)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add <literal>IF EXISTS</> options to some <command>ALTER</command>
-        commands (Pavel Stehule)
-       </para>
-
-       <para>
-        For example, <command>ALTER FOREIGN TABLE IF EXISTS foo RENAME
-        TO bar</command>.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add <link linkend="SQL-ALTERFOREIGNDATAWRAPPER"><command>ALTER
-        FOREIGN DATA WRAPPER</command></link> ... <literal>RENAME</>
-        and <link linkend="SQL-ALTERSERVER"><command>ALTER
-        SERVER</command></link> ... <literal>RENAME</> (Peter Eisentraut)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add <link linkend="SQL-ALTERDOMAIN"><command>ALTER
-        DOMAIN</command></link> ... <literal>RENAME</> (Peter Eisentraut)
-       </para>
-
-       <para>
-        You could already rename domains using <command>ALTER
-        TYPE</command>.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Throw an error for <command>ALTER DOMAIN</command> ... <literal>DROP
-        CONSTRAINT</> on a nonexistent constraint (Peter Eisentraut)
-       </para>
-
-       <para>
-        An <literal>IF EXISTS</> option has been added to provide the
-        previous behavior.
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-    <sect4>
-     <title><link linkend="SQL-CREATETABLE"><command>CREATE TABLE</></link></title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Allow <command>CREATE TABLE (LIKE ...)</command> from foreign
-        tables, views, and composite types (Peter Eisentraut)
-       </para>
-
-       <para>
-        For example, this allows a table to be created whose schema matches a
-        view.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Fix <command>CREATE TABLE (LIKE ...)</command> to avoid index name
-        conflicts when copying index comments (Tom Lane)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Fix <command>CREATE TABLE</command> ... <literal>AS EXECUTE</>
-        to handle <literal>WITH NO DATA</> and column name specifications
-        (Tom Lane)
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-    <sect4>
-     <title>Object Permissions</title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Add a <link
-        linkend="SQL-CREATEVIEW"><literal>security_barrier</></link>
-        option for views (KaiGai Kohei, Robert Haas)
-       </para>
-
-       <para>
-        This option prevents optimizations that might allow view-protected
-        data to be exposed to users, for example pushing a clause involving
-        an insecure function into the <literal>WHERE</> clause of the view.
-        Such views can be expected to perform more poorly than ordinary
-        views.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add a new <link
-        linkend="SQL-CREATEFUNCTION"><literal>LEAKPROOF</></link> function
-        attribute to mark functions that can safely be pushed down
-        into <literal>security_barrier</> views (KaiGai Kohei)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add support for privileges on data types (Peter Eisentraut)
-       </para>
-
-       <para>
-        This adds support for the <acronym>SQL</>-conforming
-        <literal>USAGE</> privilege on types and domains.  The intent is
-        to be able to restrict which users can create dependencies on types,
-        since such dependencies limit the owner's ability to alter the type.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Check for <command>INSERT</command> privileges in <command>SELECT
-        INTO</command> / <command>CREATE TABLE AS</command> (KaiGai Kohei)
-       </para>
-
-       <para>
-        Because the object is being created by <command>SELECT INTO</command>
-        or <command>CREATE TABLE AS</command>, the creator would ordinarily
-        have insert permissions; but there are corner cases where this is not
-        true, such as when <literal>ALTER DEFAULT PRIVILEGES</> has removed
-        such permissions.
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-   </sect3>
-
-   <sect3>
-    <title>Utility Operations</title>
-
-    <itemizedlist>
-
-      <listitem>
-       <para>
-        Allow <link linkend="SQL-VACUUM"><command>VACUUM</></link> to more
-        easily skip pages that cannot be locked (Simon Riggs, Robert Haas)
-       </para>
-
-       <para>
-        This change should greatly reduce the incidence of <command>VACUUM</>
-        getting <quote>stuck</> waiting for other sessions.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Make <link linkend="SQL-EXPLAIN"><command>EXPLAIN</></link>
-        <literal>(BUFFERS)</> count blocks dirtied and written (Robert Haas)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Make <command>EXPLAIN ANALYZE</command> report the number of rows
-        rejected by filter steps (Marko Tiikkaja)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Allow <command>EXPLAIN ANALYZE</command> to avoid timing overhead when
-        time values are not wanted (Tomas Vondra)
-       </para>
-
-       <para>
-        This is accomplished by setting the new <literal>TIMING</> option to
-        <literal>FALSE</>.
-       </para>
-      </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title>Data Types</title>
-
-    <itemizedlist>
-
-      <listitem>
-       <para>
-        Add support for <link linkend="rangetypes">range data types</link>
-        (Jeff Davis, Tom Lane, Alexander Korotkov)
-       </para>
-
-       <para>
-        A range data type stores a lower and upper bound belonging to its
-        base data type.  It supports operations like contains, overlaps, and
-        intersection.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add a <link linkend="datatype-json"><type>JSON</type></link>
-        data type (Robert Haas)
-       </para>
-
-       <para>
-        This type stores <acronym>JSON</acronym> (JavaScript Object Notation)
-        data with proper validation.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add <link
-        linkend="functions-json"><function>array_to_json()</></link>
-        and <function>row_to_json()</> (Andrew Dunstan)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add a <link linkend="datatype-serial"><type>SMALLSERIAL</></link>
-        data type (Mike Pultz)
-       </para>
-
-       <para>
-        This is like <type>SERIAL</>, except it stores the sequence in
-        a two-byte integer column (<type>int2</>).
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Allow <link linkend="SQL-CREATEDOMAIN">domains</link> to be
-        declared <literal>NOT VALID</> (&Aacute;lvaro Herrera)
-       </para>
-
-       <para>
-        This option can be set at domain creation time, or via <command>ALTER
-        DOMAIN</command> ... <literal>ADD CONSTRAINT</> ... <literal>NOT
-        VALID</>. <command>ALTER DOMAIN</command> ... <literal>VALIDATE
-        CONSTRAINT</> fully validates the constraint.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Support more locale-specific formatting options for the <link
-        linkend="datatype-money"><type>money</></link> data type (Tom Lane)
-       </para>
-
-       <para>
-        Specifically, honor all the POSIX options for ordering of the value,
-        sign, and currency symbol in monetary output.  Also, make sure that
-        the thousands separator is only inserted to the left of the decimal
-        point, as required by POSIX.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add bitwise <quote>and</>, <quote>or</>, and <quote>not</>
-        operators for the <type>macaddr</> data type (Brendan Jurd)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Allow <link
-        linkend="functions-xml-processing"><function>xpath()</></link> to
-        return a single-element <acronym>XML</acronym> array when supplied a
-        scalar value (Florian Pflug)
-       </para>
-
-       <para>
-        Previously, it returned an empty array.  This change will also
-        cause <function>xpath_exists()</> to return true, not false,
-        for such expressions.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Improve <acronym>XML</acronym> error handling to be more robust
-        (Florian Pflug)
-       </para>
-      </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title>Functions</title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Allow non-superusers to use <link
-        linkend="functions-admin-signal"><function>pg_cancel_backend()</></link>
-        and <link
-        linkend="functions-admin-signal"><function>pg_terminate_backend()</></link>
-        on other sessions belonging to the same user
-        (Magnus Hagander, Josh Kupershmidt, Dan Farina)
-       </para>
-
-       <para>
-        Previously only superusers were allowed to use these functions.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Allow importing and exporting of transaction snapshots (Joachim
-        Wieland, Tom Lane)
-       </para>
-
-       <para>
-        This allows multiple transactions to share identical views of the
-        database state.
-        Snapshots are exported via <link
-        linkend="functions-snapshot-synchronization"><function>pg_export_snapshot()</></link>
-        and imported via <link linkend="SQL-SET-TRANSACTION"><command>SET
-        TRANSACTION SNAPSHOT</command></link>.  Only snapshots from
-        currently-running transactions can be imported.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Support <link
-        linkend="functions-info-catalog-table"><literal>COLLATION
-        FOR</></link> on expressions (Peter Eisentraut)
-       </para>
-
-       <para>
-        This returns a string representing the collation of the expression.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add <link
-        linkend="functions-info-schema-table"><function>pg_opfamily_is_visible()</></link>
-        (Josh Kupershmidt)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add a <type>numeric</> variant of <link
-        linkend="functions-admin-dbsize"><function>pg_size_pretty()</></link>
-        for use with <function>pg_xlog_location_diff()</> (Fujii Masao)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add a <link
-        linkend="functions-info-session-table"><function>pg_trigger_depth()</></link>
-        function (Kevin Grittner)
-       </para>
-
-       <para>
-        This reports the current trigger call depth.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Allow <link
-        linkend="functions-aggregate-table"><function>string_agg()</></link>
-        to process <type>bytea</> values (Pavel Stehule)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Fix regular expressions in which a back-reference occurs within
-        a larger quantified subexpression (Tom Lane)
-       </para>
-
-       <para>
-        For example, <literal>^(\w+)( \1)+$</>.  Previous releases did not
-        check that the back-reference actually matched the first occurrence.
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title><link linkend="information-schema">Information Schema</link></title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Add information schema views
-        <structname>role_udt_grants</>, <structname>udt_privileges</>,
-        and <structname>user_defined_types</> (Peter Eisentraut)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add composite-type attributes to the
-        information schema <structname>element_types</> view
-        (Peter Eisentraut)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Implement <structfield>interval_type</> columns in the information
-        schema (Peter Eisentraut)
-       </para>
-
-       <para>
-        Formerly these columns read as nulls.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Implement collation-related columns in the information schema
-        <structname>attributes</>, <structname>columns</>,
-        <structname>domains</>, and <structname>element_types</>
-        views (Peter Eisentraut)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Implement the <structfield>with_hierarchy</> column in the
-        information schema <structname>table_privileges</> view (Peter
-        Eisentraut)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add display of sequence <literal>USAGE</> privileges to information
-        schema (Peter Eisentraut)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Make the information schema show default privileges (Peter
-        Eisentraut)
-       </para>
-
-       <para>
-        Previously, non-empty default permissions were not represented in the
-        views.
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title>Server-Side Languages</title>
-
-    <sect4>
-     <title><link linkend="plpgsql">PL/pgSQL</link> Server-Side Language</title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Allow the PL/pgSQL <command>OPEN</> cursor command to supply
-        parameters by name (Yeb Havinga)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add a <command>GET STACKED DIAGNOSTICS</command> PL/pgSQL command
-        to retrieve exception info (Pavel Stehule)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Speed up PL/pgSQL array assignment by caching type information
-        (Pavel Stehule)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Improve performance and memory consumption for long chains of
-        <literal>ELSIF</> clauses (Tom Lane)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Output the function signature, not just the name, in PL/pgSQL
-        error messages (Pavel Stehule)
-       </para>
-      </listitem>
-
-    </itemizedlist>
-
-    </sect4>
-
-    <sect4>
-     <title><link linkend="plpython">PL/Python</link> Server-Side Language</title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Add PL/Python <acronym>SPI</acronym> cursor support (Jan
-        Urbanski)
-       </para>
-
-       <para>
-        This allows PL/Python to read partial result sets.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add result metadata functions to PL/Python (Peter Eisentraut)
-       </para>
-
-       <para>
-        Specifically, this adds result object functions
-        <literal>.colnames</literal>, <literal>.coltypes</literal>, and
-        <literal>.coltypmods</literal>.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Remove support for Python 2.2 (Peter Eisentraut)
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-    <sect4>
-     <title><link linkend="xfunc-sql">SQL</link> Server-Side Language</title>
-
-     <itemizedlist>
-      <listitem>
-       <para>
-        Allow <acronym>SQL</acronym>-language functions to reference
-        parameters by name (Matthew Draper)
-       </para>
-
-       <para>
-        To use this, simply name the function arguments and then reference
-        the argument names in the <acronym>SQL</acronym> function body.
-       </para>
-      </listitem>
-
-     </itemizedlist>
-    </sect4>
-
-   </sect3>
-
-   <sect3>
-    <title>Client Applications</title>
-
-    <itemizedlist>
-
-      <listitem>
-       <para>
-        Add <link linkend="APP-INITDB"><application>initdb</></link>
-        options <option>--auth-local</> and <option>--auth-host</>
-        (Peter Eisentraut)
-       </para>
-
-       <para>
-        This allows separate control of <literal>local</> and
-        <literal>host</> <filename>pg_hba.conf</filename> authentication
-        settings.  <option>--auth</> still controls both.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add <option>--replication</>/<option>--no-replication</> flags to
-        <link linkend="APP-CREATEUSER"><application>createuser</></link>
-        to control replication permission (Fujii Masao)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add the <option>--if-exists</> option to <link
-        linkend="APP-DROPDB"><application>dropdb</></link> and <link
-        linkend="APP-DROPUSER"><application>dropuser</></link> (Josh
-        Kupershmidt)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Give command-line tools the ability to specify the name of the
-        database to connect to, and fall back to <literal>template1</>
-        if a <literal>postgres</> database connection fails (Robert Haas)
-       </para>
-      </listitem>
-
-    </itemizedlist>
-
-    <sect4>
-     <title><link linkend="APP-PSQL"><application>psql</></link></title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Add a display mode to auto-expand output based on the
-        display width (Peter Eisentraut)
-       </para>
-
-       <para>
-        This adds the <literal>auto</> option to the <command>\x</>
-        command, which switches to the expanded mode when the normal
-        output would be wider than the screen.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Allow inclusion of a script file that is named relative to the
-        directory of the file from which it was invoked (Gurjeet Singh)
-       </para>
-
-       <para>
-        This is done with a new command <command>\ir</>.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add support for non-<acronym>ASCII</acronym> characters in
-        <application>psql</> variable names (Tom Lane)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add support for major-version-specific <filename>.psqlrc</> files
-        (Bruce Momjian)
-       </para>
-
-       <para>
-        <application>psql</> already supported minor-version-specific
-        <filename>.psqlrc</> files.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Provide environment variable overrides for <application>psql</>
-        history and startup file locations (Andrew Dunstan)
-       </para>
-
-       <para>
-        <envar>PSQL_HISTORY</envar> and <envar>PSQLRC</envar> now
-        determine these file names if set.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add a <command>\setenv</> command to modify
-        the environment variables passed to child processes (Andrew Dunstan)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Name <application>psql</>'s temporary editor files with a
-        <filename>.sql</> extension (Peter Eisentraut)
-       </para>
-
-       <para>
-        This allows extension-sensitive editors to select the right mode.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Allow <application>psql</> to use zero-byte field and record
-        separators (Peter Eisentraut)
-       </para>
-
-       <para>
-        Various shell tools use zero-byte (NUL) separators,
-        e.g. <application>find</>.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Make the <command>\timing</> option report times for
-        failed queries (Magnus Hagander)
-       </para>
-
-       <para>
-        Previously times were reported only for successful queries.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Unify and tighten <application>psql</>'s treatment of <command>\copy</>
-        and SQL <command>COPY</> (Noah Misch)
-       </para>
-
-       <para>
-        This fix makes failure behavior more predictable and honors
-        <command>\set ON_ERROR_ROLLBACK</>.
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-    <sect4>
-     <title>Informational Commands</title>
-
-     <itemizedlist>
-      <listitem>
-       <para>
-        Make <command>\d</> on a sequence show the
-        table/column name owning it (Magnus Hagander)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Show statistics target for columns in <command>\d+</> (Magnus
-        Hagander)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Show role password expiration dates in <command>\du</>
-        (Fabr&iacute;zio de Royes Mello)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Display comments for casts, conversions, domains, and languages
-        (Josh Kupershmidt)
-       </para>
-
-       <para>
-        These are included in the output of <command>\dC+</>,
-        <command>\dc+</>, <command>\dD+</>, and <command>\dL</> respectively.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Display comments for <acronym>SQL</acronym>/<acronym>MED</acronym>
-        objects (Josh Kupershmidt)
-       </para>
-
-       <para>
-        These are included in the output of <command>\des+</>,
-        <command>\det+</>, and <command>\dew+</> for foreign servers, foreign
-        tables, and foreign data wrappers respectively.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Change <command>\dd</> to display comments only for object types
-        without their own backslash command (Josh Kupershmidt)
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-    <sect4>
-     <title>Tab Completion</title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        In <application>psql</> tab completion, complete <acronym>SQL</>
-        keywords in either upper or lower case according to the new <link
-        linkend="APP-PSQL-variables"><literal>COMP_KEYWORD_CASE</></link>
-        setting (Peter Eisentraut)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add tab completion support for
-        <command>EXECUTE</command> (Andreas Karlsson)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Allow tab completion of role references in
-        <command>GRANT</command>/<command>REVOKE</command> (Peter
-        Eisentraut)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Allow tab completion of file names to supply quotes, when necessary
-        (Noah Misch)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Change tab completion support for
-        <command>TABLE</command> to also include views (Magnus Hagander)
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-    <sect4>
-     <title><link linkend="APP-PGDUMP"><application>pg_dump</></link></title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Add an <option>--exclude-table-data</> option to
-        <application>pg_dump</> (Andrew Dunstan)
-       </para>
-
-       <para>
-        This allows dumping of a table's definition but not its data,
-        on a per-table basis.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add a <option>--section</> option to <application>pg_dump</>
-        and <application>pg_restore</> (Andrew Dunstan)
-       </para>
-
-       <para>
-        Valid values are <literal>pre-data</>, <literal>data</>,
-        and <literal>post-data</>. The option can be
-        given more than once to select two or more sections.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Make <link
-        linkend="APP-PG-DUMPALL"><application>pg_dumpall</></link> dump all
-        roles first, then all configuration settings on roles (Phil Sorber)
-       </para>
-
-       <para>
-        This allows a role's configuration settings to mention other
-        roles without generating an error.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Allow <application>pg_dumpall</> to avoid errors if the
-        <literal>postgres</> database is missing in the new cluster
-        (Robert Haas)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Dump foreign server user mappings in user name order (Peter
-        Eisentraut)
-       </para>
-
-       <para>
-        This helps produce deterministic dump files.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Dump operators in a predictable order (Peter Eisentraut)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Tighten rules for when extension configuration tables are dumped
-        by <application>pg_dump</> (Tom Lane)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Make <application>pg_dump</> emit more useful dependency
-        information (Tom Lane)
-       </para>
-
-       <para>
-        The dependency links included in archive-format dumps were formerly
-        of very limited use, because they frequently referenced objects that
-        appeared nowhere in the dump.  Now they represent actual dependencies
-        (possibly indirect) among the dumped objects.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Improve <application>pg_dump</>'s performance when dumping many
-        database objects (Tom Lane)
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-   </sect3>
-
-    <sect3>
-     <title><link linkend="libpq"><application>libpq</></link></title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Allow <application>libpq</> connection strings to have the format of a
-        <link linkend="libpq-connstring"><acronym>URI</acronym></link>
-        (Alexander Shulgin)
-       </para>
-
-       <para>
-        The syntax begins with <literal>postgres://</>.  This can allow
-        applications to avoid implementing their own parser for URIs
-        representing database connections.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add a <link linkend="libpq-connect-sslcompression">connection
-        option</link> to disable <acronym>SSL</acronym> compression
-        (Laurenz Albe)
-       </para>
-
-       <para>
-        This can be used to remove the overhead of <acronym>SSL</acronym>
-        compression on fast networks.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add a <link linkend="libpq-single-row-mode">single-row processing
-        mode</link> for better handling of large result sets
-        (Kyotaro Horiguchi, Marko Kreen)
-       </para>
-
-       <para>
-        Previously, <application>libpq</> always collected the entire query
-        result in memory before passing it back to the application.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add <literal>const</> qualifiers to the declarations of the functions
-        <function>PQconnectdbParams</>, <function>PQconnectStartParams</>,
-        and <function>PQpingParams</> (Lionel Elie Mamane)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Allow the <filename>.pgpass</> file to include escaped characters
-        in the password field (Robert Haas)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Make library functions use <function>abort()</> instead of
-        <function>exit()</> when it is necessary to terminate the process
-        (Peter Eisentraut)
-       </para>
-
-       <para>
-        This choice does not interfere with the normal exit codes used by the
-        program, and generates a signal that can be caught by the caller.
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title>Source Code</title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Remove dead ports (Peter Eisentraut)
-       </para>
-
-       <para>
-        The following platforms are no longer supported: dgux,
-        nextstep, sunos4, svr4, ultrix4, univel, bsdi.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add support for building with <link linkend="install-windows">MS
-        Visual Studio 2010</link> (Brar Piening)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Enable compiling with the MinGW-w64 32-bit compiler (Lars Kanis)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Install <filename>plpgsql.h</> into <filename>include/server</> during installation
-        (Heikki Linnakangas)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Improve the latch facility to include detection of postmaster death
-        (Peter Geoghegan, Heikki Linnakangas, Tom Lane)
-       </para>
-
-       <para>
-        This eliminates one of the main reasons that background processes
-        formerly had to wake up to poll for events.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Use C flexible array members, where supported (Peter Eisentraut)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Improve the concurrent transaction regression tests
-        (<application>isolationtester</>) (Noah Misch)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Modify <application>thread_test</> to create its test files in
-        the current directory, rather than <filename>/tmp</> (Bruce Momjian)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Improve flex and bison warning and error reporting (Tom Lane)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add memory barrier support (Robert Haas)
-       </para>
-
-       <para>
-        This is currently unused.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Modify pgindent to use a typedef file (Bruce Momjian)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add a hook for processing messages due to be sent to the server
-        log (Martin Pihlak)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add object access hooks for <command>DROP</command> commands
-        (KaiGai Kohei)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Centralize <command>DROP</command> handling for some object types
-        (KaiGai Kohei)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add a <application>pg_upgrade</> test suite (Peter Eisentraut)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Sync regular expression code with <acronym>TCL</acronym> 8.5.11
-        and improve internal processing (Tom Lane)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Move <acronym>CRC</acronym> tables to libpgport, and provide them
-        in a separate include file (Daniel Farina)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add options to <application>git_changelog</> for use in major
-        release note creation (Bruce Momjian)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Support Linux's <filename>/proc/self/oom_score_adj</> API (Tom Lane)
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title>Additional Modules</title>
-
-    <itemizedlist>
-
-      <listitem>
-       <para>
-        Improve efficiency of <link linkend="dblink">dblink</link> by using
-        libpq's new single-row processing mode (Kyotaro Horiguchi, Marko
-        Kreen)
-       </para>
-
-       <para>
-        This improvement does not apply to
-        <function>dblink_send_query()</>/<function>dblink_get_result()</>.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Support <literal>force_not_null</> option in <link
-        linkend="file-fdw">file_fdw</link> (Shigeru Hanada)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Implement dry-run mode for <link
-        linkend="pgarchivecleanup"><application>pg_archivecleanup</></link>
-        (Gabriele Bartolini)
-       </para>
-
-       <para>
-        This only outputs the names of files to be deleted.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add new <link linkend="pgbench">pgbench</link> switches
-        <option>--unlogged-tables</>, <option>--tablespace</>, and
-        <option>--index-tablespace</> (Robert Haas)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Change <link
-        linkend="pgtestfsync"><application>pg_test_fsync</></link> to test
-        for a fixed amount of time, rather than a fixed number of cycles
-        (Bruce Momjian)
-       </para>
-
-       <para>
-        The <option>-o</>/cycles option was removed, and
-        <option>-s</>/seconds added.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add a <link
-        linkend="pgtesttiming"><application>pg_test_timing</></link>
-        utility to measure clock monotonicity and timing overhead (Ants
-        Aasma, Greg Smith)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add a <link linkend="tcn">tcn</link> (triggered change notification)
-        module to generate <command>NOTIFY</command> events on table changes
-        (Kevin Grittner)
-       </para>
-      </listitem>
-
-    </itemizedlist>
-
-    <sect4>
-     <title><link linkend="pgupgrade"><application>pg_upgrade</></link></title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Adjust <application>pg_upgrade</> environment variables (Bruce
-        Momjian)
-       </para>
-
-       <para>
-        Rename data, bin, and port environment
-        variables to begin with <literal>PG</>, and support
-        <envar>PGPORTOLD</envar>/<envar>PGPORTNEW</envar>, to replace
-        <envar>PGPORT</envar>.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Overhaul <application>pg_upgrade</> logging and failure reporting
-        (Bruce Momjian)
-       </para>
-
-       <para>
-        Create four append-only log files, and delete them on success.
-        Add <option>-r</>/<option>--retain</> option to unconditionally
-        retain these files.  Also remove <application>pg_upgrade</> options
-        <option>-g</>/<option>-G</>/<option>-l</> options as unnecessary,
-        and tighten log file permissions.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Make <application>pg_upgrade</> create a script to incrementally
-        generate more accurate optimizer statistics (Bruce Momjian)
-       </para>
-
-       <para>
-        This reduces the time needed to generate minimal cluster statistics
-        after an upgrade.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Allow <application>pg_upgrade</> to upgrade an old cluster that
-        does not have a <literal>postgres</> database (Bruce Momjian)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Allow <application>pg_upgrade</> to handle cases where some
-        old or new databases are missing, as long as they are empty
-        (Bruce Momjian)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Allow <application>pg_upgrade</> to handle configuration-only
-        directory installations (Bruce Momjian)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        In <application>pg_upgrade</>, add <option>-o</>/<option>-O</>
-        options to pass parameters to the servers (Bruce Momjian)
-       </para>
-
-       <para>
-        This is useful for configuration-only directory installs.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Change <application>pg_upgrade</> to use port 50432 by default
-        (Bruce Momjian)
-       </para>
-
-       <para>
-        This helps avoid unintended client connections during the upgrade.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Reduce cluster locking in <application>pg_upgrade</> (Bruce
-        Momjian)
-       </para>
-
-       <para>
-        Specifically, only lock the old cluster if link mode is used,
-        and do it right after the schema is restored.
-       </para>
-      </listitem>
-
-    </itemizedlist>
-
-    </sect4>
-
-    <sect4>
-     <title><link linkend="pgstatstatements"><application>pg_stat_statements</></link></title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Allow <application>pg_stat_statements</> to aggregate similar
-        queries via SQL text normalization (Peter Geoghegan, Tom Lane)
-       </para>
-
-       <para>
-        Users with applications that use non-parameterized SQL will now
-        be able to monitor query performance without detailed log analysis.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add dirtied and written block counts and read/write times to
-        <application>pg_stat_statements</> (Robert Haas, Ants Aasma)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Prevent <application>pg_stat_statements</> from double-counting
-        <command>PREPARE</command> and <command>EXECUTE</command> commands
-        (Tom Lane)
-       </para>
-      </listitem>
-
-    </itemizedlist>
-
-    </sect4>
-
-    <sect4>
-     <title><link linkend="sepgsql">sepgsql</link></title>
-
-     <itemizedlist>
-      <listitem>
-       <para>
-        Support <literal>SECURITY LABEL</> on global objects (KaiGai
-        Kohei, Robert Haas)
-       </para>
-
-       <para>
-        Specifically, add security labels to databases,
-        tablespaces, and roles.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Allow sepgsql to honor database labels (KaiGai Kohei)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Perform sepgsql permission checks during the creation of various
-        objects (KaiGai Kohei)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add <function>sepgsql_setcon()</> and related functions to control
-        the sepgsql security domain (KaiGai Kohei)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add a user space access cache to sepgsql to improve performance
-        (KaiGai Kohei)
-       </para>
-      </listitem>
-
-     </itemizedlist>
-    </sect4>
-
-   </sect3>
-
-   <sect3>
-    <title>Documentation</title>
-
-    <itemizedlist>
-
-      <listitem>
-       <para>
-        Add a rule to optionally build HTML documentation using the
-        stylesheet from the website (Magnus Hagander)
-       </para>
-
-       <para>
-        Use <command>gmake STYLE=website draft</>.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Improve <command>EXPLAIN</command> documentation (Tom Lane)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Document that user/database names are preserved with double-quoting
-        by command-line tools like <application>vacuumdb</>  (Bruce
-        Momjian)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Document the actual string returned by the client for MD5
-        authentication (Cyan Ogilvie)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Deprecate use of <literal>GLOBAL</> and <literal>LOCAL</> in
-        <command>CREATE TEMP TABLE</> (Noah Misch)
-       </para>
-
-       <para>
-        <productname>PostgreSQL</> has long treated these keyword as no-ops,
-        and continues to do so; but in future they might mean what the SQL
-        standard says they mean, so applications should avoid using them.
-       </para>
-      </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-  </sect2>
- </sect1>
diff --git a/doc/src/sgml/release-9.3.sgml b/doc/src/sgml/release-9.3.sgml
deleted file mode 100644
index 1b770447dad135b4e40c6fa1180fb1c9b528cd03..0000000000000000000000000000000000000000
--- a/doc/src/sgml/release-9.3.sgml
+++ /dev/null
@@ -1,14551 +0,0 @@
-<!-- doc/src/sgml/release-9.3.sgml -->
-<!-- See header comment in release.sgml about typical markup -->
-
- <sect1 id="release-9-3-25">
-  <title>Release 9.3.25</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2018-11-08</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 9.3.24.
-   For information about new features in the 9.3 major release, see
-   <xref linkend="release-9-3">.
-  </para>
-
-  <para>
-   This is expected to be the last <productname>PostgreSQL</productname>
-   release in the 9.3.X series.  Users are encouraged to update to a newer
-   release branch soon.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 9.3.25</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.23,
-    see <xref linkend="release-9-3-23">.
-   </para>
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Fix corner-case failures
-      in <function>has_<replaceable>foo</replaceable>_privilege()</function>
-      family of functions (Tom Lane)
-     </para>
-
-     <para>
-      Return NULL rather than throwing an error when an invalid object OID
-      is provided.  Some of these functions got that right already, but not
-      all.  <function>has_column_privilege()</function> was additionally
-      capable of crashing on some platforms.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid O(N^2) slowdown in regular expression match/split functions on
-      long strings (Andrew Gierth)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid O(N^3) slowdown in lexer for long strings
-      of <literal>+</literal> or <literal>-</literal> characters
-      (Andrew Gierth)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix mis-execution of SubPlans when the outer query is being scanned
-      backwards (Andrew Gierth)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix failure of <command>UPDATE/DELETE ... WHERE CURRENT OF ...</command>
-      after rewinding the referenced cursor (Tom Lane)
-     </para>
-
-     <para>
-      A cursor that scans multiple relations (particularly an inheritance
-      tree) could produce wrong behavior if rewound to an earlier relation.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <function>EvalPlanQual</function> to handle conditionally-executed
-      InitPlans properly (Andrew Gierth, Tom Lane)
-     </para>
-
-     <para>
-      This resulted in hard-to-reproduce crashes or wrong answers in
-      concurrent updates, if they contained code such as an uncorrelated
-      sub-<literal>SELECT</literal> inside a <literal>CASE</literal>
-      construct.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix character-class checks to not fail on Windows for Unicode
-      characters above U+FFFF (Tom Lane, Kenji Uno)
-     </para>
-
-     <para>
-      This bug affected full-text-search operations, as well
-      as <filename>contrib/ltree</filename>
-      and <filename>contrib/pg_trgm</filename>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure that sequences owned by a foreign table are processed
-      by <literal>ALTER OWNER</literal> on the table (Peter Eisentraut)
-     </para>
-
-     <para>
-      The ownership change should propagate to such sequences as well, but
-      this was missed for foreign tables.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix over-allocation of space for <function>array_out()</function>'s
-      result string (Keiichi Hirobe)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix memory leak in repeated SP-GiST index scans (Tom Lane)
-     </para>
-
-     <para>
-      This is only known to amount to anything significant in cases where
-      an exclusion constraint using SP-GiST receives many new index entries
-      in a single command.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid crash if a utility command causes infinite recursion (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      When initializing a hot standby, cope with duplicate XIDs caused by
-      two-phase transactions on the master
-      (Michael Paquier, Konstantin Knizhnik)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Randomize the <function>random()</function> seed in bootstrap and
-      standalone backends, and in <application>initdb</application>
-      (Noah Misch)
-     </para>
-
-     <para>
-      The main practical effect of this change is that it avoids a scenario
-      where <application>initdb</application> might mistakenly conclude that
-      POSIX shared memory is not available, due to name collisions caused by
-      always using the same random seed.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure that hot standby processes use the correct WAL consistency
-      point (Alexander Kukushkin, Michael Paquier)
-     </para>
-
-     <para>
-      This prevents possible misbehavior just after a standby server has
-      reached a consistent database state during WAL replay.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Don't run atexit callbacks when servicing <literal>SIGQUIT</literal>
-      (Heikki Linnakangas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Don't record foreign-server user mappings as members of extensions
-      (Tom Lane)
-     </para>
-
-     <para>
-      If <command>CREATE USER MAPPING</command> is executed in an extension
-      script, an extension dependency was created for the user mapping,
-      which is unexpected.  Roles can't be extension members, so user
-      mappings shouldn't be either.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make syslogger more robust against failures in opening CSV log files
-      (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible inconsistency in <application>pg_dump</application>'s
-      sorting of dissimilar object names (Jacob Champion)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure that <application>pg_restore</application> will schema-qualify
-      the table name when
-      emitting <literal>DISABLE</literal>/<literal>ENABLE TRIGGER</literal>
-      commands (Tom Lane)
-     </para>
-
-     <para>
-      This avoids failures due to the new policy of running restores with
-      restrictive search path.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>pg_upgrade</application> to handle event triggers in
-      extensions correctly (Haribabu Kommi)
-     </para>
-
-     <para>
-      <application>pg_upgrade</application> failed to preserve an event
-      trigger's extension-membership status.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>pg_upgrade</application>'s cluster state check to
-      work correctly on a standby server (Bruce Momjian)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Enforce type <type>cube</type>'s dimension limit in
-      all <filename>contrib/cube</filename> functions (Andrey Borodin)
-     </para>
-
-     <para>
-      Previously, some cube-related functions could construct values that
-      would be rejected by <function>cube_in()</function>, leading to
-      dump/reload failures.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <filename>contrib/unaccent</filename>'s
-      <function>unaccent()</function> function to use
-      the <literal>unaccent</literal> text search dictionary that is in the
-      same schema as the function (Tom Lane)
-     </para>
-
-     <para>
-      Previously it tried to look up the dictionary using the search path,
-      which could fail if the search path has a restrictive value.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix build problems on macOS 10.14 (Mojave) (Tom Lane)
-     </para>
-
-     <para>
-      Adjust <application>configure</application> to add
-      an <option>-isysroot</option> switch to <varname>CPPFLAGS</varname>;
-      without this, PL/Perl and PL/Tcl fail to configure or build on macOS
-      10.14.  The specific sysroot used can be overridden at configure time
-      or build time by setting the <varname>PG_SYSROOT</varname> variable in
-      the arguments of <application>configure</application>
-      or <application>make</application>.
-     </para>
-
-     <para>
-      It is now recommended that Perl-related extensions
-      write <literal>$(perl_includespec)</literal> rather
-      than <literal>-I$(perl_archlibexp)/CORE</literal> in their compiler
-      flags.  The latter continues to work on most platforms, but not recent
-      macOS.
-     </para>
-
-     <para>
-      Also, it should no longer be necessary to
-      specify <option>--with-tclconfig</option> manually to get PL/Tcl to
-      build on recent macOS releases.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix MSVC build and regression-test scripts to work on recent Perl
-      versions (Andrew Dunstan)
-     </para>
-
-     <para>
-      Perl no longer includes the current directory in its search path
-      by default; work around that.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Support building on Windows with Visual Studio 2015 or Visual Studio 2017
-      (Michael Paquier, Haribabu Kommi)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Allow btree comparison functions to return <literal>INT_MIN</literal>
-      (Tom Lane)
-     </para>
-
-     <para>
-      Up to now, we've forbidden datatype-specific comparison functions from
-      returning <literal>INT_MIN</literal>, which allows callers to invert
-      the sort order just by negating the comparison result.  However, this
-      was never safe for comparison functions that directly return the
-      result of <function>memcmp()</function>, <function>strcmp()</function>,
-      etc, as POSIX doesn't place any such restriction on those functions.
-      At least some recent versions of <function>memcmp()</function> can
-      return <literal>INT_MIN</literal>, causing incorrect sort ordering.
-      Hence, we've removed this restriction.  Callers must now use
-      the <literal>INVERT_COMPARE_RESULT()</literal> macro if they wish to
-      invert the sort order.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix recursion hazard in shared-invalidation message processing
-      (Tom Lane)
-     </para>
-
-     <para>
-      This error could, for example, result in failure to access a system
-      catalog or index that had just been processed by <command>VACUUM
-      FULL</command>.
-     </para>
-
-     <para>
-      This change adds a new result code
-      for <function>LockAcquire</function>, which might possibly affect
-      external callers of that function, though only very unusual usage
-      patterns would have an issue with it.  The API
-      of <function>LockAcquireExtended</function> is also changed.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Save and restore SPI's global variables
-      during <function>SPI_connect()</function>
-      and <function>SPI_finish()</function> (Chapman Flack, Tom Lane)
-     </para>
-
-     <para>
-      This prevents possible interference when one SPI-using function calls
-      another.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Provide <literal>ALLOCSET_DEFAULT_SIZES</literal> and sibling macros
-      in back branches (Tom Lane)
-     </para>
-
-     <para>
-      These macros have existed since 9.6, but there were requests to add
-      them to older branches to allow extensions to rely on them without
-      branch-specific coding.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid using potentially-under-aligned page buffers (Tom Lane)
-     </para>
-
-     <para>
-      Invent new union types <type>PGAlignedBlock</type>
-      and <type>PGAlignedXLogBlock</type>, and use these in place of plain
-      char arrays, ensuring that the compiler can't place the buffer at a
-      misaligned start address.  This fixes potential core dumps on
-      alignment-picky platforms, and may improve performance even on
-      platforms that allow misalignment.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <filename>src/port/snprintf.c</filename> follow the C99
-      standard's definition of <function>snprintf()</function>'s result
-      value (Tom Lane)
-     </para>
-
-     <para>
-      On platforms where this code is used (mostly Windows), its pre-C99
-      behavior could lead to failure to detect buffer overrun, if the
-      calling code assumed C99 semantics.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      When building on i386 with the <application>clang</application>
-      compiler, require <option>-msse2</option> to be used (Andres Freund)
-     </para>
-
-     <para>
-      This avoids problems with missed floating point overflow checks.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>configure</application>'s detection of the result
-      type of <function>strerror_r()</function> (Tom Lane)
-     </para>
-
-     <para>
-      The previous coding got the wrong answer when building
-      with <application>icc</application> on Linux (and perhaps in other
-      cases), leading to <application>libpq</application> not returning
-      useful error messages for system-reported errors.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</application>
-      release 2018g for DST law changes in Chile, Fiji, Morocco, and Russia
-      (Volgograd), plus historical corrections for China, Hawaii, Japan,
-      Macau, and North Korea.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-9-3-24">
-  <title>Release 9.3.24</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2018-08-09</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 9.3.23.
-   For information about new features in the 9.3 major release, see
-   <xref linkend="release-9-3">.
-  </para>
-
-  <para>
-   The <productname>PostgreSQL</productname> community will stop releasing
-   updates for the 9.3.X release series shortly after September 2018.
-   Users are encouraged to update to a newer release branch soon.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 9.3.24</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.23,
-    see <xref linkend="release-9-3-23">.
-   </para>
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Fix failure to reset <application>libpq</application>'s state fully
-      between connection attempts (Tom Lane)
-     </para>
-
-     <para>
-      An unprivileged user of <filename>dblink</filename>
-      or <filename>postgres_fdw</filename> could bypass the checks intended
-      to prevent use of server-side credentials, such as
-      a <filename>~/.pgpass</filename> file owned by the operating-system
-      user running the server.  Servers allowing peer authentication on
-      local connections are particularly vulnerable.  Other attacks such
-      as SQL injection into a <filename>postgres_fdw</filename> session
-      are also possible.
-      Attacking <filename>postgres_fdw</filename> in this way requires the
-      ability to create a foreign server object with selected connection
-      parameters, but any user with access to <filename>dblink</filename>
-      could exploit the problem.
-      In general, an attacker with the ability to select the connection
-      parameters for a <application>libpq</application>-using application
-      could cause mischief, though other plausible attack scenarios are
-      harder to think of.
-      Our thanks to Andrew Krasichkov for reporting this issue.
-      (CVE-2018-10915)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure that updates to the <structfield>relfrozenxid</structfield>
-      and <structfield>relminmxid</structfield> values
-      for <quote>nailed</quote> system catalogs are processed in a timely
-      fashion (Andres Freund)
-     </para>
-
-     <para>
-      Overoptimistic caching rules could prevent these updates from being
-      seen by other sessions, leading to spurious errors and/or data
-      corruption.  The problem was significantly worse for shared catalogs,
-      such as <structname>pg_authid</structname>, because the stale cache
-      data could persist into new sessions as well as existing ones.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix case where a freshly-promoted standby crashes before having
-      completed its first post-recovery checkpoint (Michael Paquier, Kyotaro
-      Horiguchi, Pavan Deolasee, &Aacute;lvaro Herrera)
-     </para>
-
-     <para>
-      This led to a situation where the server did not think it had reached
-      a consistent database state during subsequent WAL replay, preventing
-      restart.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid emitting a bogus WAL record when recycling an all-zero btree
-      page (Amit Kapila)
-     </para>
-
-     <para>
-      This mistake has been seen to cause assertion failures, and
-      potentially it could result in unnecessary query cancellations on hot
-      standby servers.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve performance of WAL replay for transactions that drop many
-      relations (Fujii Masao)
-     </para>
-
-     <para>
-      This change reduces the number of times that shared buffers are
-      scanned, so that it is of most benefit when that setting is large.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve performance of lock releasing in standby server WAL replay
-      (Thomas Munro)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure a table's cached index list is correctly rebuilt after an index
-      creation fails partway through (Peter Geoghegan)
-     </para>
-
-     <para>
-      Previously, the failed index's OID could remain in the list, causing
-      problems later in the same session.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix misoptimization of equivalence classes involving composite-type
-      columns (Tom Lane)
-     </para>
-
-     <para>
-      This resulted in failure to recognize that an index on a composite
-      column could provide the sort order needed for a mergejoin on that
-      column.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix SQL-standard <literal>FETCH FIRST</literal> syntax to allow
-      parameters (<literal>$<replaceable>n</replaceable></literal>), as the
-      standard expects (Andrew Gierth)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix failure to schema-qualify some object names
-      in <function>getObjectDescription</function> output
-      (Kyotaro Horiguchi, Tom Lane)
-     </para>
-
-     <para>
-      Names of collations, conversions, and text search objects
-      were not schema-qualified when they should be.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Widen <command>COPY FROM</command>'s current-line-number counter
-      from 32 to 64 bits (David Rowley)
-     </para>
-
-     <para>
-      This avoids two problems with input exceeding 4G lines: <literal>COPY
-      FROM WITH HEADER</literal> would drop a line every 4G lines, not only
-      the first line, and error reports could show a wrong line number.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Add a string freeing function
-      to <application>ecpg</application>'s <filename>pgtypes</filename>
-      library, so that cross-module memory management problems can be
-      avoided on Windows (Takayuki Tsunakawa)
-     </para>
-
-     <para>
-      On Windows, crashes can ensue if the <function>free</function> call
-      for a given chunk of memory is not made from the same DLL
-      that <function>malloc</function>'ed the memory.
-      The <filename>pgtypes</filename> library sometimes returns strings
-      that it expects the caller to free, making it impossible to follow
-      this rule.  Add a <function>PGTYPESchar_free()</function> function
-      that just wraps <function>free</function>, allowing applications
-      to follow this rule.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>ecpg</application>'s support for <type>long
-      long</type> variables on Windows, as well as other platforms that
-      declare <function>strtoll</function>/<function>strtoull</function>
-      nonstandardly or not at all (Dang Minh Huong, Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix misidentification of SQL statement type in PL/pgSQL, when a rule
-      change causes a change in the semantics of a statement intra-session
-      (Tom Lane)
-     </para>
-
-     <para>
-      This error led to assertion failures, or in rare cases, failure to
-      enforce the <literal>INTO STRICT</literal> option as expected.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix password prompting in client programs so that echo is properly
-      disabled on Windows when <literal>stdin</literal> is not the
-      terminal (Matthew Stickney)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Further fix mis-quoting of values for list-valued GUC variables in
-      dumps (Tom Lane)
-     </para>
-
-     <para>
-      The previous fix for quoting of <varname>search_path</varname> and
-      other list-valued variables in <application>pg_dump</application>
-      output turned out to misbehave for empty-string list elements, and it
-      risked truncation of long file paths.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <application>pg_upgrade</application> check that the old server
-      was shut down cleanly (Bruce Momjian)
-     </para>
-
-     <para>
-      The previous check could be fooled by an immediate-mode shutdown.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix crash in <filename>contrib/ltree</filename>'s
-      <function>lca()</function> function when the input array is empty
-      (Pierre Ducroquet)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix various error-handling code paths in which an incorrect error code
-      might be reported (Michael Paquier, Tom Lane, Magnus Hagander)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Rearrange makefiles to ensure that programs link to freshly-built
-      libraries (such as <filename>libpq.so</filename>) rather than ones
-      that might exist in the system library directories (Tom Lane)
-     </para>
-
-     <para>
-      This avoids problems when building on platforms that supply old copies
-      of <productname>PostgreSQL</productname> libraries.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</application>
-      release 2018e for DST law changes in North Korea, plus historical
-      corrections for Czechoslovakia.
-     </para>
-
-     <para>
-      This update includes a redefinition of <quote>daylight savings</quote>
-      in Ireland, as well as for some past years in Namibia and
-      Czechoslovakia.  In those jurisdictions, legally standard time is
-      observed in summer, and daylight savings time in winter, so that the
-      daylight savings offset is one hour behind standard time not one hour
-      ahead.  This does not affect either the actual UTC offset or the
-      timezone abbreviations in use; the only known effect is that
-      the <structfield>is_dst</structfield> column in
-      the <structname>pg_timezone_names</structname> view will now be true
-      in winter and false in summer in these cases.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-9-3-23">
-  <title>Release 9.3.23</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2018-05-10</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 9.3.22.
-   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.23</title>
-
-   <para>
-    A dump/restore is not required for those running 9.3.X.
-   </para>
-
-   <para>
-    However, if the function marking mistakes mentioned in the first
-    changelog entry below affect you, you will want to take steps to
-    correct your database catalogs.
-   </para>
-
-   <para>
-    Also, if you are upgrading from a version earlier than 9.3.22,
-    see <xref linkend="release-9-3-22">.
-   </para>
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Fix incorrect volatility markings on a few built-in functions
-      (Thomas Munro, Tom Lane)
-     </para>
-
-     <para>
-      The functions
-      <function>query_to_xml</function>,
-      <function>cursor_to_xml</function>,
-      <function>cursor_to_xmlschema</function>,
-      <function>query_to_xmlschema</function>, and
-      <function>query_to_xml_and_xmlschema</function>
-      should be marked volatile because they execute user-supplied queries
-      that might contain volatile operations.  They were not, leading to a
-      risk of incorrect query optimization.  This has been repaired for new
-      installations by correcting the initial catalog data, but existing
-      installations will continue to contain the incorrect markings.
-      Practical use of these functions seems to pose little hazard, but in
-      case of trouble, it can be fixed by manually updating these
-      functions' <structname>pg_proc</structname> entries, for example
-      <literal>ALTER FUNCTION pg_catalog.query_to_xml(text, boolean,
-      boolean, text) VOLATILE</literal>.  (Note that that will need to be
-      done in each database of the installation.)  Another option is
-      to <application>pg_upgrade</application> the database to a version
-      containing the corrected initial data.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid re-using TOAST value OIDs that match dead-but-not-yet-vacuumed
-      TOAST entries (Pavan Deolasee)
-     </para>
-
-     <para>
-      Once the OID counter has wrapped around, it's possible to assign a
-      TOAST value whose OID matches a previously deleted entry in the same
-      TOAST table.  If that entry were not yet vacuumed away, this resulted
-      in <quote>unexpected chunk number 0 (expected 1) for toast
-      value <replaceable>nnnnn</replaceable></quote> errors, which would
-      persist until the dead entry was removed
-      by <command>VACUUM</command>.  Fix by not selecting such OIDs when
-      creating a new TOAST entry.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Change <command>ANALYZE</command>'s algorithm for updating
-      <structname>pg_class</structname>.<structfield>reltuples</structfield>
-      (David Gould)
-     </para>
-
-     <para>
-      Previously, pages not actually scanned by <command>ANALYZE</command>
-      were assumed to retain their old tuple density.  In a large table
-      where <command>ANALYZE</command> samples only a small fraction of the
-      pages, this meant that the overall tuple density estimate could not
-      change very much, so that <structfield>reltuples</structfield> would
-      change nearly proportionally to changes in the table's physical size
-      (<structfield>relpages</structfield>) regardless of what was actually
-      happening in the table.  This has been observed to result
-      in <structfield>reltuples</structfield> becoming so much larger than
-      reality as to effectively shut off autovacuuming.  To fix, assume
-      that <command>ANALYZE</command>'s sample is a statistically unbiased
-      sample of the table (as it should be), and just extrapolate the
-      density observed within those pages to the whole table.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <literal>UPDATE/DELETE ... WHERE CURRENT OF</literal> to not fail
-      when the referenced cursor uses an index-only-scan plan (Yugo Nagata,
-      Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix incorrect planning of join clauses pushed into parameterized
-      paths (Andrew Gierth, Tom Lane)
-     </para>
-
-     <para>
-      This error could result in misclassifying a condition as
-      a <quote>join filter</quote> for an outer join when it should be a
-      plain <quote>filter</quote> condition, leading to incorrect join
-      output.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix misoptimization of <literal>CHECK</literal> constraints having
-      provably-NULL subclauses of
-      top-level <literal>AND</literal>/<literal>OR</literal> conditions
-      (Tom Lane, Dean Rasheed)
-     </para>
-
-     <para>
-      This could, for example, allow constraint exclusion to exclude a
-      child table that should not be excluded from a query.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid failure if a query-cancel or session-termination interrupt
-      occurs while committing a prepared transaction (Stas Kelvich)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix query-lifespan memory leakage in repeatedly executed hash joins
-      (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix overly strict sanity check
-      in <function>heap_prepare_freeze_tuple</function>
-      (&Aacute;lvaro Herrera)
-     </para>
-
-     <para>
-      This could result in incorrect <quote>cannot freeze committed
-      xmax</quote> failures in databases that have
-      been <application>pg_upgrade</application>'d from 9.2 or earlier.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent dangling-pointer dereference when a C-coded before-update row
-      trigger returns the <quote>old</quote> tuple (Rushabh Lathia)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Reduce locking during autovacuum worker scheduling (Jeff Janes)
-     </para>
-
-     <para>
-      The previous behavior caused drastic loss of potential worker
-      concurrency in databases with many tables.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure client hostname is copied while copying
-      <structname>pg_stat_activity</structname> data to local memory
-      (Edmund Horner)
-     </para>
-
-     <para>
-      Previously the supposedly-local snapshot contained a pointer into
-      shared memory, allowing the client hostname column to change
-      unexpectedly if any existing session disconnected.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix incorrect processing of multiple compound affixes
-      in <literal>ispell</literal> dictionaries (Arthur Zakirov)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix collation-aware searches (that is, indexscans using inequality
-      operators) in SP-GiST indexes on text columns (Tom Lane)
-     </para>
-
-     <para>
-      Such searches would return the wrong set of rows in most non-C
-      locales.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Count the number of index tuples correctly during initial build of an
-      SP-GiST index (Tomas Vondra)
-     </para>
-
-     <para>
-      Previously, the tuple count was reported to be the same as that of
-      the underlying table, which is wrong if the index is partial.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Count the number of index tuples correctly during vacuuming of a
-      GiST index (Andrey Borodin)
-     </para>
-
-     <para>
-      Previously it reported the estimated number of heap tuples,
-      which might be inaccurate, and is certainly wrong if the
-      index is partial.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Allow <function>scalarltsel</function>
-      and <function>scalargtsel</function> to be used on non-core datatypes
-      (Tomas Vondra)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Reduce <application>libpq</application>'s memory consumption when a
-      server error is reported after a large amount of query output has
-      been collected (Tom Lane)
-     </para>
-
-     <para>
-      Discard the previous output before, not after, processing the error
-      message.  On some platforms, notably Linux, this can make a
-      difference in the application's subsequent memory footprint.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix double-free crashes in <application>ecpg</application>
-      (Patrick Krecker, Jeevan Ladhe)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>ecpg</application> to handle <type>long long
-      int</type> variables correctly in MSVC builds (Michael Meskes,
-      Andrew Gierth)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix mis-quoting of values for list-valued GUC variables in dumps
-      (Michael Paquier, Tom Lane)
-     </para>
-
-     <para>
-      The <varname>local_preload_libraries</varname>,
-      <varname>session_preload_libraries</varname>,
-      <varname>shared_preload_libraries</varname>,
-      and <varname>temp_tablespaces</varname> variables were not correctly
-      quoted in <application>pg_dump</application> output.  This would
-      cause problems if settings for these variables appeared in
-      <command>CREATE FUNCTION ... SET</command> or <command>ALTER
-      DATABASE/ROLE ... SET</command> clauses.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix overflow handling in <application>PL/pgSQL</application>
-      integer <command>FOR</command> loops (Tom Lane)
-     </para>
-
-     <para>
-      The previous coding failed to detect overflow of the loop variable
-      on some non-gcc compilers, leading to an infinite loop.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Adjust <application>PL/Python</application> regression tests to pass
-      under Python 3.7 (Peter Eisentraut)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Support testing <application>PL/Python</application> and related
-      modules when building with Python 3 and MSVC (Andrew Dunstan)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Rename internal <function>b64_encode</function>
-      and <function>b64_decode</function> functions to avoid conflict with
-      Solaris 11.4 built-in functions (Rainer Orth)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Sync our copy of the timezone library with IANA tzcode release 2018e
-      (Tom Lane)
-     </para>
-
-     <para>
-      This fixes the <application>zic</application> timezone data compiler
-      to cope with negative daylight-savings offsets.  While
-      the <productname>PostgreSQL</productname> project will not
-      immediately ship such timezone data, <application>zic</application>
-      might be used with timezone data obtained directly from IANA, so it
-      seems prudent to update <application>zic</application> now.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</application>
-      release 2018d for DST law changes in Palestine and Antarctica (Casey
-      Station), plus historical corrections for Portugal and its colonies,
-      as well as Enderbury, Jamaica, Turks &amp; Caicos Islands, and
-      Uruguay.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-9-3-22">
-  <title>Release 9.3.22</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2018-03-01</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 9.3.21.
-   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.22</title>
-
-   <para>
-    A dump/restore is not required for those running 9.3.X.
-   </para>
-
-   <para>
-    However, if you run an installation in which not all users are mutually
-    trusting, or if you maintain an application or extension that is
-    intended for use in arbitrary situations, it is strongly recommended
-    that you read the documentation changes described in the first changelog
-    entry below, and take suitable steps to ensure that your installation or
-    code is secure.
-   </para>
-
-   <para>
-    Also, the changes described in the second changelog entry below may
-    cause functions used in index expressions or materialized views to fail
-    during auto-analyze, or when reloading from a dump.  After upgrading,
-    monitor the server logs for such problems, and fix affected functions.
-   </para>
-
-   <para>
-    Also, if you are upgrading from a version earlier than 9.3.18,
-    see <xref linkend="release-9-3-18">.
-   </para>
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Document how to configure installations and applications to guard
-      against search-path-dependent trojan-horse attacks from other users
-      (Noah Misch)
-     </para>
-
-     <para>
-      Using a <varname>search_path</varname> setting that includes any
-      schemas writable by a hostile user enables that user to capture
-      control of queries and then run arbitrary SQL code with the
-      permissions of the attacked user.  While it is possible to write
-      queries that are proof against such hijacking, it is notationally
-      tedious, and it's very easy to overlook holes.  Therefore, we now
-      recommend configurations in which no untrusted schemas appear in
-      one's search path.  Relevant documentation appears in
-      <xref linkend="ddl-schemas-patterns"> (for database administrators and users),
-      <xref linkend="libpq-connect"> (for application authors),
-      <xref linkend="extend-extensions-style">  (for extension authors), and
-      <xref linkend="sql-createfunction"> (for authors
-      of <literal>SECURITY DEFINER</literal> functions).
-      (CVE-2018-1058)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid use of insecure <varname>search_path</varname> settings
-      in <application>pg_dump</application> and other client programs
-      (Noah Misch, Tom Lane)
-     </para>
-
-     <para>
-      <application>pg_dump</application>,
-      <application>pg_upgrade</application>,
-      <application>vacuumdb</application> and
-      other <productname>PostgreSQL</productname>-provided applications were
-      themselves vulnerable to the type of hijacking described in the previous
-      changelog entry; since these applications are commonly run by
-      superusers, they present particularly attractive targets.  To make them
-      secure whether or not the installation as a whole has been secured,
-      modify them to include only the <structname>pg_catalog</structname>
-      schema in their <varname>search_path</varname> settings.
-      Autovacuum worker processes now do the same, as well.
-     </para>
-
-     <para>
-      In cases where user-provided functions are indirectly executed by
-      these programs &mdash; for example, user-provided functions in index
-      expressions &mdash; the tighter <varname>search_path</varname> may
-      result in errors, which will need to be corrected by adjusting those
-      user-provided functions to not assume anything about what search path
-      they are invoked under.  That has always been good practice, but now
-      it will be necessary for correct behavior.
-      (CVE-2018-1058)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix misbehavior of concurrent-update rechecks with CTE references
-      appearing in subplans (Tom Lane)
-     </para>
-
-     <para>
-      If a CTE (<literal>WITH</literal> clause reference) is used in an
-      InitPlan or SubPlan, and the query requires a recheck due to trying
-      to update or lock a concurrently-updated row, incorrect results could
-      be obtained.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix planner failures with overlapping mergejoin clauses in an outer
-      join (Tom Lane)
-     </para>
-
-     <para>
-      These mistakes led to <quote>left and right pathkeys do not match in
-      mergejoin</quote> or <quote>outer pathkeys do not match
-      mergeclauses</quote> planner errors in corner cases.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Repair <application>pg_upgrade</application>'s failure to
-      preserve <structfield>relfrozenxid</structfield> for materialized
-      views (Tom Lane, Andres Freund)
-     </para>
-
-     <para>
-      This oversight could lead to data corruption in materialized views
-      after an upgrade, manifesting as <quote>could not access status of
-      transaction</quote> or <quote>found xmin from before
-      relfrozenxid</quote> errors.  The problem would be more likely to
-      occur in seldom-refreshed materialized views, or ones that were
-      maintained only with <command>REFRESH MATERIALIZED VIEW
-      CONCURRENTLY</command>.
-     </para>
-
-     <para>
-      If such corruption is observed, it can be repaired by refreshing the
-      materialized view (without <literal>CONCURRENTLY</literal>).
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix incorrect reporting of PL/Python function names in
-      error <literal>CONTEXT</literal> stacks (Tom Lane)
-     </para>
-
-     <para>
-      An error occurring within a nested PL/Python function call (that is,
-      one reached via a SPI query from another PL/Python function) would
-      result in a stack trace showing the inner function's name twice,
-      rather than the expected results.  Also, an error in a nested
-      PL/Python <literal>DO</literal> block could result in a null pointer
-      dereference crash on some platforms.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Allow <filename>contrib/auto_explain</filename>'s
-      <varname>log_min_duration</varname> setting to range up
-      to <literal>INT_MAX</literal>, or about 24 days instead of 35 minutes
-      (Tom Lane)
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-9-3-21">
-  <title>Release 9.3.21</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2018-02-08</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 9.3.20.
-   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.21</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.18,
-    see <xref linkend="release-9-3-18">.
-   </para>
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Ensure that all temporary files made
-      by <application>pg_upgrade</application> are non-world-readable
-      (Tom Lane, Noah Misch)
-     </para>
-
-     <para>
-      <application>pg_upgrade</application> normally restricts its
-      temporary files to be readable and writable only by the calling user.
-      But the temporary file containing <literal>pg_dumpall -g</literal>
-      output would be group- or world-readable, or even writable, if the
-      user's <literal>umask</literal> setting allows.  In typical usage on
-      multi-user machines, the <literal>umask</literal> and/or the working
-      directory's permissions would be tight enough to prevent problems;
-      but there may be people using <application>pg_upgrade</application>
-      in scenarios where this oversight would permit disclosure of database
-      passwords to unfriendly eyes.
-      (CVE-2018-1053)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix vacuuming of tuples that were updated while key-share locked
-      (Andres Freund, &Aacute;lvaro Herrera)
-     </para>
-
-     <para>
-      In some cases <command>VACUUM</command> would fail to remove such
-      tuples even though they are now dead, leading to assorted data
-      corruption scenarios.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix inadequate buffer locking in some LSN fetches (Jacob Champion,
-      Asim Praveen, Ashwin Agrawal)
-     </para>
-
-     <para>
-      These errors could result in misbehavior under concurrent load.
-      The potential consequences have not been characterized fully.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid unnecessary failure in a query on an inheritance tree that
-      occurs concurrently with some child table being removed from the tree
-      by <command>ALTER TABLE NO INHERIT</command> (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Repair failure with correlated sub-<literal>SELECT</literal>
-      inside <literal>VALUES</literal> inside a <literal>LATERAL</literal>
-      subquery (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <quote>could not devise a query plan for the given query</quote>
-      planner failure for some cases involving nested <literal>UNION
-      ALL</literal> inside a lateral subquery (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <function>has_sequence_privilege()</function> to
-      support <literal>WITH GRANT OPTION</literal> tests,
-      as other privilege-testing functions do (Joe Conway)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      In databases using UTF8 encoding, ignore any XML declaration that
-      asserts a different encoding (Pavel Stehule, Noah Misch)
-     </para>
-
-     <para>
-      We always store XML strings in the database encoding, so allowing
-      libxml to act on a declaration of another encoding gave wrong results.
-      In encodings other than UTF8, we don't promise to support non-ASCII
-      XML data anyway, so retain the previous behavior for bug compatibility.
-      This change affects only <function>xpath()</function> and related
-      functions; other XML code paths already acted this way.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Provide for forward compatibility with future minor protocol versions
-      (Robert Haas, Badrul Chowdhury)
-     </para>
-
-     <para>
-      Up to now, <productname>PostgreSQL</productname> servers simply
-      rejected requests to use protocol versions newer than 3.0, so that
-      there was no functional difference between the major and minor parts
-      of the protocol version number.  Allow clients to request versions 3.x
-      without failing, sending back a message showing that the server only
-      understands 3.0.  This makes no difference at the moment, but
-      back-patching this change should allow speedier introduction of future
-      minor protocol upgrades.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent stack-overflow crashes when planning extremely deeply
-      nested set operations
-      (<literal>UNION</literal>/<literal>INTERSECT</literal>/<literal>EXCEPT</literal>)
-      (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix null-pointer crashes for some types of LDAP URLs appearing
-      in <filename>pg_hba.conf</filename> (Thomas Munro)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix sample <function>INSTR()</function> functions in the PL/pgSQL
-      documentation (Yugo Nagata, Tom Lane)
-     </para>
-
-     <para>
-      These functions are stated to
-      be <trademark class="registered">Oracle</trademark> compatible, but
-      they weren't exactly.  In particular, there was a discrepancy in the
-      interpretation of a negative third parameter: Oracle thinks that a
-      negative value indicates the last place where the target substring can
-      begin, whereas our functions took it as the last place where the
-      target can end.  Also, Oracle throws an error for a zero or negative
-      fourth parameter, whereas our functions returned zero.
-     </para>
-
-     <para>
-      The sample code has been adjusted to match Oracle's behavior more
-      precisely.  Users who have copied this code into their applications
-      may wish to update their copies.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>pg_dump</application> to make ACL (permissions),
-      comment, and security label entries reliably identifiable in archive
-      output formats (Tom Lane)
-     </para>
-
-     <para>
-      The <quote>tag</quote> portion of an ACL archive entry was usually
-      just the name of the associated object.  Make it start with the object
-      type instead, bringing ACLs into line with the convention already used
-      for comment and security label archive entries.  Also, fix the
-      comment and security label entries for the whole database, if present,
-      to make their tags start with <literal>DATABASE</literal> so that they
-      also follow this convention.  This prevents false matches in code that
-      tries to identify large-object-related entries by seeing if the tag
-      starts with <literal>LARGE OBJECT</literal>.  That could have resulted
-      in misclassifying entries as data rather than schema, with undesirable
-      results in a schema-only or data-only dump.
-     </para>
-
-     <para>
-      Note that this change has user-visible results in the output
-      of <command>pg_restore --list</command>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      In <application>ecpg</application>, detect indicator arrays that do
-      not have the correct length and report an error (David Rader)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid triggering a libc assertion
-      in <filename>contrib/hstore</filename>, due to use
-      of <function>memcpy()</function> with equal source and destination
-      pointers (Tomas Vondra)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Provide modern examples of how to auto-start Postgres on macOS
-      (Tom Lane)
-     </para>
-
-     <para>
-      The scripts in <filename>contrib/start-scripts/osx</filename> use
-      infrastructure that's been deprecated for over a decade, and which no
-      longer works at all in macOS releases of the last couple of years.
-      Add a new subdirectory <filename>contrib/start-scripts/macos</filename>
-      containing scripts that use the newer <application>launchd</application>
-      infrastructure.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix incorrect selection of configuration-specific libraries for
-      OpenSSL on Windows (Andrew Dunstan)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Support linking to MinGW-built versions of libperl (Noah Misch)
-     </para>
-
-     <para>
-      This allows building PL/Perl with some common Perl distributions for
-      Windows.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix MSVC build to test whether 32-bit libperl
-      needs <literal>-D_USE_32BIT_TIME_T</literal> (Noah Misch)
-     </para>
-
-     <para>
-      Available Perl distributions are inconsistent about what they expect,
-      and lack any reliable means of reporting it, so resort to a build-time
-      test on what the library being used actually does.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      On Windows, install the crash dump handler earlier in postmaster
-      startup (Takayuki Tsunakawa)
-     </para>
-
-     <para>
-      This may allow collection of a core dump for some early-startup
-      failures that did not produce a dump before.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      On Windows, avoid encoding-conversion-related crashes when emitting
-      messages very early in postmaster startup (Takayuki Tsunakawa)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Use our existing Motorola 68K spinlock code on OpenBSD as
-      well as NetBSD (David Carlier)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Add support for spinlocks on Motorola 88K (David Carlier)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</application>
-      release 2018c for DST law changes in Brazil, Sao Tome and Principe,
-      plus historical corrections for Bolivia, Japan, and South Sudan.
-      The <literal>US/Pacific-New</literal> zone has been removed (it was
-      only an alias for <literal>America/Los_Angeles</literal> anyway).
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-9-3-20">
-  <title>Release 9.3.20</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2017-11-09</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 9.3.19.
-   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.20</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.18,
-    see <xref linkend="release-9-3-18">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Fix crash due to rowtype mismatch
-      in <function>json{b}_populate_recordset()</function>
-      (Michael Paquier, Tom Lane)
-     </para>
-
-     <para>
-      These functions used the result rowtype specified in the <literal>FROM
-      ... AS</literal> clause without checking that it matched the actual
-      rowtype of the supplied tuple value.  If it didn't, that would usually
-      result in a crash, though disclosure of server memory contents seems
-      possible as well.
-      (CVE-2017-15098)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix sample server-start scripts to become <literal>$PGUSER</literal>
-      before opening <literal>$PGLOG</literal> (Noah Misch)
-     </para>
-
-     <para>
-      Previously, the postmaster log file was opened while still running as
-      root.  The database owner could therefore mount an attack against
-      another system user by making <literal>$PGLOG</literal> be a symbolic
-      link to some other file, which would then become corrupted by appending
-      log messages.
-     </para>
-
-     <para>
-      By default, these scripts are not installed anywhere.  Users who have
-      made use of them will need to manually recopy them, or apply the same
-      changes to their modified versions.  If the
-      existing <literal>$PGLOG</literal> file is root-owned, it will need to
-      be removed or renamed out of the way before restarting the server with
-      the corrected script.
-      (CVE-2017-12172)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Properly reject attempts to convert infinite float values to
-      type <type>numeric</type> (Tom Lane, KaiGai Kohei)
-     </para>
-
-     <para>
-      Previously the behavior was platform-dependent.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix corner-case crashes when columns have been added to the end of a
-      view (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Record proper dependencies when a view or rule
-      contains <structname>FieldSelect</structname>
-      or <structname>FieldStore</structname> expression nodes (Tom Lane)
-     </para>
-
-     <para>
-      Lack of these dependencies could allow a column or data
-      type <command>DROP</command> to go through when it ought to fail,
-      thereby causing later uses of the view or rule to get errors.
-      This patch does not do anything to protect existing views/rules,
-      only ones created in the future.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Correctly detect hashability of range data types (Tom Lane)
-     </para>
-
-     <para>
-      The planner mistakenly assumed that any range type could be hashed
-      for use in hash joins or hash aggregation, but actually it must check
-      whether the range's subtype has hash support.  This does not affect any
-      of the built-in range types, since they're all hashable anyway.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix low-probability loss of <command>NOTIFY</command> messages due to
-      XID wraparound (Marko Tiikkaja, Tom Lane)
-     </para>
-
-     <para>
-      If a session executed no queries, but merely listened for
-      notifications, for more than 2 billion transactions, it started to miss
-      some notifications from concurrently-committing transactions.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent low-probability crash in processing of nested trigger firings
-      (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Correctly restore the umask setting when file creation fails
-      in <command>COPY</command> or <function>lo_export()</function>
-      (Peter Eisentraut)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Give a better error message for duplicate column names
-      in <command>ANALYZE</command> (Nathan Bossart)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix mis-parsing of the last line in a
-      non-newline-terminated <filename>pg_hba.conf</filename> file
-      (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>libpq</application> to not require user's home
-      directory to exist (Tom Lane)
-     </para>
-
-     <para>
-      In v10, failure to find the home directory while trying to
-      read <filename>~/.pgpass</filename> was treated as a hard error,
-      but it should just cause that file to not be found.  Both v10 and
-      previous release branches made the same mistake when
-      reading <filename>~/.pg_service.conf</filename>, though this was less
-      obvious since that file is not sought unless a service name is
-      specified.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>libpq</application> to guard against integer
-      overflow in the row count of a <structname>PGresult</structname>
-      (Michael Paquier)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>ecpg</application>'s handling of out-of-scope cursor
-      declarations with pointer or array variables (Michael Meskes)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make ecpglib's Informix-compatibility mode ignore fractional digits in
-      integer input strings, as expected (Gao Zengqi, Michael Meskes)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Sync our copy of the timezone library with IANA release tzcode2017c
-      (Tom Lane)
-     </para>
-
-     <para>
-      This fixes various issues; the only one likely to be user-visible
-      is that the default DST rules for a POSIX-style zone name, if
-      no <filename>posixrules</filename> file exists in the timezone data
-      directory, now match current US law rather than what it was a dozen
-      years ago.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Update time zone data files to <application>tzdata</application>
-      release 2017c for DST law changes in Fiji, Namibia, Northern Cyprus,
-      Sudan, Tonga, and Turks &amp; Caicos Islands, plus historical
-      corrections for Alaska, Apia, Burma, Calcutta, Detroit, Ireland,
-      Namibia, and Pago Pago.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-9-3-19">
-  <title>Release 9.3.19</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2017-08-31</para>
-  </formalpara>
-
-  <para>
-   This release contains a small number of fixes from 9.3.18.
-   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.19</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.18,
-    see <xref linkend="release-9-3-18">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Show foreign tables
-      in <structname>information_schema</>.<structname>table_privileges</>
-      view (Peter Eisentraut)
-     </para>
-
-     <para>
-      All other relevant <structname>information_schema</> views include
-      foreign tables, but this one ignored them.
-     </para>
-
-     <para>
-      Since this view definition is installed by <application>initdb</>,
-      merely upgrading will not fix the problem.  If you need to fix this
-      in an existing installation, you can, as a superuser, do this
-      in <application>psql</>:
-<programlisting>
-SET search_path TO information_schema;
-CREATE OR REPLACE VIEW table_privileges AS
-    SELECT CAST(u_grantor.rolname AS sql_identifier) AS grantor,
-           CAST(grantee.rolname AS sql_identifier) AS grantee,
-           CAST(current_database() AS sql_identifier) AS table_catalog,
-           CAST(nc.nspname AS sql_identifier) AS table_schema,
-           CAST(c.relname AS sql_identifier) AS table_name,
-           CAST(c.prtype AS character_data) AS privilege_type,
-           CAST(
-             CASE WHEN
-                  -- object owner always has grant options
-                  pg_has_role(grantee.oid, c.relowner, 'USAGE')
-                  OR c.grantable
-                  THEN 'YES' ELSE 'NO' END AS yes_or_no) AS is_grantable,
-           CAST(CASE WHEN c.prtype = 'SELECT' THEN 'YES' ELSE 'NO' END AS yes_or_no) AS with_hierarchy
-
-    FROM (
-            SELECT oid, relname, relnamespace, relkind, relowner, (aclexplode(coalesce(relacl, acldefault('r', relowner)))).* FROM pg_class
-         ) AS c (oid, relname, relnamespace, relkind, relowner, grantor, grantee, prtype, grantable),
-         pg_namespace nc,
-         pg_authid u_grantor,
-         (
-           SELECT oid, rolname FROM pg_authid
-           UNION ALL
-           SELECT 0::oid, 'PUBLIC'
-         ) AS grantee (oid, rolname)
-
-    WHERE c.relnamespace = nc.oid
-          AND c.relkind IN ('r', 'v', 'f')
-          AND c.grantee = grantee.oid
-          AND c.grantor = u_grantor.oid
-          AND c.prtype IN ('INSERT', 'SELECT', 'UPDATE', 'DELETE', 'TRUNCATE', 'REFERENCES', 'TRIGGER')
-          AND (pg_has_role(u_grantor.oid, 'USAGE')
-               OR pg_has_role(grantee.oid, 'USAGE')
-               OR grantee.rolname = 'PUBLIC');
-</programlisting>
-      This must be repeated in each database to be fixed,
-      including <literal>template0</>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Clean up handling of a fatal exit (e.g., due to receipt
-      of <systemitem>SIGTERM</>) that occurs while trying to execute
-      a <command>ROLLBACK</> of a failed transaction (Tom Lane)
-     </para>
-
-     <para>
-      This situation could result in an assertion failure.  In production
-      builds, the exit would still occur, but it would log an unexpected
-      message about <quote>cannot drop active portal</>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Remove assertion that could trigger during a fatal exit (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Correctly identify columns that are of a range type or domain type over
-      a composite type or domain type being searched for (Tom Lane)
-     </para>
-
-     <para>
-      Certain <command>ALTER</> commands that change the definition of a
-      composite type or domain type are supposed to fail if there are any
-      stored values of that type in the database, because they lack the
-      infrastructure needed to update or check such values.  Previously,
-      these checks could miss relevant values that are wrapped inside range
-      types or sub-domains, possibly allowing the database to become
-      inconsistent.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix crash in <application>pg_restore</> when using parallel mode and
-      using a list file to select a subset of items to restore
-      (Fabr&iacute;zio de Royes Mello)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Change <application>ecpg</>'s parser to allow <literal>RETURNING</>
-      clauses without attached C variables (Michael Meskes)
-     </para>
-
-     <para>
-      This allows <application>ecpg</> programs to contain SQL constructs
-      that use <literal>RETURNING</> internally (for example, inside a CTE)
-      rather than using it to define values to be returned to the client.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve selection of compiler flags for PL/Perl on Windows (Tom Lane)
-     </para>
-
-     <para>
-      This fix avoids possible crashes of PL/Perl due to inconsistent
-      assumptions about the width of <type>time_t</> values.
-      A side-effect that may be visible to extension developers is
-      that <literal>_USE_32BIT_TIME_T</> is no longer defined globally
-      in <productname>PostgreSQL</> Windows builds.  This is not expected
-      to cause problems, because type <type>time_t</> is not used
-      in any <productname>PostgreSQL</> API definitions.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-9-3-18">
-  <title>Release 9.3.18</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2017-08-10</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 9.3.17.
-   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.18</title>
-
-   <para>
-    A dump/restore is not required for those running 9.3.X.
-   </para>
-
-   <para>
-    However, if you use foreign data servers that make use of user
-    passwords for authentication, see the first changelog entry below.
-   </para>
-
-   <para>
-    Also, 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>
-      Further restrict visibility
-      of <structname>pg_user_mappings</>.<structfield>umoptions</>, to
-      protect passwords stored as user mapping options
-      (Noah Misch)
-     </para>
-
-     <para>
-      The fix for CVE-2017-7486 was incorrect: it allowed a user
-      to see the options in her own user mapping, even if she did not
-      have <literal>USAGE</> permission on the associated foreign server.
-      Such options might include a password that had been provided by the
-      server owner rather than the user herself.
-      Since <structname>information_schema.user_mapping_options</> does not
-      show the options in such cases, <structname>pg_user_mappings</>
-      should not either.
-      (CVE-2017-7547)
-     </para>
-
-     <para>
-      By itself, this patch will only fix the behavior in newly initdb'd
-      databases.  If you wish to apply this change in an existing database,
-      you will need to do the following:
-     </para>
-
-     <procedure>
-      <step>
-       <para>
-        Restart the postmaster after adding <literal>allow_system_table_mods
-        = true</> to <filename>postgresql.conf</>.  (In versions
-        supporting <command>ALTER SYSTEM</>, you can use that to make the
-        configuration change, but you'll still need a restart.)
-       </para>
-      </step>
-
-      <step>
-       <para>
-        In <emphasis>each</> database of the cluster,
-        run the following commands as superuser:
-<programlisting>
-SET search_path = pg_catalog;
-CREATE OR REPLACE VIEW pg_user_mappings AS
-    SELECT
-        U.oid       AS umid,
-        S.oid       AS srvid,
-        S.srvname   AS srvname,
-        U.umuser    AS umuser,
-        CASE WHEN U.umuser = 0 THEN
-            'public'
-        ELSE
-            A.rolname
-        END AS usename,
-        CASE WHEN (U.umuser &lt;&gt; 0 AND A.rolname = current_user
-                     AND (pg_has_role(S.srvowner, 'USAGE')
-                          OR has_server_privilege(S.oid, 'USAGE')))
-                    OR (U.umuser = 0 AND pg_has_role(S.srvowner, 'USAGE'))
-                    OR (SELECT rolsuper FROM pg_authid WHERE rolname = current_user)
-                    THEN U.umoptions
-                 ELSE NULL END AS umoptions
-    FROM pg_user_mapping U
-         LEFT JOIN pg_authid A ON (A.oid = U.umuser) JOIN
-        pg_foreign_server S ON (U.umserver = S.oid);
-</programlisting>
-       </para>
-      </step>
-
-      <step>
-       <para>
-        Do not forget to include the <literal>template0</>
-        and <literal>template1</> databases, or the vulnerability will still
-        exist in databases you create later.  To fix <literal>template0</>,
-        you'll need to temporarily make it accept connections.
-        In <productname>PostgreSQL</> 9.5 and later, you can use
-<programlisting>
-ALTER DATABASE template0 WITH ALLOW_CONNECTIONS true;
-</programlisting>
-        and then after fixing <literal>template0</>, undo that with
-<programlisting>
-ALTER DATABASE template0 WITH ALLOW_CONNECTIONS false;
-</programlisting>
-        In prior versions, instead use
-<programlisting>
-UPDATE pg_database SET datallowconn = true WHERE datname = 'template0';
-UPDATE pg_database SET datallowconn = false WHERE datname = 'template0';
-</programlisting>
-       </para>
-      </step>
-
-      <step>
-       <para>
-        Finally, remove the <literal>allow_system_table_mods</> configuration
-        setting, and again restart the postmaster.
-       </para>
-      </step>
-     </procedure>
-    </listitem>
-
-    <listitem>
-     <para>
-      Disallow empty passwords in all password-based authentication methods
-      (Heikki Linnakangas)
-     </para>
-
-     <para>
-      <application>libpq</> ignores empty password specifications, and does
-      not transmit them to the server.  So, if a user's password has been
-      set to the empty string, it's impossible to log in with that password
-      via <application>psql</> or other <application>libpq</>-based
-      clients.  An administrator might therefore believe that setting the
-      password to empty is equivalent to disabling password login.
-      However, with a modified or non-<application>libpq</>-based client,
-      logging in could be possible, depending on which authentication
-      method is configured.  In particular the most common
-      method, <literal>md5</>, accepted empty passwords.
-      Change the server to reject empty passwords in all cases.
-      (CVE-2017-7546)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix concurrent locking of tuple update chains (&Aacute;lvaro Herrera)
-     </para>
-
-     <para>
-      If several sessions concurrently lock a tuple update chain with
-      nonconflicting lock modes using an old snapshot, and they all
-      succeed, it was possible for some of them to nonetheless fail (and
-      conclude there is no live tuple version) due to a race condition.
-      This had consequences such as foreign-key checks failing to see a
-      tuple that definitely exists but is being updated concurrently.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix potential data corruption when freezing a tuple whose XMAX is a
-      multixact with exactly one still-interesting member (Teodor Sigaev)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      On Windows, retry process creation if we fail to reserve the address
-      range for our shared memory in the new process (Tom Lane, Amit
-      Kapila)
-     </para>
-
-     <para>
-      This is expected to fix infrequent child-process-launch failures that
-      are probably due to interference from antivirus products.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix low-probability corruption of shared predicate-lock hash table
-      in Windows builds (Thomas Munro, Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Avoid logging clean closure of an SSL connection as though
-      it were a connection reset (Michael Paquier)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent sending SSL session tickets to clients (Tom Lane)
-     </para>
-
-     <para>
-      This fix prevents reconnection failures with ticket-aware client-side
-      SSL code.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix code for setting <xref linkend="guc-tcp-keepalives-idle"> on
-      Solaris (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix statistics collector to honor inquiry messages issued just after
-      a postmaster shutdown and immediate restart (Tom Lane)
-     </para>
-
-     <para>
-      Statistics inquiries issued within half a second of the previous
-      postmaster shutdown were effectively ignored.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure that the statistics collector's receive buffer size is at
-      least 100KB (Tom Lane)
-     </para>
-
-     <para>
-      This reduces the risk of dropped statistics data on older platforms
-      whose default receive buffer size is less than that.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix possible creation of an invalid WAL segment when a standby is
-      promoted just after it processes an <literal>XLOG_SWITCH</> WAL
-      record (Andres Freund)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <systemitem>SIGHUP</> and <systemitem>SIGUSR1</> handling in
-      walsender processes (Petr Jelinek, Andres Freund)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix unnecessarily slow restarts of <application>walreceiver</>
-      processes due to race condition in postmaster (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix cases where an <command>INSERT</> or <command>UPDATE</> assigns
-      to more than one element of a column that is of domain-over-array
-      type (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Allow window functions to be used in sub-<literal>SELECT</>s that
-      are within the arguments of an aggregate function (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Move autogenerated array types out of the way during
-      <command>ALTER ... RENAME</> (Vik Fearing)
-     </para>
-
-     <para>
-      Previously, we would rename a conflicting autogenerated array type
-      out of the way during <command>CREATE</>; this fix extends that
-      behavior to renaming operations.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Ensure that <command>ALTER USER ... SET</> accepts all the syntax
-      variants that <command>ALTER ROLE ... SET</> does (Peter Eisentraut)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Properly update dependency info when changing a datatype I/O
-      function's argument or return type from <type>opaque</> to the
-      correct type (Heikki Linnakangas)
-     </para>
-
-     <para>
-      <command>CREATE TYPE</> updates I/O functions declared in this
-      long-obsolete style, but it forgot to record a dependency on the
-      type, allowing a subsequent <command>DROP TYPE</> to leave broken
-      function definitions behind.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Reduce memory usage when <command>ANALYZE</> processes
-      a <type>tsvector</> column (Heikki Linnakangas)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix unnecessary precision loss and sloppy rounding when multiplying
-      or dividing <type>money</> values by integers or floats (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Tighten checks for whitespace in functions that parse identifiers,
-      such as <function>regprocedurein()</> (Tom Lane)
-     </para>
-
-     <para>
-      Depending on the prevailing locale, these functions could
-      misinterpret fragments of multibyte characters as whitespace.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Use relevant <literal>#define</> symbols from Perl while
-      compiling <application>PL/Perl</> (Ashutosh Sharma, Tom Lane)
-     </para>
-
-     <para>
-      This avoids portability problems, typically manifesting as
-      a <quote>handshake</> mismatch during library load, when working with
-      recent Perl versions.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      In <application>libpq</>, reset GSS/SASL and SSPI authentication
-      state properly after a failed connection attempt (Michael Paquier)
-     </para>
-
-     <para>
-      Failure to do this meant that when falling back from SSL to non-SSL
-      connections, a GSS/SASL failure in the SSL attempt would always cause
-      the non-SSL attempt to fail.  SSPI did not fail, but it leaked memory.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      In <application>psql</>, fix failure when <command>COPY FROM STDIN</>
-      is ended with a keyboard EOF signal and then another <command>COPY
-      FROM STDIN</> is attempted (Thomas Munro)
-     </para>
-
-     <para>
-      This misbehavior was observed on BSD-derived platforms (including
-      macOS), but not on most others.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>pg_dump</> and <application>pg_restore</> to
-      emit <command>REFRESH MATERIALIZED VIEW</> commands last (Tom Lane)
-     </para>
-
-     <para>
-      This prevents errors during dump/restore when a materialized view
-      refers to tables owned by a different user.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>pg_dump</> with the <option>--clean</> option to
-      drop event triggers as expected (Tom Lane)
-     </para>
-
-     <para>
-      It also now correctly assigns ownership of event triggers; before,
-      they were restored as being owned by the superuser running the
-      restore script.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>pg_dump</> to not emit invalid SQL for an empty
-      operator class (Daniel Gustafsson)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>pg_dump</> output to stdout on Windows (Kuntal Ghosh)
-     </para>
-
-     <para>
-      A compressed plain-text dump written to stdout would contain corrupt
-      data due to failure to put the file descriptor into binary mode.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <function>pg_get_ruledef()</> to print correct output for
-      the <literal>ON SELECT</> rule of a view whose columns have been
-      renamed (Tom Lane)
-     </para>
-
-     <para>
-      In some corner cases, <application>pg_dump</> relies
-      on <function>pg_get_ruledef()</> to dump views, so that this error
-      could result in dump/reload failures.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix dumping of outer joins with empty constraints, such as the result
-      of a <literal>NATURAL LEFT JOIN</> with no common columns (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix dumping of function expressions in the <literal>FROM</> clause in
-      cases where the expression does not deparse into something that looks
-      like a function call (Tom Lane)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>pg_basebackup</> output to stdout on Windows
-      (Haribabu Kommi)
-     </para>
-
-     <para>
-      A backup written to stdout would contain corrupt data due to failure
-      to put the file descriptor into binary mode.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix <application>pg_upgrade</> to ensure that the ending WAL record
-      does not have <xref linkend="guc-wal-level"> = <literal>minimum</>
-      (Bruce Momjian)
-     </para>
-
-     <para>
-      This condition could prevent upgraded standby servers from
-      reconnecting.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      In <filename>postgres_fdw</>, re-establish connections to remote
-      servers after <command>ALTER SERVER</> or <command>ALTER USER
-      MAPPING</> commands (Kyotaro Horiguchi)
-     </para>
-
-     <para>
-      This ensures that option changes affecting connection parameters will
-      be applied promptly.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      In <filename>postgres_fdw</>, allow cancellation of remote
-      transaction control commands (Robert Haas, Rafia Sabih)
-     </para>
-
-     <para>
-      This change allows us to quickly escape a wait for an unresponsive
-      remote server in many more cases than previously.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Always use <option>-fPIC</>, not <option>-fpic</>, when building
-      shared libraries with gcc (Tom Lane)
-     </para>
-
-     <para>
-      This supports larger extension libraries on platforms where it makes
-      a difference.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix unescaped-braces issue in our build scripts for Microsoft MSVC,
-      to avoid a warning or error from recent Perl versions (Andrew
-      Dunstan)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      In MSVC builds, handle the case where the <application>openssl</>
-      library is not within a <filename>VC</> subdirectory (Andrew Dunstan)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      In MSVC builds, add proper include path for <application>libxml2</>
-      header files (Andrew Dunstan)
-     </para>
-
-     <para>
-      This fixes a former need to move things around in standard Windows
-      installations of <application>libxml2</>.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      In MSVC builds, recognize a Tcl library that is
-      named <filename>tcl86.lib</> (Noah Misch)
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-9-3-17">
-  <title>Release 9.3.17</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2017-05-11</para>
-  </formalpara>
-
-  <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 use foreign data servers that make use of user
-    passwords for authentication, see the first changelog entry below.
-   </para>
-
-   <para>
-    Also, 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>
-      Restrict visibility
-      of <structname>pg_user_mappings</>.<structfield>umoptions</>, to
-      protect passwords stored as user mapping options
-      (Michael Paquier, Feike Steenbergen)
-     </para>
-
-     <para>
-      The previous coding allowed the owner of a foreign server object,
-      or anyone he has granted server <literal>USAGE</> permission to,
-      to see the options for all user mappings associated with that server.
-      This might well include passwords for other users.
-      Adjust the view definition to match the behavior of
-      <structname>information_schema.user_mapping_options</>, namely that
-      these options are visible to the user being mapped, or if the mapping
-      is for <literal>PUBLIC</literal> and the current user is the server
-      owner, or if the current user is a superuser.
-      (CVE-2017-7486)
-     </para>
-
-     <para>
-      By itself, this patch will only fix the behavior in newly initdb'd
-      databases.  If you wish to apply this change in an existing database,
-      follow the corrected procedure shown in the changelog entry for
-      CVE-2017-7547, in <xref linkend="release-9-3-18">.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Prevent exposure of statistical information via leaky operators
-      (Peter Eisentraut)
-     </para>
-
-     <para>
-      Some selectivity estimation functions in the planner will apply
-      user-defined operators to values obtained
-      from <structname>pg_statistic</>, such as most common values and
-      histogram entries.  This occurs before table permissions are checked,
-      so a nefarious user could exploit the behavior to obtain these values
-      for table columns he does not have permission to read.  To fix,
-      fall back to a default estimate if the operator's implementation
-      function is not certified leak-proof and the calling user does not have
-      permission to read the table column whose statistics are needed.
-      At least one of these criteria is satisfied in most cases in practice.
-      (CVE-2017-7484)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Restore <application>libpq</>'s recognition of
-      the <envar>PGREQUIRESSL</> environment variable (Daniel Gustafsson)
-     </para>
-
-     <para>
-      Processing of this environment variable was unintentionally dropped
-      in <productname>PostgreSQL</> 9.3, but its documentation remained.
-      This creates a security hazard, since users might be relying on the
-      environment variable to force SSL-encrypted connections, but that
-      would no longer be guaranteed.  Restore handling of the variable,
-      but give it lower priority than <envar>PGSSLMODE</>, to avoid
-      breaking configurations that work correctly with post-9.3 code.
-      (CVE-2017-7485)
-     </para>
-    </listitem>
-
-    <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>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2017-02-09</para>
-  </formalpara>
-
-  <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>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2016-10-27</para>
-  </formalpara>
-
-  <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>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2016-08-11</para>
-  </formalpara>
-
-  <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>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2016-05-12</para>
-  </formalpara>
-
-  <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>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2016-03-31</para>
-  </formalpara>
-
-  <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>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2016-02-11</para>
-  </formalpara>
-
-  <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>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2015-10-08</para>
-  </formalpara>
-
-  <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>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2015-06-12</para>
-  </formalpara>
-
-  <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>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2015-06-04</para>
-  </formalpara>
-
-  <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>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2015-05-22</para>
-  </formalpara>
-
-  <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>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2015-02-05</para>
-  </formalpara>
-
-  <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>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2014-07-24</para>
-  </formalpara>
-
-  <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>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2014-03-20</para>
-  </formalpara>
-
-  <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>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2014-02-20</para>
-  </formalpara>
-
-  <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>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2013-12-05</para>
-  </formalpara>
-
-  <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>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2013-10-10</para>
-  </formalpara>
-
-  <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>
-
-  <formalpara>
-   <title>Release date:</title>
-   <para>2013-09-09</para>
-  </formalpara>
-
-  <sect2>
-   <title>Overview</title>
-
-   <para>
-    Major enhancements in <productname>PostgreSQL</> 9.3 include:
-   </para>
-
-   <!-- 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>
-
-  <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>
-
-       <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>
-
-      <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>
-        Previously this case was represented by <literal>u</>
-        for <quote>unspecified</>.
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-   </sect3>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <para>
-    Below you will find a detailed account of the changes between
-    <productname>PostgreSQL</productname> 9.3 and the previous major
-    release.
-   </para>
-
-   <sect3>
-    <title>Server</title>
-
-    <sect4>
-     <title>Locking</title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Prevent non-key-field row updates from blocking foreign key checks
-        (&Aacute;lvaro Herrera, Noah Misch, Andres Freund, Alexander
-        Shulgin, Marti Raudsepp, Alexander Shulgin)
-       </para>
-
-       <para>
-        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 <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>
-
-     </itemizedlist>
-
-    </sect4>
-
-    <sect4>
-     <title>Indexes</title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        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>
-        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 index operations (Robert Haas)
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-    <sect4>
-     <title>Optimizer</title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        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>
-        Suppress no-op Result and Limit plan nodes
-        (Kyotaro Horiguchi, Amit Kapila, Tom Lane)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        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>
-
-     </itemizedlist>
-
-    </sect4>
-
-    <sect4>
-     <title>General Performance</title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        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 <link
-        linkend="datatype-numeric"><type>NUMERIC</></link> calculations
-        (Kyotaro Horiguchi)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Improve synchronization of sessions waiting for <link
-        linkend="guc-commit-delay"><varname>commit_delay</></link>
-        (Peter Geoghegan)
-       </para>
-
-       <para>
-        This greatly improves the usefulness of <varname>commit_delay</>.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        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>
-        Make vacuum recheck visibility after it has removed expired tuples
-        (Pavan Deolasee)
-       </para>
-
-       <para>
-        This increases the chance of a page being marked as all-visible.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add per-resource-owner lock caches (Jeff Janes)
-       </para>
-
-       <para>
-        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>
-        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>
-        Improve performance of transactions that drop many relations
-        (Tomas Vondra)
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-    <sect4>
-     <title>Monitoring</title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        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>
-        This reduces the I/O required for statistics tracking.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Fix the statistics collector to operate properly in cases where the
-        system clock goes backwards (Tom Lane)
-       </para>
-
-       <para>
-        Previously, statistics collection would stop until the time again
-        reached the latest time previously recorded.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Emit an informative message to postmaster standard error when we
-        are about to stop logging there
-        (Tom Lane)
-       </para>
-
-       <para>
-        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>
-
-     </itemizedlist>
-
-    </sect4>
-
-    <sect4>
-     <title>Authentication</title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        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>
-        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 <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>
-        This should yield a more appropriate SSL cipher set.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        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 <filename>pg_hba.conf</> is processed.
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-    <sect4>
-     <title>Server Settings</title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Greatly reduce System V <link linkend="sysvipc">shared
-        memory</link> requirements (Robert Haas)
-       </para>
-
-       <para>
-        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>
-
-      <listitem>
-       <para>
-        Allow the postmaster to listen on multiple Unix-domain sockets
-        (Honza Hor&aacute;k)
-       </para>
-
-       <para>
-        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>
-
-      <listitem>
-       <para>
-        Allow a directory of configuration files to be processed (Magnus
-        Hagander, Greg Smith, Selena Deckelmann)
-       </para>
-
-       <para>
-        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 <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 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>
-        Remove the <link linkend="guc-external-pid-file">external
-        <acronym>PID</> file</link>, if any, on postmaster exit
-        (Peter Eisentraut)
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-   </sect3>
-
-   <sect3>
-    <title>Replication and Recovery</title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Allow a streaming replication standby to <link
-        linkend="protocol-replication">follow a timeline switch</link>
-        (Heikki Linnakangas)
-       </para>
-
-       <para>
-        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 <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>
-        These functions report the status of base backups.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Improve performance of streaming log shipping with <link
-        linkend="guc-synchronous-commit"><varname>synchronous_commit</></link>
-        disabled (Andres Freund)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Allow much faster promotion of a streaming standby to primary (Simon
-        Riggs, Kyotaro Horiguchi)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add the last checkpoint's redo location to <link
-        linkend="APP-PGCONTROLDATA"><application>pg_controldata</></link>'s
-        output (Fujii Masao)
-       </para>
-
-       <para>
-        This information is useful for determining which <acronym>WAL</>
-        files are needed for restore.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Allow tools like <link
-        linkend="app-pgreceivexlog"><application>pg_receivexlog</></link>
-        to run on computers with different architectures (Heikki
-        Linnakangas)
-       </para>
-
-       <para>
-        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>
-        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 simplifies setting up a standby server.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Allow <link
-        linkend="app-pgreceivexlog"><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>
-
-      <listitem>
-       <para>
-        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>
-        This allows more rapid detection of connection failure.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        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, and is more efficient to
-        write.
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title>Queries</title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        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 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 <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>
-        Allow a multirow <link
-        linkend="SQL-VALUES"><literal>VALUES</></link> clause in a rule
-        to reference <literal>OLD</>/<literal>NEW</> (Tom Lane)
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title>Object Manipulation</title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Add support for <link linkend="event-triggers">event triggers</link>
-        (Dimitri Fontaine, Robert Haas, &Aacute;lvaro Herrera)
-       </para>
-
-       <para>
-        This allows server-side functions written in event-enabled
-        languages to be called when DDL commands are run.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        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 <link linkend="SQL-CREATESCHEMA"><command>CREATE SCHEMA ... IF
-        NOT EXISTS</></link> clause (Fabr&iacute;zio de Royes Mello)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Make <link linkend="SQL-REASSIGN-OWNED"><command>REASSIGN
-        OWNED</></link> also change ownership of shared objects
-        (&Aacute;lvaro Herrera)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        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>
-
-      <listitem>
-       <para>
-        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 at <literal>DEBUG1</> verbosity, so that
-        they will not be shown by default.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        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>
-         Previously, it threw an error if the schema did not exist.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Provide clients with <link
-        linkend="libpq-pqresulterrorfield">constraint violation details</link>
-        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 library support is required to
-        access these fields.
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    <sect4>
-     <title><command>ALTER</></title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        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 conditionally adding values to enumerated types.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        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. <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 <link linkend="SQL-ALTERRULE"><command>ALTER RULE
-        ... RENAME</></link> (Ali Dar)
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-    <sect4>
-     <title><link linkend="rules-views"><command>VIEWs</></link></title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        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 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 <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 <link
-        linkend="SQL-CREATETRIGGER"><literal>INSTEAD OF</></link> triggers
-        or <link linkend="SQL-CREATERULE"><literal>INSTEAD</></link> rules.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add <link linkend="SQL-CREATEVIEW"><command>CREATE RECURSIVE
-        VIEW</></link> syntax (Peter Eisentraut)
-       </para>
-
-       <para>
-        Internally this is translated into <command>CREATE VIEW ... WITH
-        RECURSIVE ...</>.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Improve view/rule printing code to handle cases where referenced
-        tables are renamed, or columns are renamed, added, or dropped
-        (Tom Lane)
-       </para>
-
-       <para>
-        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>
-
-     </itemizedlist>
-
-    </sect4>
-
-   </sect3>
-
-   <sect3>
-    <title>Data Types</title>
-
-    <itemizedlist>
-
-      <listitem>
-       <para>
-        Increase the maximum size of <link linkend="largeObjects">large
-        objects</link> from 2GB to 4TB (Nozomi Anzai, Yugo Nagata)
-       </para>
-
-       <para>
-        This change includes adding 64-bit-capable large object access
-        functions, both in the server and in libpq.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        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><link linkend="datatype-json"><type>JSON</></link></title>
-
-    <itemizedlist>
-
-      <listitem>
-       <para>
-        Add <link linkend="functions-json">operators and functions</link>
-        to extract elements from <type>JSON</> values (Andrew Dunstan)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Allow <type>JSON</> values to be <link
-        linkend="functions-json">converted into records</link>
-        (Andrew Dunstan)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add <link linkend="functions-json">functions</link> to convert
-        scalars, records, and <type>hstore</> values to <type>JSON</> (Andrew
-        Dunstan)
-       </para>
-      </listitem>
-
-    </itemizedlist>
-
-   </sect4>
-
-   </sect3>
-
-
-   <sect3>
-    <title>Functions</title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        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 <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 <link
-        linkend="functions-string-format"><function>format()</></link>
-        to provide field width and left/right alignment options (Pavel Stehule)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        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/<acronym>AD</> handling, e.g. with the format mask
-        <quote>IYYY-IW-DY</>.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        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 <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>
-
-       <para>
-        This reduces line length in view printing, for instance in <link
-        linkend="APP-PGDUMP"><application>pg_dump</></link> output.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        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>
-        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>
-
-     </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title>Server-Side Languages</title>
-
-    <sect4>
-     <title><link linkend="plpgsql">PL/pgSQL</link> Server-Side Language</title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        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>
-        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
-        <link linkend="SQL-COPY"><command>COPY</></link> (Pavel Stehule)
-       </para>
-
-       <para>
-        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 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>
-
-    </itemizedlist>
-
-    </sect4>
-
-    <sect4>
-     <title><link linkend="plpython">PL/Python</link> Server-Side Language</title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Add PL/Python result object string handler (Peter Eisentraut)
-       </para>
-
-       <para>
-        This allows <literal>plpy.debug(rv)</literal> to output something reasonable.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Make PL/Python convert OID values to a proper Python numeric type
-        (Peter Eisentraut)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        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>
-
-     </itemizedlist>
-
-    </sect4>
-
-   </sect3>
-
-   <sect3>
-    <title>Server Programming Interface (<link linkend="spi">SPI</link>)</title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Prevent leakage of <acronym>SPI</> tuple tables during subtransaction
-        abort (Tom Lane)
-       </para>
-
-       <para>
-        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>
-        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 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>
-        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>
-        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-pgreceivexlog"><application>pg_receivexlog</></link>
-        to allow specifying a connection string (Amit Kapila)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        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>
-
-    </itemizedlist>
-
-    <sect4>
-     <title><link linkend="APP-PSQL"><application>psql</></link></title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Adjust function cost settings so <application>psql</> tab
-        completion and pattern searching are more efficient (Tom Lane)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Improve <application>psql</>'s tab completion coverage (Jeff Janes,
-        Dean Rasheed, Peter Eisentraut, Magnus Hagander)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Allow the <application>psql</> <option>--single-transaction</>
-        mode to work when reading from standard input (Fabien Coelho,
-        Robert Haas)
-       </para>
-
-       <para>
-        Previously this option only worked when reading from a file.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Remove <application>psql</> warning when connecting to an older
-        server (Peter Eisentraut)
-       </para>
-
-       <para>
-        A warning is still issued when connecting to a server of a newer major
-        version than <application>psql</>'s.
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    <sect5>
-     <title><link linkend="APP-PSQL-meta-commands">Backslash Commands</link></title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Add <application>psql</> command <command>\watch</> to repeatedly
-        execute a SQL command (Will Leinweber)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add <application>psql</> command <command>\gset</> to store query
-        results in <application>psql</> variables (Pavel Stehule)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add <acronym>SSL</> information to <application>psql</>'s
-        <command>\conninfo</> command (Alastair Turner)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add <quote>Security</> column to <application>psql</>'s
-        <command>\df+</> output (Jon Erdman)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Allow <application>psql</> command <command>\l</> to accept a database
-        name pattern (Peter Eisentraut)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        In <application>psql</>, do not allow <command>\connect</> to
-        use defaults if there is no active connection (Bruce Momjian)
-       </para>
-
-       <para>
-        This might be the case if the server had crashed.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Properly reset state after failure of a SQL command executed with
-        <application>psql</>'s <literal>\g</> <replaceable>file</>
-        (Tom Lane)
-       </para>
-
-       <para>
-        Previously, the output from subsequent SQL commands would unexpectedly
-        continue to go to the same file.
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect5>
-
-    <sect5>
-     <title>Output</title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Add a <literal>latex-longtable</> output format to
-        <application>psql</> (Bruce Momjian)
-       </para>
-
-       <para>
-        This format allows tables to span multiple pages.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add a <literal>border=3</> output mode to the <application>psql</>
-        <literal>latex</> format (Bruce Momjian)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        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 <application>psql</>'s unaligned, expanded output mode, no longer
-        print an empty line for zero rows (Peter Eisentraut)
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect5>
-
-    </sect4>
-
-    <sect4>
-     <title><link linkend="APP-PGDUMP"><application>pg_dump</></link></title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Add <application>pg_dump</> <option>--jobs</> option to dump tables in
-        parallel (Joachim Wieland)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Make <application>pg_dump</> output functions in a more predictable
-        order (Joel Jacobson)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Fix tar files emitted by <application>pg_dump</>
-        to be <acronym>POSIX</> conformant (Brian Weaver, Tom Lane)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add <option>--dbname</> option to <application>pg_dump</>, for
-        consistency with other client commands (Heikki Linnakangas)
-       </para>
-
-       <para>
-        The database name could already be supplied last without a flag.
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-    <sect4>
-     <title><link linkend="APP-INITDB"><application>initdb</></link></title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Make initdb fsync the newly created data directory (Jeff Davis)
-       </para>
-
-       <para>
-        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 <option>--sync-only</> option to sync the data directory to durable
-        storage (Bruce Momjian)
-       </para>
-
-       <para>
-        This is used by <link
-        linkend="pgupgrade"><application>pg_upgrade</></link>.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Make initdb issue a warning about placing the data directory at the
-        top of a file system mount point (Bruce Momjian)
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-   </sect3>
-
-   <sect3>
-    <title>Source Code</title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        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 support for list links embedded in larger structs (Andres Freund)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Use <literal>SA_RESTART</> for all signals,
-        including <literal>SIGALRM</> (Tom Lane)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Ensure that the correct text domain is used when
-        translating <function>errcontext()</> messages
-        (Heikki Linnakangas)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Standardize naming of client-side memory allocation functions (Tom Lane)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        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>
-        Support <function>Assert()</> in client-side code (Andrew Dunstan)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        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>
-        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>
-        Add isolation tests for <link
-        linkend="SQL-CREATEINDEX"><command>CREATE INDEX
-        CONCURRENTLY</></link> (Abhijit Menon-Sen)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Remove typedefs for <type>int2</>/<type>int4</> as they are better
-        represented as <type>int16</>/<type>int32</> (Peter Eisentraut)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Fix <link linkend="install">install-strip</link> on Mac <productname>OS
-        X</> (Peter Eisentraut)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Remove <link linkend="configure">configure</link> flag
-        <option>--disable-shared</>, as it is no longer supported
-        (Bruce Momjian)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Rewrite pgindent in <application>Perl</> (Andrew Dunstan)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Provide Emacs macro to set Perl formatting to
-        match <productname>PostgreSQL</>'s perltidy settings (Peter Eisentraut)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Run tool to check the keyword list whenever the backend grammar is
-        changed (Tom Lane)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Change the way <literal>UESCAPE</> is lexed, to significantly reduce
-        the size of the lexer tables (Heikki Linnakangas)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        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 backend functions to return object <type>OID</>s
-        rather than void (Dimitri Fontaine)
-       </para>
-
-       <para>
-        This is useful for event triggers.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Invent pre-commit/pre-prepare/pre-subcommit events for transaction
-        callbacks (Tom Lane)
-       </para>
-
-       <para>
-        Loadable modules that use transaction callbacks might need modification
-        to handle these new event types.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        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-<command>ALTER</>-object server hooks (KaiGai Kohei)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Implement a generic binary heap and use it for Merge-Append
-        operations (Abhijit Menon-Sen)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Provide a tool to help detect timezone abbreviation changes when
-        updating the <filename>src/timezone/data</> files
-        (Tom Lane)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add <application>pkg-config</> support for <application>libpq</>
-        and <application>ecpg</> libraries (Peter Eisentraut)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Remove <filename>src/tools/backend</>, now that the content is on
-        the <productname>PostgreSQL</> wiki (Bruce Momjian)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        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 <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 <acronym>WAL</> format
-        will need to be adjusted.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Allow <link linkend="plpython">PL/Python</link> to support
-        platform-specific include directories (Peter Eisentraut)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Allow <link linkend="plpython">PL/Python</link> on <productname>OS
-        X</> to build against custom versions of <application>Python</>
-        (Peter Eisentraut)
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title>Additional Modules</title>
-
-    <itemizedlist>
-
-      <listitem>
-       <para>
-        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 supports writes.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add <link linkend="pgxlogdump"><application>pg_xlogdump</></link>
-        contrib program (Andres Freund)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add support for indexing of regular-expression searches in
-        <link linkend="pgtrgm"><productname>pg_trgm</></link>
-        (Alexander Korotkov)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Improve <link linkend="pgtrgm"><productname>pg_trgm</></link>'s
-        handling of multibyte characters (Tom Lane)
-       </para>
-
-       <para>
-        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>
-        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>
-        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 <link
-        linkend="pgtesttiming"><application>pg_test_timing</></link>
-        (Bruce Momjian)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Improve output of <link
-        linkend="pgtestfsync"><application>pg_test_fsync</></link>
-        (Peter Geoghegan)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Create a dedicated foreign data wrapper, with its own option validator
-        function, for <link linkend="dblink">dblink</link> (Shigeru Hanada)
-       </para>
-
-       <para>
-        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>
-
-    </itemizedlist>
-
-    <sect4>
-     <title><link linkend="pgupgrade"><application>pg_upgrade</></link></title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        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.  Use the
-        <option>--jobs</> option to specify the level of parallelism.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Make <application>pg_upgrade</> create Unix-domain sockets in
-        the current directory (Bruce Momjian, Tom Lane)
-       </para>
-
-       <para>
-        This reduces the possibility that someone will accidentally connect
-        during the upgrade.
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        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 <application>pg_upgrade</> for databases
-        with many tables (Bruce Momjian)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Improve <application>pg_upgrade</>'s logs by showing
-        executed commands (&Aacute;lvaro Herrera)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Improve <application>pg_upgrade</>'s status display during
-        copy/link (Bruce Momjian)
-       </para>
-      </listitem>
-
-     </itemizedlist>
-
-    </sect4>
-
-    <sect4>
-     <title><link linkend="pgbench"><application>pgbench</></link></title>
-
-     <itemizedlist>
-
-      <listitem>
-       <para>
-        Add <option>--foreign-keys</> option to <application>pgbench</>
-        (Jeff Janes)
-       </para>
-
-       <para>
-        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 <application>pgbench</> to aggregate performance statistics
-        and produce output every <option>--aggregate-interval</>
-        seconds (Tomas Vondra)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        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
-        <application>pgbench</>'s initialization mode (Robert Haas,
-        Peter Eisentraut)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add <application>pgbench</> <option>-q</> mode to print one output
-        line every five seconds (Tomas Vondra)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Output <application>pgbench</> elapsed and estimated remaining
-        time during initialization (Tomas Vondra)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        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>
-
-    </itemizedlist>
-
-    </sect4>
-
-   </sect3>
-
-   <sect3>
-    <title>Documentation</title>
-
-    <itemizedlist>
-
-      <listitem>
-       <para>
-        Allow <productname>EPUB</>-format documentation to be created
-        (Peter Eisentraut)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Update <productname>FreeBSD</> kernel configuration documentation
-        (Brad Davis)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Improve <link linkend="tutorial-window"><literal>WINDOW</>
-        function</link> documentation (Bruce Momjian, Florian Pflug)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Add <link linkend="docguide-toolsets">instructions</link> for setting
-        up the documentation tool chain on <productname>macOS</>
-        (Peter Eisentraut)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-        Improve <link
-        linkend="guc-commit-delay"><varname>commit_delay</></link>
-        documentation (Peter Geoghegan)
-       </para>
-      </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-  </sect2>
- </sect1>
diff --git a/doc/src/sgml/release-old.sgml b/doc/src/sgml/release-old.sgml
deleted file mode 100644
index d56a5f65b4ddfd960b8b7bcdcc87fd5714aac662..0000000000000000000000000000000000000000
--- a/doc/src/sgml/release-old.sgml
+++ /dev/null
@@ -1,6657 +0,0 @@
-<!-- doc/src/sgml/release-old.sgml -->
-<!-- See header comment in release.sgml about typical markup -->
-
- <sect1 id="release-7-3-21">
-  <title>Release 7.3.21</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2008-01-07</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 7.3.20,
-   including fixes for significant security issues.
-  </para>
-
-  <para>
-   This is expected to be the last <productname>PostgreSQL</> release
-   in the 7.3.X series.  Users are encouraged to update to a newer
-   release branch soon.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 7.3.21</title>
-
-   <para>
-    A dump/restore is not required for those running 7.3.X.  However,
-    if you are upgrading from a version earlier than 7.3.13,
-    see <xref linkend="release-7-3-13">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Prevent functions in indexes from executing with the privileges of
-      the user running <command>VACUUM</>, <command>ANALYZE</>, etc (Tom)
-     </para>
-
-     <para>
-      Functions used in index expressions and partial-index
-      predicates are evaluated whenever a new table entry is made.  It has
-      long been understood that this poses a risk of trojan-horse code
-      execution if one modifies a table owned by an untrustworthy user.
-      (Note that triggers, defaults, check constraints, etc. pose the
-      same type of risk.)  But functions in indexes pose extra danger
-      because they will be executed by routine maintenance operations
-      such as <command>VACUUM FULL</>, which are commonly performed
-      automatically under a superuser account.  For example, a nefarious user
-      can execute code with superuser privileges by setting up a
-      trojan-horse index definition and waiting for the next routine vacuum.
-      The fix arranges for standard maintenance operations
-      (including <command>VACUUM</>, <command>ANALYZE</>, <command>REINDEX</>,
-      and <command>CLUSTER</>) to execute as the table owner rather than
-      the calling user, using the same privilege-switching mechanism already
-      used for <literal>SECURITY DEFINER</> functions.  To prevent bypassing
-      this security measure, execution of <command>SET SESSION
-      AUTHORIZATION</> and <command>SET ROLE</> is now forbidden within a
-      <literal>SECURITY DEFINER</> context.  (CVE-2007-6600)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Require non-superusers who use <filename>/contrib/dblink</> to use only
-      password authentication, as a security measure (Joe)
-     </para>
-
-     <para>
-      The fix that appeared for this in 7.3.20 was incomplete, as it plugged
-      the hole for only some <filename>dblink</> functions.  (CVE-2007-6601,
-      CVE-2007-3278)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix potential crash in <function>translate()</> when using a multibyte
-      database encoding (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <filename>contrib/tablefunc</>'s <function>crosstab()</> handle
-      NULL rowid as a category in its own right, rather than crashing (Joe)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Require a specific version of <productname>Autoconf</> to be used
-      when re-generating the <command>configure</> script (Peter)
-     </para>
-
-     <para>
-      This affects developers and packagers only.  The change was made
-      to prevent accidental use of untested combinations of
-      <productname>Autoconf</> and <productname>PostgreSQL</> versions.
-      You can remove the version check if you really want to use a
-      different <productname>Autoconf</> version, but it's
-      your responsibility whether the result works or not.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-7-3-20">
-  <title>Release 7.3.20</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2007-09-17</para>
-  </formalpara>
-
-  <para>
-   This release contains fixes from 7.3.19.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 7.3.20</title>
-
-   <para>
-    A dump/restore is not required for those running 7.3.X.  However,
-    if you are upgrading from a version earlier than 7.3.13,
-    see <xref linkend="release-7-3-13">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      Prevent index corruption when a transaction inserts rows and
-      then aborts close to the end of a concurrent <command>VACUUM</>
-      on the same table (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Make <command>CREATE DOMAIN ... DEFAULT NULL</> work properly (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Fix crash when <varname>log_min_error_statement</> logging runs out
-      of memory (Tom)
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Require non-superusers who use <filename>/contrib/dblink</> to use only
-      password authentication, as a security measure (Joe)
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-7-3-19">
-  <title>Release 7.3.19</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2007-04-23</para>
-  </formalpara>
-
-  <para>
-   This release contains fixes from 7.3.18,
-   including a security fix.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 7.3.19</title>
-
-   <para>
-    A dump/restore is not required for those running 7.3.X.  However,
-    if you are upgrading from a version earlier than 7.3.13,
-    see <xref linkend="release-7-3-13">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-    <para>
-     Support explicit placement of the temporary-table schema within
-     <varname>search_path</>, and disable searching it for functions
-     and operators (Tom)
-    </para>
-    <para>
-     This is needed to allow a security-definer function to set a
-     truly secure value of <varname>search_path</>.  Without it,
-     an unprivileged SQL user can use temporary objects to execute code
-     with the privileges of the security-definer function (CVE-2007-2138).
-     See <command>CREATE FUNCTION</> for more information.
-    </para>
-    </listitem>
-
-    <listitem>
-    <para>
-     Fix potential-data-corruption bug in how <command>VACUUM FULL</> handles
-     <command>UPDATE</> chains (Tom, Pavan Deolasee)
-    </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-7-3-18">
-  <title>Release 7.3.18</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2007-02-05</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 7.3.17, including
-   a security fix.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 7.3.18</title>
-
-   <para>
-    A dump/restore is not required for those running 7.3.X.  However,
-    if you are upgrading from a version earlier than 7.3.13,
-    see <xref linkend="release-7-3-13">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-    <para>
-     Remove security vulnerability that allowed connected users
-     to read backend memory (Tom)
-    </para>
-    <para>
-     The vulnerability involves changing the
-     data type of a table column used in a SQL function (CVE-2007-0555).
-     This error can easily be exploited to cause a backend crash, and in
-     principle might be used to read database content that the user
-     should not be able to access.
-    </para>
-    </listitem>
-
-    <listitem>
-    <para>
-     Fix rare bug wherein btree index page splits could fail
-     due to choosing an infeasible split point (Heikki Linnakangas)
-    </para>
-    </listitem>
-
-    <listitem>
-    <para>
-     Tighten security of multi-byte character processing for UTF8 sequences
-     over three bytes long (Tom)
-    </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-7-3-17">
-  <title>Release 7.3.17</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2007-01-08</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 7.3.16.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 7.3.17</title>
-
-   <para>
-    A dump/restore is not required for those running 7.3.X.  However,
-    if you are upgrading from a version earlier than 7.3.13,
-    see <xref linkend="release-7-3-13">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <itemizedlist>
-
-    <listitem>
-     <para>
-      <function>to_number()</> and <function>to_char(numeric)</>
-      are now <literal>STABLE</>, not <literal>IMMUTABLE</>, for
-      new <application>initdb</> installs (Tom)
-     </para>
-
-     <para>
-      This is because <varname>lc_numeric</> can potentially
-      change the output of these functions.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Improve index usage of regular expressions that use parentheses (Tom)
-     </para>
-
-     <para>
-      This improves <application>psql</> <literal>\d</> performance also.
-     </para>
-    </listitem>
-
-   </itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-7-3-16">
-  <title>Release 7.3.16</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2006-10-16</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 7.3.15.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 7.3.16</title>
-
-   <para>
-    A dump/restore is not required for those running 7.3.X.  However,
-    if you are upgrading from a version earlier than 7.3.13,
-    see <xref linkend="release-7-3-13">.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-<itemizedlist>
-<listitem><para>Fix corner cases in pattern matching for
- <application>psql</>'s <literal>\d</> commands</para></listitem>
-<listitem><para>Fix index-corrupting bugs in /contrib/ltree
- (Teodor)</para></listitem>
-<listitem><para>Back-port 7.4 spinlock code to improve performance and support
-64-bit architectures better</para> </listitem>
-<listitem><para>Fix SSL-related memory leak in libpq</para> </listitem>
-<listitem><para>Fix backslash escaping in /contrib/dbmirror</para></listitem>
-<listitem><para>Adjust regression tests for recent changes in US DST laws
-</para> </listitem>
-</itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-7-3-15">
-  <title>Release 7.3.15</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2006-05-23</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 7.3.14,
-   including patches for extremely serious security issues.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 7.3.15</title>
-
-   <para>
-    A dump/restore is not required for those running 7.3.X.  However,
-    if you are upgrading from a version earlier than 7.3.13,
-    see <xref linkend="release-7-3-13">.
-   </para>
-
-   <para>
-    Full security against the SQL-injection attacks described in
-    CVE-2006-2313 and CVE-2006-2314 might require changes in application
-    code.  If you have applications that embed untrustworthy strings
-    into SQL commands, you should examine them as soon as possible to
-    ensure that they are using recommended escaping techniques.  In
-    most cases, applications should be using subroutines provided by
-    libraries or drivers (such as <application>libpq</>'s
-    <function>PQescapeStringConn()</>) to perform string escaping,
-    rather than relying on <foreignphrase>ad hoc</> code to do it.
-   </para>
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-<itemizedlist>
-<listitem><para>Change the server to reject invalidly-encoded multibyte
-characters in all cases (Tatsuo, Tom)</para>
-<para>While <productname>PostgreSQL</> has been moving in this direction for
-some time, the checks are now applied uniformly to all encodings and all
-textual input, and are now always errors not merely warnings.  This change
-defends against SQL-injection attacks of the type described in CVE-2006-2313.
-</para></listitem>
-
-<listitem><para>Reject unsafe uses of <literal>\'</> in string literals</para>
-<para>As a server-side defense against SQL-injection attacks of the type
-described in CVE-2006-2314, the server now only accepts <literal>''</> and not
-<literal>\'</> as a representation of ASCII single quote in SQL string
-literals.  By default, <literal>\'</> is rejected only when
-<varname>client_encoding</> is set to a client-only encoding (SJIS, BIG5, GBK,
-GB18030, or UHC), which is the scenario in which SQL injection is possible.
-A new configuration parameter <varname>backslash_quote</> is available to
-adjust this behavior when needed.  Note that full security against
-CVE-2006-2314 might require client-side changes; the purpose of
-<varname>backslash_quote</> is in part to make it obvious that insecure
-clients are insecure.
-</para></listitem>
-
-<listitem><para>Modify <application>libpq</>'s string-escaping routines to be
-aware of encoding considerations</para>
-<para>This fixes <application>libpq</>-using applications for the security
-issues described in CVE-2006-2313 and CVE-2006-2314.
-Applications that use multiple <productname>PostgreSQL</> connections
-concurrently should migrate to <function>PQescapeStringConn()</> and
-<function>PQescapeByteaConn()</> to ensure that escaping is done correctly
-for the settings in use in each database connection.  Applications that
-do string escaping <quote>by hand</> should be modified to rely on library
-routines instead.
-</para></listitem>
-
-<listitem><para>Fix some incorrect encoding conversion functions</para>
-<para><function>win1251_to_iso</>, <function>alt_to_iso</>,
-<function>euc_tw_to_big5</>, <function>euc_tw_to_mic</>,
-<function>mic_to_euc_tw</> were all broken to varying
-extents.
-</para></listitem>
-
-<listitem><para>Clean up stray remaining uses of <literal>\'</> in strings
-(Bruce, Jan)</para></listitem>
-
-<listitem><para>Fix server to use custom DH SSL parameters correctly (Michael
-Fuhr)</para></listitem>
-
-<listitem><para>Fix various minor memory leaks</para></listitem>
-</itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-7-3-14">
-  <title>Release 7.3.14</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2006-02-14</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 7.3.13.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 7.3.14</title>
-
-   <para>
-    A dump/restore is not required for those running 7.3.X.  However,
-    if you are upgrading from a version earlier than 7.3.13,
-    see <xref linkend="release-7-3-13">.
-   </para>
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-<itemizedlist>
-
-<listitem><para>Fix potential crash in <command>SET
-SESSION AUTHORIZATION</> (CVE-2006-0553)</para>
-<para>An unprivileged user could crash the server process, resulting in
-momentary denial of service to other users, if the server has been compiled
-with Asserts enabled (which is not the default).
-Thanks to Akio Ishida for reporting this problem.
-</para></listitem>
-
-<listitem><para>Fix bug with row visibility logic in self-inserted
-rows (Tom)</para>
-<para>Under rare circumstances a row inserted by the current command
-could be seen as already valid, when it should not be.  Repairs bug
-created in 7.3.11 release.
-</para></listitem>
-
-<listitem><para>Fix race condition that could lead to <quote>file already
-exists</> errors during pg_clog file creation
-(Tom)</para></listitem>
-
-<listitem><para>Fix to allow restoring dumps that have cross-schema
-references to custom operators (Tom)</para></listitem>
-
-<listitem><para>Portability fix for testing presence of <function>finite</>
-and <function>isinf</> during configure (Tom)</para></listitem>
-
-</itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-7-3-13">
-  <title>Release 7.3.13</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2006-01-09</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 7.3.12.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 7.3.13</title>
-
-   <para>
-    A dump/restore is not required for those running 7.3.X.  However,
-    if you are upgrading from a version earlier than 7.3.10,
-    see <xref linkend="release-7-3-10">.
-    Also, you might need to <command>REINDEX</> indexes on textual
-    columns after updating, if you are affected by the locale or
-    <application>plperl</> issues described below.
-   </para>
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-<itemizedlist>
-
-<listitem><para>Fix character string comparison for locales that consider
-different character combinations as equal, such as Hungarian (Tom)</para>
-<para>This might require <command>REINDEX</> to fix existing indexes on
-textual columns.</para></listitem>
-
-<listitem><para>Set locale environment variables during postmaster startup
-to ensure that <application>plperl</> won't change the locale later</para>
-<para>This fixes a problem that occurred if the <application>postmaster</> was
-started with environment variables specifying a different locale than what
-<application>initdb</> had been told.  Under these conditions, any use of
-<application>plperl</> was likely to lead to corrupt indexes.  You might need
-<command>REINDEX</> to fix existing indexes on
-textual columns if this has happened to you.</para></listitem>
-
-<listitem><para>Fix longstanding bug in strpos() and regular expression
-handling in certain rarely used Asian multi-byte character sets (Tatsuo)
-</para></listitem>
-
-<listitem><para>Fix bug in <filename>/contrib/pgcrypto</> gen_salt,
-which caused it not to use all available salt space for MD5 and
-XDES algorithms (Marko Kreen, Solar Designer)</para>
-<para>Salts for Blowfish and standard DES are unaffected.</para></listitem>
-
-<listitem><para>Fix <filename>/contrib/dblink</> to throw an error,
-rather than crashing, when the number of columns specified is different from
-what's actually returned by the query (Joe)</para></listitem>
-
-</itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-7-3-12">
-  <title>Release 7.3.12</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2005-12-12</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 7.3.11.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 7.3.12</title>
-
-   <para>
-    A dump/restore is not required for those running 7.3.X.  However,
-    if you are upgrading from a version earlier than 7.3.10,
-    see <xref linkend="release-7-3-10">.
-   </para>
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-<itemizedlist>
-
-<listitem><para>Fix race condition in transaction log management</para>
-<para>There was a narrow window in which an I/O operation could be initiated
-for the wrong page, leading to an Assert failure or data
-corruption.</para>
-</listitem>
-
-<listitem><para><filename>/contrib/ltree</> fixes (Teodor)</para></listitem>
-
-<listitem><para>Fix longstanding planning error for outer joins</para>
-<para>This bug sometimes caused a bogus error <quote>RIGHT JOIN is
-only supported with merge-joinable join conditions</>.</para></listitem>
-
-<listitem><para>Prevent core dump in <application>pg_autovacuum</> when a
-table has been dropped</para></listitem>
-
-</itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-7-3-11">
-  <title>Release 7.3.11</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2005-10-04</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 7.3.10.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 7.3.11</title>
-
-   <para>
-    A dump/restore is not required for those running 7.3.X.  However,
-    if you are upgrading from a version earlier than 7.3.10,
-    see <xref linkend="release-7-3-10">.
-   </para>
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-<itemizedlist>
-<listitem><para>Fix error that allowed <command>VACUUM</> to remove
-<literal>ctid</> chains too soon, and add more checking in code that follows
-<literal>ctid</> links</para>
-<para>This fixes a long-standing problem that could cause crashes in very rare
-circumstances.</para></listitem>
-<listitem><para>Fix <type>CHAR()</> to properly pad spaces to the specified
-length when using a multiple-byte character set (Yoshiyuki Asaba)</para>
-<para>In prior releases, the padding of <type>CHAR()</> was incorrect
-because it only padded to the specified number of bytes without
-considering how many characters were stored.</para></listitem>
-<listitem><para>Fix missing rows in queries like <literal>UPDATE a=... WHERE
-a...</> with GiST index on column <literal>a</></para></listitem>
-<listitem><para>Improve checking for partially-written WAL
-pages</para></listitem>
-<listitem><para>Improve robustness of signal handling when SSL is
-enabled</para></listitem>
-<listitem><para>Various memory leakage fixes</para></listitem>
-<listitem><para>Various portability improvements</para></listitem>
-<listitem><para>Fix PL/pgSQL to handle <literal>var := var</> correctly when
-the variable is of pass-by-reference type</para></listitem>
-</itemizedlist>
-
-  </sect2>
- </sect1>
-
- <sect1 id="release-7-3-10">
-  <title>Release 7.3.10</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2005-05-09</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 7.3.9, including several
-   security-related issues.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 7.3.10</title>
-
-   <para>
-    A dump/restore is not required for those running 7.3.X.  However,
-    it is one possible way of handling a significant security problem
-    that has been found in the initial contents of 7.3.X system
-    catalogs.  A dump/initdb/reload sequence using 7.3.10's initdb will
-    automatically correct this problem.
-   </para>
-
-   <para>
-    The security problem is that the built-in character set encoding
-    conversion functions can be invoked from SQL commands by unprivileged
-    users, but the functions were not designed for such use and are not
-    secure against malicious choices of arguments.  The fix involves changing
-    the declared parameter list of these functions so that they can no longer
-    be invoked from SQL commands.  (This does not affect their normal use
-    by the encoding conversion machinery.)
-    It is strongly recommended that all installations repair this error,
-    either by initdb or by following the manual repair procedure given
-    below.  The error at least allows unprivileged database users to crash
-    their server process, and might allow unprivileged users to gain the
-    privileges of a database superuser.
-   </para>
-
-   <para>
-    If you wish not to do an initdb, perform the following procedure instead.
-    As the database superuser, do:
-
-<programlisting>
-BEGIN;
-UPDATE pg_proc SET proargtypes[3] = 'internal'::regtype
-WHERE pronamespace = 11 AND pronargs = 5
-     AND proargtypes[2] = 'cstring'::regtype;
--- The command should report having updated 90 rows;
--- if not, rollback and investigate instead of committing!
-COMMIT;
-</programlisting>
-   </para>
-
-   <para>
-    The above procedure must be carried out in <emphasis>each</> database
-    of an installation, including <literal>template1</>, and ideally
-    including <literal>template0</> as well.  If you do not fix the
-    template databases then any subsequently created databases will contain
-    the same error.  <literal>template1</> can be fixed in the same way
-    as any other database, but fixing <literal>template0</> requires
-    additional steps.  First, from any database issue:
-<programlisting>
-UPDATE pg_database SET datallowconn = true WHERE datname = 'template0';
-</programlisting>
-     Next connect to <literal>template0</> and perform the above repair
-     procedure.  Finally, do:
-<programlisting>
--- re-freeze template0:
-VACUUM FREEZE;
--- and protect it against future alterations:
-UPDATE pg_database SET datallowconn = false WHERE datname = 'template0';
-</programlisting>
-   </para>
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-<itemizedlist>
-<listitem><para>Change encoding function signature to prevent
-misuse</para></listitem>
-<listitem><para>Repair ancient race condition that allowed a transaction to be
-seen as committed for some purposes (eg SELECT FOR UPDATE) slightly sooner
-than for other purposes</para>
-<para>This is an extremely serious bug since it could lead to apparent
-data inconsistencies being briefly visible to applications.</para></listitem>
-<listitem><para>Repair race condition between relation extension and
-VACUUM</para>
-<para>This could theoretically have caused loss of a page's worth of
-freshly-inserted data, although the scenario seems of very low probability.
-There are no known cases of it having caused more than an Assert failure.
-</para></listitem>
-<listitem><para>Fix comparisons of <type>TIME WITH TIME ZONE</> values</para>
-<para>
-The comparison code was wrong in the case where the
-<literal>--enable-integer-datetimes</> configuration switch had been used.
-NOTE: if you have an index on a <type>TIME WITH TIME ZONE</> column,
-it will need to be <command>REINDEX</>ed after installing this update, because
-the fix corrects the sort order of column values.
-</para></listitem>
-<listitem><para>Fix <function>EXTRACT(EPOCH)</> for
-<type>TIME WITH TIME ZONE</> values</para></listitem>
-<listitem><para>Fix mis-display of negative fractional seconds in
-<type>INTERVAL</> values</para>
-<para>
-This error only occurred when the
-<literal>--enable-integer-datetimes</> configuration switch had been used.
-</para></listitem>
-<listitem><para>Additional buffer overrun checks in plpgsql
-(Neil)</para></listitem>
-<listitem><para>Fix pg_dump to dump trigger names containing <literal>%</>
-correctly (Neil)</para></listitem>
-<listitem><para>Prevent <function>to_char(interval)</> from dumping core for
-month-related formats</para></listitem>
-<listitem><para>Fix <filename>contrib/pgcrypto</> for newer OpenSSL builds
-(Marko Kreen)</para></listitem>
-<listitem><para>Still more 64-bit fixes for
-<filename>contrib/intagg</></para></listitem>
-<listitem><para>Prevent incorrect optimization of functions returning
-<type>RECORD</></para></listitem>
-</itemizedlist>
-
- </sect2>
-</sect1>
-
- <sect1 id="release-7-3-9">
-  <title>Release 7.3.9</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2005-01-31</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 7.3.8, including several
-   security-related issues.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 7.3.9</title>
-
-   <para>
-    A dump/restore is not required for those running 7.3.X.
-   </para>
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-<itemizedlist>
-<listitem><para>Disallow <command>LOAD</> to non-superusers</para>
-<para>
-On platforms that will automatically execute initialization functions of a
-shared library (this includes at least Windows and ELF-based Unixen),
-<command>LOAD</> can be used to make the server execute arbitrary code.
-Thanks to NGS Software for reporting this.</para></listitem>
-<listitem><para>Check that creator of an aggregate function has the right to
-execute the specified transition functions</para>
-<para>
-This oversight made it possible to bypass denial of EXECUTE
-permission on a function.</para></listitem>
-<listitem><para>Fix security and 64-bit issues in
-contrib/intagg</para></listitem>
-<listitem><para>Add needed STRICT marking to some contrib functions (Kris
-Jurka)</para></listitem>
-<listitem><para>Avoid buffer overrun when plpgsql cursor declaration has too
-many parameters (Neil)</para></listitem>
-<listitem><para>Fix planning error for FULL and RIGHT outer joins</para>
-<para>
-The result of the join was mistakenly supposed to be sorted the same as the
-left input.  This could not only deliver mis-sorted output to the user, but
-in case of nested merge joins could give outright wrong answers.
-</para></listitem>
-<listitem><para>Fix plperl for quote marks in tuple fields</para></listitem>
-<listitem><para>Fix display of negative intervals in SQL and GERMAN
-datestyles</para></listitem>
-</itemizedlist>
-
- </sect2>
-</sect1>
-
- <sect1 id="release-7-3-8">
-  <title>Release 7.3.8</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2004-10-22</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 7.3.7.
-  </para>
-
-
-  <sect2>
-   <title>Migration to Version 7.3.8</title>
-
-   <para>
-    A dump/restore is not required for those running 7.3.X.
-   </para>
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-<itemizedlist>
-<listitem><para>Repair possible failure to update hint bits on disk</para>
-<para>
-Under rare circumstances this oversight could lead to
-<quote>could not access transaction status</> failures, which qualifies
-it as a potential-data-loss bug.
-</para></listitem>
-<listitem><para>Ensure that hashed outer join does not miss tuples</para>
-<para>
-Very large left joins using a hash join plan could fail to output unmatched
-left-side rows given just the right data distribution.
-</para></listitem>
-<listitem><para>Disallow running pg_ctl as root</para>
-<para>
-This is to guard against any possible security issues.
-</para></listitem>
-<listitem><para>Avoid using temp files in /tmp in make_oidjoins_check</para>
-<para>
-This has been reported as a security issue, though it's hardly worthy of
-concern since there is no reason for non-developers to use this script anyway.
-</para></listitem>
-</itemizedlist>
-
- </sect2>
-</sect1>
-
- <sect1 id="release-7-3-7">
-  <title>Release 7.3.7</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2004-08-16</para>
-  </formalpara>
-
-  <para>
-   This release contains one critical fix over 7.3.6, and some minor items.
-  </para>
-
-
-  <sect2>
-   <title>Migration to Version 7.3.7</title>
-
-   <para>
-    A dump/restore is not required for those running 7.3.X.
-   </para>
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-<itemizedlist>
-<listitem><para>Prevent possible loss of committed transactions during crash</para>
-<para>
-Due to insufficient interlocking between transaction commit and checkpointing,
-it was possible for transactions committed just before the most recent
-checkpoint to be lost, in whole or in part, following a database crash and
-restart.  This is a serious bug that has existed
-since <productname>PostgreSQL</productname> 7.1.
-</para></listitem>
-<listitem><para>Remove asymmetrical word processing in tsearch (Teodor)</para></listitem>
-<listitem><para>Properly schema-qualify function names when pg_dump'ing a CAST</para></listitem>
-</itemizedlist>
-
- </sect2>
-</sect1>
-
- <sect1 id="release-7-3-6">
-  <title>Release 7.3.6</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2004-03-02</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 7.3.5.
-  </para>
-
-
-  <sect2>
-   <title>Migration to Version 7.3.6</title>
-
-   <para>
-    A dump/restore is <emphasis>not</emphasis> required for those
-    running 7.3.*.
-   </para>
-
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-<itemizedlist>
-<listitem><para>Revert erroneous changes in rule permissions checking</para>
-<para>A patch applied in 7.3.3 to fix a corner case in rule permissions checks
-turns out to have disabled rule-related permissions checks in many
-not-so-corner cases.  This would for example allow users to insert into views
-they weren't supposed to have permission to insert into.  We have therefore
-reverted the 7.3.3 patch.  The original bug will be fixed in 8.0.
-</para></listitem>
-<listitem><para>Repair incorrect order of operations in
-GetNewTransactionId()</para>
-<para>
-This bug could result in failure under out-of-disk-space conditions, including
-inability to restart even after disk space is freed.
-</para></listitem>
-<listitem><para>Ensure configure selects -fno-strict-aliasing even when
-an external value for CFLAGS is supplied</para>
-<para>
-On some platforms, building with -fstrict-aliasing causes bugs.
-</para></listitem>
-<listitem><para>Make pg_restore handle 64-bit off_t correctly</para>
-<para>
-This bug prevented proper restoration from archive files exceeding 4 GB.
-</para></listitem>
-<listitem><para>Make contrib/dblink not assume that local and remote type OIDs
-match (Joe)</para></listitem>
-<listitem><para>Quote connectby()'s start_with argument properly (Joe)</para></listitem>
-<listitem><para>Don't crash when a rowtype argument to a plpgsql function is
-NULL</para></listitem>
-<listitem><para>Avoid generating invalid character encoding sequences in
-corner cases when planning LIKE operations</para></listitem>
-<listitem><para>Ensure text_position() cannot scan past end of source string
-in multibyte cases (Korea PostgreSQL Users' Group)</para></listitem>
-<listitem><para>Fix index optimization and selectivity estimates for LIKE
-operations on bytea columns (Joe)</para></listitem>
-</itemizedlist>
-
- </sect2>
-</sect1>
-
- <sect1 id="release-7-3-5">
-  <title>Release 7.3.5</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2003-12-03</para>
-  </formalpara>
-
-  <para>
-   This has a variety of fixes from 7.3.4.
-  </para>
-
-
-  <sect2>
-   <title>Migration to Version 7.3.5</title>
-
-   <para>
-    A dump/restore is <emphasis>not</emphasis> required for those
-    running 7.3.*.
-   </para>
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-<itemizedlist>
-<listitem><para>Force zero_damaged_pages to be on during recovery from WAL</para></listitem>
-<listitem><para>Prevent some obscure cases of <quote>variable not in subplan target lists</quote></para></listitem>
-<listitem><para>Force stats processes to detach from shared memory, ensuring cleaner shutdown</para></listitem>
-<listitem><para>Make PQescapeBytea and byteaout consistent with each other (Joe)</para></listitem>
-<listitem><para>Added missing SPI_finish() calls to dblink's get_tuple_of_interest() (Joe)</para></listitem>
-<listitem><para>Fix for possible foreign key violation when rule rewrites INSERT (Jan)</para></listitem>
-<listitem><para>Support qualified type names in PL/Tcl's spi_prepare command (Jan)</para></listitem>
-<listitem><para>Make pg_dump handle a procedural language handler located in pg_catalog</para></listitem>
-<listitem><para>Make pg_dump handle cases where a custom opclass is in another schema</para></listitem>
-<listitem><para>Make pg_dump dump binary-compatible casts correctly (Jan)</para></listitem>
-<listitem><para>Fix insertion of expressions containing subqueries into rule bodies</para></listitem>
-<listitem><para>Fix incorrect argument processing in clusterdb script (Anand Ranganathan)</para></listitem>
-<listitem><para>Fix problems with dropped columns in plpython triggers</para></listitem>
-<listitem><para>Repair problems with to_char() reading past end of its input string (Karel)</para></listitem>
-<listitem><para>Fix GB18030 mapping errors (Tatsuo)</para></listitem>
-<listitem><para>Fix several problems with SSL error handling and asynchronous SSL I/O</para></listitem>
-<listitem><para>Remove ability to bind a list of values to a single parameter in JDBC
-(prevents possible SQL-injection attacks)</para></listitem>
-<listitem><para>Fix some errors in HAVE_INT64_TIMESTAMP code paths</para></listitem>
-<listitem><para>Fix corner case for btree search in parallel with first root page split</para></listitem>
-</itemizedlist>
-
- </sect2>
-</sect1>
-
- <sect1 id="release-7-3-4">
-  <title>Release 7.3.4</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2003-07-24</para>
-  </formalpara>
-
-  <para>
-   This has a variety of fixes from 7.3.3.
-  </para>
-
-
-  <sect2>
-   <title>Migration to Version 7.3.4</title>
-
-   <para>
-    A dump/restore is <emphasis>not</emphasis> required for those
-    running 7.3.*.
-   </para>
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-<itemizedlist>
-<listitem><para>Repair breakage in timestamp-to-date conversion for dates before 2000</para></listitem>
-<listitem><para>Prevent rare possibility of server startup failure (Tom)</para></listitem>
-<listitem><para>Fix bugs in interval-to-time conversion (Tom)</para></listitem>
-<listitem><para>Add constraint names in a few places in pg_dump (Rod)</para></listitem>
-<listitem><para>Improve performance of functions with many parameters (Tom)</para></listitem>
-<listitem><para>Fix to_ascii() buffer overruns (Tom)</para></listitem>
-<listitem><para>Prevent restore of database comments from throwing an error (Tom)</para></listitem>
-<listitem><para>Work around buggy strxfrm() present in some Solaris releases (Tom)</para></listitem>
-<listitem><para>Properly escape jdbc setObject() strings to improve security (Barry)</para></listitem>
-</itemizedlist>
-  </sect2>
- </sect1>
-
-
-<sect1 id="release-7-3-3">
- <title>Release 7.3.3</title>
-
- <formalpara>
-  <title>Release date:</title>
-  <para>2003-05-22</para>
- </formalpara>
-
- <para>
-  This release contains a variety of fixes for version 7.3.2.
- </para>
-
- <sect2>
-  <title>Migration to Version 7.3.3</title>
-
-  <para>
-   A dump/restore is <emphasis>not</emphasis> required for those
-   running version 7.3.*.
-  </para>
- </sect2>
-
- <sect2>
-  <title>Changes</title>
-
-<itemizedlist>
-<listitem><para>Repair sometimes-incorrect computation of StartUpID after a crash</para></listitem>
-<listitem><para>Avoid slowness with lots of deferred triggers in one transaction (Stephan)</para></listitem>
-<listitem><para>Don't lock referenced row when <command>UPDATE</command> doesn't change foreign key's value (Jan)</para></listitem>
-<listitem><para>Use <command>-fPIC</command> not <command>-fpic</command> on Sparc (Tom Callaway)</para></listitem>
-<listitem><para>Repair lack of schema-awareness in contrib/reindexdb</para></listitem>
-<listitem><para>Fix contrib/intarray error for zero-element result array (Teodor)</para></listitem>
-<listitem><para>Ensure createuser script will exit on control-C (Oliver)</para></listitem>
-<listitem><para>Fix errors when the type of a dropped column has itself been dropped</para></listitem>
-<listitem><para><command>CHECKPOINT</command> does not cause database panic on failure in noncritical steps</para></listitem>
-<listitem><para>Accept 60 in seconds fields of timestamp, time, interval input values</para></listitem>
-<listitem><para>Issue notice, not error, if <type>TIMESTAMP</type>,
-<type> TIME</type>, or <type>INTERVAL</type> precision too large</para></listitem>
-<listitem><para>Fix <function>abstime-to-time</function> cast function (fix is
-      not applied unless you <application>initdb</application>)</para></listitem>
-<listitem><para>Fix <application>pg_proc</application> entry for
-     <type>timestampt_izone</type> (fix is not applied unless you
-       <application>initdb</application>)</para></listitem>
-<listitem><para>Make <function>EXTRACT(EPOCH FROM timestamp without time zone)</function> treat input as local time</para></listitem>
-<listitem><para><command>'now'::timestamptz</command> gave wrong answer if timezone changed earlier in transaction</para></listitem>
-<listitem><para><envar>HAVE_INT64_TIMESTAMP</envar> code for time with timezone overwrote its input</para></listitem>
-<listitem><para>Accept <command>GLOBAL TEMP/TEMPORARY</command> as a
-      synonym for <command>TEMPORARY</command></para></listitem>
-<listitem><para>Avoid improper schema-privilege-check failure in foreign-key triggers</para></listitem>
-<listitem><para>Fix bugs in foreign-key triggers for <command>SET DEFAULT</command> action</para></listitem>
-<listitem><para>Fix incorrect time-qual check in row fetch for
-      <command>UPDATE</command> and <command>DELETE</command> triggers</para></listitem>
-<listitem><para>Foreign-key clauses were parsed but ignored in
-      <command>ALTER TABLE ADD COLUMN</command></para></listitem>
-<listitem><para>Fix createlang script breakage for case where handler function already exists</para></listitem>
-<listitem><para>Fix misbehavior on zero-column tables in <application>pg_dump</application>, COPY, ANALYZE, other places</para></listitem>
-<listitem><para>Fix misbehavior of <function>func_error()</function> on type names containing '%'</para></listitem>
-<listitem><para>Fix misbehavior of <function>replace()</function> on strings containing '%'</para></listitem>
-<listitem><para>Regular-expression patterns containing certain multibyte characters failed</para></listitem>
-<listitem><para>Account correctly for <command>NULL</command>s in more cases in join size estimation</para></listitem>
-<listitem><para>Avoid conflict with system definition of <function>isblank()</function> function or macro</para></listitem>
-<listitem><para>Fix failure to convert large code point values in EUC_TW conversions (Tatsuo)</para></listitem>
-<listitem><para>Fix error recovery for <function>SSL_read</function>/<function>SSL_write</function> calls</para></listitem>
-<listitem><para>Don't do early constant-folding of type coercion expressions</para></listitem>
-<listitem><para>Validate page header fields immediately after reading in any page</para></listitem>
-<listitem><para>Repair incorrect check for ungrouped variables in unnamed joins</para></listitem>
-<listitem><para>Fix buffer overrun in <function>to_ascii</function> (Guido Notari)</para></listitem>
-<listitem><para>contrib/ltree fixes (Teodor)</para></listitem>
-<listitem><para>Fix core dump in deadlock detection on machines where char is unsigned</para></listitem>
-<listitem><para>Avoid running out of buffers in many-way indexscan (bug introduced in 7.3)</para></listitem>
-<listitem><para>Fix planner's selectivity estimation functions to handle domains properly</para></listitem>
-<listitem><para>Fix <application>dbmirror</application> memory-allocation bug (Steven Singer)</para></listitem>
-<listitem><para>Prevent infinite loop in <function>ln(numeric)</function> due to roundoff error</para></listitem>
-<listitem><para><command>GROUP BY</command> got confused if there were multiple equal GROUP BY items</para></listitem>
-<listitem><para>Fix bad plan when inherited <command>UPDATE</command>/<command>DELETE</command> references another inherited table</para></listitem>
-<listitem><para>Prevent clustering on incomplete (partial or non-NULL-storing) indexes</para></listitem>
-<listitem><para>Service shutdown request at proper time if it arrives while still starting up</para></listitem>
-<listitem><para>Fix left-links in temporary indexes (could make backwards scans miss entries)</para></listitem>
-<listitem><para>Fix incorrect handling of client_encoding setting in postgresql.conf (Tatsuo)</para></listitem>
-<listitem><para>Fix failure to respond to <command>pg_ctl stop -m fast</command> after Async_NotifyHandler runs</para></listitem>
-<listitem><para>Fix SPI for case where rule contains multiple statements of the same type</para></listitem>
-<listitem><para>Fix problem with checking for wrong type of access privilege in rule query</para></listitem>
-<listitem><para>Fix problem with <command>EXCEPT</command> in <command>CREATE RULE</command></para></listitem>
-<listitem><para>Prevent problem with dropping temp tables having serial columns</para></listitem>
-<listitem><para>Fix replace_vars_with_subplan_refs failure in complex views</para></listitem>
-<listitem><para>Fix regexp slowness in single-byte encodings (Tatsuo)</para></listitem>
-<listitem><para>Allow qualified type names in <command>CREATE CAST</command>
-      and <command> DROP CAST</command></para></listitem>
-<listitem><para>Accept <function>SETOF type[]</function>, which formerly had to
-      be written <function>SETOF _type</function></para></listitem>
-<listitem><para>Fix <application>pg_dump</application> core dump in some cases with procedural languages</para></listitem>
-<listitem><para>Force ISO datestyle in <application>pg_dump</application> output, for portability (Oliver)</para></listitem>
-<listitem><para><application>pg_dump</application> failed to handle error return
-      from <function>lo_read</function> (Oleg Drokin)</para></listitem>
-<listitem><para><application>pg_dumpall</application> failed with groups having no members (Nick Eskelinen)</para></listitem>
-<listitem><para><application>pg_dumpall</application> failed to recognize --globals-only switch</para></listitem>
-<listitem><para>pg_restore failed to restore blobs if -X disable-triggers is specified</para></listitem>
-<listitem><para>Repair intrafunction memory leak in plpgsql</para></listitem>
-<listitem><para>pltcl's <command>elog</command> command dumped core if given wrong parameters (Ian Harding)</para></listitem>
-<listitem><para>plpython used wrong value of <envar>atttypmod</envar> (Brad McLean)</para></listitem>
-<listitem><para>Fix improper quoting of boolean values in Python interface (D'Arcy)</para></listitem>
-<listitem><para>Added <function>addDataType()</function> method to PGConnection interface for JDBC</para></listitem>
-<listitem><para>Fixed various problems with updateable ResultSets for JDBC (Shawn Green)</para></listitem>
-<listitem><para>Fixed various problems with DatabaseMetaData for JDBC (Kris Jurka, Peter Royal)</para></listitem>
-<listitem><para>Fixed problem with parsing table ACLs in JDBC</para></listitem>
-<listitem><para>Better error message for character set conversion problems in JDBC</para></listitem>
-</itemizedlist>
- </sect2>
-</sect1>
-
-
-<sect1 id="release-7-3-2">
- <title>Release 7.3.2</title>
-
- <formalpara>
-  <title>Release date:</title>
-  <para>2003-02-04</para>
- </formalpara>
-
- <para>
-  This release contains a variety of fixes for version 7.3.1.
- </para>
-
-
- <sect2>
-  <title>Migration to Version 7.3.2</title>
-
-  <para>
-   A dump/restore is <emphasis>not</emphasis> required for those
-   running version 7.3.*.
-  </para>
- </sect2>
-
- <sect2>
-  <title>Changes</title>
-
-<itemizedlist>
-<listitem><para>Restore creation of OID column in CREATE TABLE AS / SELECT INTO</para></listitem>
-<listitem><para>Fix <application>pg_dump</> core dump when dumping views having comments</para></listitem>
-<listitem><para>Dump DEFERRABLE/INITIALLY DEFERRED constraints properly</para></listitem>
-<listitem><para>Fix UPDATE when child table's column numbering differs from parent</para></listitem>
-<listitem><para>Increase default value of max_fsm_relations</para></listitem>
-<listitem><para>Fix problem when fetching backwards in a cursor for a single-row query</para></listitem>
-<listitem><para>Make backward fetch work properly with cursor on SELECT DISTINCT query</para></listitem>
-<listitem><para>Fix problems with loading <application>pg_dump</> files containing contrib/lo usage</para></listitem>
-<listitem><para>Fix problem with all-numeric user names</para></listitem>
-<listitem><para>Fix possible memory leak and core dump during disconnect in libpgtcl</para></listitem>
-<listitem><para>Make plpython's spi_execute command handle nulls properly (Andrew Bosma)</para></listitem>
-<listitem><para>Adjust plpython error reporting so that its regression test passes again</para></listitem>
-<listitem><para>Work with bison 1.875</para></listitem>
-<listitem><para>Handle mixed-case names properly in plpgsql's %type (Neil)</para></listitem>
-<listitem><para>Fix core dump in pltcl when executing a query rewritten by a rule</para></listitem>
-<listitem><para>Repair array subscript overruns (per report from Yichen Xie)</para></listitem>
-<listitem><para>Reduce MAX_TIME_PRECISION from 13 to 10 in floating-point case</para></listitem>
-<listitem><para>Correctly case-fold variable names in per-database and per-user settings</para></listitem>
-<listitem><para>Fix coredump in plpgsql's RETURN NEXT when SELECT into record returns no rows</para></listitem>
-<listitem><para>Fix outdated use of pg_type.typprtlen in python client interface</para></listitem>
-<listitem><para>Correctly handle fractional seconds in timestamps in JDBC driver</para></listitem>
-<listitem><para>Improve performance of getImportedKeys() in JDBC</para></listitem>
-<listitem><para>Make shared-library symlinks work standardly on HPUX (Giles)</para></listitem>
-<listitem><para>Repair inconsistent rounding behavior for timestamp, time, interval</para></listitem>
-<listitem><para>SSL negotiation fixes (Nathan Mueller)</para></listitem>
-<listitem><para>Make libpq's ~/.pgpass feature work when connecting with PQconnectDB</para></listitem>
-<listitem><para>Update my2pg, ora2pg</para></listitem>
-<listitem><para>Translation updates</para></listitem>
-<listitem><para>Add casts between types lo and oid in contrib/lo</para></listitem>
-<listitem><para>fastpath code now checks for privilege to call function</para></listitem>
-</itemizedlist>
- </sect2>
-</sect1>
-
-
-<sect1 id="release-7-3-1">
- <title>Release 7.3.1</title>
-
- <formalpara>
-  <title>Release date:</title>
-  <para>2002-12-18</para>
- </formalpara>
-
- <para>
-  This release contains a variety of fixes for version 7.3.
- </para>
-
-
- <sect2>
-  <title>Migration to Version 7.3.1</title>
-
-  <para>
-   A dump/restore is <emphasis>not</emphasis> required for those
-   running version 7.3. However, it should be noted that the main
-   <productname>PostgreSQL</productname> interface library, libpq,
-   has a new major version number for this release, which might require
-   recompilation of client code in certain cases.
-  </para>
- </sect2>
-
- <sect2>
-  <title>Changes</title>
-
-<itemizedlist>
-<listitem><para>Fix a core dump of COPY TO when client/server encodings don't match (Tom)</para></listitem>
-<listitem><para>Allow <application>pg_dump</> to work with pre-7.2 servers (Philip)</para></listitem>
-<listitem><para>contrib/adddepend fixes (Tom)</para></listitem>
-<listitem><para>Fix problem with deletion of per-user/per-database config settings (Tom)</para></listitem>
-<listitem><para>contrib/vacuumlo fix (Tom)</para></listitem>
-<listitem><para>Allow 'password' encryption even when pg_shadow contains MD5 passwords (Bruce)</para></listitem>
-<listitem><para>contrib/dbmirror fix (Steven Singer)</para></listitem>
-<listitem><para>Optimizer fixes (Tom)</para></listitem>
-<listitem><para>contrib/tsearch fixes (Teodor Sigaev, Magnus)</para></listitem>
-<listitem><para>Allow locale names to be mixed case (Nicolai Tufar)</para></listitem>
-<listitem><para>Increment libpq library's major version number (Bruce)</para></listitem>
-<listitem><para>pg_hba.conf error reporting fixes (Bruce, Neil)</para></listitem>
-<listitem><para>Add SCO Openserver 5.0.4 as a supported platform (Bruce)</para></listitem>
-<listitem><para>Prevent EXPLAIN from crashing server (Tom)</para></listitem>
-<listitem><para>SSL fixes (Nathan Mueller)</para></listitem>
-<listitem><para>Prevent composite column creation via ALTER TABLE (Tom)</para></listitem>
-</itemizedlist>
- </sect2>
-</sect1>
-
-
-<sect1 id="release-7-3">
- <title>Release 7.3</title>
-
- <formalpara>
-  <title>Release date:</title>
-  <para>2002-11-27</para>
- </formalpara>
-
- <sect2>
-  <title>Overview</title>
-
-  <para>
-   Major changes in this release:
-  </para>
-
-  <variablelist>
-   <varlistentry>
-    <term>Schemas</term>
-    <listitem>
-     <para>
-      Schemas allow users to create objects in separate namespaces,
-      so two people or applications can have tables with the same
-      name. There is also a public schema for shared tables.
-      Table/index creation can be restricted by removing privileges
-      on the public schema.
-     </para>
-    </listitem>
-   </varlistentry>
-
-   <varlistentry>
-    <term>Drop Column</term>
-    <listitem>
-     <para>
-      <productname>PostgreSQL</productname> now supports the
-      <literal>ALTER TABLE ... DROP COLUMN</literal> functionality.
-     </para>
-    </listitem>
-   </varlistentry>
-
-   <varlistentry>
-    <term>Table Functions</term>
-    <listitem>
-     <para>
-      Functions returning multiple rows and/or multiple columns are
-      now much easier to use than before.  You can call such a
-      <quote>table function</quote> in the <literal>SELECT</literal>
-      <literal>FROM</literal> clause, treating its output like a
-      table. Also, <application>PL/pgSQL</application> functions can
-      now return sets.
-     </para>
-    </listitem>
-   </varlistentry>
-
-   <varlistentry>
-    <term>Prepared Queries</term>
-    <listitem>
-     <para>
-      <productname>PostgreSQL</productname> now supports prepared
-      queries, for improved performance.
-     </para>
-    </listitem>
-   </varlistentry>
-
-   <varlistentry>
-    <term>Dependency Tracking</term>
-    <listitem>
-     <para>
-      <productname>PostgreSQL</productname> now records object
-      dependencies, which allows improvements in many areas.
-      <command>DROP</command> statements now take either
-      <literal>CASCADE</> or <literal>RESTRICT</> to control whether
-      dependent objects are also dropped.
-     </para>
-    </listitem>
-   </varlistentry>
-
-   <varlistentry>
-    <term>Privileges</term>
-    <listitem>
-     <para>
-      Functions and procedural languages now have privileges, and
-      functions can be defined to run with the privileges of their
-      creator.
-     </para>
-    </listitem>
-   </varlistentry>
-
-   <varlistentry>
-    <term>Internationalization</term>
-    <listitem>
-     <para>
-      Both multibyte and locale support are now always enabled.
-     </para>
-    </listitem>
-   </varlistentry>
-
-   <varlistentry>
-    <term>Logging</term>
-    <listitem>
-     <para>
-      A variety of logging options have been enhanced.
-     </para>
-    </listitem>
-   </varlistentry>
-
-   <varlistentry>
-    <term>Interfaces</term>
-    <listitem>
-     <para>
-      A large number of interfaces have been moved to <ulink
-      url="http://gborg.postgresql.org">http://gborg.postgresql.org</>
-      where they can be developed and released independently.
-     </para>
-    </listitem>
-   </varlistentry>
-
-   <varlistentry>
-    <term>Functions/Identifiers</term>
-    <listitem>
-     <para>
-      By default, functions can now take up to 32 parameters, and
-      identifiers can be up to 63 bytes long.  Also, <literal>OPAQUE</>
-      is now deprecated: there are specific <quote>pseudo-datatypes</>
-      to represent each of the former meanings of <literal>OPAQUE</>
-      in function argument and result types.
-     </para>
-    </listitem>
-   </varlistentry>
-
-  </variablelist>
- </sect2>
-
- <sect2>
-  <title>Migration to Version 7.3</title>
-
-  <para>
-   A dump/restore using <application>pg_dump</> is required for those
-   wishing to migrate data from any previous release. If your
-   application examines the system catalogs, additional changes will
-   be required due to the introduction of schemas in 7.3; for more
-   information, see: <ulink
-   url="http://developer.postgresql.org/~momjian/upgrade_tips_7.3"></>.
-  </para>
-
-  <para>
-   Observe the following incompatibilities:
-  </para>
-
-  <itemizedlist>
-   <listitem>
-    <para>
-     Pre-6.3 clients are no longer supported.
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>
-     <filename>pg_hba.conf</filename> now has a column for the user
-     name and additional features.  Existing files need to be
-     adjusted.
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>
-     Several <filename>postgresql.conf</filename> logging parameters
-     have been renamed.
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>
-     <literal>LIMIT #,#</literal> has been disabled; use
-     <literal>LIMIT # OFFSET #</literal>.
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>
-     <command>INSERT</command> statements with column lists must
-     specify a value for each specified column. For example,
-     <literal>INSERT INTO tab (col1, col2) VALUES ('val1')</literal>
-     is now invalid.  It's still allowed to supply fewer columns than
-     expected if the <command>INSERT</command> does not have a column list.
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>
-     <type>serial</type> columns are no longer automatically
-     <literal>UNIQUE</>; thus, an index will not automatically be
-     created.
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>
-     A <command>SET</command> command inside an aborted transaction
-     is now rolled back.
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>
-     <command>COPY</command> no longer considers missing trailing
-     columns to be null.  All columns need to be specified.
-     (However, one can achieve a similar effect by specifying a
-     column list in the <command>COPY</command> command.)
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>
-     The data type <type>timestamp</type> is now equivalent to
-     <type>timestamp without time zone</type>, instead of
-     <type>timestamp with time zone</type>.
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>
-     Pre-7.3 databases loaded into 7.3 will not have the new object
-     dependencies for <type>serial</type> columns, unique
-     constraints, and foreign keys. See the directory
-     <filename>contrib/adddepend/</filename> for a detailed
-     description and a script that will add such dependencies.
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>
-     An empty string (<literal>''</literal>) is no longer allowed as
-     the input into an integer field.  Formerly, it was silently
-     interpreted as 0.
-    </para>
-   </listitem>
-
-  </itemizedlist>
- </sect2>
-
- <sect2>
-  <title>Changes</title>
-
-  <sect3>
-   <title>Server Operation</title>
-<itemizedlist>
-<listitem><para>Add pg_locks view to show locks (Neil)</para></listitem>
-<listitem><para>Security fixes for password negotiation memory allocation (Neil)</para></listitem>
-<listitem><para>Remove support for version 0 FE/BE protocol (<productname>PostgreSQL</productname> 6.2 and earlier) (Tom)</para></listitem>
-<listitem><para>Reserve the last few backend slots for superusers, add parameter superuser_reserved_connections to control this (Nigel J. Andrews)</para></listitem>
-</itemizedlist>
-  </sect3>
-
-  <sect3>
-   <title>Performance</title>
-<itemizedlist>
-<listitem><para>Improve startup by calling localtime() only once (Tom)</para></listitem>
-<listitem><para>Cache system catalog information in flat files for faster startup (Tom)</para></listitem>
-<listitem><para>Improve caching of index information (Tom)</para></listitem>
-<listitem><para>Optimizer improvements (Tom, Fernando Nasser)</para></listitem>
-<listitem><para>Catalog caches now store failed lookups (Tom)</para></listitem>
-<listitem><para>Hash function improvements (Neil)</para></listitem>
-<listitem><para>Improve performance of query tokenization and network handling (Peter)</para></listitem>
-<listitem><para>Speed improvement for large object restore (Mario Weilguni)</para></listitem>
-<listitem><para>Mark expired index entries on first lookup, saving later heap fetches (Tom)</para></listitem>
-<listitem><para>Avoid excessive NULL bitmap padding (Manfred Koizar)</para></listitem>
-<listitem><para>Add BSD-licensed qsort() for Solaris, for performance (Bruce)</para></listitem>
-<listitem><para>Reduce per-row overhead by four bytes (Manfred Koizar)</para></listitem>
-<listitem><para>Fix GEQO optimizer bug (Neil Conway)</para></listitem>
-<listitem><para>Make WITHOUT OID actually save four bytes per row (Manfred Koizar)</para></listitem>
-<listitem><para>Add default_statistics_target variable to specify ANALYZE buckets (Neil)</para></listitem>
-<listitem><para>Use local buffer cache for temporary tables so no WAL overhead (Tom)</para></listitem>
-<listitem><para>Improve free space map performance on large tables (Stephen Marshall, Tom)</para></listitem>
-<listitem><para>Improved WAL write concurrency (Tom)</para></listitem>
-</itemizedlist>
-  </sect3>
-
-  <sect3>
-   <title>Privileges</title>
-<itemizedlist>
-<listitem><para>Add privileges on functions and procedural languages (Peter)</para></listitem>
-<listitem><para>Add OWNER to CREATE DATABASE so superusers can create databases on behalf of unprivileged users (Gavin Sherry, Tom)</para></listitem>
-<listitem><para>Add new object privilege bits EXECUTE and USAGE (Tom)</para></listitem>
-<listitem><para>Add SET SESSION AUTHORIZATION DEFAULT and RESET SESSION AUTHORIZATION (Tom)</para></listitem>
-<listitem><para>Allow functions to be executed with the privilege of the function owner (Peter)</para></listitem>
-</itemizedlist>
-  </sect3>
-
-  <sect3>
-   <title>Server Configuration</title>
-<itemizedlist>
-<listitem><para>Server log messages now tagged with LOG, not DEBUG (Bruce)</para></listitem>
-<listitem><para>Add user column to pg_hba.conf (Bruce)</para></listitem>
-<listitem><para>Have log_connections output two lines in log file (Tom)</para></listitem>
-<listitem><para>Remove debug_level from postgresql.conf, now server_min_messages (Bruce)</para></listitem>
-<listitem><para>New ALTER DATABASE/USER ... SET command for per-user/database initialization (Peter)</para></listitem>
-<listitem><para>New parameters server_min_messages and client_min_messages to control which messages are sent to the server logs or client applications (Bruce)</para></listitem>
-<listitem><para>Allow pg_hba.conf to specify lists of users/databases separated by commas, group names prepended with +, and file names prepended with @ (Bruce)</para></listitem>
-<listitem><para>Remove secondary password file capability and pg_password utility (Bruce)</para></listitem>
-<listitem><para>Add variable db_user_namespace for database-local user names (Bruce)</para></listitem>
-<listitem><para>SSL improvements (Bear Giles)</para></listitem>
-<listitem><para>Make encryption of stored passwords the default (Bruce)</para></listitem>
-<listitem><para>Allow pg_statistics to be reset by calling pg_stat_reset() (Christopher)</para></listitem>
-<listitem><para>Add log_duration parameter (Bruce)</para></listitem>
-<listitem><para>Rename debug_print_query to log_statement (Bruce)</para></listitem>
-<listitem><para>Rename show_query_stats to show_statement_stats (Bruce)</para></listitem>
-<listitem><para>Add param log_min_error_statement to print commands to logs on error (Gavin)</para></listitem>
-</itemizedlist>
-  </sect3>
-
-  <sect3>
-   <title>Queries</title>
-<itemizedlist>
-<listitem><para>Make cursors insensitive, meaning their contents do not change (Tom)</para></listitem>
-<listitem><para>Disable LIMIT #,# syntax; now only LIMIT # OFFSET # supported (Bruce)</para></listitem>
-<listitem><para>Increase identifier length to 63 (Neil, Bruce)</para></listitem>
-<listitem><para>UNION fixes for merging &gt;= 3 columns of different lengths (Tom)</para></listitem>
-<listitem><para>Add DEFAULT key word to INSERT, e.g., INSERT ... (..., DEFAULT, ...) (Rod)</para></listitem>
-<listitem><para>Allow views to have default values using ALTER COLUMN ... SET DEFAULT (Neil)</para></listitem>
-<listitem><para>Fail on INSERTs with column lists that don't supply all column values, e.g., INSERT INTO tab (col1, col2) VALUES ('val1');  (Rod)</para></listitem>
-<listitem><para>Fix for join aliases (Tom)</para></listitem>
-<listitem><para>Fix for FULL OUTER JOINs (Tom)</para></listitem>
-<listitem><para>Improve reporting of invalid identifier and location (Tom, Gavin)</para></listitem>
-<listitem><para>Fix OPEN cursor(args) (Tom)</para></listitem>
-<listitem><para>Allow 'ctid' to be used in a view and currtid(viewname) (Hiroshi)</para></listitem>
-<listitem><para>Fix for CREATE TABLE AS with UNION (Tom)</para></listitem>
-<listitem><para>SQL99 syntax improvements (Thomas)</para></listitem>
-<listitem><para>Add statement_timeout variable to cancel queries (Bruce)</para></listitem>
-<listitem><para>Allow prepared queries with PREPARE/EXECUTE (Neil)</para></listitem>
-<listitem><para>Allow FOR UPDATE to appear after LIMIT/OFFSET (Bruce)</para></listitem>
-<listitem><para>Add variable autocommit (Tom, David Van Wie)</para></listitem>
-</itemizedlist>
-  </sect3>
-
-  <sect3>
-   <title>Object Manipulation</title>
-<itemizedlist>
-<listitem><para>Make equals signs optional in CREATE DATABASE (Gavin Sherry)</para></listitem>
-<listitem><para>Make ALTER TABLE OWNER change index ownership too (Neil)</para></listitem>
-<listitem><para>New ALTER TABLE tabname ALTER COLUMN colname SET STORAGE controls TOAST storage, compression (John Gray)</para></listitem>
-<listitem><para>Add schema support, CREATE/DROP SCHEMA (Tom)</para></listitem>
-<listitem><para>Create schema for temporary tables (Tom)</para></listitem>
-<listitem><para>Add variable search_path for schema search (Tom)</para></listitem>
-<listitem><para>Add ALTER TABLE SET/DROP NOT NULL (Christopher)</para></listitem>
-<listitem><para>New CREATE FUNCTION volatility levels (Tom)</para></listitem>
-<listitem><para>Make rule names unique only per table (Tom)</para></listitem>
-<listitem><para>Add 'ON tablename' clause to DROP RULE and COMMENT ON RULE (Tom)</para></listitem>
-<listitem><para>Add ALTER TRIGGER RENAME (Joe)</para></listitem>
-<listitem><para>New current_schema() and current_schemas() inquiry functions (Tom)</para></listitem>
-<listitem><para>Allow functions to return multiple rows (table functions) (Joe)</para></listitem>
-<listitem><para>Make WITH optional in CREATE DATABASE, for consistency (Bruce)</para></listitem>
-<listitem><para>Add object dependency tracking (Rod, Tom)</para></listitem>
-<listitem><para>Add RESTRICT/CASCADE to DROP commands (Rod)</para></listitem>
-<listitem><para>Add ALTER TABLE DROP for non-CHECK CONSTRAINT (Rod)</para></listitem>
-<listitem><para>Autodestroy sequence on DROP of table with SERIAL (Rod)</para></listitem>
-<listitem><para>Prevent column dropping if column is used by foreign key (Rod)</para></listitem>
-<listitem><para>Automatically drop constraints/functions when object is dropped (Rod)</para></listitem>
-<listitem><para>Add CREATE/DROP OPERATOR CLASS (Bill Studenmund, Tom)</para></listitem>
-<listitem><para>Add ALTER TABLE DROP COLUMN (Christopher, Tom, Hiroshi)</para></listitem>
-<listitem><para>Prevent inherited columns from being removed or renamed (Alvaro Herrera)</para></listitem>
-<listitem><para>Fix foreign key constraints to not error on intermediate database states (Stephan)</para></listitem>
-<listitem><para>Propagate column or table renaming to foreign key constraints</para></listitem>
-<listitem><para>Add CREATE OR REPLACE VIEW (Gavin, Neil, Tom)</para></listitem>
-<listitem><para>Add CREATE OR REPLACE RULE (Gavin, Neil, Tom)</para></listitem>
-<listitem><para>Have rules execute alphabetically, returning more predictable values (Tom)</para></listitem>
-<listitem><para>Triggers are now fired in alphabetical order (Tom)</para></listitem>
-<listitem><para>Add /contrib/adddepend to handle pre-7.3 object dependencies (Rod)</para></listitem>
-<listitem><para>Allow better casting when inserting/updating values (Tom)</para></listitem>
-</itemizedlist>
-  </sect3>
-
-  <sect3>
-   <title>Utility Commands</title>
-<itemizedlist>
-<listitem><para>Have COPY TO output embedded carriage returns and newlines as \r and \n (Tom)</para></listitem>
-<listitem><para>Allow DELIMITER in COPY FROM to be 8-bit clean (Tatsuo)</para></listitem>
-<listitem><para>Make <application>pg_dump</> use ALTER TABLE ADD PRIMARY KEY, for performance (Neil)</para></listitem>
-<listitem><para>Disable brackets in multistatement rules (Bruce)</para></listitem>
-<listitem><para>Disable VACUUM from being called inside a function (Bruce)</para></listitem>
-<listitem><para>Allow dropdb and other scripts to use identifiers with spaces (Bruce)</para></listitem>
-<listitem><para>Restrict database comment changes to the current database</para></listitem>
-<listitem><para>Allow comments on operators, independent of the underlying function (Rod)</para></listitem>
-<listitem><para>Rollback SET commands in aborted transactions (Tom)</para></listitem>
-<listitem><para>EXPLAIN now outputs as a query (Tom)</para></listitem>
-<listitem><para>Display condition expressions and sort keys in EXPLAIN (Tom)</para></listitem>
-<listitem><para>Add 'SET LOCAL var = value' to set configuration variables for a single transaction (Tom)</para></listitem>
-<listitem><para>Allow ANALYZE to run in a transaction (Bruce)</para></listitem>
-<listitem><para>Improve COPY syntax using new WITH clauses, keep backward compatibility (Bruce)</para></listitem>
-<listitem><para>Fix <application>pg_dump</> to consistently output tags in non-ASCII dumps (Bruce)</para></listitem>
-<listitem><para>Make foreign key constraints clearer in dump file (Rod)</para></listitem>
-<listitem><para>Add COMMENT ON CONSTRAINT (Rod)</para></listitem>
-<listitem><para>Allow COPY TO/FROM to specify column names (Brent Verner)</para></listitem>
-<listitem><para>Dump UNIQUE and PRIMARY KEY constraints as ALTER TABLE (Rod)</para></listitem>
-<listitem><para>Have SHOW output a query result (Joe)</para></listitem>
-<listitem><para>Generate failure on short COPY lines rather than pad NULLs (Neil)</para></listitem>
-<listitem><para>Fix CLUSTER to preserve all table attributes (Alvaro Herrera)</para></listitem>
-<listitem><para>New pg_settings table to view/modify GUC settings (Joe)</para></listitem>
-<listitem><para>Add smart quoting, portability improvements to <application>pg_dump</> output (Peter)</para></listitem>
-<listitem><para>Dump serial columns out as SERIAL (Tom)</para></listitem>
-<listitem><para>Enable large file support, &gt;2G for <application>pg_dump</> (Peter, Philip Warner, Bruce)</para></listitem>
-<listitem><para>Disallow TRUNCATE on tables that are involved in referential constraints (Rod)</para></listitem>
-<listitem><para>Have TRUNCATE also auto-truncate the toast table of the relation (Tom)</para></listitem>
-<listitem><para>Add clusterdb utility that will auto-cluster an entire database based on previous CLUSTER operations (Alvaro Herrera)</para></listitem>
-<listitem><para>Overhaul pg_dumpall (Peter)</para></listitem>
-<listitem><para>Allow REINDEX of TOAST tables (Tom)</para></listitem>
-<listitem><para>Implemented START TRANSACTION, per SQL99 (Neil)</para></listitem>
-<listitem><para>Fix rare index corruption when a page split affects bulk delete (Tom)</para></listitem>
-<listitem><para>Fix ALTER TABLE ... ADD COLUMN for inheritance (Alvaro Herrera)</para></listitem>
-</itemizedlist>
-  </sect3>
-
-  <sect3>
-   <title>Data Types and Functions</title>
-<itemizedlist>
-<listitem><para>Fix factorial(0) to return 1 (Bruce)</para></listitem>
-<listitem><para>Date/time/timezone improvements (Thomas)</para></listitem>
-<listitem><para>Fix for array slice extraction (Tom)</para></listitem>
-<listitem><para>Fix extract/date_part to report proper microseconds for timestamp (Tatsuo)</para></listitem>
-<listitem><para>Allow text_substr() and bytea_substr() to read TOAST values more efficiently (John Gray)</para></listitem>
-<listitem><para>Add domain support (Rod)</para></listitem>
-<listitem><para>Make WITHOUT TIME ZONE the default for TIMESTAMP and TIME data types (Thomas)</para></listitem>
-<listitem><para>Allow alternate storage scheme of 64-bit integers for date/time types using --enable-integer-datetimes in configure (Thomas)</para></listitem>
-<listitem><para>Make timezone(timestamptz) return timestamp rather than a string (Thomas)</para></listitem>
-<listitem><para>Allow fractional seconds in date/time types for dates prior to 1BC (Thomas)</para></listitem>
-<listitem><para>Limit timestamp data types to 6 decimal places of precision (Thomas)</para></listitem>
-<listitem><para>Change timezone conversion functions from timetz() to timezone() (Thomas)</para></listitem>
-<listitem><para>Add configuration variables datestyle and timezone (Tom)</para></listitem>
-<listitem><para>Add OVERLAY(), which allows substitution of a substring in a string (Thomas)</para></listitem>
-<listitem><para>Add SIMILAR TO (Thomas, Tom)</para></listitem>
-<listitem><para>Add regular expression SUBSTRING(string FROM pat FOR escape) (Thomas)</para></listitem>
-<listitem><para>Add LOCALTIME and LOCALTIMESTAMP functions (Thomas)</para></listitem>
-<listitem><para>Add named composite types using CREATE TYPE typename AS (column) (Joe)</para></listitem>
-<listitem><para>Allow composite type definition in the table alias clause (Joe)</para></listitem>
-<listitem><para>Add new API to simplify creation of C language table functions (Joe)</para></listitem>
-<listitem><para>Remove ODBC-compatible empty parentheses from calls to SQL99 functions for which these parentheses do not match the standard (Thomas)</para></listitem>
-<listitem><para>Allow macaddr data type to accept 12 hex digits with no separators (Mike Wyer)</para></listitem>
-<listitem><para>Add CREATE/DROP CAST (Peter)</para></listitem>
-<listitem><para>Add IS DISTINCT FROM operator (Thomas)</para></listitem>
-<listitem><para>Add SQL99 TREAT() function, synonym for CAST() (Thomas)</para></listitem>
-<listitem><para>Add pg_backend_pid() to output backend pid (Bruce)</para></listitem>
-<listitem><para>Add IS OF / IS NOT OF type predicate (Thomas)</para></listitem>
-<listitem><para>Allow bit string constants without fully-specified length (Thomas)</para></listitem>
-<listitem><para>Allow conversion between 8-byte integers and bit strings (Thomas)</para></listitem>
-<listitem><para>Implement hex literal conversion to bit string literal (Thomas)</para></listitem>
-<listitem><para>Allow table functions to appear in the FROM clause (Joe)</para></listitem>
-<listitem><para>Increase maximum number of function parameters to 32 (Bruce)</para></listitem>
-<listitem><para>No longer automatically create index for SERIAL column (Tom)</para></listitem>
-<listitem><para>Add current_database() (Rod)</para></listitem>
-<listitem><para>Fix cash_words() to not overflow buffer (Tom)</para></listitem>
-<listitem><para>Add functions replace(), split_part(), to_hex() (Joe)</para></listitem>
-<listitem><para>Fix LIKE for bytea as a right-hand argument (Joe)</para></listitem>
-<listitem><para>Prevent crashes caused by SELECT cash_out(2) (Tom)</para></listitem>
-<listitem><para>Fix to_char(1,'FM999.99') to return a period (Karel)</para></listitem>
-<listitem><para>Fix trigger/type/language functions returning OPAQUE to return proper type (Tom)</para></listitem>
-</itemizedlist>
-  </sect3>
-
-  <sect3>
-   <title>Internationalization</title>
-<itemizedlist>
-<listitem><para>Add additional encodings: Korean (JOHAB), Thai (WIN874), Vietnamese (TCVN), Arabic (WIN1256), Simplified Chinese (GBK), Korean (UHC) (Eiji Tokuya)</para></listitem>
-<listitem><para>Enable locale support by default (Peter)</para></listitem>
-<listitem><para>Add locale variables (Peter)</para></listitem>
-<listitem><para>Escape byes &gt;= 0x7f for multibyte in PQescapeBytea/PQunescapeBytea (Tatsuo)</para></listitem>
-<listitem><para>Add locale awareness to regular expression character classes</para></listitem>
-<listitem><para>Enable multibyte support by default (Tatsuo)</para></listitem>
-<listitem><para>Add GB18030 multibyte support (Bill Huang)</para></listitem>
-<listitem><para>Add CREATE/DROP CONVERSION, allowing loadable encodings (Tatsuo, Kaori)</para></listitem>
-<listitem><para>Add pg_conversion table (Tatsuo)</para></listitem>
-<listitem><para>Add SQL99 CONVERT() function (Tatsuo)</para></listitem>
-<listitem><para>pg_dumpall, pg_controldata, and pg_resetxlog now national-language aware (Peter)</para></listitem>
-<listitem><para>New and updated translations</para></listitem>
-</itemizedlist>
-  </sect3>
-
-  <sect3>
-   <title>Server-side Languages</title>
-<itemizedlist>
-<listitem><para>Allow recursive SQL function (Peter)</para></listitem>
-<listitem><para>Change PL/Tcl build to use configured compiler and Makefile.shlib (Peter)</para></listitem>
-<listitem><para>Overhaul the PL/pgSQL FOUND variable to be more Oracle-compatible (Neil, Tom)</para></listitem>
-<listitem><para>Allow PL/pgSQL to handle quoted identifiers (Tom)</para></listitem>
-<listitem><para>Allow set-returning PL/pgSQL functions (Neil)</para></listitem>
-<listitem><para>Make PL/pgSQL schema-aware (Joe)</para></listitem>
-<listitem><para>Remove some memory leaks (Nigel J. Andrews, Tom)</para></listitem>
-</itemizedlist>
-  </sect3>
-
-  <sect3>
-   <title>psql</title>
-<itemizedlist>
-<listitem><para>Don't lowercase psql \connect database name for 7.2.0 compatibility (Tom)</para></listitem>
-<listitem><para>Add psql \timing to time user queries (Greg Sabino Mullane)</para></listitem>
-<listitem><para>Have psql \d show index information (Greg Sabino Mullane)</para></listitem>
-<listitem><para>New psql \dD shows domains (Jonathan Eisler)</para></listitem>
-<listitem><para>Allow psql to show rules on views (Paul ?)</para></listitem>
-<listitem><para>Fix for psql variable substitution (Tom)</para></listitem>
-<listitem><para>Allow psql \d to show temporary table structure (Tom)</para></listitem>
-<listitem><para>Allow psql \d to show foreign keys (Rod)</para></listitem>
-<listitem><para>Fix \? to honor \pset pager (Bruce)</para></listitem>
-<listitem><para>Have psql reports its version number on startup (Tom)</para></listitem>
-<listitem><para>Allow \copy to specify column names (Tom)</para></listitem>
-</itemizedlist>
-  </sect3>
-
-  <sect3>
-   <title>libpq</title>
-<itemizedlist>
-<listitem><para>Add ~/.pgpass to store host/user password combinations (Alvaro Herrera)</para></listitem>
-<listitem><para>Add PQunescapeBytea() function to libpq (Patrick Welche)</para></listitem>
-<listitem><para>Fix for sending large queries over non-blocking connections (Bernhard Herzog)</para></listitem>
-<listitem><para>Fix for libpq using timers on Win9X (David Ford)</para></listitem>
-<listitem><para>Allow libpq notify to handle servers with different-length identifiers (Tom)</para></listitem>
-<listitem><para>Add libpq PQescapeString() and PQescapeBytea() to Windows (Bruce)</para></listitem>
-<listitem><para>Fix for SSL with non-blocking connections (Jack Bates)</para></listitem>
-<listitem><para>Add libpq connection timeout parameter (Denis A Ustimenko)</para></listitem>
-</itemizedlist>
-  </sect3>
-
-  <sect3>
-   <title>JDBC</title>
-<itemizedlist>
-<listitem><para>Allow JDBC to compile with JDK 1.4 (Dave)</para></listitem>
-<listitem><para>Add JDBC 3 support (Barry)</para></listitem>
-<listitem><para>Allows JDBC to set loglevel by adding ?loglevel=X to the connection URL (Barry)</para></listitem>
-<listitem><para>Add Driver.info() message that prints out the version number (Barry)</para></listitem>
-<listitem><para>Add updateable result sets (Raghu Nidagal, Dave)</para></listitem>
-<listitem><para>Add support for callable statements (Paul Bethe)</para></listitem>
-<listitem><para>Add query cancel capability</para></listitem>
-<listitem><para>Add refresh row (Dave)</para></listitem>
-<listitem><para>Fix MD5 encryption handling for multibyte servers (Jun Kawai)</para></listitem>
-<listitem><para>Add support for prepared statements (Barry)</para></listitem>
-</itemizedlist>
-  </sect3>
-
-  <sect3>
-   <title>Miscellaneous Interfaces</title>
-<itemizedlist>
-<listitem><para>Fixed ECPG bug concerning octal numbers in single quotes (Michael)</para></listitem>
-<listitem><para>Move src/interfaces/libpgeasy to http://gborg.postgresql.org (Marc, Bruce)</para></listitem>
-<listitem><para>Improve Python interface (Elliot Lee, Andrew Johnson, Greg Copeland)</para></listitem>
-<listitem><para>Add libpgtcl connection close event (Gerhard Hintermayer)</para></listitem>
-<listitem><para>Move src/interfaces/libpq++ to http://gborg.postgresql.org (Marc, Bruce)</para></listitem>
-<listitem><para>Move src/interfaces/odbc to http://gborg.postgresql.org (Marc)</para></listitem>
-<listitem><para>Move src/interfaces/libpgeasy to http://gborg.postgresql.org (Marc, Bruce)</para></listitem>
-<listitem><para>Move src/interfaces/perl5 to http://gborg.postgresql.org (Marc, Bruce)</para></listitem>
-<listitem><para>Remove src/bin/pgaccess from main tree, now at http://www.pgaccess.org (Bruce)</para></listitem>
-<listitem><para>Add pg_on_connection_loss command to libpgtcl (Gerhard Hintermayer, Tom)</para></listitem>
-</itemizedlist>
-  </sect3>
-
-  <sect3>
-   <title>Source Code</title>
-<itemizedlist>
-<listitem><para>Fix for parallel make (Peter)</para></listitem>
-<listitem><para>AIX fixes for linking Tcl (Andreas Zeugswetter)</para></listitem>
-<listitem><para>Allow PL/Perl to build under Cygwin (Jason Tishler)</para></listitem>
-<listitem><para>Improve MIPS compiles (Peter, Oliver Elphick)</para></listitem>
-<listitem><para>Require Autoconf version 2.53 (Peter)</para></listitem>
-<listitem><para>Require readline and zlib by default in configure (Peter)</para></listitem>
-<listitem><para>Allow Solaris to use Intimate Shared Memory (ISM), for performance (Scott Brunza, P.J. Josh Rovero)</para></listitem>
-<listitem><para>Always enable syslog in compile, remove --enable-syslog option (Tatsuo)</para></listitem>
-<listitem><para>Always enable multibyte in compile, remove --enable-multibyte option (Tatsuo)</para></listitem>
-<listitem><para>Always enable locale in compile, remove --enable-locale option (Peter)</para></listitem>
-<listitem><para>Fix for Win9x DLL creation (Magnus Naeslund)</para></listitem>
-<listitem><para>Fix for link() usage by WAL code on Windows, BeOS (Jason Tishler)</para></listitem>
-<listitem><para>Add sys/types.h to c.h, remove from main files (Peter, Bruce)</para></listitem>
-<listitem><para>Fix AIX hang on SMP machines (Tomoyuki Niijima)</para></listitem>
-<listitem><para>AIX SMP hang fix (Tomoyuki Niijima)</para></listitem>
-<listitem><para>Fix pre-1970 date handling on newer glibc libraries (Tom)</para></listitem>
-<listitem><para>Fix PowerPC SMP locking (Tom)</para></listitem>
-<listitem><para>Prevent gcc -ffast-math from being used (Peter, Tom)</para></listitem>
-<listitem><para>Bison &gt;= 1.50 now required for developer builds</para></listitem>
-<listitem><para>Kerberos 5 support now builds with Heimdal (Peter)</para></listitem>
-<listitem><para>Add appendix in the User's Guide which lists SQL features (Thomas)</para></listitem>
-<listitem><para>Improve loadable module linking to use RTLD_NOW (Tom)</para></listitem>
-<listitem><para>New error levels WARNING, INFO, LOG, DEBUG[1-5] (Bruce)</para></listitem>
-<listitem><para>New src/port directory holds replaced libc functions (Peter, Bruce)</para></listitem>
-<listitem><para>New pg_namespace system catalog for schemas (Tom)</para></listitem>
-<listitem><para>Add pg_class.relnamespace for schemas (Tom)</para></listitem>
-<listitem><para>Add pg_type.typnamespace for schemas (Tom)</para></listitem>
-<listitem><para>Add pg_proc.pronamespace for schemas (Tom)</para></listitem>
-<listitem><para>Restructure aggregates to have pg_proc entries (Tom)</para></listitem>
-<listitem><para>System relations now have their own namespace, pg_* test not required (Fernando Nasser)</para></listitem>
-<listitem><para>Rename TOAST index names to be *_index rather than *_idx (Neil)</para></listitem>
-<listitem><para>Add namespaces for operators, opclasses (Tom)</para></listitem>
-<listitem><para>Add additional checks to server control file (Thomas)</para></listitem>
-<listitem><para>New Polish FAQ (Marcin Mazurek)</para></listitem>
-<listitem><para>Add Posix semaphore support (Tom)</para></listitem>
-<listitem><para>Document need for reindex (Bruce)</para></listitem>
-<listitem><para>Rename some internal identifiers to simplify Windows compile (Jan, Katherine Ward)</para></listitem>
-<listitem><para>Add documentation on computing disk space (Bruce)</para></listitem>
-<listitem><para>Remove KSQO from GUC (Bruce)</para></listitem>
-<listitem><para>Fix memory leak in rtree (Kenneth Been)</para></listitem>
-<listitem><para>Modify a few error messages for consistency (Bruce)</para></listitem>
-<listitem><para>Remove unused system table columns (Peter)</para></listitem>
-<listitem><para>Make system columns NOT NULL where appropriate (Tom)</para></listitem>
-<listitem><para>Clean up use of sprintf in favor of snprintf() (Neil, Jukka Holappa)</para></listitem>
-<listitem><para>Remove OPAQUE and create specific subtypes (Tom)</para></listitem>
-<listitem><para>Cleanups in array internal handling (Joe, Tom)</para></listitem>
-<listitem><para>Disallow pg_atoi('') (Bruce)</para></listitem>
-<listitem><para>Remove parameter wal_files because WAL files are now recycled (Bruce)</para></listitem>
-<listitem><para>Add version numbers to heap pages (Tom)</para></listitem>
-</itemizedlist>
-  </sect3>
-
-  <sect3>
-   <title>Contrib</title>
-<itemizedlist>
-<listitem><para>Allow inet arrays in /contrib/array (Neil)</para></listitem>
-<listitem><para>GiST fixes (Teodor Sigaev, Neil)</para></listitem>
-<listitem><para>Upgrade /contrib/mysql</para></listitem>
-<listitem><para>Add /contrib/dbsize which shows table sizes without vacuum (Peter)</para></listitem>
-<listitem><para>Add /contrib/intagg, integer aggregator routines (mlw)</para></listitem>
-<listitem><para>Improve /contrib/oid2name (Neil, Bruce)</para></listitem>
-<listitem><para>Improve /contrib/tsearch (Oleg, Teodor Sigaev)</para></listitem>
-<listitem><para>Cleanups of /contrib/rserver (Alexey V. Borzov)</para></listitem>
-<listitem><para>Update /contrib/oracle conversion utility (Gilles Darold)</para></listitem>
-<listitem><para>Update /contrib/dblink (Joe)</para></listitem>
-<listitem><para>Improve options supported by /contrib/vacuumlo (Mario Weilguni)</para></listitem>
-<listitem><para>Improvements to /contrib/intarray (Oleg, Teodor Sigaev, Andrey Oktyabrski)</para></listitem>
-<listitem><para>Add /contrib/reindexdb utility (Shaun Thomas)</para></listitem>
-<listitem><para>Add indexing to /contrib/isbn_issn (Dan Weston)</para></listitem>
-<listitem><para>Add /contrib/dbmirror (Steven Singer)</para></listitem>
-<listitem><para>Improve /contrib/pgbench (Neil)</para></listitem>
-<listitem><para>Add /contrib/tablefunc table function examples (Joe)</para></listitem>
-<listitem><para>Add /contrib/ltree data type for tree structures (Teodor Sigaev, Oleg Bartunov)</para></listitem>
-<listitem><para>Move /contrib/pg_controldata, pg_resetxlog into main tree (Bruce)</para></listitem>
-<listitem><para>Fixes to /contrib/cube (Bruno Wolff)</para></listitem>
-<listitem><para>Improve /contrib/fulltextindex (Christopher)</para></listitem>
-</itemizedlist>
-  </sect3>
-
- </sect2>
-</sect1>
-
- <sect1 id="release-7-2-8">
-  <title>Release 7.2.8</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2005-05-09</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 7.2.7, including one
-   security-related issue.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 7.2.8</title>
-
-   <para>
-    A dump/restore is not required for those running 7.2.X.
-   </para>
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-<itemizedlist>
-<listitem><para>Repair ancient race condition that allowed a transaction to be
-seen as committed for some purposes (eg SELECT FOR UPDATE) slightly sooner
-than for other purposes</para>
-<para>This is an extremely serious bug since it could lead to apparent
-data inconsistencies being briefly visible to applications.</para></listitem>
-<listitem><para>Repair race condition between relation extension and
-VACUUM</para>
-<para>This could theoretically have caused loss of a page's worth of
-freshly-inserted data, although the scenario seems of very low probability.
-There are no known cases of it having caused more than an Assert failure.
-</para></listitem>
-<listitem><para>Fix <function>EXTRACT(EPOCH)</> for
-<type>TIME WITH TIME ZONE</> values</para></listitem>
-<listitem><para>Additional buffer overrun checks in plpgsql
-(Neil)</para></listitem>
-<listitem><para>Fix pg_dump to dump index names and trigger names containing
-<literal>%</> correctly (Neil)</para></listitem>
-<listitem><para>Prevent <function>to_char(interval)</> from dumping core for
-month-related formats</para></listitem>
-<listitem><para>Fix <filename>contrib/pgcrypto</> for newer OpenSSL builds
-(Marko Kreen)</para></listitem>
-</itemizedlist>
-
- </sect2>
-</sect1>
-
- <sect1 id="release-7-2-7">
-  <title>Release 7.2.7</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2005-01-31</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 7.2.6, including several
-   security-related issues.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 7.2.7</title>
-
-   <para>
-    A dump/restore is not required for those running 7.2.X.
-   </para>
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-<itemizedlist>
-<listitem><para>Disallow <command>LOAD</> to non-superusers</para>
-<para>
-On platforms that will automatically execute initialization functions of a
-shared library (this includes at least Windows and ELF-based Unixen),
-<command>LOAD</> can be used to make the server execute arbitrary code.
-Thanks to NGS Software for reporting this.</para></listitem>
-<listitem><para>Add needed STRICT marking to some contrib functions (Kris
-Jurka)</para></listitem>
-<listitem><para>Avoid buffer overrun when plpgsql cursor declaration has too
-many parameters (Neil)</para></listitem>
-<listitem><para>Fix planning error for FULL and RIGHT outer joins</para>
-<para>
-The result of the join was mistakenly supposed to be sorted the same as the
-left input.  This could not only deliver mis-sorted output to the user, but
-in case of nested merge joins could give outright wrong answers.
-</para></listitem>
-<listitem><para>Fix display of negative intervals in SQL and GERMAN
-datestyles</para></listitem>
-</itemizedlist>
-
- </sect2>
-</sect1>
-
- <sect1 id="release-7-2-6">
-  <title>Release 7.2.6</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2004-10-22</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 7.2.5.
-  </para>
-
-
-  <sect2>
-   <title>Migration to Version 7.2.6</title>
-
-   <para>
-    A dump/restore is not required for those running 7.2.X.
-   </para>
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-<itemizedlist>
-<listitem><para>Repair possible failure to update hint bits on disk</para>
-<para>
-Under rare circumstances this oversight could lead to
-<quote>could not access transaction status</> failures, which qualifies
-it as a potential-data-loss bug.
-</para></listitem>
-<listitem><para>Ensure that hashed outer join does not miss tuples</para>
-<para>
-Very large left joins using a hash join plan could fail to output unmatched
-left-side rows given just the right data distribution.
-</para></listitem>
-<listitem><para>Disallow running pg_ctl as root</para>
-<para>
-This is to guard against any possible security issues.
-</para></listitem>
-<listitem><para>Avoid using temp files in /tmp in make_oidjoins_check</para>
-<para>
-This has been reported as a security issue, though it's hardly worthy of
-concern since there is no reason for non-developers to use this script anyway.
-</para></listitem>
-<listitem><para>Update to newer versions of Bison</para></listitem>
-</itemizedlist>
-
- </sect2>
-</sect1>
-
- <sect1 id="release-7-2-5">
-  <title>Release 7.2.5</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2004-08-16</para>
-  </formalpara>
-
-  <para>
-   This release contains a variety of fixes from 7.2.4.
-  </para>
-
-
-  <sect2>
-   <title>Migration to Version 7.2.5</title>
-
-   <para>
-    A dump/restore is not required for those running 7.2.X.
-   </para>
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-<itemizedlist>
-<listitem><para>Prevent possible loss of committed transactions during crash</para>
-<para>
-Due to insufficient interlocking between transaction commit and checkpointing,
-it was possible for transactions committed just before the most recent
-checkpoint to be lost, in whole or in part, following a database crash and
-restart.  This is a serious bug that has existed
-since <productname>PostgreSQL</productname> 7.1.
-</para></listitem>
-<listitem><para>Fix corner case for btree search in parallel with first root page split</para></listitem>
-<listitem><para>Fix buffer overrun in <function>to_ascii</function> (Guido Notari)</para></listitem>
-<listitem><para>Fix core dump in deadlock detection on machines where char is unsigned</para></listitem>
-<listitem><para>Fix failure to respond to <command>pg_ctl stop -m fast</command> after Async_NotifyHandler runs</para></listitem>
-<listitem><para>Repair memory leaks in pg_dump</para></listitem>
-<listitem><para>Avoid conflict with system definition of <function>isblank()</function> function or macro</para></listitem>
-</itemizedlist>
- </sect2>
-</sect1>
-
-<sect1 id="release-7-2-4">
- <title>Release 7.2.4</title>
-
- <formalpara>
-  <title>Release date:</title>
-  <para>2003-01-30</para>
- </formalpara>
-
- <para>
-  This release contains a variety of fixes for version 7.2.3,
-  including fixes to prevent possible data loss.
- </para>
-
- <sect2>
-  <title>Migration to Version 7.2.4</title>
-
-  <para>
-   A dump/restore is <emphasis>not</emphasis> required for those
-   running version 7.2.*.
-  </para>
- </sect2>
-
- <sect2>
-  <title>Changes</title>
-
-<itemizedlist>
-<listitem><para>Fix some additional cases of VACUUM "No one parent tuple was found" error</para></listitem>
-<listitem><para>Prevent VACUUM from being called inside a function  (Bruce)</para></listitem>
-<listitem><para>Ensure pg_clog updates are sync'd to disk before marking checkpoint complete</para></listitem>
-<listitem><para>Avoid integer overflow during large hash joins</para></listitem>
-<listitem><para>Make GROUP commands work when pg_group.grolist is large enough to be toasted</para></listitem>
-<listitem><para>Fix errors in datetime tables; some timezone names weren't being recognized</para></listitem>
-<listitem><para>Fix integer overflows in circle_poly(), path_encode(), path_add()  (Neil)</para></listitem>
-<listitem><para>Repair long-standing logic errors in lseg_eq(), lseg_ne(), lseg_center()</para></listitem>
-</itemizedlist>
- </sect2>
-</sect1>
-
-
-<sect1 id="release-7-2-3">
- <title>Release 7.2.3</title>
-
- <formalpara>
-  <title>Release date:</title>
-  <para>2002-10-01</para>
- </formalpara>
-
- <para>
-  This release contains a variety of fixes for version 7.2.2,
-  including fixes to prevent possible data loss.
- </para>
-
- <sect2>
-  <title>Migration to Version 7.2.3</title>
-
-  <para>
-   A dump/restore is <emphasis>not</emphasis> required for those
-   running version 7.2.*.
-  </para>
- </sect2>
-
- <sect2>
-  <title>Changes</title>
-
-<itemizedlist>
-<listitem><para>Prevent possible compressed transaction log loss (Tom)</para></listitem>
-<listitem><para>Prevent non-superuser from increasing most recent vacuum info (Tom)</para></listitem>
-<listitem><para>Handle pre-1970 date values in newer versions of glibc (Tom)</para></listitem>
-<listitem><para>Fix possible hang during server shutdown</para></listitem>
-<listitem><para>Prevent spinlock hangs on SMP PPC machines (Tomoyuki Niijima)</para></listitem>
-<listitem><para>Fix <application>pg_dump</> to properly dump FULL JOIN USING (Tom)</para></listitem>
-</itemizedlist>
- </sect2>
-</sect1>
-
-
-<sect1 id="release-7-2-2">
- <title>Release 7.2.2</title>
-
- <formalpara>
-  <title>Release date:</title>
-  <para>2002-08-23</para>
- </formalpara>
-
- <para>
-  This release contains a variety of fixes for version 7.2.1.
- </para>
-
- <sect2>
-  <title>Migration to Version 7.2.2</title>
-
-  <para>
-   A dump/restore is <emphasis>not</emphasis> required for those
-   running version 7.2.*.
-  </para>
- </sect2>
-
- <sect2>
-  <title>Changes</title>
-
-<itemizedlist>
-<listitem><para>Allow EXECUTE of "CREATE TABLE AS ... SELECT" in PL/pgSQL (Tom)</para></listitem>
-<listitem><para>Fix for compressed transaction log id wraparound (Tom)</para></listitem>
-<listitem><para>Fix PQescapeBytea/PQunescapeBytea so that they handle bytes &gt; 0x7f (Tatsuo)</para></listitem>
-<listitem><para>Fix for psql and <application>pg_dump</> crashing when invoked with non-existent long options (Tatsuo)</para></listitem>
-<listitem><para>Fix crash when invoking geometric operators (Tom)</para></listitem>
-<listitem><para>Allow OPEN cursor(args) (Tom)</para></listitem>
-<listitem><para>Fix for rtree_gist index build (Teodor)</para></listitem>
-<listitem><para>Fix for dumping user-defined aggregates (Tom)</para></listitem>
-<listitem><para>contrib/intarray fixes (Oleg)</para></listitem>
-<listitem><para>Fix for complex UNION/EXCEPT/INTERSECT queries using parens (Tom)</para></listitem>
-<listitem><para>Fix to pg_convert (Tatsuo)</para></listitem>
-<listitem><para>Fix for crash with long DATA strings (Thomas, Neil)</para></listitem>
-<listitem><para>Fix for repeat(), lpad(), rpad() and long strings (Neil)</para></listitem>
-</itemizedlist>
- </sect2>
-</sect1>
-
-
-<sect1 id="release-7-2-1">
- <title>Release 7.2.1</title>
-
- <formalpara>
-  <title>Release date:</title>
-  <para>2002-03-21</para>
- </formalpara>
-
- <para>
-  This release contains a variety of fixes for version 7.2.
- </para>
-
- <sect2>
-  <title>Migration to Version 7.2.1</title>
-
-  <para>
-   A dump/restore is <emphasis>not</emphasis> required for those
-   running version 7.2.
-  </para>
- </sect2>
-
- <sect2>
-  <title>Changes</title>
-
-<itemizedlist>
-<listitem><para>Ensure that sequence counters do not go backwards after a crash (Tom)</para></listitem>
-<listitem><para>Fix pgaccess kanji-conversion key binding (Tatsuo)</para></listitem>
-<listitem><para>Optimizer improvements (Tom)</para></listitem>
-<listitem><para>Cash I/O improvements (Tom)</para></listitem>
-<listitem><para>New Russian FAQ</para></listitem>
-<listitem><para>Compile fix for missing AuthBlockSig (Heiko)</para></listitem>
-<listitem><para>Additional time zones and time zone fixes (Thomas)</para></listitem>
-<listitem><para>Allow psql \connect to handle mixed case database and user names (Tom)</para></listitem>
-<listitem><para>Return proper OID on command completion even with ON INSERT rules (Tom)</para></listitem>
-<listitem><para>Allow COPY FROM to use 8-bit DELIMITERS (Tatsuo)</para></listitem>
-<listitem><para>Fix bug in extract/date_part for milliseconds/microseconds (Tatsuo)</para></listitem>
-<listitem><para>Improve handling of multiple UNIONs with different lengths (Tom)</para></listitem>
-<listitem><para>contrib/btree_gist improvements (Teodor Sigaev)</para></listitem>
-<listitem><para>contrib/tsearch dictionary improvements, see README.tsearch for an additional installation step (Thomas T. Thai, Teodor Sigaev)</para></listitem>
-<listitem><para>Fix for array subscripts handling (Tom)</para></listitem>
-<listitem><para>Allow EXECUTE of "CREATE TABLE AS ... SELECT" in PL/pgSQL (Tom)</para></listitem>
-</itemizedlist>
- </sect2>
-</sect1>
-
-
-<sect1 id="release-7-2">
- <title>Release 7.2</title>
-
- <formalpara>
-  <title>Release date:</title>
-  <para>2002-02-04</para>
- </formalpara>
-
- <sect2>
-  <title>Overview</title>
-
-  <para>
-   This release improves <productname>PostgreSQL</> for use in
-   high-volume applications.
-  </para>
-
-  <para>
-   Major changes in this release:
-  </para>
-
-  <variablelist>
-   <varlistentry>
-    <term>VACUUM</term>
-    <listitem>
-     <para>
-      Vacuuming no longer locks tables, thus allowing normal user
-      access during the vacuum.  A new <command>VACUUM FULL</>
-      command does old-style vacuum by locking the table and
-      shrinking the on-disk copy of the table.
-     </para>
-    </listitem>
-   </varlistentry>
-
-   <varlistentry>
-    <term>Transactions</term>
-    <listitem>
-     <para>
-      There is no longer a problem with installations that exceed
-      four billion transactions.
-     </para>
-    </listitem>
-   </varlistentry>
-
-   <varlistentry>
-    <term>OIDs</term>
-    <listitem>
-     <para>
-      OIDs are now optional.  Users can now create tables without
-      OIDs for cases where OID usage is excessive.
-     </para>
-    </listitem>
-   </varlistentry>
-
-   <varlistentry>
-    <term>Optimizer</term>
-    <listitem>
-     <para>
-      The system now computes histogram column statistics during
-      <command>ANALYZE</>, allowing much better optimizer choices.
-     </para>
-    </listitem>
-   </varlistentry>
-
-   <varlistentry>
-    <term>Security</term>
-    <listitem>
-     <para>
-      A new MD5 encryption option allows more secure storage and
-      transfer of passwords.  A new Unix-domain socket
-      authentication option is available on Linux and BSD systems.
-     </para>
-    </listitem>
-   </varlistentry>
-
-   <varlistentry>
-    <term>Statistics</term>
-    <listitem>
-     <para>
-      Administrators can use the new table access statistics module
-      to get fine-grained information about table and index usage.
-     </para>
-    </listitem>
-   </varlistentry>
-
-   <varlistentry>
-    <term>Internationalization</term>
-    <listitem>
-     <para>
-      Program and library messages can now be displayed in several
-      languages.
-     </para>
-    </listitem>
-   </varlistentry>
-
-  </variablelist>
- </sect2>
-
- <sect2>
-  <title>Migration to Version 7.2</title>
-
-  <para>
-   A dump/restore using <command>pg_dump</command> is required for
-   those wishing to migrate data from any previous release.
-  </para>
-
-  <para>
-   Observe the following incompatibilities:
-  </para>
-
-  <itemizedlist>
-   <listitem>
-    <para>
-     The semantics of the <command>VACUUM</command> command have
-     changed in this release.  You might wish to update your
-     maintenance procedures accordingly.
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>
-     In this release, comparisons using <literal>= NULL</literal>
-     will always return false (or NULL, more precisely).  Previous
-     releases automatically transformed this syntax to <literal>IS
-     NULL</literal>.  The old behavior can be re-enabled using a
-     <filename>postgresql.conf</filename> parameter.
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>
-     The <filename>pg_hba.conf</> and <filename>pg_ident.conf</>
-     configuration is now only reloaded after receiving a
-     <systemitem>SIGHUP</> signal, not with each connection.
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>
-     The function <filename>octet_length()</> now returns the uncompressed data length.
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>
-     The date/time value <literal>'current'</literal> is no longer
-     available.  You will need to rewrite your applications.
-    </para>
-   </listitem>
-
-   <listitem>
-    <para>
-     The <literal>timestamp()</literal>, <literal>time()</literal>,
-     and <literal>interval()</literal> functions are no longer
-     available.  Instead of <literal>timestamp()</literal>, use
-     <literal>timestamp 'string'</literal> or <literal>CAST</literal>.
-    </para>
-   </listitem>
-
-  </itemizedlist>
-
-  <para>
-   The <literal>SELECT ... LIMIT #,#</literal> syntax will be removed
-   in the next release. You should change your queries to use
-   separate LIMIT and OFFSET clauses, e.g. <literal>LIMIT 10 OFFSET
-   20</literal>.
-  </para>
- </sect2>
-
- <sect2>
-  <title>Changes</title>
-
-  <sect3>
-   <title>Server Operation</title>
-<itemizedlist>
-<listitem><para>Create temporary files in a separate directory (Bruce)</para></listitem>
-<listitem><para>Delete orphaned temporary files on postmaster startup (Bruce)</para></listitem>
-<listitem><para>Added unique indexes to some system tables (Tom)</para></listitem>
-<listitem><para>System table operator reorganization (Oleg Bartunov, Teodor Sigaev, Tom)</para></listitem>
-<listitem><para>Renamed pg_log to pg_clog (Tom)</para></listitem>
-<listitem><para>Enable SIGTERM, SIGQUIT to kill backends (Jan)</para></listitem>
-<listitem><para>Removed compile-time limit on number of backends (Tom)</para></listitem>
-<listitem><para>Better cleanup for semaphore resource failure (Tatsuo, Tom)</para></listitem>
-<listitem><para>Allow safe transaction ID wraparound (Tom)</para></listitem>
-<listitem><para>Removed OIDs from some system tables (Tom)</para></listitem>
-<listitem><para>Removed "triggered data change violation" error check (Tom)</para></listitem>
-<listitem><para>SPI portal creation of prepared/saved plans (Jan)</para></listitem>
-<listitem><para>Allow SPI column functions to work for system columns (Tom)</para></listitem>
-<listitem><para>Long value compression improvement (Tom)</para></listitem>
-<listitem><para>Statistics collector for table, index access (Jan)</para></listitem>
-<listitem><para>Truncate extra-long sequence names to a reasonable value (Tom)</para></listitem>
-<listitem><para>Measure transaction times in milliseconds (Thomas)</para></listitem>
-<listitem><para>Fix TID sequential scans (Hiroshi)</para></listitem>
-<listitem><para>Superuser ID now fixed at 1 (Peter E)</para></listitem>
-<listitem><para>New pg_ctl "reload" option (Tom)</para></listitem>
-</itemizedlist>
-  </sect3>
-
-  <sect3>
-   <title>Performance</title>
-<itemizedlist>
-<listitem><para>Optimizer improvements (Tom)</para></listitem>
-<listitem><para>New histogram column statistics for optimizer (Tom)</para></listitem>
-<listitem><para>Reuse write-ahead log files rather than discarding them (Tom)</para></listitem>
-<listitem><para>Cache improvements (Tom)</para></listitem>
-<listitem><para>IS NULL, IS NOT NULL optimizer improvement (Tom)</para></listitem>
-<listitem><para>Improve lock manager to reduce lock contention (Tom)</para></listitem>
-<listitem><para>Keep relcache entries for index access support functions (Tom)</para></listitem>
-<listitem><para>Allow better selectivity with NaN and infinities in NUMERIC (Tom)</para></listitem>
-<listitem><para>R-tree performance improvements (Kenneth Been)</para></listitem>
-<listitem><para>B-tree splits more efficient (Tom)</para></listitem>
-</itemizedlist>
-  </sect3>
-
-  <sect3>
-   <title>Privileges</title>
-<itemizedlist>
-<listitem><para>Change UPDATE, DELETE privileges to be distinct (Peter E)</para></listitem>
-<listitem><para>New REFERENCES, TRIGGER privileges (Peter E)</para></listitem>
-<listitem><para>Allow GRANT/REVOKE to/from more than one user at a time (Peter E)</para></listitem>
-<listitem><para>New has_table_privilege() function (Joe Conway)</para></listitem>
-<listitem><para>Allow non-superuser to vacuum database (Tom)</para></listitem>
-<listitem><para>New SET SESSION AUTHORIZATION command (Peter E)</para></listitem>
-<listitem><para>Fix bug in privilege modifications on newly created tables (Tom)</para></listitem>
-<listitem><para>Disallow access to pg_statistic for non-superuser, add user-accessible views (Tom)</para></listitem>
-</itemizedlist>
-  </sect3>
-
-  <sect3>
-   <title>Client Authentication</title>
-<itemizedlist>
-<listitem><para>Fork postmaster before doing authentication to prevent hangs (Peter E)</para></listitem>
-<listitem><para>Add ident authentication over Unix domain sockets on Linux, *BSD (Helge Bahmann, Oliver Elphick, Teodor Sigaev, Bruce)</para></listitem>
-<listitem><para>Add a password authentication method that uses MD5 encryption (Bruce)</para></listitem>
-<listitem><para>Allow encryption of stored passwords using MD5 (Bruce)</para></listitem>
-<listitem><para>PAM authentication (Dominic J. Eidson)</para></listitem>
-<listitem><para>Load pg_hba.conf and pg_ident.conf only on startup and SIGHUP (Bruce)</para></listitem>
-</itemizedlist>
-  </sect3>
-
-  <sect3>
-   <title>Server Configuration</title>
-<itemizedlist>
-<listitem><para>Interpretation of some time zone abbreviations as Australian rather than North American now settable at run time (Bruce)</para></listitem>
-<listitem><para>New parameter to set default transaction isolation level (Peter E)</para></listitem>
-<listitem><para>New parameter to enable conversion of "expr = NULL" into "expr IS NULL", off by default (Peter E)</para></listitem>
-<listitem><para>New parameter to control memory usage by VACUUM (Tom)</para></listitem>
-<listitem><para>New parameter to set client authentication timeout (Tom)</para></listitem>
-<listitem><para>New parameter to set maximum number of open files (Tom)</para></listitem>
-</itemizedlist>
-  </sect3>
-
-  <sect3>
-   <title>Queries</title>
-<itemizedlist>
-<listitem><para>Statements added by INSERT rules now execute after the INSERT (Jan)</para></listitem>
-<listitem><para>Prevent unadorned relation names in target list (Bruce)</para></listitem>
-<listitem><para>NULLs now sort after all normal values in ORDER BY (Tom)</para></listitem>
-<listitem><para>New IS UNKNOWN, IS NOT UNKNOWN Boolean tests (Tom)</para></listitem>
-<listitem><para>New SHARE UPDATE EXCLUSIVE lock mode (Tom)</para></listitem>
-<listitem><para>New EXPLAIN ANALYZE command that shows run times and row counts (Martijn van Oosterhout)</para></listitem>
-<listitem><para>Fix problem with LIMIT and subqueries (Tom)</para></listitem>
-<listitem><para>Fix for LIMIT, DISTINCT ON pushed into subqueries (Tom)</para></listitem>
-<listitem><para>Fix nested EXCEPT/INTERSECT (Tom)</para></listitem>
-</itemizedlist>
-  </sect3>
-
-  <sect3>
-   <title>Schema Manipulation</title>
-<itemizedlist>
-<listitem><para>Fix SERIAL in temporary tables (Bruce)</para></listitem>
-<listitem><para>Allow temporary sequences (Bruce)</para></listitem>
-<listitem><para>Sequences now use int8 internally (Tom)</para></listitem>
-<listitem><para>New SERIAL8 creates int8 columns with sequences, default still SERIAL4 (Tom)</para></listitem>
-<listitem><para>Make OIDs optional using WITHOUT OIDS (Tom)</para></listitem>
-<listitem><para>Add %TYPE syntax to CREATE TYPE (Ian Lance Taylor)</para></listitem>
-<listitem><para>Add ALTER TABLE / DROP CONSTRAINT for CHECK constraints (Christopher Kings-Lynne)</para></listitem>
-<listitem><para>New CREATE OR REPLACE FUNCTION to alter existing function (preserving the function OID) (Gavin Sherry)</para></listitem>
-<listitem><para>Add ALTER TABLE / ADD [ UNIQUE | PRIMARY ] (Christopher Kings-Lynne)</para></listitem>
-<listitem><para>Allow column renaming in views</para></listitem>
-<listitem><para>Make ALTER TABLE / RENAME COLUMN update column names of indexes (Brent Verner)</para></listitem>
-<listitem><para>Fix for ALTER TABLE / ADD CONSTRAINT ... CHECK with inherited tables (Stephan Szabo)</para></listitem>
-<listitem><para>ALTER TABLE RENAME update foreign-key trigger arguments correctly (Brent Verner)</para></listitem>
-<listitem><para>DROP AGGREGATE and COMMENT ON AGGREGATE now accept an aggtype (Tom)</para></listitem>
-<listitem><para>Add automatic return type data casting for SQL functions (Tom)</para></listitem>
-<listitem><para>Allow GiST indexes to handle NULLs and multikey indexes (Oleg Bartunov, Teodor Sigaev, Tom)</para></listitem>
-<listitem><para>Enable partial indexes (Martijn van Oosterhout)</para></listitem>
-</itemizedlist>
-  </sect3>
-
-  <sect3>
-   <title>Utility Commands</title>
-<itemizedlist>
-<listitem><para>Add RESET ALL, SHOW ALL (Marko Kreen)</para></listitem>
-<listitem><para>CREATE/ALTER USER/GROUP now allow options in any order (Vince)</para></listitem>
-<listitem><para>Add LOCK A, B, C functionality (Neil Padgett)</para></listitem>
-<listitem><para>New ENCRYPTED/UNENCRYPTED option to CREATE/ALTER USER (Bruce)</para></listitem>
-<listitem><para>New light-weight VACUUM does not lock table; old semantics are available as VACUUM FULL (Tom)</para></listitem>
-<listitem><para>Disable COPY TO/FROM on views (Bruce)</para></listitem>
-<listitem><para>COPY DELIMITERS string must be exactly one character (Tom)</para></listitem>
-<listitem><para>VACUUM warning about index tuples fewer than heap now only appears when appropriate (Martijn van Oosterhout)</para></listitem>
-<listitem><para>Fix privilege checks for CREATE INDEX (Tom)</para></listitem>
-<listitem><para>Disallow inappropriate use of CREATE/DROP INDEX/TRIGGER/VIEW (Tom)</para></listitem>
-</itemizedlist>
-  </sect3>
-
-  <sect3>
-   <title>Data Types and Functions</title>
-<itemizedlist>
-<listitem><para>SUM(), AVG(), COUNT() now uses int8 internally for speed (Tom)</para></listitem>
-<listitem><para>Add convert(), convert2() (Tatsuo)</para></listitem>
-<listitem><para>New function bit_length() (Peter E)</para></listitem>
-<listitem><para>Make the "n" in CHAR(n)/VARCHAR(n) represents letters, not bytes (Tatsuo)</para></listitem>
-<listitem><para>CHAR(), VARCHAR() now reject strings that are too long (Peter E)</para></listitem>
-<listitem><para>BIT VARYING now rejects bit strings that are too long (Peter E)</para></listitem>
-<listitem><para>BIT now rejects bit strings that do not match declared size (Peter E)</para></listitem>
-<listitem><para>INET, CIDR text conversion functions (Alex Pilosov)</para></listitem>
-<listitem><para>INET, CIDR operators &lt;&lt; and &lt;&lt;= indexable (Alex Pilosov)</para></listitem>
-<listitem><para>Bytea \### now requires valid three digit octal number</para></listitem>
-<listitem><para>Bytea comparison improvements, now supports =, &lt;&gt;, &gt;, &gt;=, &lt;, and &lt;=</para></listitem>
-<listitem><para>Bytea now supports B-tree indexes</para></listitem>
-<listitem><para>Bytea now supports LIKE, LIKE...ESCAPE, NOT LIKE, NOT LIKE...ESCAPE</para></listitem>
-<listitem><para>Bytea now supports concatenation</para></listitem>
-<listitem><para>New bytea functions: position, substring, trim, btrim, and length</para></listitem>
-<listitem><para>New encode() function mode, "escaped", converts minimally escaped bytea to/from text</para></listitem>
-<listitem><para>Add pg_database_encoding_max_length() (Tatsuo)</para></listitem>
-<listitem><para>Add pg_client_encoding() function (Tatsuo)</para></listitem>
-<listitem><para>now() returns time with millisecond precision (Thomas)</para></listitem>
-<listitem><para>New TIMESTAMP WITHOUT TIMEZONE data type (Thomas)</para></listitem>
-<listitem><para>Add ISO date/time specification with "T", yyyy-mm-ddThh:mm:ss (Thomas)</para></listitem>
-<listitem><para>New xid/int comparison functions (Hiroshi)</para></listitem>
-<listitem><para>Add precision to TIME, TIMESTAMP, and INTERVAL data types (Thomas)</para></listitem>
-<listitem><para>Modify type coercion logic to attempt binary-compatible functions first (Tom)</para></listitem>
-<listitem><para>New encode() function installed by default (Marko Kreen)</para></listitem>
-<listitem><para>Improved to_*() conversion functions (Karel Zak)</para></listitem>
-<listitem><para>Optimize LIKE/ILIKE when using single-byte encodings (Tatsuo)</para></listitem>
-<listitem><para>New functions in contrib/pgcrypto: crypt(), hmac(), encrypt(), gen_salt() (Marko Kreen)</para></listitem>
-<listitem><para>Correct description of translate() function (Bruce)</para></listitem>
-<listitem><para>Add INTERVAL argument for SET TIME ZONE (Thomas)</para></listitem>
-<listitem><para>Add INTERVAL YEAR TO MONTH (etc.) syntax (Thomas)</para></listitem>
-<listitem><para>Optimize length functions when using single-byte encodings (Tatsuo)</para></listitem>
-<listitem><para>Fix path_inter, path_distance, path_length, dist_ppath to handle closed paths (Curtis Barrett, Tom)</para></listitem>
-<listitem><para>octet_length(text) now returns non-compressed length (Tatsuo, Bruce)</para></listitem>
-<listitem><para>Handle "July" full name in date/time literals (Greg Sabino Mullane)</para></listitem>
-<listitem><para>Some datatype() function calls now evaluated differently</para></listitem>
-<listitem><para>Add support for Julian and ISO time specifications (Thomas)</para></listitem>
-</itemizedlist>
-  </sect3>
-
-  <sect3>
-   <title>Internationalization</title>
-<itemizedlist>
-<listitem><para>National language support in psql, <application>pg_dump</>, libpq, and server (Peter E)</para></listitem>
-<listitem><para>Message translations in Chinese (simplified, traditional), Czech, French, German, Hungarian, Russian, Swedish (Peter E, Serguei A. Mokhov, Karel Zak, Weiping He, Zhenbang Wei, Kovacs Zoltan)</para></listitem>
-<listitem><para>Make trim, ltrim, rtrim, btrim, lpad, rpad, translate multibyte aware (Tatsuo)</para></listitem>
-<listitem><para>Add LATIN5,6,7,8,9,10 support (Tatsuo)</para></listitem>
-<listitem><para>Add ISO 8859-5,6,7,8 support (Tatsuo)</para></listitem>
-<listitem><para>Correct LATIN5 to mean ISO-8859-9, not ISO-8859-5 (Tatsuo)</para></listitem>
-<listitem><para>Make mic2ascii() non-ASCII aware (Tatsuo)</para></listitem>
-<listitem><para>Reject invalid multibyte character sequences (Tatsuo)</para></listitem>
-</itemizedlist>
-  </sect3>
-
-  <sect3>
-   <title><application>PL/pgSQL</></title>
-<itemizedlist>
-<listitem><para>Now uses portals for SELECT loops, allowing huge result sets (Jan)</para></listitem>
-<listitem><para>CURSOR and REFCURSOR support (Jan)</para></listitem>
-<listitem><para>Can now return open cursors (Jan)</para></listitem>
-<listitem><para>Add ELSEIF (Klaus Reger)</para></listitem>
-<listitem><para>Improve PL/pgSQL error reporting, including location of error (Tom)</para></listitem>
-<listitem><para>Allow IS or FOR key words in cursor declaration, for compatibility (Bruce)</para></listitem>
-<listitem><para>Fix for SELECT ... FOR UPDATE (Tom)</para></listitem>
-<listitem><para>Fix for PERFORM returning multiple rows (Tom)</para></listitem>
-<listitem><para>Make PL/pgSQL use the server's type coercion code (Tom)</para></listitem>
-<listitem><para>Memory leak fix (Jan, Tom)</para></listitem>
-<listitem><para>Make trailing semicolon optional (Tom)</para></listitem>
-</itemizedlist>
-  </sect3>
-
-  <sect3>
-   <title>PL/Perl</title>
-<itemizedlist>
-<listitem><para>New untrusted PL/Perl (Alex Pilosov)</para></listitem>
-<listitem><para>PL/Perl is now built on some platforms even if libperl is not shared (Peter E)</para></listitem>
-</itemizedlist>
-   </sect3>
-
-  <sect3>
-   <title>PL/Tcl</title>
-<itemizedlist>
-<listitem><para>Now reports errorInfo (Vsevolod Lobko)</para></listitem>
-<listitem><para>Add spi_lastoid function (bob@redivi.com)</para></listitem>
-</itemizedlist>
-  </sect3>
-
-  <sect3>
-   <title>PL/Python</title>
-<itemizedlist>
-<listitem><para>...is new (Andrew Bosma)</para></listitem>
-</itemizedlist>
-  </sect3>
-
-  <sect3>
-   <title><application>psql</></title>
-<itemizedlist>
-<listitem><para>\d displays indexes in unique, primary groupings (Christopher Kings-Lynne)</para></listitem>
-<listitem><para>Allow trailing semicolons in backslash commands (Greg Sabino Mullane)</para></listitem>
-<listitem><para>Read password from /dev/tty if possible</para></listitem>
-<listitem><para>Force new password prompt when changing user and database (Tatsuo, Tom)</para></listitem>
-<listitem><para>Format the correct number of columns for Unicode (Patrice)</para></listitem>
-</itemizedlist>
-  </sect3>
-
-  <sect3>
-   <title><application>libpq</></title>
-<itemizedlist>
-<listitem><para>New function PQescapeString() to escape quotes in command strings (Florian Weimer)</para></listitem>
-<listitem><para>New function PQescapeBytea() escapes binary strings for use as SQL string literals</para></listitem>
-</itemizedlist>
-  </sect3>
-
-  <sect3>
-   <title>JDBC</title>
-<itemizedlist>
-<listitem><para>Return OID of INSERT (Ken K)</para></listitem>
-<listitem><para>Handle more data types (Ken K)</para></listitem>
-<listitem><para>Handle single quotes and newlines in strings (Ken K)</para></listitem>
-<listitem><para>Handle NULL variables (Ken K)</para></listitem>
-<listitem><para>Fix for time zone handling (Barry Lind)</para></listitem>
-<listitem><para>Improved Druid support</para></listitem>
-<listitem><para>Allow eight-bit characters with non-multibyte server (Barry Lind)</para></listitem>
-<listitem><para>Support BIT, BINARY types (Ned Wolpert)</para></listitem>
-<listitem><para>Reduce memory usage (Michael Stephens, Dave Cramer)</para></listitem>
-<listitem><para>Update DatabaseMetaData (Peter E)</para></listitem>
-<listitem><para>Add DatabaseMetaData.getCatalogs() (Peter E)</para></listitem>
-<listitem><para>Encoding fixes (Anders Bengtsson)</para></listitem>
-<listitem><para>Get/setCatalog methods (Jason Davies)</para></listitem>
-<listitem><para>DatabaseMetaData.getColumns() now returns column defaults (Jason Davies)</para></listitem>
-<listitem><para>DatabaseMetaData.getColumns() performance improvement (Jeroen van Vianen)</para></listitem>
-<listitem><para>Some JDBC1 and JDBC2 merging (Anders Bengtsson)</para></listitem>
-<listitem><para>Transaction performance improvements (Barry Lind)</para></listitem>
-<listitem><para>Array fixes (Greg Zoller)</para></listitem>
-<listitem><para>Serialize addition </para></listitem>
-<listitem><para>Fix batch processing (Rene Pijlman)</para></listitem>
-<listitem><para>ExecSQL method reorganization (Anders Bengtsson)</para></listitem>
-<listitem><para>GetColumn() fixes (Jeroen van Vianen)</para></listitem>
-<listitem><para>Fix isWriteable() function (Rene Pijlman)</para></listitem>
-<listitem><para>Improved passage of JDBC2 conformance tests (Rene Pijlman)</para></listitem>
-<listitem><para>Add bytea type capability (Barry Lind)</para></listitem>
-<listitem><para>Add isNullable() (Rene Pijlman)</para></listitem>
-<listitem><para>JDBC date/time test suite fixes (Liam Stewart)</para></listitem>
-<listitem><para>Fix for SELECT 'id' AS xxx FROM table (Dave Cramer)</para></listitem>
-<listitem><para>Fix DatabaseMetaData to show precision properly (Mark Lillywhite)</para></listitem>
-<listitem><para>New getImported/getExported keys (Jason Davies)</para></listitem>
-<listitem><para>MD5 password encryption support (Jeremy Wohl)</para></listitem>
-<listitem><para>Fix to actually use type cache (Ned Wolpert)</para></listitem>
-</itemizedlist>
-  </sect3>
-
-  <sect3>
-   <title>ODBC</title>
-<itemizedlist>
-<listitem><para>Remove query size limit (Hiroshi)</para></listitem>
-<listitem><para>Remove text field size limit (Hiroshi)</para></listitem>
-<listitem><para>Fix for SQLPrimaryKeys in multibyte mode (Hiroshi)</para></listitem>
-<listitem><para>Allow ODBC procedure calls (Hiroshi)</para></listitem>
-<listitem><para>Improve boolean handing (Aidan Mountford)</para></listitem>
-<listitem><para>Most configuration options now settable via DSN (Hiroshi)</para></listitem>
-<listitem><para>Multibyte, performance fixes (Hiroshi)</para></listitem>
-<listitem><para>Allow driver to be used with iODBC or unixODBC (Peter E)</para></listitem>
-<listitem><para>MD5 password encryption support (Bruce)</para></listitem>
-<listitem><para>Add more compatibility functions to odbc.sql (Peter E)</para></listitem>
-</itemizedlist>
-  </sect3>
-
-  <sect3>
-   <title><application>ECPG</></title>
-<itemizedlist>
-<listitem><para>EXECUTE ... INTO implemented (Christof Petig)</para></listitem>
-<listitem><para>Multiple row descriptor support (e.g. CARDINALITY) (Christof Petig)</para></listitem>
-<listitem><para>Fix for GRANT parameters (Lee Kindness)</para></listitem>
-<listitem><para>Fix INITIALLY DEFERRED bug</para></listitem>
-<listitem><para>Various bug fixes (Michael, Christof Petig)</para></listitem>
-<listitem><para>Auto allocation for indicator variable arrays (int *ind_p=NULL)</para></listitem>
-<listitem><para>Auto allocation for string arrays (char **foo_pp=NULL)</para></listitem>
-<listitem><para>ECPGfree_auto_mem fixed</para></listitem>
-<listitem><para>All function names with external linkage are now prefixed by ECPG</para></listitem>
-<listitem><para>Fixes for arrays of structures (Michael)</para></listitem>
-</itemizedlist>
-  </sect3>
-
-  <sect3>
-   <title>Misc. Interfaces</title>
-<itemizedlist>
-<listitem><para>Python fix fetchone() (Gerhard Haring)</para></listitem>
-<listitem><para>Use UTF, Unicode in Tcl where appropriate (Vsevolod Lobko, Reinhard Max)</para></listitem>
-<listitem><para>Add Tcl COPY TO/FROM (ljb)</para></listitem>
-<listitem><para>Prevent output of default index op class in <application>pg_dump</> (Tom)</para></listitem>
-<listitem><para>Fix libpgeasy memory leak (Bruce)</para></listitem>
-</itemizedlist>
-  </sect3>
-
-  <sect3>
-   <title>Build and Install</title>
-<itemizedlist>
-<listitem><para>Configure, dynamic loader, and shared library fixes (Peter E)</para></listitem>
-<listitem><para>Fixes in QNX 4 port (Bernd Tegge)</para></listitem>
-<listitem><para>Fixes in Cygwin and Windows ports (Jason Tishler, Gerhard Haring, Dmitry Yurtaev, Darko Prenosil, Mikhail Terekhov)</para></listitem>
-<listitem><para>Fix for Windows socket communication failures (Magnus, Mikhail Terekhov)</para></listitem>
-<listitem><para>Hurd compile fix (Oliver Elphick)</para></listitem>
-<listitem><para>BeOS fixes (Cyril Velter)</para></listitem>
-<listitem><para>Remove configure --enable-unicode-conversion, now enabled by multibyte (Tatsuo)</para></listitem>
-<listitem><para>AIX fixes (Tatsuo, Andreas)</para></listitem>
-<listitem><para>Fix parallel make (Peter E)</para></listitem>
-<listitem><para>Install SQL language manual pages into OS-specific directories (Peter E)</para></listitem>
-<listitem><para>Rename config.h to pg_config.h (Peter E)</para></listitem>
-<listitem><para>Reorganize installation layout of header files (Peter E)</para></listitem>
-</itemizedlist>
-  </sect3>
-
-  <sect3>
-   <title>Source Code</title>
-<itemizedlist>
-<listitem><para>Remove SEP_CHAR (Bruce)</para></listitem>
-<listitem><para>New GUC hooks (Tom)</para></listitem>
-<listitem><para>Merge GUC and command line handling (Marko Kreen)</para></listitem>
-<listitem><para>Remove EXTEND INDEX (Martijn van Oosterhout, Tom)</para></listitem>
-<listitem><para>New pgjindent utility to indent java code (Bruce)</para></listitem>
-<listitem><para>Remove define of true/false when compiling under C++ (Leandro Fanzone, Tom)</para></listitem>
-<listitem><para>pgindent fixes (Bruce, Tom)</para></listitem>
-<listitem><para>Replace strcasecmp() with strcmp() where appropriate (Peter E)</para></listitem>
-<listitem><para>Dynahash portability improvements (Tom)</para></listitem>
-<listitem><para>Add 'volatile' usage in spinlock structures</para></listitem>
-<listitem><para>Improve signal handling logic (Tom)</para></listitem>
-</itemizedlist>
-  </sect3>
-
-  <sect3>
-   <title>Contrib</title>
-<itemizedlist>
-<listitem><para>New contrib/rtree_gist (Oleg Bartunov, Teodor Sigaev)</para></listitem>
-<listitem><para>New contrib/tsearch full-text indexing (Oleg, Teodor Sigaev)</para></listitem>
-<listitem><para>Add contrib/dblink for remote database access (Joe Conway)</para></listitem>
-<listitem><para>contrib/ora2pg Oracle conversion utility (Gilles Darold)</para></listitem>
-<listitem><para>contrib/xml XML conversion utility (John Gray)</para></listitem>
-<listitem><para>contrib/fulltextindex fixes (Christopher Kings-Lynne)</para></listitem>
-<listitem><para>New contrib/fuzzystrmatch with levenshtein and metaphone, soundex merged (Joe Conway)</para></listitem>
-<listitem><para>Add contrib/intarray boolean queries, binary search, fixes (Oleg Bartunov)</para></listitem>
-<listitem><para>New pg_upgrade utility (Bruce)</para></listitem>
-<listitem><para>Add new pg_resetxlog options (Bruce, Tom)</para></listitem>
-</itemizedlist>
-  </sect3>
- </sect2>
-</sect1>
-
-
- <sect1 id="release-7-1-3">
-  <title>Release 7.1.3</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2001-08-15</para>
-  </formalpara>
-
-  <sect2>
-   <title>Migration to Version 7.1.3</title>
-
-   <para>
-    A dump/restore is <emphasis>not</emphasis> required for those running
-    7.1.X.
-   </para>
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <para>
-<programlisting>
-Remove unused WAL segments of large transactions (Tom)
-Multiaction rule fix (Tom)
-PL/pgSQL memory allocation fix (Jan)
-VACUUM buffer fix (Tom)
-Regression test fixes (Tom)
-pg_dump fixes for GRANT/REVOKE/comments on views, user-defined types (Tom)
-Fix subselects with DISTINCT ON or LIMIT (Tom)
-BeOS fix
-Disable COPY TO/FROM a view (Tom)
-Cygwin build (Jason Tishler)
-</programlisting>
-   </para>
-  </sect2>
- </sect1>
-
-
- <sect1 id="release-7-1-2">
-  <title>Release 7.1.2</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2001-05-11</para>
-  </formalpara>
-
-  <para>
-   This has one fix from 7.1.1.
-  </para>
-
-
-  <sect2>
-   <title>Migration to Version 7.1.2</title>
-
-   <para>
-    A dump/restore is <emphasis>not</emphasis> required for those running
-    7.1.X.
-   </para>
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <para>
-<programlisting>
-Fix PL/pgSQL SELECTs when returning no rows
-Fix for psql backslash core dump
-Referential integrity privilege fix
-Optimizer fixes
-pg_dump cleanups
-</programlisting>
-   </para>
-  </sect2>
- </sect1>
-
-
- <sect1 id="release-7-1-1">
-  <title>Release 7.1.1</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2001-05-05</para>
-  </formalpara>
-
-  <para>
-   This has a variety of fixes from 7.1.
-  </para>
-
-
-  <sect2>
-   <title>Migration to Version 7.1.1</title>
-
-   <para>
-    A dump/restore is <emphasis>not</emphasis> required for those running
-    7.1.
-   </para>
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <para>
-<programlisting>
-Fix for numeric MODULO operator (Tom)
-pg_dump fixes (Philip)
-pg_dump can dump 7.0 databases (Philip)
-readline 4.2 fixes (Peter E)
-JOIN fixes (Tom)
-AIX, MSWIN, VAX, N32K fixes (Tom)
-Multibytes fixes (Tom)
-Unicode fixes (Tatsuo)
-Optimizer improvements (Tom)
-Fix for whole rows in functions (Tom)
-Fix for pg_ctl and option strings with spaces (Peter E)
-ODBC fixes (Hiroshi)
-EXTRACT can now take string argument (Thomas)
-Python fixes (Darcy)
-</programlisting>
-   </para>
-  </sect2>
- </sect1>
-
-
- <sect1 id="release-7-1">
-  <title>Release 7.1</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2001-04-13</para>
-  </formalpara>
-
-  <para>
-       This release focuses on removing limitations that have existed in the
-       <productname>PostgreSQL</productname> code for many years.
-  </para>
-
-  <para>
-   Major changes in this release:
-  </para>
-
-  <variablelist>
-   <varlistentry>
-    <term>
-      Write-ahead Log (WAL)
-    </term>
-    <listitem>
-     <para>
-To maintain database consistency in case of an operating system crash,
-previous releases of <productname>PostgreSQL</productname> have forced
-all data modifications to disk before each transaction commit.  With
-WAL, only one log file must be flushed to disk, greatly improving
-performance.  If you have been using -F in previous releases to
-disable disk flushes, you might want to consider discontinuing its use.
-     </para>
-    </listitem>
-   </varlistentry>
-
-   <varlistentry>
-    <term>
-      TOAST
-    </term>
-    <listitem>
-     <para>
-      TOAST - Previous releases had a compiled-in row length limit,
-typically 8k - 32k. This limit made storage of long text fields
-difficult.  With TOAST, long rows of any length can be stored with good
-performance.
-     </para>
-    </listitem>
-   </varlistentry>
-
-   <varlistentry>
-    <term>
-      Outer Joins
-    </term>
-    <listitem>
-     <para>
-We now support outer joins.  The UNION/NOT IN
-workaround for outer joins is no longer required.  We use the SQL92
-outer join syntax.
-     </para>
-    </listitem>
-   </varlistentry>
-
-   <varlistentry>
-    <term>
-      Function Manager
-    </term>
-    <listitem>
-     <para>
-The previous C function manager did not
-handle null values properly, nor did it support 64-bit <acronym>CPU</acronym>'s (Alpha).  The new
-function manager does.  You can continue using your old custom
-functions, but you might want to rewrite them in the future to use the new
-function manager call interface.
-     </para>
-    </listitem>
-   </varlistentry>
-
-   <varlistentry>
-    <term>
-      Complex Queries
-    </term>
-    <listitem>
-     <para>
-A large number of complex queries that were
-unsupported in previous releases now work.  Many combinations of views,
-aggregates, UNION, LIMIT, cursors, subqueries, and inherited tables
-now work properly. Inherited tables are now accessed by default.
-Subqueries in FROM are now supported.
-     </para>
-    </listitem>
-   </varlistentry>
-
-  </variablelist>
-
-  <sect2>
-   <title>Migration to Version 7.1</title>
-
-   <para>
-       A dump/restore using pg_dump is required for those wishing to migrate
-       data from any previous release.
-   </para>
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <para>
-<programlisting>
-Bug Fixes
----------
-Many multibyte/Unicode/locale fixes (Tatsuo and others)
-More reliable ALTER TABLE RENAME (Tom)
-Kerberos V fixes (David Wragg)
-Fix for INSERT INTO...SELECT where targetlist has subqueries (Tom)
-Prompt username/password on standard error (Bruce)
-Large objects inv_read/inv_write fixes (Tom)
-Fixes for to_char(), to_date(), to_ascii(), and to_timestamp() (Karel,
-   Daniel Baldoni)
-Prevent query expressions from leaking memory (Tom)
-Allow UPDATE of arrays elements (Tom)
-Wake up lock waiters during cancel (Hiroshi)
-Fix rare cursor crash when using hash join (Tom)
-Fix for DROP TABLE/INDEX in rolled-back transaction (Hiroshi)
-Fix psql crash from \l+ if MULTIBYTE enabled (Peter E)
-Fix truncation of rule names during CREATE VIEW (Ross Reedstrom)
-Fix PL/perl (Alex Kapranoff)
-Disallow LOCK on views (Mark Hollomon)
-Disallow INSERT/UPDATE/DELETE on views (Mark Hollomon)
-Disallow DROP RULE, CREATE INDEX, TRUNCATE on views (Mark Hollomon)
-Allow PL/pgSQL accept non-ASCII identifiers (Tatsuo)
-Allow views to proper handle GROUP BY, aggregates, DISTINCT (Tom)
-Fix rare failure with TRUNCATE command (Tom)
-Allow UNION/INTERSECT/EXCEPT to be used with ALL, subqueries, views,
-   DISTINCT, ORDER BY, SELECT...INTO (Tom)
-Fix parser failures during aborted transactions (Tom)
-Allow temporary relations to properly clean up indexes (Bruce)
-Fix VACUUM problem with moving rows in same page (Tom)
-Modify pg_dump to better handle user-defined items in template1 (Philip)
-Allow LIMIT in VIEW (Tom)
-Require cursor FETCH to honor LIMIT (Tom)
-Allow PRIMARY/FOREIGN Key definitions on inherited columns (Stephan)
-Allow ORDER BY, LIMIT in subqueries (Tom)
-Allow UNION in CREATE RULE (Tom)
-Make ALTER/DROP TABLE rollback-able (Vadim, Tom)
-Store initdb collation in pg_control so collation cannot be changed (Tom)
-Fix INSERT...SELECT with rules (Tom)
-Fix FOR UPDATE inside views and subselects (Tom)
-Fix OVERLAPS operators conform to SQL92 spec regarding NULLs (Tom)
-Fix lpad() and rpad() to handle length less than input string (Tom)
-Fix use of NOTIFY in some rules (Tom)
-Overhaul btree code (Tom)
-Fix NOT NULL use in Pl/pgSQL variables (Tom)
-Overhaul GIST code (Oleg)
-Fix CLUSTER to preserve constraints and column default (Tom)
-Improved deadlock detection handling (Tom)
-Allow multiple SERIAL columns in a table (Tom)
-Prevent occasional index corruption (Vadim)
-
-Enhancements
-------------
-Add OUTER JOINs (Tom)
-Function manager overhaul (Tom)
-Allow ALTER TABLE RENAME on indexes (Tom)
-Improve CLUSTER (Tom)
-Improve ps status display for more platforms (Peter E, Marc)
-Improve CREATE FUNCTION failure message (Ross)
-JDBC improvements (Peter, Travis Bauer, Christopher Cain, William Webber,
-   Gunnar)
-Grand Unified Configuration scheme/GUC.  Many options can now be set in
-   data/postgresql.conf, postmaster/postgres flags, or SET commands (Peter E)
-Improved handling of file descriptor cache (Tom)
-New warning code about auto-created table alias entries (Bruce)
-Overhaul initdb process (Tom, Peter E)
-Overhaul of inherited tables; inherited tables now accessed by default;
-  new ONLY key word prevents it (Chris Bitmead, Tom)
-ODBC cleanups/improvements (Nick Gorham, Stephan Szabo, Zoltan Kovacs,
-   Michael Fork)
-Allow renaming of temp tables (Tom)
-Overhaul memory manager contexts (Tom)
-pg_dumpall uses CREATE USER or CREATE GROUP rather using COPY (Peter E)
-Overhaul pg_dump (Philip Warner)
-Allow pg_hba.conf secondary password file to specify only username (Peter E)
-Allow TEMPORARY or TEMP key word when creating temporary tables (Bruce)
-New memory leak checker (Karel)
-New SET SESSION CHARACTERISTICS (Thomas)
-Allow nested block comments (Thomas)
-Add WITHOUT TIME ZONE type qualifier (Thomas)
-New ALTER TABLE ADD CONSTRAINT (Stephan)
-Use NUMERIC accumulators for INTEGER aggregates (Tom)
-Overhaul aggregate code (Tom)
-New VARIANCE and STDDEV() aggregates
-Improve dependency ordering of pg_dump (Philip)
-New pg_restore command (Philip)
-New pg_dump tar output option (Philip)
-New pg_dump of large objects  (Philip)
-New ESCAPE option to LIKE (Thomas)
-New case-insensitive LIKE - ILIKE (Thomas)
-Allow functional indexes to use binary-compatible type (Tom)
-Allow SQL functions to be used in more contexts (Tom)
-New pg_config utility (Peter E)
-New PL/pgSQL EXECUTE command which allows dynamic SQL and utility statements
-   (Jan)
-New PL/pgSQL GET DIAGNOSTICS statement for SPI value access (Jan)
-New quote_identifiers() and quote_literal() functions (Jan)
-New ALTER TABLE table OWNER TO user command (Mark Hollomon)
-Allow subselects in FROM, i.e. FROM (SELECT ...) [AS] alias (Tom)
-Update PyGreSQL to version 3.1 (D'Arcy)
-Store tables as files named by OID (Vadim)
-New SQL function setval(seq,val,bool) for use in pg_dump (Philip)
-Require DROP VIEW to remove views, no DROP TABLE (Mark)
-Allow DROP VIEW view1, view2 (Mark)
-Allow multiple objects in DROP INDEX, DROP RULE, and DROP TYPE (Tom)
-Allow automatic conversion to/from Unicode (Tatsuo, Eiji)
-New /contrib/pgcrypto hashing functions (Marko Kreen)
-New pg_dumpall --globals-only option (Peter E)
-New CHECKPOINT command for WAL which creates new WAL log file (Vadim)
-New AT TIME ZONE syntax (Thomas)
-Allow location of Unix domain socket to be configurable (David J. MacKenzie)
-Allow postmaster to listen on a specific IP address (David J. MacKenzie)
-Allow socket path name to be specified in hostname by using leading slash
-   (David J. MacKenzie)
-Allow CREATE DATABASE to specify template database (Tom)
-New utility to convert MySQL schema dumps to SQL92 and PostgreSQL (Thomas)
-New /contrib/rserv replication toolkit (Vadim)
-New file format for COPY BINARY (Tom)
-New /contrib/oid2name to map numeric files to table names (B Palmer)
-New "idle in transaction" ps status message (Marc)
-Update to pgaccess 0.98.7 (Constantin Teodorescu)
-pg_ctl now defaults to -w (wait) on shutdown, new -l (log) option
-Add rudimentary dependency checking to pg_dump (Philip)
-
-Types
------
-Fix INET/CIDR type ordering and add new functions (Tom)
-Make OID behave as an unsigned type (Tom)
-Allow BIGINT as synonym for INT8 (Peter E)
-New int2 and int8 comparison operators (Tom)
-New BIT and BIT VARYING types (Adriaan Joubert, Tom, Peter E)
-CHAR() no longer faster than VARCHAR() because of TOAST (Tom)
-New GIST seg/cube examples (Gene Selkov)
-Improved round(numeric) handling (Tom)
-Fix CIDR output formatting (Tom)
-New CIDR abbrev() function (Tom)
-
-Performance
------------
-Write-Ahead Log (WAL) to provide crash recovery with less performance
-   overhead (Vadim)
-ANALYZE stage of VACUUM no longer exclusively locks table (Bruce)
-Reduced file seeks (Denis Perchine)
-Improve BTREE code for duplicate keys (Tom)
-Store all large objects in a single table (Denis Perchine, Tom)
-Improve memory allocation performance (Karel, Tom)
-
-Source Code
------------
-New function manager call conventions (Tom)
-SGI portability fixes (David Kaelbling)
-New configure --enable-syslog option (Peter E)
-New BSDI README (Bruce)
-configure script moved to top level, not /src (Peter E)
-Makefile/configuration/compilation overhaul (Peter E)
-New configure --with-python option (Peter E)
-Solaris cleanups (Peter E)
-Overhaul /contrib Makefiles (Karel)
-New OpenSSL configuration option (Magnus, Peter E)
-AIX fixes (Andreas)
-QNX fixes (Maurizio)
-New heap_open(), heap_openr() API (Tom)
-Remove colon and semi-colon operators (Thomas)
-New pg_class.relkind value for views (Mark Hollomon)
-Rename ichar() to chr() (Karel)
-New documentation for btrim(), ascii(), chr(), repeat() (Karel)
-Fixes for NT/Cygwin (Pete Forman)
-AIX port fixes (Andreas)
-New BeOS port (David Reid, Cyril Velter)
-Add proofreader's changes to docs (Addison-Wesley, Bruce)
-New Alpha spinlock code (Adriaan Joubert, Compaq)
-UnixWare port overhaul (Peter E)
-New Darwin/Mac OS X port (Peter Bierman, Bruce Hartzler)
-New FreeBSD Alpha port (Alfred)
-Overhaul shared memory segments (Tom)
-Add IBM S/390 support (Neale Ferguson)
-Moved macmanuf to /contrib (Larry Rosenman)
-Syslog improvements (Larry Rosenman)
-New template0 database that contains no user additions (Tom)
-New /contrib/cube and /contrib/seg GIST sample code (Gene Selkov)
-Allow NetBSD's libedit instead of readline (Peter)
-Improved assembly language source code format (Bruce)
-New contrib/pg_logger
-New --template option to createdb
-New contrib/pg_control utility (Oliver)
-New FreeBSD tools ipc_check, start-scripts/freebsd
-</programlisting>
-   </para>
-  </sect2>
- </sect1>
-
-
- <sect1 id="release-7-0-3">
-  <title>Release 7.0.3</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2000-11-11</para>
-  </formalpara>
-
-  <para>
-   This has a variety of fixes from 7.0.2.
-  </para>
-
-
-  <sect2>
-   <title>Migration to Version 7.0.3</title>
-
-   <para>
-    A dump/restore is <emphasis>not</emphasis> required for those running
-    7.0.*.
-   </para>
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <para>
-<programlisting>
-Jdbc fixes (Peter)
-Large object fix (Tom)
-Fix lean in COPY WITH OIDS leak (Tom)
-Fix backwards-index-scan (Tom)
-Fix SELECT ... FOR UPDATE so it checks for duplicate keys (Hiroshi)
-Add --enable-syslog to configure (Marc)
-Fix abort transaction at backend exit in rare cases (Tom)
-Fix for psql \l+ when multibyte enabled (Tatsuo)
-Allow PL/pgSQL to accept non ascii identifiers (Tatsuo)
-Make vacuum always flush buffers (Tom)
-Fix to allow cancel while waiting for a lock (Hiroshi)
-Fix for memory allocation problem in user authentication code (Tom)
-Remove bogus use of int4out() (Tom)
-Fixes for multiple subqueries in COALESCE or BETWEEN (Tom)
-Fix for failure of triggers on heap open in certain cases (Jeroen van
-   Vianen)
-Fix for erroneous selectivity of not-equals (Tom)
-Fix for erroneous use of strcmp() (Tom)
-Fix for bug where storage manager accesses items beyond end of file
-   (Tom)
-Fix to include kernel errno message in all smgr elog messages (Tom)
-Fix for '.' not in PATH at build time (SL Baur)
-Fix for out-of-file-descriptors error (Tom)
-Fix to make pg_dump dump 'iscachable' flag for functions (Tom)
-Fix for subselect in targetlist of Append node (Tom)
-Fix for mergejoin plans (Tom)
-Fix TRUNCATE failure on relations with indexes (Tom)
-Avoid database-wide restart on write error (Hiroshi)
-Fix nodeMaterial to honor chgParam by recomputing its output (Tom)
-Fix VACUUM problem with moving chain of update row versions when source
-   and destination of a row version lie on the same page (Tom)
-Fix user.c CommandCounterIncrement (Tom)
-Fix for AM/PM boundary problem in to_char() (Karel Zak)
-Fix TIME aggregate handling (Tom)
-Fix to_char() to avoid coredump on NULL input (Tom)
-Buffer fix (Tom)
-Fix for inserting/copying longer multibyte strings into char() data
-   types (Tatsuo)
-Fix for crash of backend, on abort (Tom)
-</programlisting>
-   </para>
-  </sect2>
- </sect1>
-
-
- <sect1 id="release-7-0-2">
-  <title>Release 7.0.2</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2000-06-05</para>
-  </formalpara>
-
-  <para>
-   This is a repackaging of 7.0.1 with added documentation.
-  </para>
-
-
-  <sect2>
-   <title>Migration to Version 7.0.2</title>
-
-   <para>
-    A dump/restore is <emphasis>not</emphasis> required for those running
-    7.*.
-   </para>
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <para>
-<programlisting>
-Added documentation to tarball.
-</programlisting>
-   </para>
-  </sect2>
- </sect1>
-
-
- <sect1 id="release-7-0-1">
-  <title>Release 7.0.1</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2000-06-01</para>
-  </formalpara>
-
-  <para>
-   This is a cleanup release for 7.0.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 7.0.1</title>
-
-   <para>
-    A dump/restore is <emphasis>not</emphasis> required for those running
-    7.0.
-   </para>
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <para>
-<programlisting>
-Fix many CLUSTER failures (Tom)
-Allow ALTER TABLE RENAME works on indexes (Tom)
-Fix plpgsql to handle datetime-&gt;timestamp and timespan-&gt;interval (Bruce)
-New configure --with-setproctitle switch to use setproctitle() (Marc, Bruce)
-Fix the off by one errors in ResultSet from 6.5.3, and more.
-jdbc ResultSet fixes (Joseph Shraibman)
-optimizer tunings (Tom)
-Fix create user for pgaccess
-Fix for UNLISTEN failure
-IRIX fixes (David Kaelbling)
-QNX fixes (Andreas Kardos)
-Reduce COPY IN lock level (Tom)
-Change libpqeasy to use PQconnectdb() style parameters (Bruce)
-Fix pg_dump to handle OID indexes (Tom)
-Fix small memory leak (Tom)
-Solaris fix for createdb/dropdb (Tatsuo)
-Fix for non-blocking connections (Alfred Perlstein)
-Fix improper recovery after RENAME TABLE failures (Tom)
-Copy pg_ident.conf.sample into /lib directory in install (Bruce)
-Add SJIS UDC (NEC selection IBM kanji) support (Eiji Tokuya)
-Fix too long syslog message (Tatsuo)
-Fix problem with quoted indexes that are too long (Tom)
-JDBC ResultSet.getTimestamp() fix (Gregory Krasnow &amp; Floyd Marinescu)
-ecpg changes (Michael)
-</programlisting>
-   </para>
-  </sect2>
- </sect1>
-
- <sect1 id="release-7-0">
-  <title>Release 7.0</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>2000-05-08</para>
-  </formalpara>
-
-  <para>
-   This release contains improvements in many areas, demonstrating
-   the continued growth of <productname>PostgreSQL</productname>.
-   There are more improvements and fixes in 7.0 than in any previous
-   release. The developers have confidence that this is the best
-   release yet; we do our best to put out only solid releases, and
-   this one is no exception.
-  </para>
-
-  <para>
-   Major changes in this release:
-  </para>
-
-  <variablelist>
-   <varlistentry>
-    <term>
-     Foreign Keys
-    </term>
-    <listitem>
-     <para>
-      Foreign keys are now implemented, with the exception of PARTIAL MATCH
-      foreign keys. Many users have been asking for this feature, and we are
-      pleased to offer it.
-     </para>
-    </listitem>
-   </varlistentry>
-
-   <varlistentry>
-    <term>
-     Optimizer Overhaul
-    </term>
-    <listitem>
-     <para>
-      Continuing on work started a year ago, the optimizer has been
-      improved, allowing better query plan selection and faster performance
-      with less memory usage.
-     </para>
-    </listitem>
-   </varlistentry>
-
-   <varlistentry>
-    <term>
-     Updated <application>psql</application>
-    </term>
-    <listitem>
-     <para>
-      <application>psql</application>, our interactive terminal monitor, has been
-      updated with a variety of new features. See the <application>psql</application> manual page for details.
-     </para>
-    </listitem>
-   </varlistentry>
-
-   <varlistentry>
-    <term>
-     Join Syntax
-    </term>
-    <listitem>
-     <para>
-      SQL92 join syntax is now supported, though only as
-      <literal>INNER JOIN</> for this release. <literal>JOIN</>,
-      <literal>NATURAL JOIN</>, <literal>JOIN</>/<literal>USING</>,
-      and <literal>JOIN</>/<literal>ON</> are available, as are
-      column correlation names.
-     </para>
-    </listitem>
-
-   </varlistentry>
-  </variablelist>
-
-  <sect2>
-   <title>Migration to Version 7.0</title>
-
-   <para>
-    A dump/restore using <application>pg_dump</application>
-    is required for those wishing to migrate data from any
-    previous release of <productname>PostgreSQL</productname>.
-    For those upgrading from 6.5.*, you can instead use
-    <application>pg_upgrade</application> to upgrade to this
-    release; however, a full dump/reload installation is always the
-    most robust method for upgrades.
-   </para>
-
-   <para>
-    Interface and compatibility issues to consider for the new
-    release include:
-   </para>
-
-   <itemizedlist>
-    <listitem>
-     <para>
-      The date/time types <type>datetime</type> and
-      <type>timespan</type> have been superseded by the
-      SQL92-defined types <type>timestamp</type> and
-      <type>interval</type>. Although there has been some effort to
-      ease the transition by allowing
-      <productname>PostgreSQL</productname> to recognize
-      the deprecated type names and translate them to the new type
-      names, this mechanism cannot be completely transparent to
-      your existing application.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      The optimizer has been substantially improved in the area of
-      query cost estimation. In some cases, this will result in
-      decreased query times as the optimizer makes a better choice
-      for the preferred plan. However, in a small number of cases,
-      usually involving pathological distributions of data, your
-      query times might go up. If you are dealing with large amounts
-      of data, you might want to check your queries to verify
-      performance.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      The <acronym>JDBC</acronym> and <acronym>ODBC</acronym>
-      interfaces have been upgraded and extended.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      The string function <function>CHAR_LENGTH</function> is now a
-      native function. Previous versions translated this into a call
-      to <function>LENGTH</function>, which could result in
-      ambiguity with other types implementing
-      <function>LENGTH</function> such as the geometric types.
-     </para>
-    </listitem>
-   </itemizedlist>
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <para>
-<programlisting>
-Bug Fixes
----------
-Prevent function calls exceeding maximum number of arguments (Tom)
-Improve CASE construct (Tom)
-Fix SELECT coalesce(f1,0) FROM int4_tbl GROUP BY f1 (Tom)
-Fix SELECT sentence.words[0] FROM sentence GROUP BY sentence.words[0] (Tom)
-Fix GROUP BY scan bug (Tom)
-Improvements in SQL grammar processing (Tom)
-Fix for views involved in INSERT ... SELECT ... (Tom)
-Fix for SELECT a/2, a/2 FROM test_missing_target GROUP BY a/2 (Tom)
-Fix for subselects in INSERT ... SELECT (Tom)
-Prevent INSERT ... SELECT ... ORDER BY (Tom)
-Fixes for relations greater than 2GB, including vacuum
-Improve propagating system table changes to other backends (Tom)
-Improve propagating user table changes to other backends (Tom)
-Fix handling of temp tables in complex situations (Bruce, Tom)
-Allow table locking at table open, improving concurrent reliability (Tom)
-Properly quote sequence names in pg_dump (Ross J. Reedstrom)
-Prevent DROP DATABASE while others accessing
-Prevent any rows from being returned by GROUP BY if no rows processed (Tom)
-Fix SELECT COUNT(1) FROM table WHERE ...' if no rows matching WHERE (Tom)
-Fix pg_upgrade so it works for MVCC (Tom)
-Fix for SELECT ... WHERE x IN (SELECT ... HAVING SUM(x) &gt; 1) (Tom)
-Fix for "f1 datetime DEFAULT 'now'"  (Tom)
-Fix problems with CURRENT_DATE used in DEFAULT (Tom)
-Allow comment-only lines, and ;;; lines too. (Tom)
-Improve recovery after failed disk writes, disk full (Hiroshi)
-Fix cases where table is mentioned in FROM but not joined (Tom)
-Allow HAVING clause without aggregate functions (Tom)
-Fix for "--" comment and no trailing newline, as seen in perl interface
-Improve pg_dump failure error reports (Bruce)
-Allow sorts and hashes to exceed 2GB file sizes (Tom)
-Fix for pg_dump dumping of inherited rules (Tom)
-Fix for NULL handling comparisons (Tom)
-Fix inconsistent state caused by failed CREATE/DROP commands (Hiroshi)
-Fix for dbname with dash
-Prevent DROP INDEX from interfering with other backends (Tom)
-Fix file descriptor leak in verify_password()
-Fix for "Unable to identify an operator =$" problem
-Fix ODBC so no segfault if CommLog and Debug enabled (Dirk Niggemann)
-Fix for recursive exit call (Massimo)
-Fix for extra-long timezones (Jeroen van Vianen)
-Make pg_dump preserve primary key information (Peter E)
-Prevent databases with single quotes (Peter E)
-Prevent DROP DATABASE inside  transaction (Peter E)
-ecpg memory leak fixes (Stephen Birch)
-Fix for SELECT null::text, SELECT int4fac(null) and SELECT 2 + (null) (Tom)
-Y2K timestamp fix (Massimo)
-Fix for VACUUM 'HEAP_MOVED_IN was not expected' errors (Tom)
-Fix for views with tables/columns containing spaces  (Tom)
-Prevent privileges on indexes (Peter E)
-Fix for spinlock stuck problem when error is generated (Hiroshi)
-Fix ipcclean on Linux
-Fix handling of NULL constraint conditions (Tom)
-Fix memory leak in odbc driver (Nick Gorham)
-Fix for privilege check on UNION tables (Tom)
-Fix to allow SELECT 'a' LIKE 'a' (Tom)
-Fix for SELECT 1 + NULL (Tom)
-Fixes to CHAR
-Fix log() on numeric type (Tom)
-Deprecate ':' and ';' operators
-Allow vacuum of temporary tables
-Disallow inherited columns with the same name as new columns
-Recover or force failure when disk space is exhausted (Hiroshi)
-Fix INSERT INTO ... SELECT with AS columns matching result columns
-Fix INSERT ... SELECT ... GROUP BY groups by target columns not source columns (Tom)
-Fix CREATE TABLE test (a char(5) DEFAULT text '', b int4) with INSERT (Tom)
-Fix UNION with LIMIT
-Fix CREATE TABLE x AS SELECT 1 UNION SELECT 2
-Fix CREATE TABLE test(col char(2) DEFAULT user)
-Fix mismatched types in CREATE TABLE ... DEFAULT
-Fix SELECT * FROM pg_class where oid in (0,-1)
-Fix SELECT COUNT('asdf') FROM pg_class WHERE oid=12
-Prevent user who can create databases can modifying pg_database table (Peter E)
-Fix btree to give a useful elog when key &gt; 1/2 (page - overhead) (Tom)
-Fix INSERT of 0.0 into DECIMAL(4,4) field (Tom)
-
-Enhancements
-------------
-New CLI interface include file sqlcli.h, based on SQL3/SQL98
-Remove all limits on query length, row length limit still exists (Tom)
-Update jdbc protocol to 2.0 (Jens Glaser <email>jens@jens.de</email>)
-Add TRUNCATE command to quickly truncate relation (Mike Mascari)
-Fix to give super user and createdb user proper update catalog rights (Peter E)
-Allow ecpg bool variables to have NULL values (Christof)
-Issue ecpg error if NULL value for variable with no NULL indicator (Christof)
-Allow ^C to cancel COPY command (Massimo)
-Add SET FSYNC and SHOW PG_OPTIONS commands(Massimo)
-Function name overloading for dynamically-loaded C functions (Frankpitt)
-Add CmdTuples() to libpq++(Vince)
-New CREATE CONSTRAINT TRIGGER and SET CONSTRAINTS commands(Jan)
-Allow CREATE FUNCTION/WITH clause to be used for all language types
-configure --enable-debug adds -g (Peter E)
-configure --disable-debug removes -g (Peter E)
-Allow more complex default expressions (Tom)
-First real FOREIGN KEY constraint trigger functionality (Jan)
-Add FOREIGN KEY ... MATCH FULL ... ON DELETE CASCADE (Jan)
-Add FOREIGN KEY ... MATCH &lt;unspecified&gt; referential actions (Don Baccus)
-Allow WHERE restriction on ctid (physical heap location) (Hiroshi)
-Move pginterface from contrib to interface directory, rename to pgeasy (Bruce)
-Change pgeasy connectdb() parameter ordering (Bruce)
-Require SELECT DISTINCT target list to have all ORDER BY columns (Tom)
-Add Oracle's COMMENT ON command (Mike Mascari <email>mascarim@yahoo.com</email>)
-libpq's PQsetNoticeProcessor function now returns previous hook(Peter E)
-Prevent PQsetNoticeProcessor from being set to NULL (Peter E)
-Make USING in COPY optional (Bruce)
-Allow subselects in the target list (Tom)
-Allow subselects on the left side of comparison operators (Tom)
-New parallel regression test (Jan)
-Change backend-side COPY to write files with permissions 644 not 666 (Tom)
-Force permissions on PGDATA directory to be secure, even if it exists (Tom)
-Added psql LASTOID variable to return last inserted oid (Peter E)
-Allow concurrent vacuum and remove pg_vlock vacuum lock file (Tom)
-Add privilege check for vacuum (Peter E)
-New libpq functions to allow asynchronous connections: PQconnectStart(),
-  PQconnectPoll(), PQresetStart(), PQresetPoll(), PQsetenvStart(),
-  PQsetenvPoll(), PQsetenvAbort (Ewan Mellor)
-New libpq PQsetenv() function (Ewan Mellor)
-create/alter user extension (Peter E)
-New postmaster.pid and postmaster.opts under $PGDATA (Tatsuo)
-New scripts for create/drop user/db (Peter E)
-Major psql overhaul (Peter E)
-Add const to libpq interface (Peter E)
-New libpq function PQoidValue (Peter E)
-Show specific non-aggregate causing problem with GROUP BY (Tom)
-Make changes to pg_shadow recreate pg_pwd file (Peter E)
-Add aggregate(DISTINCT ...) (Tom)
-Allow flag to control COPY input/output of NULLs (Peter E)
-Make postgres user have a password by default (Peter E)
-Add CREATE/ALTER/DROP GROUP (Peter E)
-All administration scripts now support --long options (Peter E, Karel)
-Vacuumdb script now supports --all option (Peter E)
-ecpg new portable FETCH syntax
-Add ecpg EXEC SQL IFDEF, EXEC SQL IFNDEF, EXEC SQL ELSE, EXEC SQL ELIF
-       and EXEC SQL ENDIF directives
-Add pg_ctl script to control backend start-up (Tatsuo)
-Add postmaster.opts.default file to store start-up flags (Tatsuo)
-Allow --with-mb=SQL_ASCII
-Increase maximum number of index keys to 16 (Bruce)
-Increase maximum number of function arguments to 16 (Bruce)
-Allow configuration of maximum number of index keys and arguments (Bruce)
-Allow unprivileged users to change their passwords (Peter E)
-Password authentication enabled; required for new users (Peter E)
-Disallow dropping a user who owns a database (Peter E)
-Change initdb option --with-mb to --enable-multibyte
-Add option for initdb to prompts for superuser password (Peter E)
-Allow complex type casts like col::numeric(9,2) and col::int2::float8 (Tom)
-Updated user interfaces on initdb, initlocation, pg_dump, ipcclean (Peter E)
-New pg_char_to_encoding() and pg_encoding_to_char() functions (Tatsuo)
-libpq non-blocking mode (Alfred Perlstein)
-Improve conversion of types in casts that don't specify a length
-New plperl internal programming language (Mark Hollomon)
-Allow COPY IN to read file that do not end with a newline (Tom)
-Indicate when long identifiers are truncated (Tom)
-Allow aggregates to use type equivalency (Peter E)
-Add Oracle's to_char(), to_date(), to_datetime(), to_timestamp(), to_number()
-       conversion functions (Karel Zak &lt;zakkr@zf.jcu.cz&gt;)
-Add SELECT DISTINCT ON (expr [, expr ...]) targetlist ... (Tom)
-Check to be sure ORDER BY is compatible with the DISTINCT operation (Tom)
-Add NUMERIC and int8 types to ODBC
-Improve EXPLAIN results for Append, Group, Agg, Unique (Tom)
-Add ALTER TABLE ... ADD FOREIGN KEY (Stephan Szabo)
-Allow SELECT .. FOR UPDATE in PL/pgSQL (Hiroshi)
-Enable backward sequential scan even after reaching EOF (Hiroshi)
-Add btree indexing of boolean values, &gt;= and &lt;= (Don Baccus)
-Print current line number when COPY FROM fails (Massimo)
-Recognize POSIX time zone e.g. "PST+8" and "GMT-8" (Thomas)
-Add DEC as synonym for DECIMAL (Thomas)
-Add SESSION_USER as SQL92 key word, same as CURRENT_USER (Thomas)
-Implement SQL92 column aliases (aka correlation names) (Thomas)
-Implement SQL92 join syntax (Thomas)
-Make INTERVAL reserved word allowed as a column identifier (Thomas)
-Implement REINDEX command (Hiroshi)
-Accept ALL in aggregate function SUM(ALL col) (Tom)
-Prevent GROUP BY from using column aliases (Tom)
-New psql \encoding option (Tatsuo)
-Allow PQrequestCancel() to terminate when in waiting-for-lock state (Hiroshi)
-Allow negation of a negative number in all cases
-Add ecpg descriptors (Christof, Michael)
-Allow CREATE VIEW v AS SELECT f1::char(8) FROM tbl
-Allow casts with length, like foo::char(8)
-New libpq functions PQsetClientEncoding(), PQclientEncoding() (Tatsuo)
-Add support for SJIS user defined characters (Tatsuo)
-Larger views/rules supported
-Make libpq's PQconndefaults() thread-safe (Tom)
-Disable // as comment to be ANSI conforming, should use -- (Tom)
-Allow column aliases on views CREATE VIEW name (collist)
-Fixes for views with subqueries (Tom)
-Allow UPDATE table SET fld = (SELECT ...) (Tom)
-SET command options no longer require quotes
-Update pgaccess to 0.98.6
-New SET SEED command
-New pg_options.sample file
-New SET FSYNC command (Massimo)
-Allow pg_descriptions when creating tables
-Allow pg_descriptions when creating types, columns, and functions
-Allow psql \copy to allow delimiters (Peter E)
-Allow psql to print nulls as distinct from "" [null] (Peter E)
-
-Types
------
-Many array fixes (Tom)
-Allow bare column names to be subscripted as arrays (Tom)
-Improve type casting of int and float constants (Tom)
-Cleanups for int8 inputs, range checking, and type conversion (Tom)
-Fix for SELECT timespan('21:11:26'::time) (Tom)
-netmask('x.x.x.x/0') is 255.255.255.255 instead of 0.0.0.0 (Oleg Sharoiko)
-Add btree index on NUMERIC (Jan)
-Perl fix for large objects containing NUL characters (Douglas Thomson)
-ODBC fix for large objects (free)
-Fix indexing of cidr data type
-Fix for Ethernet MAC addresses (macaddr type) comparisons
-Fix for date/time types when overflows happened in computations (Tom)
-Allow array on int8 (Peter E)
-Fix for rounding/overflow of NUMERIC type, like NUMERIC(4,4) (Tom)
-Allow NUMERIC arrays
-Fix bugs in NUMERIC ceil() and floor() functions (Tom)
-Make char_length()/octet_length including trailing blanks (Tom)
-Made abstime/reltime use int4 instead of time_t (Peter E)
-New lztext data type for compressed text fields
-Revise code to handle coercion of int and float constants (Tom)
-Start at new code to implement a BIT and BIT VARYING type (Adriaan Joubert)
-NUMERIC now accepts scientific notation (Tom)
-NUMERIC to int4 rounds (Tom)
-Convert float4/8 to NUMERIC properly (Tom)
-Allow type conversion with NUMERIC (Thomas)
-Make ISO date style (2000-02-16 09:33) the default (Thomas)
-Add NATIONAL CHAR [ VARYING ] (Thomas)
-Allow NUMERIC round and trunc to accept negative scales (Tom)
-New TIME WITH TIME ZONE type (Thomas)
-Add MAX()/MIN() on time type (Thomas)
-Add abs(), mod(), fac() for int8 (Thomas)
-Rename functions to round(), sqrt(), cbrt(), pow() for float8 (Thomas)
-Add transcendental math functions (e.g. sin(), acos()) for float8 (Thomas)
-Add exp() and ln() for NUMERIC type
-Rename NUMERIC power() to pow() (Thomas)
-Improved TRANSLATE() function (Edwin Ramirez, Tom)
-Allow X=-Y operators  (Tom)
-Allow SELECT float8(COUNT(*))/(SELECT COUNT(*) FROM t) FROM t GROUP BY f1; (Tom)
-Allow LOCALE to use indexes in regular expression searches (Tom)
-Allow creation of functional indexes to use default types
-
-Performance
------------
-Prevent exponential space consumption with many AND's and OR's (Tom)
-Collect attribute selectivity values for system columns (Tom)
-Reduce memory usage of aggregates (Tom)
-Fix for LIKE optimization to use indexes with multibyte encodings (Tom)
-Fix r-tree index optimizer selectivity (Thomas)
-Improve optimizer selectivity computations and functions (Tom)
-Optimize btree searching for cases where many equal keys exist (Tom)
-Enable fast LIKE index processing only if index present (Tom)
-Re-use free space on index pages with duplicates (Tom)
-Improve hash join processing (Tom)
-Prevent descending sort if result is already sorted(Hiroshi)
-Allow commuting of index scan query qualifications (Tom)
-Prefer index scans in cases where ORDER BY/GROUP BY is required (Tom)
-Allocate large memory requests in fix-sized chunks for performance (Tom)
-Fix vacuum's performance by reducing memory allocation requests (Tom)
-Implement constant-expression simplification (Bernard Frankpitt, Tom)
-Use secondary columns to be used to determine start of index scan (Hiroshi)
-Prevent quadruple use of disk space when doing internal sorting (Tom)
-Faster sorting by calling fewer functions (Tom)
-Create system indexes to match all system caches (Bruce, Hiroshi)
-Make system caches use system indexes (Bruce)
-Make all system indexes unique (Bruce)
-Improve pg_statistics management for VACUUM speed improvement (Tom)
-Flush backend cache less frequently (Tom, Hiroshi)
-COPY now reuses previous memory allocation, improving performance (Tom)
-Improve optimization cost estimation (Tom)
-Improve optimizer estimate of range queries x &gt; lowbound AND x &lt; highbound (Tom)
-Use DNF instead of CNF where appropriate (Tom, Taral)
-Further cleanup for OR-of-AND WHERE-clauses (Tom)
-Make use of index in OR clauses (x = 1 AND y = 2) OR (x = 2 AND y = 4) (Tom)
-Smarter optimizer computations for random index page access (Tom)
-New SET variable to control optimizer costs (Tom)
-Optimizer queries based on LIMIT, OFFSET, and EXISTS qualifications (Tom)
-Reduce optimizer internal housekeeping of join paths for speedup (Tom)
-Major subquery speedup (Tom)
-Fewer fsync writes when fsync is not disabled (Tom)
-Improved LIKE optimizer estimates (Tom)
-Prevent fsync in SELECT-only queries (Vadim)
-Make index creation use psort code, because it is now faster (Tom)
-Allow creation of sort temp tables &gt; 1 Gig
-
-Source Tree Changes
--------------------
-Fix for linux PPC compile
-New generic expression-tree-walker subroutine (Tom)
-Change form() to varargform() to prevent portability problems
-Improved range checking for large integers on Alphas
-Clean up #include in /include directory (Bruce)
-Add scripts for checking includes (Bruce)
-Remove un-needed #include's from *.c files (Bruce)
-Change #include's to use &lt;&gt; and "" as appropriate (Bruce)
-Enable Windows compilation of libpq
-Alpha spinlock fix from Uncle George <email>gatgul@voicenet.com</email>
-Overhaul of optimizer data structures (Tom)
-Fix to cygipc library (Yutaka Tanida)
-Allow pgsql to work on newer Cygwin snapshots (Dan)
-New catalog version number (Tom)
-Add Linux ARM
-Rename heap_replace to heap_update
-Update for QNX (Dr. Andreas Kardos)
-New platform-specific regression handling (Tom)
-Rename oid8 -&gt; oidvector and int28 -&gt; int2vector (Bruce)
-Included all yacc and lex files into the distribution (Peter E.)
-Remove lextest, no longer needed (Peter E)
-Fix for libpq and psql on Windows (Magnus)
-Internally change datetime and timespan into timestamp and interval (Thomas)
-Fix for plpgsql on BSD/OS
-Add SQL_ASCII test case to the regression test (Tatsuo)
-configure --with-mb now deprecated (Tatsuo)
-NT fixes
-NetBSD fixes (Johnny C. Lam <email>lamj@stat.cmu.edu</email>)
-Fixes for Alpha compiles
-New multibyte encodings
-</programlisting>
-   </para>
-  </sect2>
- </sect1>
-
- <sect1 id="release-6-5-3">
-  <title>Release 6.5.3</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>1999-10-13</para>
-  </formalpara>
-
-  <para>
-   This is basically a cleanup release for 6.5.2.  We have added a new
-   <application>PgAccess</> that was missing in 6.5.2, and installed an NT-specific fix.
-  </para>
-
-
-  <sect2>
-   <title>Migration to Version 6.5.3</title>
-
-   <para>
-    A dump/restore is <emphasis>not</emphasis> required for those running
-    6.5.*.
-   </para>
-  </sect2>
-  <sect2>
-   <title>Changes</title>
-
-   <para>
-<programlisting>
-Updated version of pgaccess 0.98
-NT-specific patch
-Fix dumping rules on inherited tables
-</programlisting>
-   </para>
-  </sect2>
- </sect1>
-
-
- <sect1 id="release-6-5-2">
-  <title>Release 6.5.2</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>1999-09-15</para>
-  </formalpara>
-
-  <para>
-   This is basically a cleanup release for 6.5.1.  We have fixed a variety of
-   problems reported by 6.5.1 users.
-  </para>
-
-
-  <sect2>
-   <title>Migration to Version 6.5.2</title>
-
-   <para>
-    A dump/restore is <emphasis>not</emphasis> required for those running
-    6.5.*.
-   </para>
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <para>
-<programlisting>
-subselect+CASE fixes(Tom)
-Add SHLIB_LINK setting for solaris_i386 and solaris_sparc ports(Daren Sefcik)
-Fixes for CASE in WHERE join clauses(Tom)
-Fix BTScan abort(Tom)
-Repair the check for redundant UNIQUE and PRIMARY KEY indexes(Thomas)
-Improve it so that it checks for multicolumn constraints(Thomas)
-Fix for Windows making problem with MB enabled(Hiroki Kataoka)
-Allow BSD yacc and bison to compile pl code(Bruce)
-Fix SET NAMES working
-int8 fixes(Thomas)
-Fix vacuum's memory consumption(Hiroshi,Tatsuo)
-Reduce the total memory consumption of vacuum(Tom)
-Fix for timestamp(datetime)
-Rule deparsing bugfixes(Tom)
-Fix quoting problems in mkMakefile.tcldefs.sh.in and mkMakefile.tkdefs.sh.in(Tom)
-This is to re-use space on index pages freed by vacuum(Vadim)
-document -x for pg_dump(Bruce)
-Fix for unary operators in rule deparser(Tom)
-Comment out FileUnlink of excess segments during mdtruncate()(Tom)
-IRIX linking fix from Yu Cao &gt;yucao@falcon.kla-tencor.com&lt;
-Repair logic error in LIKE: should not return LIKE_ABORT
-  when reach end of pattern before end of text(Tom)
-Repair incorrect cleanup of heap memory allocation during transaction abort(Tom)
-Updated version of pgaccess 0.98
-</programlisting>
-   </para>
-  </sect2>
- </sect1>
-
- <sect1 id="release-6-5-1">
-  <title>Release 6.5.1</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>1999-07-15</para>
-  </formalpara>
-
-  <para>
-   This is basically a cleanup release for 6.5.  We have fixed a variety of
-   problems reported by 6.5 users.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 6.5.1</title>
-
-   <para>
-    A dump/restore is <emphasis>not</emphasis> required for those running
-    6.5.
-   </para>
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <para>
-<programlisting>
-Add NT README file
-Portability fixes for linux_ppc, IRIX, linux_alpha, OpenBSD, alpha
-Remove QUERY_LIMIT, use SELECT...LIMIT
-Fix for EXPLAIN on inheritance(Tom)
-Patch to allow vacuum on multisegment tables(Hiroshi)
-R-Tree optimizer selectivity fix(Tom)
-ACL file descriptor leak fix(Atsushi Ogawa)
-New expression subtree code(Tom)
-Avoid disk writes for read-only transactions(Vadim)
-Fix for removal of temp tables if last transaction was aborted(Bruce)
-Fix to prevent too large row from being created(Bruce)
-plpgsql fixes
-Allow port numbers 32k - 64k(Bruce)
-Add ^ precedence(Bruce)
-Rename sort files called pg_temp to pg_sorttemp(Bruce)
-Fix for microseconds in time values(Tom)
-Tutorial source cleanup
-New linux_m68k port
-Fix for sorting of NULL's in some cases(Tom)
-Shared library dependencies fixed (Tom)
-Fixed glitches affecting GROUP BY in subselects(Tom)
-Fix some compiler warnings (Tomoaki Nishiyama)
-Add Win1250 (Czech) support (Pavel Behal)
-</programlisting>
-   </para>
-  </sect2>
- </sect1>
-
- <sect1 id="release-6-5">
-  <title>Release 6.5</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>1999-06-09</para>
-  </formalpara>
-
-  <para>
-   This release marks a major step in the development team's mastery of the source
-   code we inherited from Berkeley.  You will see we are now easily adding
-   major features, thanks to the increasing size and experience of our
-   world-wide development team.
-  </para>
-
-  <para>
-   Here is a brief summary of the more notable changes:
-
-   <variablelist>
-    <varlistentry>
-     <term>
-      Multiversion concurrency control(MVCC)
-     </term>
-     <listitem>
-      <para>
-       This removes our old table-level locking, and replaces it with
-       a locking system that is superior to most commercial database
-       systems.  In a traditional system, each row that is modified
-       is locked until committed, preventing reads by other users.
-       MVCC uses the natural multiversion nature of
-       <productname>PostgreSQL</productname> to allow readers to
-       continue reading consistent data during writer activity.
-       Writers continue to use the compact pg_log transaction system.
-       This is all performed without having to allocate a lock for
-       every row like traditional database systems.  So, basically,
-       we no longer are restricted by simple table-level locking; we
-       have something better than row-level locking.
-      </para>
-     </listitem>
-    </varlistentry>
-
-    <varlistentry>
-     <term>
-      Hot backups from <application>pg_dump</application>
-     </term>
-     <listitem>
-      <para>
-       <application>pg_dump</application> takes advantage of the new
-       MVCC features to give a consistent database dump/backup while
-       the database stays online and available for queries.
-      </para>
-     </listitem>
-    </varlistentry>
-
-    <varlistentry>
-     <term>
-      Numeric data type
-     </term>
-     <listitem>
-      <para>
-       We now have a true numeric data type, with
-       user-specified precision.
-      </para>
-     </listitem>
-    </varlistentry>
-
-    <varlistentry>
-     <term>
-      Temporary tables
-     </term>
-     <listitem>
-      <para>
-       Temporary tables are guaranteed to have unique names
-       within a database session, and are destroyed on session exit.
-      </para>
-     </listitem>
-    </varlistentry>
-
-    <varlistentry>
-     <term>
-      New SQL features
-     </term>
-     <listitem>
-      <para>
-       We now have CASE, INTERSECT, and EXCEPT statement
-       support.  We have new LIMIT/OFFSET, SET TRANSACTION ISOLATION LEVEL,
-       SELECT ... FOR UPDATE, and an improved LOCK TABLE command.
-      </para>
-     </listitem>
-    </varlistentry>
-
-    <varlistentry>
-     <term>
-      Speedups
-     </term>
-     <listitem>
-      <para>
-       We continue to speed up <productname>PostgreSQL</productname>,
-       thanks to the variety of talents within our team.  We have
-       sped up memory allocation, optimization, table joins, and row
-       transfer routines.
-      </para>
-     </listitem>
-    </varlistentry>
-
-    <varlistentry>
-     <term>
-      Ports
-     </term>
-     <listitem>
-      <para>
-       We continue to expand our port list, this time including
-       <systemitem class="osname">Windows NT</>/<systemitem>ix86</> and <systemitem class="osname">NetBSD</>/<systemitem>arm32</>.
-      </para>
-     </listitem>
-    </varlistentry>
-
-    <varlistentry>
-     <term>
-      Interfaces
-     </term>
-     <listitem>
-      <para>
-       Most interfaces have new versions, and existing functionality
-       has been improved.
-      </para>
-     </listitem>
-    </varlistentry>
-
-    <varlistentry>
-     <term>
-      Documentation
-     </term>
-     <listitem>
-      <para>
-       New and updated material is present throughout the
-       documentation. New <acronym>FAQ</acronym>s have been
-       contributed for <systemitem class="osname">SGI</> and <systemitem class="osname">AIX</> platforms.
-       The <citetitle>Tutorial</citetitle> has introductory information
-       on <acronym>SQL</acronym> from Stefan Simkovics.
-       For the <citetitle>User's Guide</citetitle>, there are
-       reference pages covering the postmaster and more utility
-       programs, and a new appendix
-       contains details on date/time behavior.
-       The <citetitle>Administrator's Guide</citetitle> has a new
-       chapter on troubleshooting from Tom Lane.
-       And the <citetitle>Programmer's Guide</citetitle> has a
-       description of query processing, also from Stefan, and details
-       on obtaining the <productname>PostgreSQL</productname> source
-       tree via anonymous <productname>CVS</productname> and
-       <productname>CVSup</productname>.
-      </para>
-     </listitem>
-    </varlistentry>
-   </variablelist>
-  </para>
-
-  <sect2>
-   <title>Migration to Version 6.5</title>
-
-   <para>
-    A dump/restore using <application>pg_dump</application>
-    is required for those wishing to migrate data from any
-    previous release of <productname>PostgreSQL</productname>.
-    <application>pg_upgrade</application> can <emphasis>not</emphasis>
-    be used to upgrade to this release because the on-disk structure
-    of the tables has changed compared to previous releases.
-   </para>
-
-   <para>
-    The new Multiversion Concurrency Control (MVCC) features can
-    give somewhat different behaviors in multiuser
-    environments. <emphasis>Read and understand the following section
-     to ensure that your existing applications will give you the
-     behavior you need.</emphasis>
-   </para>
-
-   <sect3>
-    <title>Multiversion Concurrency Control</title>
-
-    <para>
-     Because readers in 6.5 don't lock data, regardless of transaction
-     isolation level, data read by one transaction can be overwritten by
-     another. In other words, if a row is returned by
-     <command>SELECT</command> it doesn't mean that this row really exists
-     at the time it is returned (i.e. sometime after the statement or
-     transaction began) nor that the row is protected from being deleted or
-     updated by concurrent transactions before the current transaction does
-     a commit or rollback.
-    </para>
-
-    <para>
-     To ensure the actual existence of a row and protect it against
-     concurrent updates one must use <command>SELECT FOR UPDATE</command> or
-     an appropriate <command>LOCK TABLE</command> statement. This should be
-     taken into account when porting applications from previous releases of
-     <productname>PostgreSQL</productname> and other environments.
-    </para>
-
-    <para>
-     Keep the above in mind if you are using
-     <filename>contrib/refint.*</filename> triggers for
-     referential integrity. Additional techniques are required now. One way is
-     to use <command>LOCK parent_table IN SHARE ROW EXCLUSIVE MODE</command>
-     command if a transaction is going to update/delete a primary key and
-     use <command>LOCK parent_table IN SHARE MODE</command> command if a
-     transaction is going to update/insert a foreign key.
-
-     <note>
-      <para>
-       Note that if you run a transaction in SERIALIZABLE mode then you must
-       execute the <command>LOCK</command> commands above before execution of any
-       <acronym>DML</acronym> statement
-       (<command>SELECT/INSERT/DELETE/UPDATE/FETCH/COPY_TO</command>) in the
-       transaction.
-      </para>
-     </note>
-    </para>
-
-    <para>
-     These inconveniences will disappear in the future
-     when the ability to read dirty
-     (uncommitted) data (regardless of isolation level) and true referential
-     integrity will be implemented.
-    </para>
-   </sect3>
-   </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <para>
-<programlisting>
-Bug Fixes
----------
-Fix text&lt;-&gt;float8 and text&lt;-&gt;float4 conversion functions(Thomas)
-Fix for creating tables with mixed-case constraints(Billy)
-Change exp()/pow() behavior to generate error on underflow/overflow(Jan)
-Fix bug in pg_dump -z
-Memory overrun cleanups(Tatsuo)
-Fix for lo_import crash(Tatsuo)
-Adjust handling of data type names to suppress double quotes(Thomas)
-Use type coercion for matching columns and DEFAULT(Thomas)
-Fix deadlock so it only checks once after one second of sleep(Bruce)
-Fixes for aggregates and PL/pgsql(Hiroshi)
-Fix for subquery crash(Vadim)
-Fix for libpq function PQfnumber and case-insensitive names(Bahman Rafatjoo)
-Fix for large object write-in-middle, no extra block, memory consumption(Tatsuo)
-Fix for pg_dump -d or -D and  quote special characters in INSERT
-Repair serious problems with dynahash(Tom)
-Fix INET/CIDR portability problems
-Fix problem with selectivity error in ALTER TABLE ADD COLUMN(Bruce)
-Fix executor so mergejoin of different column types works(Tom)
-Fix for Alpha OR selectivity bug
-Fix OR index selectivity problem(Bruce)
-Fix so \d shows proper length for char()/varchar()(Ryan)
-Fix tutorial code(Clark)
-Improve destroyuser checking(Oliver)
-Fix for Kerberos(Rodney McDuff)
-Fix for dropping database while dirty buffers(Bruce)
-Fix so sequence nextval() can be case-sensitive(Bruce)
-Fix !!= operator
-Drop buffers before destroying database files(Bruce)
-Fix case where executor evaluates functions twice(Tatsuo)
-Allow sequence nextval actions to be case-sensitive(Bruce)
-Fix optimizer indexing not working for negative numbers(Bruce)
-Fix for memory leak in executor with fjIsNull
-Fix for aggregate memory leaks(Erik Riedel)
-Allow user name containing a dash to grant privileges
-Cleanup of NULL in inet types
-Clean up system table bugs(Tom)
-Fix problems of PAGER and \? command(Masaaki Sakaida)
-Reduce default multisegment file size limit to 1GB(Peter)
-Fix for dumping of CREATE OPERATOR(Tom)
-Fix for backward scanning of cursors(Hiroshi Inoue)
-Fix for COPY FROM STDIN when using \i(Tom)
-Fix for subselect is compared inside an expression(Jan)
-Fix handling of error reporting while returning rows(Tom)
-Fix problems with reference to array types(Tom,Jan)
-Prevent UPDATE SET oid(Jan)
-Fix pg_dump so -t option can handle case-sensitive tablenames
-Fixes for GROUP BY in special cases(Tom, Jan)
-Fix for memory leak in failed queries(Tom)
-DEFAULT now supports mixed-case identifiers(Tom)
-Fix for multisegment uses of DROP/RENAME table, indexes(Ole Gjerde)
-Disable use of pg_dump with both -o and -d options(Bruce)
-Allow pg_dump to properly dump group privileges(Bruce)
-Fix GROUP BY in INSERT INTO table SELECT * FROM table2(Jan)
-Fix for computations in views(Jan)
-Fix for aggregates on array indexes(Tom)
-Fix for DEFAULT handles single quotes in value requiring too many quotes
-Fix security problem with non-super users importing/exporting large objects(Tom)
-Rollback of transaction that creates table cleaned up properly(Tom)
-Fix to allow long table and column names to generate proper serial names(Tom)
-
-Enhancements
-------------
-Add "vacuumdb" utility
-Speed up libpq by allocating memory better(Tom)
-EXPLAIN all indexes used(Tom)
-Implement CASE, COALESCE, NULLIF  expression(Thomas)
-New pg_dump table output format(Constantin)
-Add string min()/max() functions(Thomas)
-Extend new type coercion techniques to aggregates(Thomas)
-New moddatetime contrib(Terry)
-Update to pgaccess 0.96(Constantin)
-Add routines for single-byte "char" type(Thomas)
-Improved substr() function(Thomas)
-Improved multibyte handling(Tatsuo)
-Multiversion concurrency control/MVCC(Vadim)
-New Serialized mode(Vadim)
-Fix for tables over 2gigs(Peter)
-New SET TRANSACTION ISOLATION LEVEL(Vadim)
-New LOCK TABLE IN ... MODE(Vadim)
-Update ODBC driver(Byron)
-New NUMERIC data type(Jan)
-New SELECT FOR UPDATE(Vadim)
-Handle "NaN" and "Infinity" for input values(Jan)
-Improved date/year handling(Thomas)
-Improved handling of backend connections(Magnus)
-New options ELOG_TIMESTAMPS and USE_SYSLOG options for log files(Massimo)
-New TCL_ARRAYS option(Massimo)
-New INTERSECT and EXCEPT(Stefan)
-New pg_index.indisprimary for primary key tracking(D'Arcy)
-New pg_dump option to allow dropping of tables before creation(Brook)
-Speedup of row output routines(Tom)
-New READ COMMITTED isolation level(Vadim)
-New TEMP tables/indexes(Bruce)
-Prevent sorting if result is already sorted(Jan)
-New memory allocation optimization(Jan)
-Allow psql to do \p\g(Bruce)
-Allow multiple rule actions(Jan)
-Added LIMIT/OFFSET functionality(Jan)
-Improve optimizer when joining a large number of tables(Bruce)
-New intro to SQL from S. Simkovics' Master's Thesis (Stefan, Thomas)
-New intro to backend processing from S. Simkovics' Master's Thesis (Stefan)
-Improved int8 support(Ryan Bradetich, Thomas, Tom)
-New routines to convert between int8 and text/varchar types(Thomas)
-New bushy plans, where meta-tables are joined(Bruce)
-Enable right-hand queries by default(Bruce)
-Allow reliable maximum number of backends to be set at configure time
-     (--with-maxbackends and postmaster switch (-N backends))(Tom)
-GEQO default now 10 tables because of optimizer speedups(Tom)
-Allow NULL=Var for MS-SQL portability(Michael, Bruce)
-Modify contrib check_primary_key() so either "automatic" or "dependent"(Anand)
-Allow psql \d on a view show query(Ryan)
-Speedup for LIKE(Bruce)
-Ecpg fixes/features, see src/interfaces/ecpg/ChangeLog file(Michael)
-JDBC fixes/features, see src/interfaces/jdbc/CHANGELOG(Peter)
-Make % operator have precedence like /(Bruce)
-Add new postgres -O option to allow system table structure changes(Bruce)
-Update contrib/pginterface/findoidjoins script(Tom)
-Major speedup in vacuum of deleted rows with indexes(Vadim)
-Allow non-SQL functions to run different versions based on arguments(Tom)
-Add -E option that shows actual queries sent by \dt and friends(Masaaki Sakaida)
-Add version number in start-up banners for psql(Masaaki Sakaida)
-New contrib/vacuumlo removes large objects not referenced(Peter)
-New initialization for table sizes so non-vacuumed tables perform better(Tom)
-Improve error messages when a connection is rejected(Tom)
-Support for arrays of char() and varchar() fields(Massimo)
-Overhaul of hash code to increase reliability and performance(Tom)
-Update to PyGreSQL 2.4(D'Arcy)
-Changed debug options so -d4 and -d5 produce different node displays(Jan)
-New pg_options: pretty_plan, pretty_parse, pretty_rewritten(Jan)
-Better optimization statistics for system table access(Tom)
-Better handling of non-default block sizes(Massimo)
-Improve GEQO optimizer memory consumption(Tom)
-UNION now supports ORDER BY of columns not in target list(Jan)
-Major libpq++ improvements(Vince Vielhaber)
-pg_dump now uses -z(ACL's) as default(Bruce)
-backend cache, memory speedups(Tom)
-have pg_dump do everything in one snapshot transaction(Vadim)
-fix for large object memory leakage, fix for pg_dumping(Tom)
-INET type now respects netmask for comparisons
-Make VACUUM ANALYZE only use a readlock(Vadim)
-Allow VIEWs on UNIONS(Jan)
-pg_dump now can generate consistent snapshots on active databases(Vadim)
-
-Source Tree Changes
--------------------
-Improve port matching(Tom)
-Portability fixes for SunOS
-Add Windows NT backend port and enable dynamic loading(Magnus and Daniel Horak)
-New port to Cobalt Qube(Mips) running Linux(Tatsuo)
-Port to NetBSD/m68k(Mr. Mutsuki Nakajima)
-Port to NetBSD/sun3(Mr. Mutsuki Nakajima)
-Port to NetBSD/macppc(Toshimi Aoki)
-Fix for tcl/tk configuration(Vince)
-Removed CURRENT key word for rule queries(Jan)
-NT dynamic loading now works(Daniel Horak)
-Add ARM32 support(Andrew McMurry)
-Better support for HP-UX 11 and UnixWare
-Improve file handling to be more uniform, prevent file descriptor leak(Tom)
-New install commands for plpgsql(Jan)
-</programlisting>
-   </para>
-  </sect2>
- </sect1>
-
-
-<sect1 id="release-6-4-2">
-<title>Release 6.4.2</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>1998-12-20</para>
-  </formalpara>
-
-<para>
-The 6.4.1 release was improperly packaged.  This also has one additional
-bug fix.
-</para>
-
-
-<sect2>
-<title>Migration to Version 6.4.2</title>
-
-<para>
-A dump/restore is <emphasis>not</emphasis> required for those running
-6.4.*.
-</para>
-</sect2>
-<sect2>
-<title>Changes</title>
-
-<para>
-<programlisting>
-Fix for datetime constant problem on some platforms(Thomas)
-</programlisting>
-</para>
-</sect2>
-</sect1>
-
-
-
-<sect1 id="release-6-4-1">
-<title>Release 6.4.1</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>1998-12-18</para>
-  </formalpara>
-
-<para>
-This is basically a cleanup release for 6.4.  We have fixed a variety of
-problems reported by 6.4 users.
-</para>
-
-
-<sect2>
-<title>Migration to Version 6.4.1</title>
-
-<para>
-A dump/restore is <emphasis>not</emphasis> required for those running
-6.4.
-</para>
-</sect2>
-<sect2>
-<title>Changes</title>
-
-<para>
-<programlisting>
-Add pg_dump -N flag to force double quotes around identifiers.  This is
-       the default(Thomas)
-Fix for NOT in where clause causing crash(Bruce)
-EXPLAIN VERBOSE coredump fix(Vadim)
-Fix shared-library problems on Linux
-Fix test for table existence to allow mixed-case and whitespace in
-       the table name(Thomas)
-Fix a couple of pg_dump bugs
-Configure matches template/.similar entries better(Tom)
-Change builtin function names from SPI_* to spi_*
-OR WHERE clause fix(Vadim)
-Fixes for mixed-case table names(Billy)
-contrib/linux/postgres.init.csh/sh fix(Thomas)
-libpq memory overrun fix
-SunOS fixes(Tom)
-Change exp() behavior to generate error on underflow(Thomas)
-pg_dump fixes for memory leak, inheritance constraints, layout change
-update pgaccess to 0.93
-Fix prototype for 64-bit platforms
-Multibyte fixes(Tatsuo)
-New ecpg man page
-Fix memory overruns(Tatsuo)
-Fix for lo_import() crash(Bruce)
-Better search for install program(Tom)
-Timezone fixes(Tom)
-HP-UX fixes(Tom)
-Use implicit type coercion for matching DEFAULT values(Thomas)
-Add routines to help with single-byte (internal) character type(Thomas)
-Compilation of libpq for Windows fixes(Magnus)
-Upgrade to PyGreSQL 2.2(D'Arcy)
-</programlisting>
-</para>
-</sect2>
-</sect1>
-
-
-
-<sect1 id="release-6-4">
-<title>Release 6.4</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>1998-10-30</para>
-  </formalpara>
-
-<para>
-There are <emphasis>many</emphasis> new features and improvements in this release.
-Thanks to our developers and maintainers, nearly every aspect of the system
-has received some attention since the previous release.
-Here is a brief, incomplete summary:
-
-<itemizedlist>
-<listitem>
-<para>
-Views and rules are now functional thanks to extensive new code in the
-rewrite rules system from Jan Wieck. He also wrote a chapter on it
-for the <citetitle>Programmer's Guide</citetitle>.
-</para>
-</listitem>
-<listitem>
-<para>
-Jan also contributed a second procedural language, <application>PL/pgSQL</application>, to go with the
-original <application>PL/pgTCL</application> procedural language he contributed last release.
-</para>
-</listitem>
-
-<listitem>
-<para>
-We have optional multiple-byte character set support from Tatsuo Ishii
-to complement our existing locale support.
-</para>
-</listitem>
-
-<listitem>
-<para>
-Client/server communications has been cleaned up, with better support for
-asynchronous messages and interrupts thanks to Tom Lane.
-</para>
-</listitem>
-
-<listitem>
-<para>
-The parser will now perform automatic type coercion to match arguments
-to available operators and functions, and to match columns and expressions
-with target columns. This uses a generic mechanism which supports
-the type extensibility features of <productname>PostgreSQL</productname>.
-There is a new chapter in the <citetitle>User's Guide</citetitle>
-which covers this topic.
-</para>
-</listitem>
-
-<listitem>
-<para>
-Three new data types have been added.
-Two types, <type>inet</type> and <type>cidr</type>, support various forms
-of IP network, subnet, and machine addressing. There is now an 8-byte integer
-type available on some platforms. See the chapter on data types
-in the <citetitle>User's Guide</citetitle> for details.
-A fourth type, <type>serial</type>, is now supported by the parser as an
-amalgam of the <type>int4</type> type, a sequence, and a unique index.
-</para>
-</listitem>
-
-<listitem>
-<para>
-Several more <acronym>SQL92</acronym>-compatible syntax features have been
-added, including <command>INSERT DEFAULT VALUES</command>
-</para>
-</listitem>
-
-<listitem>
-<para>
-The automatic configuration and installation system has received some
-attention, and should be more robust for more platforms than it has ever
-been.
-</para>
-</listitem>
-
-</itemizedlist>
-</para>
-
-<sect2>
-<title>Migration to Version 6.4</title>
-
-<para>
-A dump/restore using <application>pg_dump</application>
-or <application>pg_dumpall</application>
-is required for those wishing to migrate data from any
-previous release of <productname>PostgreSQL</productname>.
-</para>
-</sect2>
-
-  <sect2>
-<title>Changes</title>
-
-   <para>
-<programlisting>
-Bug Fixes
----------
-Fix for a tiny memory leak in PQsetdb/PQfinish(Bryan)
-Remove char2-16 data types, use char/varchar(Darren)
-Pqfn not handles a NOTICE message(Anders)
-Reduced busywaiting overhead for spinlocks with many backends (dg)
-Stuck spinlock detection (dg)
-Fix up "ISO-style" timespan decoding and encoding(Thomas)
-Fix problem with table drop after rollback of transaction(Vadim)
-Change error message and remove non-functional update message(Vadim)
-Fix for COPY array checking
-Fix for SELECT 1 UNION SELECT NULL
-Fix for buffer leaks in large object calls(Pascal)
-Change owner from oid to int4 type(Bruce)
-Fix a bug in the oracle compatibility functions btrim() ltrim() and rtrim()
-Fix for shared invalidation cache overflow(Massimo)
-Prevent file descriptor leaks in failed COPY's(Bruce)
-Fix memory leak in libpgtcl's pg_select(Constantin)
-Fix problems with username/passwords over 8 characters(Tom)
-Fix problems with handling of asynchronous NOTIFY in backend(Tom)
-Fix of many bad system table entries(Tom)
-
-Enhancements
-------------
-Upgrade ecpg and ecpglib,see src/interfaces/ecpc/ChangeLog(Michael)
-Show the index used in an EXPLAIN(Zeugswetter)
-EXPLAIN  invokes  rule system and shows plan(s) for rewritten queries(Jan)
-Multibyte awareness of many data types and functions, via configure(Tatsuo)
-New configure --with-mb option(Tatsuo)
-New initdb --pgencoding option(Tatsuo)
-New createdb -E multibyte option(Tatsuo)
-Select version(); now returns PostgreSQL version(Jeroen)
-libpq now allows asynchronous clients(Tom)
-Allow cancel from client of backend query(Tom)
-psql now cancels query with Control-C(Tom)
-libpq users need not issue dummy queries to get NOTIFY messages(Tom)
-NOTIFY now sends sender's PID, so you can tell whether it was your own(Tom)
-PGresult struct now includes associated error message, if any(Tom)
-Define "tz_hour" and "tz_minute" arguments to date_part()(Thomas)
-Add routines to convert between varchar and bpchar(Thomas)
-Add routines to allow sizing of varchar and bpchar into target columns(Thomas)
-Add bit flags to support timezonehour and minute in data retrieval(Thomas)
-Allow more variations on valid floating point numbers (e.g. ".1", "1e6")(Thomas)
-Fixes for unary minus parsing with leading spaces(Thomas)
-Implement TIMEZONE_HOUR, TIMEZONE_MINUTE per SQL92 specs(Thomas)
-Check for and properly ignore FOREIGN KEY column constraints(Thomas)
-Define USER as synonym for CURRENT_USER per SQL92 specs(Thomas)
-Enable HAVING clause but no fixes elsewhere yet.
-Make "char" type a synonym for "char(1)" (actually implemented as bpchar)(Thomas)
-Save string type if specified for DEFAULT clause handling(Thomas)
-Coerce operations involving different data types(Thomas)
-Allow some index use for columns of different types(Thomas)
-Add capabilities for automatic type conversion(Thomas)
-Cleanups for large objects, so file is truncated on open(Peter)
-Readline cleanups(Tom)
-Allow psql  \f \ to make spaces as delimiter(Bruce)
-Pass pg_attribute.atttypmod to the frontend for column field lengths(Tom,Bruce)
-Msql compatibility library in /contrib(Aldrin)
-Remove the requirement that ORDER/GROUP BY clause identifiers be
-included in the target list(David)
-Convert columns to match columns in UNION clauses(Thomas)
-Remove fork()/exec() and only do fork()(Bruce)
-Jdbc cleanups(Peter)
-Show backend status on ps command line(only works on some platforms)(Bruce)
-Pg_hba.conf now has a sameuser option in the database field
-Make lo_unlink take oid param, not int4
-New DISABLE_COMPLEX_MACRO for compilers that cannot handle our macros(Bruce)
-Libpgtcl now handles NOTIFY as a Tcl event, need not send dummy queries(Tom)
-libpgtcl cleanups(Tom)
-Add -error option to libpgtcl's pg_result command(Tom)
-New locale patch, see docs/README/locale(Oleg)
-Fix for pg_dump so CONSTRAINT and CHECK syntax is correct(ccb)
-New contrib/lo code for large object orphan removal(Peter)
-New psql command "SET CLIENT_ENCODING TO 'encoding'" for multibytes
-feature, see /doc/README.mb(Tatsuo)
-contrib/noupdate code to revoke update permission on a column
-libpq can now be compiled on Windows(Magnus)
-Add PQsetdbLogin() in libpq
-New 8-byte integer type, checked by configure for OS support(Thomas)
-Better support for quoted table/column names(Thomas)
-Surround table and column names with double-quotes in pg_dump(Thomas)
-PQreset() now works with passwords(Tom)
-Handle case of GROUP BY target list column number out of range(David)
-Allow UNION in subselects
-Add auto-size to screen to \d? commands(Bruce)
-Use UNION to show all \d? results in one query(Bruce)
-Add \d? field search feature(Bruce)
-Pg_dump issues fewer \connect requests(Tom)
-Make pg_dump -z flag work better, document it in manual page(Tom)
-Add HAVING clause with full support for subselects and unions(Stephan)
-Full text indexing routines in contrib/fulltextindex(Maarten)
-Transaction ids now stored in shared memory(Vadim)
-New PGCLIENTENCODING when issuing COPY command(Tatsuo)
-Support for SQL92 syntax "SET NAMES"(Tatsuo)
-Support for LATIN2-5(Tatsuo)
-Add UNICODE regression test case(Tatsuo)
-Lock manager cleanup, new locking modes for LLL(Vadim)
-Allow index use with OR clauses(Bruce)
-Allows "SELECT NULL ORDER BY 1;"
-Explain VERBOSE prints the plan, and now pretty-prints the plan to
-the postmaster log file(Bruce)
-Add indexes display to \d command(Bruce)
-Allow GROUP BY on functions(David)
-New pg_class.relkind for large objects(Bruce)
-New way to send libpq NOTICE messages to a different location(Tom)
-New \w write command to psql(Bruce)
-New /contrib/findoidjoins scans oid columns to find join relationships(Bruce)
-Allow binary-compatible indexes to be considered when checking for valid
-Indexes for restriction clauses containing a constant(Thomas)
-New ISBN/ISSN code in /contrib/isbn_issn
-Allow NOT LIKE, IN, NOT IN, BETWEEN, and NOT BETWEEN constraint(Thomas)
-New rewrite system fixes many problems with rules and views(Jan)
-       * Rules on relations work
-       * Event qualifications on insert/update/delete work
-       * New OLD variable to reference CURRENT, CURRENT will be remove in future
-       * Update rules can reference NEW and OLD in rule qualifications/actions
-       * Insert/update/delete rules on views work
-       * Multiple rule actions are now supported, surrounded by parentheses
-       * Regular users can create views/rules on tables they have RULE permits
-       * Rules and views inherit the privileges of the creator
-       * No rules at the column level
-       * No UPDATE NEW/OLD rules
-       * New pg_tables, pg_indexes, pg_rules and pg_views system views
-       * Only a single action on SELECT rules
-       * Total rewrite overhaul, perhaps for 6.5
-       * handle subselects
-       * handle aggregates on views
-       * handle insert into select from view works
-System indexes are now multikey(Bruce)
-Oidint2, oidint4, and oidname types are removed(Bruce)
-Use system cache for more system table lookups(Bruce)
-New backend programming language PL/pgSQL in backend/pl(Jan)
-New SERIAL data type, auto-creates sequence/index(Thomas)
-Enable assert checking without a recompile(Massimo)
-User lock enhancements(Massimo)
-New setval() command to set sequence value(Massimo)
-Auto-remove unix socket file on start-up if no postmaster running(Massimo)
-Conditional trace package(Massimo)
-New UNLISTEN command(Massimo)
-psql and libpq now compile under Windows using win32.mak(Magnus)
-Lo_read no longer stores trailing NULL(Bruce)
-Identifiers are now truncated to 31 characters internally(Bruce)
-Createuser options now available on the command line
-Code for 64-bit integer supported added, configure tested, int8 type(Thomas)
-Prevent file descriptor leaf from failed COPY(Bruce)
-New pg_upgrade command(Bruce)
-Updated /contrib directories(Massimo)
-New CREATE TABLE DEFAULT VALUES statement available(Thomas)
-New INSERT INTO TABLE DEFAULT VALUES statement available(Thomas)
-New DECLARE and FETCH feature(Thomas)
-libpq's internal structures now not exported(Tom)
-Allow up to 8 key indexes(Bruce)
-Remove ARCHIVE key word, that is no longer used(Thomas)
-pg_dump -n flag to suppress quotes around identifiers
-disable system columns for views(Jan)
-new INET and CIDR types for network addresses(TomH, Paul)
-no more double quotes in psql output
-pg_dump now dumps views(Terry)
-new SET QUERY_LIMIT(Tatsuo,Jan)
-
-Source Tree Changes
--------------------
-/contrib cleanup(Jun)
-Inline some small functions called for every row(Bruce)
-Alpha/linux fixes
-HP-UX cleanups(Tom)
-Multibyte regression tests(Soonmyung.)
-Remove --disabled options from configure
-Define PGDOC to use POSTGRESDIR by default
-Make regression optional
-Remove extra braces code to pgindent(Bruce)
-Add bsdi shared library support(Bruce)
-New --without-CXX support configure option(Brook)
-New FAQ_CVS
-Update backend flowchart in tools/backend(Bruce)
-Change atttypmod from int16 to int32(Bruce, Tom)
-Getrusage() fix for platforms that do not have it(Tom)
-Add PQconnectdb, PGUSER, PGPASSWORD to libpq man page
-NS32K platform fixes(Phil Nelson, John Buller)
-SCO 7/UnixWare 2.x fixes(Billy,others)
-Sparc/Solaris 2.5 fixes(Ryan)
-Pgbuiltin.3 is obsolete, move to doc files(Thomas)
-Even more documentation(Thomas)
-Nextstep support(Jacek)
-Aix support(David)
-pginterface manual page(Bruce)
-shared libraries all have version numbers
-merged all OS-specific shared library defines into one file
-smarter TCL/TK configuration checking(Billy)
-smarter perl configuration(Brook)
-configure uses supplied install-sh if no install script found(Tom)
-new Makefile.shlib for shared library configuration(Tom)
-</programlisting>
-</para>
-</sect2>
-</sect1>
-
-<sect1 id="release-6-3-2">
-<title>Release 6.3.2</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>1998-04-07</para>
-  </formalpara>
-
-<para>
-This is a bug-fix release for 6.3.x.
-Refer to the release notes for version 6.3 for a more complete summary of new features.
-</para>
-<para>
-Summary:
-
-<itemizedlist>
-<listitem>
-<para>
-Repairs automatic configuration support for some platforms, including Linux,
-from breakage inadvertently introduced in version 6.3.1.
-</para>
-</listitem>
-
-<listitem>
-<para>
-Correctly handles function calls on the left side of BETWEEN and LIKE clauses.
-</para>
-</listitem>
-
-</itemizedlist>
-</para>
-<para>
-A dump/restore is NOT required for those running 6.3 or 6.3.1.  A
-<literal>make distclean</>, <literal>make</>, and <literal>make install</> is all that is required.
-This last step should be performed while the postmaster is not running.
-You should re-link any custom applications that use <productname>PostgreSQL</productname> libraries.
-</para>
-<para>
-For upgrades from pre-6.3 installations,
-refer to the installation and migration instructions for version 6.3.
-</para>
-
-  <sect2>
-   <title>Changes</title>
-
-   <para>
-<programlisting>
-Configure detection improvements for tcl/tk(Brook Milligan, Alvin)
-Manual page improvements(Bruce)
-BETWEEN and LIKE fix(Thomas)
-fix for psql \connect used by pg_dump(Oliver Elphick)
-New odbc driver
-pgaccess, version 0.86
-qsort removed, now uses libc version, cleanups(Jeroen)
-fix for buffer over-runs detected(Maurice Gittens)
-fix for buffer overrun in libpgtcl(Randy Kunkee)
-fix for UNION with DISTINCT or ORDER BY(Bruce)
-gettimeofday configure check(Doug Winterburn)
-Fix "indexes not used" bug(Vadim)
-docs additions(Thomas)
-Fix for backend memory leak(Bruce)
-libreadline cleanup(Erwan MAS)
-Remove DISTDIR(Bruce)
-Makefile dependency cleanup(Jeroen van Vianen)
-ASSERT fixes(Bruce)
-</programlisting>
-   </para>
-  </sect2>
- </sect1>
-
- <sect1 id="release-6-3-1">
-  <title>Release 6.3.1</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>1998-03-23</para>
-  </formalpara>
-
-  <para>
-   Summary:
-
-<itemizedlist>
-<listitem>
-<para>
-Additional support for multibyte character sets.
-</para>
-</listitem>
-
-<listitem>
-<para>
-Repair byte ordering for mixed-endian clients and servers.
-</para>
-</listitem>
-
-<listitem>
-<para>
-Minor updates to allowed SQL syntax.
-</para>
-</listitem>
-
-<listitem>
-<para>
-Improvements to the configuration autodetection for installation.
-</para>
-</listitem>
-
-</itemizedlist>
-</para>
-<para>
-A dump/restore is NOT required for those running 6.3.  A
-<literal>make distclean</>, <literal>make</>, and <literal>make install</> is all that is required.
-This last step should be performed while the postmaster is not running.
-You should re-link any custom applications that use <productname>PostgreSQL</productname> libraries.
-</para>
-<para>
-For upgrades from pre-6.3 installations,
-refer to the installation and migration instructions for version 6.3.
-</para>
-
-  <sect2>
-   <title>Changes</title>
-
-   <para>
-<programlisting>
-ecpg cleanup/fixes, now version 1.1(Michael Meskes)
-pg_user cleanup(Bruce)
-large object fix for pg_dump and tclsh (alvin)
-LIKE fix for multiple adjacent underscores
-fix for redefining builtin functions(Thomas)
-ultrix4 cleanup
-upgrade to pg_access 0.83
-updated CLUSTER manual page
-multibyte character set support, see doc/README.mb(Tatsuo)
-configure --with-pgport fix
-pg_ident fix
-big-endian fix for backend communications(Kataoka)
-SUBSTR() and substring() fix(Jan)
-several jdbc fixes(Peter)
-libpgtcl improvements, see libptcl/README(Randy Kunkee)
-Fix for "Datasize = 0" error(Vadim)
-Prevent \do from wrapping(Bruce)
-Remove duplicate Russian character set entries
-Sunos4 cleanup
-Allow optional TABLE key word in LOCK and SELECT INTO(Thomas)
-CREATE SEQUENCE options to allow a negative integer(Thomas)
-Add "PASSWORD" as an allowed column identifier(Thomas)
-Add checks for UNION target fields(Bruce)
-Fix Alpha port(Dwayne Bailey)
-Fix for text arrays containing quotes(Doug Gibson)
-Solaris compile fix(Albert Chin-A-Young)
-Better identify tcl and tk libs and includes(Bruce)
-</programlisting>
-   </para>
-  </sect2>
- </sect1>
-
- <sect1 id="release-6-3">
-  <title>Release 6.3</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>1998-03-01</para>
-  </formalpara>
-
-  <para>
-   There are <emphasis>many</emphasis> new features and improvements in this release.
-   Here is a brief, incomplete summary:
-
-   <itemizedlist>
-    <listitem>
-     <para>
-      Many new SQL features, including
-      full <acronym>SQL92</acronym> subselect capability
-      (everything is here but target-list subselects).
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Support for client-side environment variables to specify time zone and date style.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Socket interface for client/server connection. This is the default now
-      so you might need to start <application>postmaster</application> with the
-      <option>-i</option> flag.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Better password authorization mechanisms. Default table privileges have changed.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Old-style <firstterm>time travel</firstterm>
-      has been removed. Performance has been improved.
-     </para>
-    </listitem>
-   </itemizedlist>
-  </para>
-
-  <note>
-   <para>
-    Bruce Momjian wrote the following notes to introduce the new release.
-   </para>
-  </note>
-
-  <para>
-   There are some general 6.3 issues that I want to mention.  These are
-   only the big items that cannot be described in one sentence.  A review
-   of the detailed changes list is still needed.
-  </para>
-  <para>
-   First, we now have subselects.  Now that we have them, I would like to
-   mention that without subselects, SQL is a very limited language.
-   Subselects are a major feature, and you should review your code for
-   places where subselects provide a better solution for your queries.  I
-   think you will find that there are more uses for subselects than you might
-   think.  Vadim has put us on the big SQL map with subselects, and fully
-   functional ones too.  The only thing you cannot do with subselects is to
-   use them in the target list.
-  </para>
-  <para>
-   Second, 6.3 uses Unix domain sockets rather than TCP/IP by default.  To
-   enable connections from other machines, you have to use the new
-   postmaster -i option, and of course edit <filename>pg_hba.conf</filename>.  Also, for this
-   reason, the format of <filename>pg_hba.conf</filename> has changed.
-  </para>
-  <para>
-   Third, <type>char()</type> fields will now allow faster access than <type>varchar()</type> or
-   <type>text</type>. Specifically, the <type>text</> and <type>varchar()</type> have a penalty for access to
-   any columns after the first column of this type.  <type>char()</type> used to also
-   have this access penalty, but it no longer does.  This might suggest that
-   you redesign some of your tables, especially if you have short character
-   columns that you have defined as <type>varchar()</type> or <type>text</type>.  This and other
-   changes make 6.3 even faster than earlier releases.
-  </para>
-  <para>
-   We now have passwords definable independent of any Unix file.  There are
-   new SQL USER commands.
-   See the <citetitle>Administrator's Guide</citetitle> for more
-   information.  There is a new table, pg_shadow, which is used to store
-   user information and user passwords, and it by default only SELECT-able
-   by the <systemitem>postgres</systemitem> super-user.  pg_user is now a view of pg_shadow, and is
-   SELECT-able by PUBLIC.  You should keep using pg_user in your
-   application without changes.
-  </para>
-  <para>
-   User-created tables now no longer have SELECT privilege to PUBLIC by
-   default.  This was done because the ANSI standard requires it.  You can
-   of course GRANT any privileges you want after the table is created.
-   System tables continue to be SELECT-able by PUBLIC.
-  </para>
-  <para>
-   We also have real deadlock detection code.  No more sixty-second
-   timeouts.  And the new locking code implements a <acronym>FIFO</acronym> better, so there
-   should be less resource starvation during heavy use.
-  </para>
-  <para>
-   Many complaints have been made about inadequate documentation in previous
-   releases.  Thomas has put much effort into many new manuals for this
-   release.  Check out the doc/ directory.
-  </para>
-  <para>
-   For performance reasons, time travel is gone, but can be implemented
-   using triggers (see <filename>pgsql/contrib/spi/README</filename>).  Please check out the new
-   \d command for types, operators, etc.  Also, views have their own
-   privileges now, not based on the underlying tables, so privileges on
-   them have to be set separately.  Check <filename>/pgsql/interfaces</filename> for some new
-   ways to talk to <productname>PostgreSQL</productname>.
-  </para>
-  <para>
-   This is the first release that really required an explanation for
-   existing users.  In many ways, this was necessary because the new
-   release removes many limitations, and the work-arounds people were using
-   are no longer needed.
-  </para>
-
-  <sect2>
-   <title>Migration to Version 6.3</title>
-
-   <para>
-    A dump/restore using <application>pg_dump</application>
-    or <application>pg_dumpall</application>
-    is required for those wishing to migrate data from any
-    previous release of <productname>PostgreSQL</productname>.
-   </para>
-  </sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <para>
-<programlisting>
-Bug Fixes
----------
-Fix binary cursors broken by MOVE implementation(Vadim)
-Fix for tcl library crash(Jan)
-Fix for array handling, from Gerhard Hintermayer
-Fix acl error, and remove duplicate pqtrace(Bruce)
-Fix psql \e for empty file(Bruce)
-Fix for textcat on varchar() fields(Bruce)
-Fix for DBT Sendproc (Zeugswetter Andres)
-Fix vacuum analyze syntax problem(Bruce)
-Fix for international identifiers(Tatsuo)
-Fix aggregates on inherited tables(Bruce)
-Fix substr() for out-of-bounds data
-Fix for select 1=1 or 2=2, select 1=1 and 2=2, and select sum(2+2)(Bruce)
-Fix notty output to show status result.  -q option still turns it off(Bruce)
-Fix for count(*), aggs with views and multiple tables and sum(3)(Bruce)
-Fix cluster(Bruce)
-Fix for PQtrace start/stop several times(Bruce)
-Fix a variety of locking problems like newer lock waiters getting
-       lock before older waiters, and having readlock people not share
-       locks if a writer is waiting for a lock, and waiting writers not
-       getting priority over waiting readers(Bruce)
-Fix crashes in psql when executing queries from external files(James)
-Fix problem with multiple order by columns, with the first one having
-       NULL values(Jeroen)
-Use correct hash table support functions for float8 and int4(Thomas)
-Re-enable JOIN= option in CREATE OPERATOR statement (Thomas)
-Change precedence for boolean operators to match expected behavior(Thomas)
-Generate elog(ERROR) on over-large integer(Bruce)
-Allow multiple-argument functions in constraint clauses(Thomas)
-Check boolean input literals for 'true','false','yes','no','1','0'
-       and throw elog(ERROR) if unrecognized(Thomas)
-Major large objects fix
-Fix for GROUP BY showing duplicates(Vadim)
-Fix for index scans in MergeJoin(Vadim)
-
-Enhancements
-------------
-Subselects with EXISTS, IN, ALL, ANY key words (Vadim, Bruce, Thomas)
-New User Manual(Thomas, others)
-Speedup by inlining some frequently-called functions
-Real deadlock detection, no more timeouts(Bruce)
-Add SQL92 "constants" CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP,
-       CURRENT_USER(Thomas)
-Modify constraint syntax to be SQL92-compliant(Thomas)
-Implement SQL92 PRIMARY KEY and UNIQUE clauses using indexes(Thomas)
-Recognize SQL92 syntax for FOREIGN KEY. Throw elog notice(Thomas)
-Allow NOT NULL UNIQUE constraint clause (each allowed separately before)(Thomas)
-Allow PostgreSQL-style casting ("::") of non-constants(Thomas)
-Add support for SQL3 TRUE and FALSE boolean constants(Thomas)
-Support SQL92 syntax for IS TRUE/IS FALSE/IS NOT TRUE/IS NOT FALSE(Thomas)
-Allow shorter strings for boolean literals (e.g. "t", "tr", "tru")(Thomas)
-Allow SQL92 delimited identifiers(Thomas)
-Implement SQL92 binary and hexadecimal string decoding (b'10' and x'1F')(Thomas)
-Support SQL92 syntax for type coercion of literal strings
-       (e.g. "DATETIME 'now'")(Thomas)
-Add conversions for int2, int4, and OID types to and from text(Thomas)
-Use shared lock when building indexes(Vadim)
-Free memory allocated for a user query inside transaction block after
-       this query is done, was turned off in &lt;= 6.2.1(Vadim)
-New SQL statement CREATE PROCEDURAL LANGUAGE(Jan)
-New <productname>PostgreSQL</productname> Procedural Language (PL) backend interface(Jan)
-Rename pg_dump -H option to -h(Bruce)
-Add Java support for passwords, European dates(Peter)
-Use indexes for LIKE and ~, !~ operations(Bruce)
-Add hash functions for datetime and timespan(Thomas)
-Time Travel removed(Vadim, Bruce)
-Add paging for \d and \z, and fix \i(Bruce)
-Add Unix domain socket support to backend and to frontend library(Goran)
-Implement CREATE DATABASE/WITH LOCATION and initlocation utility(Thomas)
-Allow more SQL92 and/or <productname>PostgreSQL</productname> reserved words as column identifiers(Thomas)
-Augment support for SQL92 SET TIME ZONE...(Thomas)
-SET/SHOW/RESET TIME ZONE uses TZ backend environment variable(Thomas)
-Implement SET keyword = DEFAULT and SET TIME ZONE DEFAULT(Thomas)
-Enable SET TIME ZONE using TZ environment variable(Thomas)
-Add PGDATESTYLE environment variable to frontend and backend initialization(Thomas)
-Add PGTZ, PGCOSTHEAP, PGCOSTINDEX, PGRPLANS, PGGEQO
-       frontend library initialization environment variables(Thomas)
-Regression tests time zone automatically set with "setenv PGTZ PST8PDT"(Thomas)
-Add pg_description table for info on tables, columns, operators, types, and
-       aggregates(Bruce)
-Increase 16 char limit on system table/index names to 32 characters(Bruce)
-Rename system indexes(Bruce)
-Add 'GERMAN' option to SET DATESTYLE(Thomas)
-Define an "ISO-style" timespan output format with "hh:mm:ss" fields(Thomas)
-Allow fractional values for delta times (e.g. '2.5 days')(Thomas)
-Validate numeric input more carefully for delta times(Thomas)
-Implement day of year as possible input to date_part()(Thomas)
-Define timespan_finite() and text_timespan() functions(Thomas)
-Remove archive stuff(Bruce)
-Allow for a pg_password authentication database that is separate from
-       the system password file(Todd)
-Dump ACLs, GRANT, REVOKE privileges(Matt)
-Define text, varchar, and bpchar string length functions(Thomas)
-Fix Query handling for inheritance, and cost computations(Bruce)
-Implement CREATE TABLE/AS SELECT (alternative to SELECT/INTO)(Thomas)
-Allow NOT, IS NULL, IS NOT NULL in constraints(Thomas)
-Implement UNIONs for SELECT(Bruce)
-Add UNION, GROUP, DISTINCT to INSERT(Bruce)
-varchar() stores only necessary bytes on disk(Bruce)
-Fix for BLOBs(Peter)
-Mega-Patch for JDBC...see README_6.3 for list of changes(Peter)
-Remove unused "option" from PQconnectdb()
-New LOCK command and lock manual page describing deadlocks(Bruce)
-Add new psql \da, \dd, \df, \do, \dS, and \dT commands(Bruce)
-Enhance psql \z to show sequences(Bruce)
-Show NOT NULL and DEFAULT in psql \d table(Bruce)
-New psql .psqlrc file start-up(Andrew)
-Modify sample start-up script in contrib/linux to show syslog(Thomas)
-New types for IP and MAC addresses in contrib/ip_and_mac(TomH)
-Unix system time conversions with date/time types in contrib/unixdate(Thomas)
-Update of contrib stuff(Massimo)
-Add Unix socket support to DBD::Pg(Goran)
-New python interface (PyGreSQL 2.0)(D'Arcy)
-New frontend/backend protocol has a version number, network byte order(Phil)
-Security features in pg_hba.conf enhanced and documented, many cleanups(Phil)
-CHAR() now faster access than VARCHAR() or TEXT
-ecpg embedded SQL preprocessor
-Reduce system column overhead(Vadmin)
-Remove pg_time table(Vadim)
-Add pg_type attribute to identify types that need length (bpchar, varchar)
-Add report of offending line when COPY command fails
-Allow VIEW privileges to be set separately from the underlying tables.
-       For security, use GRANT/REVOKE on views as appropriate(Jan)
-Tables now have no default GRANT SELECT TO PUBLIC.  You must
-       explicitly grant such privileges.
-Clean up tutorial examples(Darren)
-
-Source Tree Changes
--------------------
-Add new html development tools, and flow chart in /tools/backend
-Fix for SCO compiles
-Stratus computer port Robert Gillies
-Added support for shlib for BSD44_derived &amp; i386_solaris
-Make configure more automated(Brook)
-Add script to check regression test results
-Break parser functions into smaller files, group together(Bruce)
-Rename heap_create to heap_create_and_catalog, rename heap_creatr
-       to heap_create()(Bruce)
-Sparc/Linux patch for locking(TomS)
-Remove PORTNAME and reorganize port-specific stuff(Marc)
-Add optimizer README file(Bruce)
-Remove some recursion in optimizer and clean up some code there(Bruce)
-Fix for NetBSD locking(Henry)
-Fix for libptcl make(Tatsuo)
-AIX patch(Darren)
-Change IS TRUE, IS FALSE, ... to expressions using "=" rather than
-       function calls to istrue() or isfalse() to allow optimization(Thomas)
-Various fixes NetBSD/Sparc related(TomH)
-Alpha linux locking(Travis,Ryan)
-Change elog(WARN) to elog(ERROR)(Bruce)
-FAQ for FreeBSD(Marc)
-Bring in the PostODBC source tree as part of our standard distribution(Marc)
-A minor patch for HP/UX 10 vs 9(Stan)
-New pg_attribute.atttypmod for type-specific info like varchar length(Bruce)
-UnixWare patches(Billy)
-New i386 'lock' for spinlock asm(Billy)
-Support for multiplexed backends is removed
-Start an OpenBSD port
-Start an AUX port
-Start a Cygnus port
-Add string functions to regression suite(Thomas)
-Expand a few function names formerly truncated to 16 characters(Thomas)
-Remove un-needed malloc() calls and replace with palloc()(Bruce)
-</programlisting>
-</para>
-</sect2>
-</sect1>
-
-<sect1 id="release-6-2-1">
-<title>Release 6.2.1</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>1997-10-17</para>
-  </formalpara>
-
-<para>
-6.2.1 is a bug-fix and usability release on 6.2.
-</para>
-<para>
-Summary:
-
-<itemizedlist>
-<listitem>
-<para>
-Allow strings to span lines, per <acronym>SQL92</acronym>.
-</para>
-</listitem>
-
-<listitem>
-<para>
-Include example trigger function for inserting user names on table updates.
-</para>
-</listitem>
-
-</itemizedlist>
-</para>
-<para>
-This is a minor bug-fix release on 6.2.
-For upgrades from pre-6.2 systems, a full dump/reload is required.
-Refer to the 6.2 release notes for instructions.
-</para>
-
-<sect2>
-<title>Migration from version 6.2 to version 6.2.1</title>
-
-<para>
-This is a minor bug-fix release. A dump/reload is not required from version 6.2,
-but is required from any release prior to 6.2.
-</para>
-<para>
-In upgrading from version 6.2, if you choose to dump/reload you will find that
-avg(money) is now calculated correctly. All other bug fixes take effect
-upon updating the executables.
-</para>
-<para>
-Another way to avoid dump/reload is to use the following SQL command
-from <command>psql</command> to update the existing system table:
-
-<programlisting>
-update pg_aggregate set aggfinalfn = 'cash_div_flt8'
- where aggname = 'avg' and aggbasetype = 790;
-</programlisting>
-</para>
-<para>
-This will need to be done to every existing database, including template1.
-</para>
-</sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <para>
-<programlisting>
-Allow TIME and TYPE column names(Thomas)
-Allow larger range of true/false as boolean values(Thomas)
-Support output of "now" and "current"(Thomas)
-Handle DEFAULT with INSERT of NULL properly(Vadim)
-Fix for relation reference counts problem in buffer manager(Vadim)
-Allow strings to span lines, like ANSI(Thomas)
-Fix for backward cursor with ORDER BY(Vadim)
-Fix avg(cash) computation(Thomas)
-Fix for specifying a column twice in ORDER/GROUP BY(Vadim)
-Documented new libpq function to return affected rows, PQcmdTuples(Bruce)
-Trigger function for inserting user names for INSERT/UPDATE(Brook Milligan)
-</programlisting>
-   </para>
-  </sect2>
- </sect1>
-
-<sect1 id="release-6-2">
-<title>Release 6.2</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>1997-10-02</para>
-  </formalpara>
-
-<para>
-A dump/restore is required for those wishing to migrate data from
-previous releases of <productname>PostgreSQL</productname>.
-</para>
-
-<sect2>
-<title>Migration from version 6.1 to version 6.2</title>
-
-<para>
-This migration requires a complete dump of the 6.1 database and a
-restore of the database in 6.2.
-</para>
-<para>
-Note that the <command>pg_dump</command> and <command>pg_dumpall</command> utility from 6.2 should be used
-to dump the 6.1 database.
-</para>
-</sect2>
-
-<sect2>
-<title>Migration from version 1.<replaceable>x</> to version 6.2</title>
-
-<para>
-Those migrating from earlier 1.* releases should first upgrade to 1.09
-because the COPY output format was improved from the 1.02 release.
-</para>
-</sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <para>
-<programlisting>
-Bug Fixes
----------
-Fix problems with pg_dump for inheritance, sequences, archive tables(Bruce)
-Fix compile errors on overflow due to shifts, unsigned, and bad prototypes
-        from Solaris(Diab Jerius)
-Fix bugs in geometric line arithmetic (bad intersection calculations)(Thomas)
-Check for geometric intersections at endpoints to avoid rounding ugliness(Thomas)
-Catch non-functional delete attempts(Vadim)
-Change time function names to be more consistent(Michael Reifenberg)
-Check for zero divides(Michael Reifenberg)
-Fix very old bug which made rows changed/inserted by a command
-       visible to the command itself (so we had multiple update of
-       updated rows, etc.)(Vadim)
-Fix for SELECT null, 'fail' FROM pg_am (Patrick)
-SELECT NULL as EMPTY_FIELD now allowed(Patrick)
-Remove un-needed signal stuff from contrib/pginterface
-Fix OR (where x != 1 or x isnull didn't return rows with x NULL) (Vadim)
-Fix time_cmp function (Vadim)
-Fix handling of functions with non-attribute first argument in
-       WHERE clauses (Vadim)
-Fix GROUP BY when order of entries is different from order
-       in target list (Vadim)
-Fix pg_dump for aggregates without sfunc1 (Vadim)
-
-Enhancements
-------------
-Default genetic optimizer GEQO parameter is now 8(Bruce)
-Allow use parameters in target list having aggregates in functions(Vadim)
-Added JDBC driver as an interface(Adrian &amp; Peter)
-pg_password utility
-Return number of rows inserted/affected by INSERT/UPDATE/DELETE etc.(Vadim)
-Triggers implemented with CREATE TRIGGER (SQL3)(Vadim)
-SPI (Server Programming Interface) allows execution of queries inside
-       C-functions (Vadim)
-NOT NULL implemented (SQL92)(Robson Paniago de Miranda)
-Include reserved words for string handling, outer joins, and unions(Thomas)
-Implement extended comments ("/* ... */") using exclusive states(Thomas)
-Add "//" single-line comments(Bruce)
-Remove some restrictions on characters in operator names(Thomas)
-DEFAULT and CONSTRAINT for tables implemented (SQL92)(Vadim &amp; Thomas)
-Add text concatenation operator and function (SQL92)(Thomas)
-Support WITH TIME ZONE syntax (SQL92)(Thomas)
-Support INTERVAL unit TO unit syntax (SQL92)(Thomas)
-Define types DOUBLE PRECISION, INTERVAL, CHARACTER,
-       and CHARACTER VARYING (SQL92)(Thomas)
-Define type FLOAT(p) and rudimentary DECIMAL(p,s), NUMERIC(p,s) (SQL92)(Thomas)
-Define EXTRACT(), POSITION(), SUBSTRING(), and TRIM() (SQL92)(Thomas)
-Define CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP (SQL92)(Thomas)
-Add syntax and warnings for UNION, HAVING, INNER and OUTER JOIN (SQL92)(Thomas)
-Add more reserved words, mostly for SQL92 compliance(Thomas)
-Allow hh:mm:ss time entry for timespan/reltime types(Thomas)
-Add center() routines for lseg, path, polygon(Thomas)
-Add distance() routines for circle-polygon, polygon-polygon(Thomas)
-Check explicitly for points and polygons contained within polygons
-       using an axis-crossing algorithm(Thomas)
-Add routine to convert circle-box(Thomas)
-Merge conflicting operators for different geometric data types(Thomas)
-Replace distance operator "&lt;===&gt;" with "&lt;-&gt;"(Thomas)
-Replace "above" operator "!^" with "&gt;^" and "below" operator "!|" with "&lt;^"(Thomas)
-Add routines for text trimming on both ends, substring, and string position(Thomas)
-Added conversion routines circle(box) and poly(circle)(Thomas)
-Allow internal sorts to be stored in memory rather than in files(Bruce &amp; Vadim)
-Allow functions and operators on internally-identical types to succeed(Bruce)
-Speed up backend start-up after profiling analysis(Bruce)
-Inline frequently called functions for performance(Bruce)
-Reduce open() calls(Bruce)
-psql:  Add PAGER for \h and \?,\C fix
-Fix for psql pager when no tty(Bruce)
-New entab utility(Bruce)
-General trigger functions for referential integrity (Vadim)
-General trigger functions for time travel (Vadim)
-General trigger functions for AUTOINCREMENT/IDENTITY feature (Vadim)
-MOVE implementation (Vadim)
-
-Source Tree Changes
--------------------
-HP-UX 10 patches (Vladimir Turin)
-Added SCO support, (Daniel Harris)
-MkLinux patches (Tatsuo Ishii)
-Change geometric box terminology from "length" to "width"(Thomas)
-Deprecate temporary unstored slope fields in geometric code(Thomas)
-Remove restart instructions from INSTALL(Bruce)
-Look in /usr/ucb first for install(Bruce)
-Fix c++ copy example code(Thomas)
-Add -o to psql manual page(Bruce)
-Prevent relname unallocated string length from being copied into database(Bruce)
-Cleanup for NAMEDATALEN use(Bruce)
-Fix pg_proc names over 15 chars in output(Bruce)
-Add strNcpy() function(Bruce)
-remove some (void) casts that are unnecessary(Bruce)
-new interfaces directory(Marc)
-Replace fopen() calls with calls to fd.c functions(Bruce)
-Make functions static where possible(Bruce)
-enclose unused functions in #ifdef NOT_USED(Bruce)
-Remove call to difftime() in timestamp support to fix SunOS(Bruce &amp; Thomas)
-Changes for Digital Unix
-Portability fix for pg_dumpall(Bruce)
-Rename pg_attribute.attnvals to attdispersion(Bruce)
-"intro/unix" manual page now "pgintro"(Bruce)
-"built-in" manual page now "pgbuiltin"(Bruce)
-"drop" manual page now "drop_table"(Bruce)
-Add "create_trigger", "drop_trigger" manual pages(Thomas)
-Add constraints regression test(Vadim &amp; Thomas)
-Add comments syntax regression test(Thomas)
-Add PGINDENT and support program(Bruce)
-Massive commit to run PGINDENT on all *.c and *.h files(Bruce)
-Files moved to /src/tools directory(Bruce)
-SPI and Trigger programming guides (Vadim &amp; D'Arcy)
-</programlisting>
-</para>
-</sect2>
-</sect1>
-
-<sect1 id="release-6-1-1">
-<title>Release 6.1.1</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>1997-07-22</para>
-  </formalpara>
-
-<sect2>
-<title>Migration from version 6.1 to version 6.1.1</title>
-
-<para>
-This is a minor bug-fix release. A dump/reload is not required from version 6.1,
-but is required from any release prior to 6.1.
-Refer to the release notes for 6.1 for more details.
-</para>
-</sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <para>
-<programlisting>
-fix for SET with options (Thomas)
-allow pg_dump/pg_dumpall to preserve ownership of all tables/objects(Bruce)
-new psql \connect option allows changing usernames without changing databases
-fix for initdb --debug option(Yoshihiko Ichikawa))
-lextest cleanup(Bruce)
-hash fixes(Vadim)
-fix date/time month boundary arithmetic(Thomas)
-fix timezone daylight handling for some ports(Thomas, Bruce, Tatsuo)
-timestamp overhauled to use standard functions(Thomas)
-other code cleanup in date/time routines(Thomas)
-psql's \d now case-insensitive(Bruce)
-psql's backslash commands can now have trailing semicolon(Bruce)
-fix memory leak in psql when using \g(Bruce)
-major fix for endian handling of communication to server(Thomas, Tatsuo)
-Fix for Solaris assembler and include files(Yoshihiko Ichikawa)
-allow underscores in usernames(Bruce)
-pg_dumpall now returns proper status, portability fix(Bruce)
-</programlisting>
-   </para>
-  </sect2>
- </sect1>
-
-<sect1 id="release-6-1">
-<title>Release 6.1</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>1997-06-08</para>
-  </formalpara>
-
-<para>
- The regression tests have been adapted and extensively modified for the
- 6.1 release of <productname>PostgreSQL</productname>.
-</para>
-
-<para>
- Three new data types (<type>datetime</type>, <type>timespan</type>, and <type>circle</type>) have been added to
- the native set of <productname>PostgreSQL</productname> types. Points, boxes, paths, and polygons
- have had their output formats made consistent across the data types.
- The polygon output in misc.out has only been spot-checked for correctness
- relative to the original regression output.
-</para>
-
-<para>
- <productname>PostgreSQL</productname> 6.1 introduces a new, alternate
-optimizer which uses <firstterm>genetic</firstterm>
- algorithms. These algorithms introduce a random behavior in the ordering
- of query results when the query contains multiple qualifiers or multiple
- tables (giving the optimizer a choice on order of evaluation). Several
- regression tests have been modified to explicitly order the results, and
- hence are insensitive to optimizer choices. A few regression tests are
- for data types which are inherently unordered (e.g. points and time
- intervals) and tests involving those types are explicitly bracketed with
- <command>set geqo to 'off'</command> and <command>reset geqo</command>.
-</para>
-
-<para>
- The interpretation of array specifiers (the curly braces around atomic
- values) appears to have changed sometime after the original regression
- tests were generated. The current <filename>./expected/*.out</filename> files reflect this
- new interpretation, which might not be correct!
-</para>
-
-<para>
- The float8 regression test fails on at least some platforms. This is due
- to differences in implementations of <function>pow()</function> and <function>exp()</function> and the signaling
- mechanisms used for overflow and underflow conditions.
-</para>
-
-<para>
- The <quote>random</> results in the random test should cause the
- <quote>random</quote> test to be <quote>failed</quote>, since the
- regression tests are evaluated using a simple diff. However,
- <quote>random</> does not seem to produce random results on my test
- machine (Linux/<application>gcc</>/i686).
-</para>
-
-<sect2>
-<title>Migration to Version 6.1</title>
-
-<para>
-This migration requires a complete dump of the 6.0 database and a
-restore of the database in 6.1.
-</para>
-<para>
-Those migrating from earlier 1.* releases should first upgrade to 1.09
-because the COPY output format was improved from the 1.02 release.
-</para>
-</sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <para>
-<programlisting>
-Bug Fixes
----------
-packet length checking in library routines
-lock manager priority patch
-check for under/over flow of float8(Bruce)
-multitable join fix(Vadim)
-SIGPIPE crash fix(Darren)
-large object fixes(Sven)
-allow btree indexes to handle NULLs(Vadim)
-timezone fixes(D'Arcy)
-select SUM(x) can return NULL on no rows(Thomas)
-internal optimizer, executor bug fixes(Vadim)
-fix problem where inner loop in &lt; or &lt;= has no rows(Vadim)
-prevent re-commuting join index clauses(Vadim)
-fix join clauses for multiple tables(Vadim)
-fix hash, hashjoin for arrays(Vadim)
-fix btree for abstime type(Vadim)
-large object fixes(Raymond)
-fix buffer leak in hash indexes (Vadim)
-fix rtree for use in inner scan (Vadim)
-fix gist for use in inner scan, cleanups (Vadim, Andrea)
-avoid unnecessary local buffers allocation (Vadim, Massimo)
-fix local buffers leak in transaction aborts (Vadim)
-fix file manager memory leaks, cleanups (Vadim, Massimo)
-fix storage manager memory leaks (Vadim)
-fix btree duplicates handling (Vadim)
-fix deleted rows reincarnation caused by vacuum (Vadim)
-fix SELECT varchar()/char() INTO TABLE made zero-length fields(Bruce)
-many psql, pg_dump, and libpq memory leaks fixed using Purify (Igor)
-
-Enhancements
-------------
-attribute optimization statistics(Bruce)
-much faster new btree bulk load code(Paul)
-BTREE UNIQUE added to bulk load code(Vadim)
-new lock debug code(Massimo)
-massive changes to libpg++(Leo)
-new GEQO optimizer speeds table multitable optimization(Martin)
-new WARN message for non-unique insert into unique key(Marc)
-update x=-3, no spaces, now valid(Bruce)
-remove case-sensitive identifier handling(Bruce,Thomas,Dan)
-debug backend now pretty-prints tree(Darren)
-new Oracle character functions(Edmund)
-new plaintext password functions(Dan)
-no such class or insufficient privilege changed to distinct messages(Dan)
-new ANSI timestamp function(Dan)
-new ANSI Time and Date types (Thomas)
-move large chunks of data in backend(Martin)
-multicolumn btree indexes(Vadim)
-new SET var TO value command(Martin)
-update transaction status on reads(Dan)
-new locale settings for character types(Oleg)
-new SEQUENCE serial number generator(Vadim)
-GROUP BY function now possible(Vadim)
-re-organize regression test(Thomas,Marc)
-new optimizer operation weights(Vadim)
-new psql \z grant/permit option(Marc)
-new MONEY data type(D'Arcy,Thomas)
-tcp socket communication speed improved(Vadim)
-new VACUUM option for attribute statistics, and for certain columns (Vadim)
-many geometric type improvements(Thomas,Keith)
-additional regression tests(Thomas)
-new datestyle variable(Thomas,Vadim,Martin)
-more comparison operators for sorting types(Thomas)
-new conversion functions(Thomas)
-new more compact btree format(Vadim)
-allow pg_dumpall to preserve database ownership(Bruce)
-new SET GEQO=# and R_PLANS variable(Vadim)
-old (!GEQO) optimizer can use right-sided plans (Vadim)
-typechecking improvement in SQL parser(Bruce)
-new SET, SHOW, RESET commands(Thomas,Vadim)
-new \connect database USER option
-new destroydb -i option (Igor)
-new \dt and \di psql commands (Darren)
-SELECT "\n" now escapes newline (A. Duursma)
-new geometry conversion functions from old format (Thomas)
-
-Source tree changes
--------------------
-new configuration script(Marc)
-readline configuration option added(Marc)
-OS-specific configuration options removed(Marc)
-new OS-specific template files(Marc)
-no more need to edit Makefile.global(Marc)
-re-arrange include files(Marc)
-nextstep patches (Gregor Hoffleit)
-removed Windows-specific code(Bruce)
-removed postmaster -e option, now only postgres -e option (Bruce)
-merge duplicate library code in front/backends(Martin)
-now works with eBones, international Kerberos(Jun)
-more shared library support
-c++ include file cleanup(Bruce)
-warn about buggy flex(Bruce)
-DG/UX, Ultrix, IRIX, AIX portability fixes
-</programlisting>
-</para>
-</sect2>
-</sect1>
-
-<sect1 id="release-6-0">
-<title>Release 6.0</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>1997-01-29</para>
-  </formalpara>
-
-<para>
-A dump/restore is required for those wishing to migrate data from
-previous releases of <productname>PostgreSQL</productname>.
-</para>
-
-<sect2>
-<title>Migration from version 1.09 to version 6.0</title>
-
-<para>
-This migration requires a complete dump of the 1.09 database and a
-restore of the database in 6.0.
-</para>
-</sect2>
-
-<sect2>
-<title>Migration from pre-1.09 to version 6.0</title>
-
-<para>
-Those migrating from earlier 1.* releases should first upgrade to 1.09
-because the COPY output format was improved from the 1.02 release.
-</para>
-</sect2>
-
-  <sect2>
-   <title>Changes</title>
-
-   <para>
-<programlisting>
-Bug Fixes
----------
-ALTER TABLE bug - running postgres process needs to re-read table definition
-Allow vacuum to be run on one table or entire database(Bruce)
-Array fixes
-Fix array over-runs of memory writes(Kurt)
-Fix elusive btree range/non-range bug(Dan)
-Fix for hash indexes on some types like time and date
-Fix for pg_log size explosion
-Fix permissions on lo_export()(Bruce)
-Fix uninitialized reads of memory(Kurt)
-Fixed ALTER TABLE ... char(3) bug(Bruce)
-Fixed a few small memory leaks
-Fixed EXPLAIN handling of options and changed full_path option name
-Fixed output of group acl privileges
-Memory leaks (hunt and destroy with tools like Purify(Kurt)
-Minor improvements to rules system
-NOTIFY fixes
-New asserts for run-checking
-Overhauled parser/analyze code to properly report errors and increase speed
-Pg_dump -d now handles NULL's properly(Bruce)
-Prevent SELECT NULL from crashing server (Bruce)
-Properly report errors when INSERT ... SELECT columns did not match
-Properly report errors when insert column names were not correct
-psql \g filename now works(Bruce)
-psql fixed problem with multiple statements on one line with multiple outputs
-Removed duplicate system OIDs
-SELECT * INTO TABLE . GROUP/ORDER BY gives unlink error if table exists(Bruce)
-Several fixes for queries that crashed the backend
-Starting quote in insert string errors(Bruce)
-Submitting an empty query now returns empty status, not just " " query(Bruce)
-
-Enhancements
-------------
-Add EXPLAIN manual page(Bruce)
-Add UNIQUE index capability(Dan)
-Add hostname/user level access control rather than just hostname and user
-Add synonym of != for &lt;&gt;(Bruce)
-Allow "select oid,* from table"
-Allow BY,ORDER BY to specify columns by number, or by non-alias table.column(Bruce)
-Allow COPY from the frontend(Bryan)
-Allow GROUP BY to use alias column name(Bruce)
-Allow actual compression, not just reuse on the same page(Vadim)
-Allow installation-configuration option to auto-add all local users(Bryan)
-Allow libpq to distinguish between text value '' and null(Bruce)
-Allow non-postgres users with createdb privs to destroydb's
-Allow restriction on who can create C functions(Bryan)
-Allow restriction on who can do backend COPY(Bryan)
-Can shrink tables, pg_time and pg_log(Vadim &amp; Erich)
-Change debug level 2 to print queries only, changed debug heading layout(Bruce)
-Change default decimal constant representation from float4 to float8(Bruce)
-European date format now set when postmaster is started
-Execute lowercase function names if not found with exact case
-Fixes for aggregate/GROUP processing, allow 'select sum(func(x),sum(x+y) from z'
-Gist now included in the distribution(Marc)
-Ident authentication of local users(Bryan)
-Implement BETWEEN qualifier(Bruce)
-Implement IN qualifier(Bruce)
-libpq has PQgetisnull()(Bruce)
-libpq++ improvements
-New options to initdb(Bryan)
-Pg_dump allow dump of OIDs(Bruce)
-Pg_dump create indexes after tables are loaded for speed(Bruce)
-Pg_dumpall dumps all databases, and the user table
-Pginterface additions for NULL values(Bruce)
-Prevent postmaster from being run as root
-psql \h and \? is now readable(Bruce)
-psql allow backslashed, semicolons anywhere on the line(Bruce)
-psql changed command prompt for lines in query or in quotes(Bruce)
-psql char(3) now displays as (bp)char in \d output(Bruce)
-psql return code now more accurate(Bryan?)
-psql updated help syntax(Bruce)
-Re-visit and fix vacuum(Vadim)
-Reduce size of regression diffs, remove timezone name difference(Bruce)
-Remove compile-time parameters to enable binary distributions(Bryan)
-Reverse meaning of HBA masks(Bryan)
-Secure Authentication of local users(Bryan)
-Speed up vacuum(Vadim)
-Vacuum now had VERBOSE option(Bruce)
-
-Source tree changes
--------------------
-All functions now have prototypes that are compared against the calls
-Allow asserts to be disabled easily from Makefile.global(Bruce)
-Change oid constants used in code to #define names
-Decoupled sparc and solaris defines(Kurt)
-Gcc -Wall compiles cleanly with warnings only from unfixable constructs
-Major include file reorganization/reduction(Marc)
-Make now stops on compile failure(Bryan)
-Makefile restructuring(Bryan, Marc)
-Merge bsdi_2_1 to bsdi(Bruce)
-Monitor program removed
-Name change from Postgres95 to PostgreSQL
-New config.h file(Marc, Bryan)
-PG_VERSION now set to 6.0 and used by postmaster
-Portability additions, including Ultrix, DG/UX, AIX, and Solaris
-Reduced the number of #define's, centralized #define's
-Remove duplicate OIDS in system tables(Dan)
-Remove duplicate system catalog info or report mismatches(Dan)
-Removed many os-specific #define's
-Restructured object file generation/location(Bryan, Marc)
-Restructured port-specific file locations(Bryan, Marc)
-Unused/uninitialized variables corrected
-</programlisting>
-</para>
-</sect2>
-</sect1>
-
-<sect1 id="release-1-09">
-<title>Release 1.09</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>1996-11-04</para>
-  </formalpara>
-
-<para>
-Sorry, we didn't keep track of changes from 1.02 to 1.09.  Some of
-the changes listed in 6.0 were actually included in the 1.02.1 to 1.09
-releases.
-</para>
-</sect1>
-
-<sect1 id="release-1-02">
-<title>Release 1.02</title>
-
-  <formalpara>
-  <title>Release date:</title>
-  <para>1996-08-01</para>
-  </formalpara>
-
-<sect2>
-<title>Migration from version 1.02 to version 1.02.1</title>
-
-<para>
-Here is a new migration file for 1.02.1.  It includes the 'copy' change
-and a script to convert old <acronym>ASCII</acronym> files.
-</para>
-<note>
-<para>
-The following notes are for the benefit of users who want to migrate
-databases from <productname>Postgres95</> 1.01 and 1.02 to <productname>Postgres95</> 1.02.1.
-</para>
-<para>
-If you are starting afresh with <productname>Postgres95</> 1.02.1 and do not need
-to migrate old databases, you do not need to read any further.
-</para>
-</note>
-
-<para>
-In order to upgrade older <productname>Postgres95</> version 1.01 or 1.02 databases to
-version 1.02.1, the following steps are required:
-</para>
-<procedure>
-<step>
-<para>
-Start up a new 1.02.1 postmaster
-</para>
-</step>
-<step>
-<para>
-Add the new built-in functions and operators of 1.02.1 to 1.01 or 1.02
-  databases.  This is done by running the new 1.02.1 server against
-  your own 1.01 or 1.02 database and applying the queries attached at
-  the end of the file.   This can be done easily through <command>psql</>.  If your
-  1.01 or 1.02 database is named <literal>testdb</literal> and you have cut the commands
-  from the end of this file and saved them in <filename>addfunc.sql</filename>:
-<programlisting>
-% psql testdb -f addfunc.sql
-</programlisting>
-
-Those upgrading 1.02 databases will get a warning when executing the
-last two statements in the file because they are already present in 1.02.  This is
-not a cause for concern.
-</para>
-</step>
-</procedure>
-</sect2>
-
-<sect2>
-<title>Dump/Reload Procedure</title>
-
-<para>
-If you are trying to reload a pg_dump or text-mode, <literal>copy tablename to
-stdout</literal> generated with a previous version, you will need to run the
-attached <command>sed</command> script on the ASCII file before loading it into the
-database.  The old format used '.' as end-of-data, while '\.' is now the
-end-of-data marker.  Also, empty strings are now loaded in as '' rather
-than NULL. See the copy manual page for full details.
-
-<programlisting>
-sed 's/^\.$/\\./g' &lt;in_file &gt;out_file
-</programlisting>
-</para>
-<para>
-If you are loading an older binary copy or non-<systemitem>stdout</> copy, there is no
-end-of-data character, and hence no conversion necessary.
-
-<programlisting>
--- following lines added by agc to reflect the case-insensitive
--- regexp searching for varchar (in 1.02), and bpchar (in 1.02.1)
-create operator ~* (leftarg = bpchar, rightarg = text, procedure = texticregexeq);
-create operator !~* (leftarg = bpchar, rightarg = text, procedure = texticregexne);
-create operator ~* (leftarg = varchar, rightarg = text, procedure = texticregexeq);
-create operator !~* (leftarg = varchar, rightarg = text, procedure = texticregexne);
-</programlisting>
-</para>
-</sect2>
-
-<sect2>
-<title>Changes</title>
-
-<para>
-<programlisting>
-Source code maintenance and development
- * worldwide team of volunteers
- * the source tree now in CVS at ftp.ki.net
-
-Enhancements
- * psql (and underlying libpq library) now has many more options for
-   formatting output, including HTML
- * pg_dump now output the schema and/or the data, with many fixes to
-   enhance completeness.
- * psql used in place of monitor in administration shell scripts.
-   monitor to be deprecated in next release.
- * date/time functions enhanced
- * NULL insert/update/comparison fixed/enhanced
- * TCL/TK lib and shell fixed to work with both tck7.4/tk4.0 and tcl7.5/tk4.1
-
-Bug Fixes (almost too numerous to mention)
- * indexes
- * storage management
- * check for NULL pointer before dereferencing
- * Makefile fixes
-
-New Ports
- * added SolarisX86 port
- * added BSD/OS 2.1 port
- * added DG/UX port
-</programlisting>
-</para>
-<!--
-Contributors (apologies to any missed)
- * Kurt J. Lidl &lt;lidl@va.pubnix.com&gt;
-        (missed in first run, but no less important)
- * Erich Stamberger &lt;eberger@gewi.kfunigraz.ac.at&gt;
- * Jason Wright &lt;jason@shiloh.vnet.net&gt;
- * Cees de Groot &lt;C.deGroot@inter.NL.net&gt;
- * ernst.molitor@uni-bonn.de
- * michael.siebenborn@ae3.Hypo.DE (Michael Siebenborn (6929))
- * Brian E. Gallew &lt;geek+@cmu.edu&gt;
- * Vadim B. Mikheev &lt;vadim@sable.krasnoyarsk.su&gt;
- * Adam Sussman &lt;myddryn@vidya.com&gt;
- * Chris Dunlop &lt;chris@onthe.net.au&gt;
- * Marc G. Fournier &lt;scrappy@ki.net&gt;
- * Dan McGuirk &lt;mcguirk@indirect.com&gt;
- * Dr_George_D_Detlefsen &lt;drgeorge@ilt.com&gt;
- * Erich Stamberger &lt;eberger@gewi.kfunigraz.ac.at&gt;
- * Massimo Dal Zotto &lt;dz@cs.unitn.it&gt;
- * Randy Kunkee &lt;kunkee@Starbase.NeoSoft.COM&gt;
- * Rick Weldon &lt;rick@wisetech.com&gt;
- * Thomas van Reimersdahl &lt;reimersd@dali.techinfo.rwth-aachen.de&gt;
- * david bennett &lt;dave@bensoft.com&gt;
- * ernst.molitor@uni-bonn.de
- * Julian Assange &lt;proff@suburbia.net&gt;
- * Bruce Momjian &lt;pgman@candle.pha.pa.us&gt;
- * Paul "Shag" Walmsley &lt;ccshag@cclabs.missouri.edu&gt;
- * "Alistair G. Crooks" &lt;azcb0@sde.uts.amdahl.com&gt;
--->
-</sect2>
-</sect1>
-
-<sect1 id="release-1-01">
-<title>Release 1.01</title>
-
-   <formalpara>
-   <title>Release date:</title>
-   <para>1996-02-23</para>
-   </formalpara>
-
-
-<sect2>
-<title>Migration from version 1.0 to version 1.01</title>
-
-<para>
-The following notes are for the benefit of users who want to migrate
-databases from <productname>Postgres95</> 1.0 to <productname>Postgres95</> 1.01.
-</para>
-<para>
-If you are starting afresh with <productname>Postgres95</> 1.01 and do not need
-to migrate old databases, you do not need to read any further.
-</para>
-<para>
-In order to <productname>Postgres95</> version 1.01 with databases created with
-<productname>Postgres95</> version 1.0, the following steps are required:
-</para>
-<procedure>
-<step>
-<para>
-Set the definition of <symbol>NAMEDATALEN</symbol> in <filename>src/Makefile.global</filename> to 16
-   and <symbol>OIDNAMELEN</symbol> to 20.
-</para>
-</step>
-<step>
-<para>
-Decide whether you want to use Host based authentication.
-</para>
-<substeps>
-<step>
-<para>
-If you do, you must create a file name <literal>pg_hba</literal> in your top-level data
-   directory (typically the value of your <envar>$PGDATA</envar>).  <filename>src/libpq/pg_hba</filename>
-   shows an example syntax.
-</para>
-</step>
-<step>
-<para>
-If you do not want host-based authentication, you can comment out
-   the line:
-<programlisting>
-HBA = 1
-</programlisting>
-   in <filename>src/Makefile.global</filename>
-</para>
-<para>
-   Note that host-based authentication is turned on by default, and if
-   you do not take steps A or B above, the out-of-the-box 1.01 will
-   not allow you to connect to 1.0 databases.
-</para>
-</step>
-</substeps>
-</step>
-
-<step>
-<para>
-Compile and install 1.01, but DO NOT do the <command>initdb</command> step.
-</para>
-</step>
-<step>
-<para>
-Before doing anything else, terminate your 1.0 postmaster, and
-   backup your existing <envar>$PGDATA</envar> directory.
-</para>
-</step>
-<step>
-<para>
-Set your <envar>PGDATA</envar> environment variable to your 1.0 databases, but set up
-   path up so that 1.01 binaries are being used.
-</para>
-</step>
-<step>
-<para>
-Modify the file <filename><envar>$PGDATA</envar>/PG_VERSION</filename> from 5.0 to 5.1
-</para>
-</step>
-<step>
-<para>
-Start up a new 1.01 postmaster
-</para>
-</step>
-<step>
-<para>
-Add the new built-in functions and operators of 1.01 to 1.0
-   databases.  This is done by running the new 1.01 server against
-   your own 1.0 database and applying the queries attached and saving
-   in the file 1.0_to_1.01.sql.   This can be done easily through <command>psql</command>.
-   If your 1.0 database is name <literal>testdb</literal>:
-
-<programlisting>
-% psql testdb -f 1.0_to_1.01.sql
-</programlisting>
-
-and then execute the following commands (cut and paste from here):
-
-<programlisting>
--- add builtin functions that are new to 1.01
-
-create function int4eqoid (int4, oid) returns bool as 'foo'
-language 'internal';
-create function oideqint4 (oid, int4) returns bool as 'foo'
-language 'internal';
-create function char2icregexeq (char2, text) returns bool as 'foo'
-language 'internal';
-create function char2icregexne (char2, text) returns bool as 'foo'
-language 'internal';
-create function char4icregexeq (char4, text) returns bool as 'foo'
-language 'internal';
-create function char4icregexne (char4, text) returns bool as 'foo'
-language 'internal';
-create function char8icregexeq (char8, text) returns bool as 'foo'
-language 'internal';
-create function char8icregexne (char8, text) returns bool as 'foo'
-language 'internal';
-create function char16icregexeq (char16, text) returns bool as 'foo'
-language 'internal';
-create function char16icregexne (char16, text) returns bool as 'foo'
-language 'internal';
-create function texticregexeq (text, text) returns bool as 'foo'
-language 'internal';
-create function texticregexne (text, text) returns bool as 'foo'
-language 'internal';
-
--- add builtin functions that are new to 1.01
-
-create operator = (leftarg = int4, rightarg = oid, procedure = int4eqoid);
-create operator = (leftarg = oid, rightarg = int4, procedure = oideqint4);
-create operator ~* (leftarg = char2, rightarg = text, procedure = char2icregexeq);
-create operator !~* (leftarg = char2, rightarg = text, procedure = char2icregexne);
-create operator ~* (leftarg = char4, rightarg = text, procedure = char4icregexeq);
-create operator !~* (leftarg = char4, rightarg = text, procedure = char4icregexne);
-create operator ~* (leftarg = char8, rightarg = text, procedure = char8icregexeq);
-create operator !~* (leftarg = char8, rightarg = text, procedure = char8icregexne);
-create operator ~* (leftarg = char16, rightarg = text, procedure = char16icregexeq);
-create operator !~* (leftarg = char16, rightarg = text, procedure = char16icregexne);
-create operator ~* (leftarg = text, rightarg = text, procedure = texticregexeq);
-create operator !~* (leftarg = text, rightarg = text, procedure = texticregexne);
-</programlisting>
-</para>
-</step>
-</procedure>
-</sect2>
-
-<sect2>
-<title>Changes</title>
-
-<para>
-<programlisting>
-Incompatibilities:
- * 1.01 is backwards compatible with 1.0 database provided the user
-   follow the steps outlined in the MIGRATION_from_1.0_to_1.01 file.
-   If those steps are not taken, 1.01 is not compatible with 1.0 database.
-
-Enhancements:
- * added PQdisplayTuples() to libpq and changed monitor and psql to use it
- * added NeXT port (requires SysVIPC implementation)
- * added CAST .. AS ... syntax
- * added ASC and DESC key words
- * added 'internal' as a possible language for CREATE FUNCTION
-   internal functions are C functions which have been statically linked
-   into the postgres backend.
- * a new type "name" has been added for system identifiers (table names,
-   attribute names, etc.)  This replaces the old char16 type.   The
-   of name is set by the NAMEDATALEN #define in src/Makefile.global
- * a readable reference manual that describes the query language.
- * added host-based access control.  A configuration file ($PGDATA/pg_hba)
-   is used to hold the configuration data.  If host-based access control
-   is not desired, comment out HBA=1 in src/Makefile.global.
- * changed regex handling to be uniform use of Henry Spencer's regex code
-   regardless of platform.  The regex code is included in the distribution
- * added functions and operators for case-insensitive regular expressions.
-   The operators are ~* and !~*.
- * pg_dump uses COPY instead of SELECT loop for better performance
-
-Bug fixes:
- * fixed an optimizer bug that was causing core dumps when
-   functions calls were used in comparisons in the WHERE clause
- * changed all uses of getuid to geteuid so that effective uids are used
- * psql now returns non-zero status on errors when using -c
- * applied public patches 1-14
-</programlisting>
-</para>
-</sect2>
-</sect1>
-
-<sect1 id="release-1-0">
-<title>Release 1.0</title>
-
-   <formalpara>
-   <title>Release date:</title>
-   <para>1995-09-05</para>
-   </formalpara>
-
-<sect2>
-<title>Changes</title>
-
-<para>
-<programlisting>
-Copyright change:
- * The copyright of <productname>Postgres</productname> 1.0 has been loosened to be freely modifiable
-   and modifiable for any purpose.  Please read the COPYRIGHT file.
-   Thanks to Professor Michael Stonebraker for making this possible.
-
-Incompatibilities:
- *  date formats have to be MM-DD-YYYY (or DD-MM-YYYY if you're using
-   EUROPEAN STYLE).  This follows SQL-92 specs.
- *  "delimiters" is now a key word
-
-Enhancements:
- *  sql LIKE syntax has been added
- *  copy command now takes an optional USING DELIMITER specification.
-   delimiters can be any single-character string.
- *  IRIX 5.3 port has been added.
-   Thanks to Paul Walmsley and others.
- *  updated pg_dump to work with new libpq
- *  \d has been added psql
-   Thanks to Keith Parks
- *  regexp performance for architectures that use POSIX regex has been
-   improved due to caching of precompiled patterns.
-   Thanks to Alistair Crooks
- *  a new version of libpq++
-   Thanks to William Wanders
-
-Bug fixes:
- *  arbitrary userids can be specified in the createuser script
- *  \c to connect to other databases in psql now works.
- *  bad pg_proc entry for float4inc() is fixed
- *  users with usecreatedb field set can now create databases without
-   having to be usesuper
- *  remove access control entries when the entry no longer has any
-   privileges
- *  fixed non-portable datetimes implementation
- *  added kerberos flags to the src/backend/Makefile
- *  libpq now works with kerberos
- *  typographic errors in the user manual have been corrected.
- *  btrees with multiple index never worked, now we tell you they don't
-   work when you try to use them
-</programlisting>
-</para>
-</sect2>
-</sect1>
-
-<sect1 id="release-0-03">
-<title><productname>Postgres95</productname> Release 0.03</title>
-
-   <formalpara>
-   <title>Release date:</title>
-   <para>1995-07-21</para>
-   </formalpara>
-
-<sect2>
-<title>Changes</title>
-<para>
-<programlisting>
-Incompatible changes:
- * BETA-0.3 IS INCOMPATIBLE WITH DATABASES CREATED WITH PREVIOUS VERSIONS
-   (due to system catalog changes and indexing structure changes).
- * double-quote (") is deprecated as a quoting character for string literals;
-   you need to convert them to single quotes ('). <!-- " -->
- * name of aggregates (eg. int4sum) are renamed in accordance with the
-   SQL standard (eg. sum).
- * CHANGE ACL syntax is replaced by GRANT/REVOKE syntax.
- * float literals (eg. 3.14) are now of type float4 (instead of float8 in
-   previous releases); you might have to do typecasting if you depend on it
-   being of type float8.  If you neglect to do the typecasting and you assign
-   a float literal to a field of type float8, you might get incorrect values
-   stored!
- * LIBPQ has been totally revamped so that frontend applications
-   can connect to multiple backends
- * the usesysid field in pg_user has been changed from int2 to int4 to
-   allow wider range of Unix user ids.
- * the netbsd/freebsd/bsd o/s ports have been consolidated into a
-   single BSD44_derived port.  (thanks to Alistair Crooks)
-
-SQL standard-compliance (the following details changes that makes postgres95
-more compliant to the SQL-92 standard):
- * the following SQL types are now built-in: smallint, int(eger), float, real,
-   char(N), varchar(N), date and time.
-
-   The following are aliases to existing postgres types:
-                smallint -&gt; int2
-                integer, int -&gt; int4
-                float, real  -&gt; float4
-   char(N) and varchar(N) are implemented as truncated text types. In
-   addition, char(N) does blank-padding.
- * single-quote (') is used for quoting string literals; '' (in addition to
-   \') is supported as means of inserting a single quote in a string
- * SQL standard aggregate names (MAX, MIN, AVG, SUM, COUNT) are used
-   (Also, aggregates can now be overloaded, i.e. you can define your
-   own MAX aggregate to take in a user-defined type.)
- * CHANGE ACL removed. GRANT/REVOKE syntax added.
-   - Privileges can be given to a group using the "GROUP" key word.
-        For example:
-                GRANT SELECT ON foobar TO GROUP my_group;
-        The key word 'PUBLIC' is also supported to mean all users.
-
-        Privileges can only be granted or revoked to one user or group
-        at a time.
-
-        "WITH GRANT OPTION" is not supported.  Only class owners can change
-        access control
-   - The default access control is to grant users readonly access.
-     You must explicitly grant insert/update access to users.  To change
-     this, modify the line in
-                src/backend/utils/acl.h
-     that defines ACL_WORLD_DEFAULT
-
-Bug fixes:
- * the bug where aggregates of empty tables were not run has been fixed. Now,
-   aggregates run on empty tables will return the initial conditions of the
-   aggregates. Thus, COUNT of an empty  table will now properly return 0.
-   MAX/MIN of an empty table will return a row of value NULL.
- * allow the use of \; inside the monitor
- * the LISTEN/NOTIFY asynchronous notification mechanism now work
- * NOTIFY in rule action bodies now work
- * hash indexes work, and access methods in general should perform better.
-   creation of large btree indexes should be much faster.  (thanks to Paul
-   Aoki)
-
-Other changes and enhancements:
- * addition of an EXPLAIN statement used for explaining the query execution
-   plan (eg. "EXPLAIN SELECT * FROM EMP" prints out the execution plan for
-   the query).
- * WARN and NOTICE messages no longer have timestamps on them. To turn on
-   timestamps of error messages, uncomment the line in
-   src/backend/utils/elog.h:
-        /* define ELOG_TIMESTAMPS */
- * On an access control violation, the message
-        "Either no such class or insufficient privilege"
-   will be given.  This is the same message that is returned when
-   a class is not found.  This dissuades non-privileged users from
-   guessing the existence of privileged classes.
- * some additional system catalog changes have been made that are not
-   visible to the user.
-
-libpgtcl changes:
- * The -oid option has been added to the "pg_result" tcl command.
-   pg_result -oid returns oid of the last row inserted.   If the
-   last command was not an INSERT, then pg_result -oid returns "".
- * the large object interface is available as pg_lo* tcl commands:
-   pg_lo_open, pg_lo_close, pg_lo_creat, etc.
-
-Portability enhancements and New Ports:
- * flex/lex problems have been cleared up.  Now, you should be able to use
-   flex instead of lex on any platforms.  We no longer make assumptions of
-   what lexer you use based on the platform you use.
- * The Linux-ELF port is now supported.  Various configuration have been
-   tested:  The following configuration is known to work:
-        kernel 1.2.10, gcc 2.6.3, libc 4.7.2, flex 2.5.2, bison 1.24
-   with everything in ELF format,
-
-New utilities:
- * ipcclean added to the distribution
-   ipcclean usually does not need to be run, but if your backend crashes
-   and leaves shared memory segments hanging around, ipcclean will
-   clean them up for you.
-
-New documentation:
- * the user manual has been revised and libpq documentation added.
-</programlisting>
-</para>
-</sect2>
-</sect1>
-
-<sect1 id="release-0-02">
-<title><productname>Postgres95</productname> Release 0.02</title>
-
-   <formalpara>
-   <title>Release date:</title>
-   <para>1995-05-25</para>
-   </formalpara>
-
-<sect2>
-<title>Changes</title>
-
-<para>
-<programlisting>
-Incompatible changes:
- * The SQL statement for creating a database is 'CREATE DATABASE' instead
-   of 'CREATEDB'. Similarly, dropping a database is 'DROP DATABASE' instead
-   of 'DESTROYDB'. However, the names of the executables 'createdb' and
-   'destroydb' remain the same.
-
-New tools:
- * pgperl - a Perl (4.036) interface to Postgres95
- * pg_dump - a utility for dumping out a postgres database into a
-        script file containing query commands. The script files are in an ASCII
-        format and can be used to reconstruct the database, even on other
-        machines and other architectures. (Also good for converting
-        a Postgres 4.2 database to Postgres95 database.)
-
-The following ports have been incorporated into postgres95-beta-0.02:
- * the NetBSD port by Alistair Crooks
- * the AIX port by Mike Tung
- * the Windows NT port by Jon Forrest (more stuff but not done yet)
- * the Linux ELF port by Brian Gallew
-
-The following bugs have been fixed in postgres95-beta-0.02:
- * new lines not escaped in COPY OUT and problem with COPY OUT when first
-   attribute is a '.'
- * cannot type return to use the default user id in createuser
- * SELECT DISTINCT on big tables crashes
- * Linux installation problems
- * monitor doesn't allow use of 'localhost' as PGHOST
- * psql core dumps when doing \c or \l
- * the "pgtclsh" target missing from src/bin/pgtclsh/Makefile
- * libpgtcl has a hard-wired default port number
- * SELECT DISTINCT INTO TABLE hangs
- * CREATE TYPE doesn't accept 'variable' as the internallength
- * wrong result using more than 1 aggregate in a SELECT
-</programlisting>
-</para>
-</sect2>
-</sect1>
-
-<sect1 id="release-0-01">
-<title><productname>Postgres95</productname> Release 0.01</title>
-
-   <formalpara>
-   <title>Release date:</title>
-   <para>1995-05-01</para>
-   </formalpara>
-
-<para>
-Initial release.
-</para>
-</sect1>
-
-<![IGNORE[
-  <sect1 id="timing-results">
-   <title>Timing Results</title>
-
-   <para>
-    These timing results are from running the regression test with the commands
-
-<programlisting>
-% cd src/test/regress
-% make all
-% time make runtest
-</programlisting>
-   </para>
-   <para>
-    Timing under Linux 2.0.27 seems to have a roughly 5% variation from run
-    to run, presumably due to the scheduling vagaries of multitasking systems.
-   </para>
-
-   <sect2>
-    <title>Version 6.5</title>
-
-    <para>
-     As has been the case for previous releases, timing between
-     releases is not directly comparable since new regression tests
-     have been added. In general, 6.5 is faster than previous
-     releases.
-    </para>
-
-    <para>
-     Timing with <function>fsync()</function> disabled:
-
-<literallayout class="monospaced">
-Time   System
-02:00  Dual Pentium Pro 180, 224MB, UW-SCSI, Linux 2.0.36, gcc 2.7.2.3 -O2 -m486
-04:38  Sparc Ultra 1 143MHz, 64MB, Solaris 2.6
-</literallayout>
-    </para>
-
-    <para>
-     Timing with <function>fsync()</function> enabled:
-
-<literallayout class="monospaced">
-Time   System
-04:21  Dual Pentium Pro 180, 224MB, UW-SCSI, Linux 2.0.36, gcc 2.7.2.3 -O2 -m486
-</literallayout>
-
-     For the <systemitem class="osname">Linux</systemitem> system above, using <acronym>UW-SCSI</acronym> disks rather than (older) <acronym>IDE</acronym>
-     disks leads to a 50% improvement in speed on the regression test.
-    </para>
-   </sect2>
-
-<sect2>
-<title>Version 6.4beta</title>
-
-<para>
-The times for this release are not directly comparable to those for previous releases
-since some additional regression tests have been included.
-In general, however, 6.4 should be slightly faster than the previous release (thanks, Bruce!).
-</para>
-<para>
-<literallayout class="monospaced">
-Time   System
-02:26  Dual Pentium Pro 180, 96MB, UW-SCSI, Linux 2.0.30, gcc 2.7.2.1 -O2 -m486
-</literallayout>
-</para>
-</sect2>
-
-<sect2>
-<title>Version 6.3</title>
-
-<para>
-The times for this release are not directly comparable to those for previous releases
-since some additional regression tests have been included and some obsolete tests involving
-time travel have been removed.
-In general, however, 6.3 is substantially faster than previous releases (thanks, Bruce!).
-</para>
-<para>
-<programlisting>
-  Time   System
-  02:30  Dual Pentium Pro 180, 96MB, UW-SCSI, Linux 2.0.30, gcc 2.7.2.1 -O2 -m486
-  04:12  Dual Pentium Pro 180, 96MB, EIDE, Linux 2.0.30, gcc 2.7.2.1 -O2 -m486
-</programlisting>
-</para>
-</sect2>
-
-<sect2>
-<title>Version 6.1</title>
-
-<para>
-<programlisting>
-  Time   System
-  06:12  Pentium Pro 180, 32MB, EIDE, Linux 2.0.30, gcc 2.7.2 -O2 -m486
-  12:06  P-100, 48MB, Linux 2.0.29, gcc
-  39:58  Sparc IPC 32MB, Solaris 2.5, gcc 2.7.2.1 -O -g
-</programlisting>
-</para>
-</sect2>
-</sect1>
-]]>
diff --git a/doc/src/sgml/release.sgml b/doc/src/sgml/release.sgml
index 1478a45a5c824580e2276d133801519a9e86d6a5..2c959b02d9c4b1b6bea777b1188b061987817d74 100644
--- a/doc/src/sgml/release.sgml
+++ b/doc/src/sgml/release.sgml
@@ -68,22 +68,81 @@ For new features, add links to the documentation sections.
   </para>
 
 <!--
-  To add a new major-release series, add an entry here and in filelist.sgml.
-
-  The reason for splitting the release notes this way is so that appropriate
-  subsets can easily be copied into back branches.
+  When beginning a new major-release series, create a new release-NN.sgml
+  file, removing the previous one, and change the &-reference here.
+  Don't forget to update filelist.sgml.  Also, add a link to the on-line
+  documentation for the newly forked-off branch in the list below.
+
+  The reason for keeping each branch's release notes in a differently-named
+  file is to reduce confusion when preparing minor-release updates.
+  All the active branches have to be edited concurrently when doing that.
 -->
+
 &release-9.4;
-&release-9.3;
-&release-9.2;
-&release-9.1;
-&release-9.0;
-&release-8.4;
-&release-8.3;
-&release-8.2;
-&release-8.1;
-&release-8.0;
-&release-7.4;
-&release-old;
+
+ <sect1 id="release-prior">
+  <title>Prior Releases</title>
+
+  <para>
+   Release notes for prior release branches can be found on the
+   <ulink url="https://www.postgresql.org/"><productname>PostgreSQL</productname></ulink>
+   web site.  At the time of release of version 9.4,
+   these were the supported prior release branches:
+
+   <itemizedlist>
+    <listitem>
+     <para>
+      <productname>PostgreSQL</productname> 9.3:
+      <ulink url="https://www.postgresql.org/docs/9.3/release.html">
+       <literal>https://www.postgresql.org/docs/9.3/release.html</literal>
+      </ulink>
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      <productname>PostgreSQL</productname> 9.2:
+      <ulink url="https://www.postgresql.org/docs/9.2/release.html">
+       <literal>https://www.postgresql.org/docs/9.2/release.html</literal>
+      </ulink>
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      <productname>PostgreSQL</productname> 9.1:
+      <ulink url="https://www.postgresql.org/docs/9.1/release.html">
+       <literal>https://www.postgresql.org/docs/9.1/release.html</literal>
+      </ulink>
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      <productname>PostgreSQL</productname> 9.0:
+      <ulink url="https://www.postgresql.org/docs/9.0/release.html">
+       <literal>https://www.postgresql.org/docs/9.0/release.html</literal>
+      </ulink>
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      <productname>PostgreSQL</productname> 8.4:
+      <ulink url="https://www.postgresql.org/docs/8.4/release.html">
+       <literal>https://www.postgresql.org/docs/8.4/release.html</literal>
+      </ulink>
+     </para>
+    </listitem>
+   </itemizedlist>
+  </para>
+
+  <para>
+   Release notes for older release branches can be found at
+   <ulink url="https://www.postgresql.org/docs/manuals/archive/">
+    <literal>https://www.postgresql.org/docs/manuals/archive/</literal>
+   </ulink>
+  </para>
+ </sect1>
 
 </appendix>