]> granicus.if.org Git - postgresql/commitdiff
Draft release notes for upcoming back-branch updates.
authorTom Lane <tgl@sss.pgh.pa.us>
Wed, 4 Jun 2008 03:16:23 +0000 (03:16 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Wed, 4 Jun 2008 03:16:23 +0000 (03:16 +0000)
doc/src/sgml/release.sgml

index 21dfd6a66f3db72df84f6c25b717e49b2d0cde26..0f0bc42e5ce91e406121fbc6cb306f89d335fe9a 100644 (file)
@@ -1,4 +1,4 @@
-<!-- $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.488.2.18 2008/04/21 09:45:12 mha Exp $ -->
+<!-- $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.488.2.19 2008/06/04 03:16:23 tgl Exp $ -->
 <!--
 
 Typical markup:
@@ -63,6 +63,201 @@ do it for earlier branch release files.
    review, so each item is truly a community effort.
   </para>
 
+ <sect1 id="release-8-2-8">
+  <title>Release 8.2.8</title>
+
+  <note>
+  <title>Release date</title>
+  <simpara>2008-06-09</simpara>
+  </note>
+
+  <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 the release notes for 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>
 
@@ -147,7 +342,7 @@ do it for earlier branch release files.
      </para>
 
      <para>
-      This was formerly allowed but trying to do it had various unpleasant 
+      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>
@@ -323,7 +518,7 @@ do it for earlier branch release files.
      <para>
       This failure has only been observed to occur when a user-defined
       datatype's output routine issues a NOTICE, but there is no
-      guaranteee it couldn't happen due to other causes.
+      guarantee it couldn't happen due to other causes.
      </para>
     </listitem>
 
@@ -3841,32 +4036,22 @@ do it for earlier branch release files.
   </sect2>
  </sect1>
 
- <sect1 id="release-8-1-11">
-  <title>Release 8.1.11</title>
+ <sect1 id="release-8-1-12">
+  <title>Release 8.1.12</title>
 
   <note>
   <title>Release date</title>
-  <simpara>2008-01-07</simpara>
+  <simpara>2008-06-09</simpara>
   </note>
 
   <para>
-   This release contains a variety of fixes from 8.1.10,
-   including fixes for significant security issues.
+   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>
 
-  <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>
+   <title>Migration to Version 8.1.12</title>
 
    <para>
     A dump/restore is not required for those running 8.1.X.
@@ -3883,192 +4068,452 @@ do it for earlier branch release files.
 
     <listitem>
      <para>
-      Prevent functions in indexes from executing with the privileges of
-      the user running <command>VACUUM</>, <command>ANALYZE</>, etc (Tom)
+      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>
-      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)
+      Previous versions neglected to check this requirement at all.
      </para>
     </listitem>
 
     <listitem>
      <para>
-      Repair assorted bugs in the regular-expression package (Tom, Will Drewry)
+      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>
-      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)
+      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>
-      Require non-superusers who use <filename>/contrib/dblink</> to use only
-      password authentication, as a security measure (Joe)
+      Fix a few datatype input functions
+      that were allowing unused bytes in their results to contain
+      uninitialized, unpredictable values (Tom)
      </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)
+      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>
-      Update time zone data files to <application>tzdata</> release 2007k
-      (in particular, recent Argentina changes) (Tom)
+      Fix a corner case in regular-expression substring matching
+      (<literal>substring(<replaceable>string</> from
+      <replaceable>pattern</>)</literal>) (Tom)
      </para>
-    </listitem>
 
-    <listitem>
      <para>
-      Improve planner's handling of LIKE/regex estimation in non-C locales
-      (Tom)
+      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 planner failure in some cases of <literal>WHERE false AND var IN
-      (SELECT ...)</> (Tom)
+      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>
-      Preserve the tablespace of indexes that are
-      rebuilt by <command>ALTER TABLE ... ALTER COLUMN TYPE</> (Tom)
+      Fix incorrect result from <application>ecpg</>'s
+      <function>PGTYPEStimestamp_sub()</> function (Michael)
      </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.
+      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>
-      Make <command>VACUUM</> not use all of <varname>maintenance_work_mem</>
-      when the table is too small for it to be useful (Alvaro)
+      Fix <filename>contrib/xml2</>'s makefile to not override
+      <literal>CFLAGS</> (Tom)
      </para>
     </listitem>
 
     <listitem>
      <para>
-      Fix potential crash in <function>translate()</> when using a multibyte
-      database encoding (Tom)
+      Fix <literal>DatumGetBool</> macro to not fail with <application>gcc</>
+      4.3 (Tom)
      </para>
-    </listitem>
 
-    <listitem>
      <para>
-      Fix overflow in <literal>extract(epoch from interval)</> for intervals
-      exceeding 68 years (Tom)
+      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 PL/Perl to not fail when a UTF-8 regular expression is used
-      in a trusted function (Andrew)
+      Fix longstanding <command>LISTEN</>/<command>NOTIFY</>
+      race condition (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)
+      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>
-      While this could theoretically happen anywhere, no standard build of
-      Perl did things this way ... until <productname>Mac OS X</> 10.5.
+      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 PL/Python to not crash on long exception messages (Alvaro)
+      Disallow <command>LISTEN</> and <command>UNLISTEN</> within a
+      prepared transaction (Tom)
      </para>
-    </listitem>
 
-    <listitem>
      <para>
-      Fix <application>pg_dump</> to correctly handle inheritance child tables
-      that have default expressions different from their parent's (Tom)
+      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 <application>libpq</> crash when <varname>PGPASSFILE</> refers
-      to a file that is not a plain file (Martin Pitt)
+      Fix rare crash when an error occurs during a query using a hash index
+      (Heikki)
      </para>
     </listitem>
 
     <listitem>
      <para>
-      <application>ecpg</> parser fixes (Michael)
+      Fix input of datetime values for February 29 in years BC (Tom)
      </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)
+      The former coding was mistaken about which years were leap years.
      </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)
+      Fix <quote>unrecognized node type</> error in some variants of
+      <command>ALTER OWNER</> (Tom)
      </para>
     </listitem>
 
     <listitem>
      <para>
-      Fix <type>tsvector</> and <type>tsquery</> output routines to
-      escape backslashes correctly (Teodor, Bruce)
+      Fix <application>pg_ctl</> to correctly extract the postmaster's port
+      number from command-line options (Itagaki Takahiro, Tom)
      </para>
-    </listitem>
 
-    <listitem>
      <para>
-      Fix crash of <function>to_tsvector()</> on huge input strings (Teodor)
+      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 explictly 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>
+
+  <note>
+  <title>Release date</title>
+  <simpara>2008-01-07</simpara>
+  </note>
+
+  <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 the release notes for 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>
 
@@ -7183,88 +7628,325 @@ psql -t -f fixseq.sql db1 | psql -e db1
       </para>
      </listitem>
 
-     <listitem>
-      <para>
-       Move <filename>/contrib/findoidjoins</> to
-       <filename>/src/tools</> (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>
+
+ <sect1 id="release-8-0-16">
+  <title>Release 8.0.16</title>
+
+  <note>
+  <title>Release date</title>
+  <simpara>2008-06-09</simpara>
+  </note>
+
+  <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 the release notes for 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>
-       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>
+      Fix rare crash when an error occurs during a query using a hash index
+      (Heikki)
+     </para>
+    </listitem>
 
-     <listitem>
-      <para>
-       Improve <filename>/contrib/btree_gist</> (Janko Richter)
-      </para>
-     </listitem>
+    <listitem>
+     <para>
+      Fix input of datetime values for February 29 in years BC (Tom)
+     </para>
 
-     <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>
+     <para>
+      The former coding was mistaken about which years were leap years.
+     </para>
+    </listitem>
 
-     <listitem>
-      <para>
-       Improve <filename>/contrib/pgcrypto</> (Marko Kreen)
-      </para>
+    <listitem>
+     <para>
+      Fix <quote>unrecognized node type</> error in some variants of
+      <command>ALTER OWNER</> (Tom)
+     </para>
+    </listitem>
 
-      <itemizedlist>
+    <listitem>
+     <para>
+      Fix <application>pg_ctl</> to correctly extract the postmaster's port
+      number from command-line options (Itagaki Takahiro, Tom)
+     </para>
 
-       <listitem>
-        <para>
-         Implementation of OpenPGP symmetric-key and public-key encryption
-        </para>
-        <para>
-         Both RSA and Elgamal public-key algorithms are supported.
-        </para>
-       </listitem>
+     <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>
-         Stand alone build: include SHA256/384/512 hashes, Fortuna PRNG
-        </para>
-       </listitem>
+    <listitem>
+     <para>
+      Use <option>-fwrapv</> to defend against possible misoptimization
+      in recent <application>gcc</> versions (Tom)
+     </para>
 
-       <listitem>
-        <para>
-         OpenSSL build: support 3DES, use internal AES with OpenSSL &lt; 0.9.7
-        </para>
-       </listitem>
+     <para>
+      This is known to be necessary when building <productname>PostgreSQL</>
+      with <application>gcc</> 4.3 or later.
+     </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>
+      Fix display of constant expressions in <literal>ORDER BY</>
+      and <literal>GROUP BY</> (Tom)
+     </para>
 
-       <listitem>
-        <para>
-         Remove support for <filename>libmhash</> and <filename>libmcrypt</>
-        </para>
-       </listitem>
+     <para>
+      An explictly casted constant would be shown incorrectly.  This could
+      for example lead to corruption of a view definition during
+      dump and reload.
+     </para>
+    </listitem>
 
-      </itemizedlist>
-     </listitem>
+    <listitem>
+     <para>
+      Fix <application>libpq</> to handle NOTICE messages correctly
+      during COPY OUT (Tom)
+     </para>
 
-    </itemizedlist>
-   </sect3>
+     <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>
@@ -11126,6 +11808,151 @@ typedefs (Michael)</para></listitem>
   </sect2>
  </sect1>
 
+ <sect1 id="release-7-4-20">
+  <title>Release 7.4.20</title>
+
+  <note>
+  <title>Release date</title>
+  <simpara>2008-06-09</simpara>
+  </note>
+
+  <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 the release notes for 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 explictly 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>