OSDN Git Service

Update migration changes, more cleanups.
authorBruce Momjian <bruce@momjian.us>
Tue, 19 Sep 2006 00:57:07 +0000 (00:57 +0000)
committerBruce Momjian <bruce@momjian.us>
Tue, 19 Sep 2006 00:57:07 +0000 (00:57 +0000)
doc/src/sgml/release.sgml

index ad2e109..6dd6f73 100644 (file)
@@ -1,4 +1,4 @@
-<!-- $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.438 2006/09/18 23:19:50 momjian Exp $ -->
+<!-- $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.439 2006/09/19 00:57:07 momjian Exp $ -->
 <!--
 
 Typical markup:
@@ -11,9 +11,9 @@ PostgreSQL                      <productname>
 pg_[A-Za-z0-9_]                 <application>
 [A-Z][A-Z]                      <type>, <envar>, <literal>
 non-ascii                       convert to & escapes
-                                 http://www.mountaindragon.com/html/iso.htm
-                               encode multibytes as UTF8
-                                 http://www.pemberley.com/janeinfo/latin1.html#latexta
+                                  http://www.mountaindragon.com/html/iso.htm
+                                encode multibytes as UTF8
+                                  http://www.pemberley.com/janeinfo/latin1.html#latexta
 wrap long lines
 
 For new features, add links to the documentation sections.
@@ -36,24 +36,19 @@ For new features, add links to the documentation sections.
     <title>Overview</title>
  
     <para>
-     Major changes in this release:
+     This release adds many improvements to commands and database
+     facilities that were requested by users.  Rather than add a
+     few large new features, this release makes many features from
+     previous releases easier to use.  For example, it is now much
+     easier to create standby point-in-time-recovery (PITR) servers.
+     Many performance bottlenecks have been eliminated, allowing
+     more functionality to be enabled by default.  Various additions
+     will make porting from other databases easier.  The changes
+     in this release continue the <productname>PostgreSQL</>
+     tradition of not only being the most advanced open source
+     database, but also the easiest to use.
     </para>
 
-    <variablelist>
-
-     <varlistentry>
-      <term>
-       XX
-      </term>
-
-      <listitem>
-       <para>
-        XX
-       </para>
-      </listitem>
-     </varlistentry>
-
-    </variablelist>
    </sect2>
  
    <sect2>
@@ -71,1193 +66,1277 @@ For new features, add links to the documentation sections.
 
     <itemizedlist>
 
-     <listitem>
-      <para>
-       XX
-      </para>
-      <para>
-       YYY
-      </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.2 and
-     the previous major release.
-    </para>
-    <sect3>
-     <title>Performance Improvements</title>
-     <itemizedlist>
-
       <listitem>
        <para>
-       Improve efficiency of <literal>IN</> (list-of-expressions)
-       clauses (Tom)
+        Improve cost estimation for nestloop index scans (Tom)
        </para>
-      </listitem>
 
-      <listitem>
        <para>
-       Reduce locking requirements of sequential scans (Qingqing
-       Zhou)
+        This may eliminate the need to set unrealistically small
+        values of <envar>random_page_cost</>.  If you have been
+        using a very small <envar>random_page_cost</>, please
+        recheck your test cases.
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Improve subtransaction performance (Alvaro, Itagaki Takahiro,
-       Tom)
+        Deprecate use of <application>postmaster</> symlink (Peter)
+       </para>
+
+       <para>
+        <application>postmaster</> and <application>postgres</>
+        commands now act identically, with the behavior determined
+        by switches.  The <application>postmaster</> symlink is
+        kept for compatibility, but is not really needed.
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Improve locking performance by breaking locks into sections
-       (Tom)
+        Change <envar>log_duration</> to output even if the query
+        is not output (Tom)
        </para>
 
        <para>
-       This allows locking to be more fine-grained, reducing
-       contention.
+        In prior releases, <envar>log_duration</> only printed if
+        the query appeared earlier in the logs.
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Allow the planner to re-order <literal>OUTER JOIN</>s when
-       possible (Tom)
+        Make row comparisons follow <acronym>SQL</> standard
+        semantics and allow them to be used in index scans (Tom)
        </para>
 
        <para>
-       This makes a considerable difference for queries involving
-       multiple outer joins.
+        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>
-       Improve planning of joins to inherited tables and <literal>UNION
-       ALL</> views (Tom)
+        Set <envar>escape_string_warning</> to <literal>on</> by
+        default (Bruce)
+       </para>
+
+       <para>
+        This issues a warning if backslash escapes are used in
+        non-escape (non-<literal>E''</>) strings.
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Improve cost estimation for nestloop index scans (Tom)
+        Disallow aggregate functions in <command>UPDATE</> commands
+        (unless within a subquery) (Tom)
        </para>
 
        <para>
-       This may eliminate the need to set unrealistically small
-       values of <envar>random_page_cost</>.  If you have been
-       using a very small <envar>random_page_cost</>, please
-       recheck your test cases.
+        The standard disallows this, and it leads to unpredictable
+        results.
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Increase default values for <envar>shared_buffers</> and
-       <envar>max_fsm_pages</>(Andrew)
+        Change the row constructor syntax (<literal>ROW(...)</>)
+        so that list elements <literal>foo.*</> will be expanded
+        to a list of their member fields, rather than creating a
+        nested rowtype field as formerly (Tom)
        </para>
-      </listitem>
 
-      <listitem>
        <para>
-       Improve the optimizer statistics used by <literal>LIKE</>,
-       <literal>ILIKE</>, and regular expression operations (Tom)
+        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>
-       Allow constraint exclusion to be applied to inherited
-       <command>UPDATE</>/<command>DELETE</> queries (Tom)
+        Have <command>SET CONSTRAINT</> affect only one constraint
+        (Kris Jurka)
        </para>
 
        <para>
-       <command>SELECT</> already honored constraint exclusion.
+        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.
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Improve sorting speed and reduce memory usage (Simon, Tom)
+        Remove rule permission for tables, for security reasons
+        (Tom)
        </para>
-      </listitem>
 
-      <listitem>
        <para>
-       <function>MIN()</>/<function>MAX()</> can now use indexes
-       in more cases (Tom)
+        In 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>
-       Improve concurrency for database creation and destruction
-       (Tom)
+        Array comparison improvements (Tom)
        </para>
-      </listitem>
 
-      <listitem>
        <para>
-       Speed up vacuuming of btree indexes (Heikki Linnakangas,
-       Tom)
+        Now array dimensions are also compared.
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Improve <command>COPY</> performance (Alon Goldshuv, Tom)
+        Change array concatenation to match documented behavior
+        (Tom)
+       </para>
+
+       <para>
+        This changes the previous behavior where concatenation
+        would adjust the lower array dimensions.
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Add <literal>FILLFACTOR</> to table and index creation
-       (ITAGAKI Takahiro)
-       </para>
+        Have <function>to_char(time)</> and <function>to_char(interval)</>
+        treat <literal>'HH'</> and <literal>'HH12'</> as 12-hour
+        intervals.
 
        <para>
-       This adds extra free space to each heap or index page,
-       allowing improved performance as the database grows.  This
-       is particularly valuable to maintain <command>CLUSTER</>ing.
+        Most applications should use <literal>'HH24'</> unless they
+        want a 12-hour display.
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Remove dead index entries before btree page split (Junji
-       Teramoto)
+        Zero unmasked bits in conversion from <type>INET</> to
+        <type>CIDR</> (Tom)
        </para>
       </listitem>
-     </sect3>
-
-    <sect3>
-     <title>Server Changes</title>
-     <itemizedlist>
 
       <listitem>
        <para>
-       Improve performance of statistics monitoring, especially
-       <literal>stats_command_string</> (Tom, Bruce)
+        Remove <envar>australian_timezones</> configuration variable
+        (Joachim Wieland)
        </para>
 
        <para>
-       This release sets <envar>stats_command_string</> to
-       <literal>on</> by default, now that its overhead is minimal.
-       This means <literal>pg_stat_activity</> now will show all
-       active queries by default.
+        No longer needed now that timezone abbreviations are
+        configurable.
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Add support for include directives in <filename>postgresql.conf</>
-       (Joachim Wieland)
+        Change <application>libpq</> <function>PQdsplen()</> to
+        return a useful value (Martijn van Oosterhout)
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Add native <acronym>LDAP</> authentication (Magnus Hagander)
+        Change <application>libpq</> <function>PQgetssl()</> to
+        return a <literal>void*</>, rather than <literal>SSL*</>
+        (Martijn van Oosterhout)
        </para>
 
        <para>
-       This is particularly useful for platforms that do not
-       support <acronym>PAM</>, such as Win32.
+        This allows applications to use the function without
+        <acronym>SSL</> headers.
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Re-enable <envar>full_page_writes</> (Tom)
+        Remove <acronym>QNX</> and <acronym>BEOS</> ports (Bruce)
        </para>
 
        <para>
-       This flag can now be used even with <acronym>PITR</>. It
-       is turned on automatically between <function>pg_start_backup()</>
-       and <function>pg_stop_backup()</> calls.
+        These ports no longer had active maintainers.
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Add support for <acronym>SSL</> Certificate Revocation List
-       (<acronym>CRL</>) files, <filename>root.crl</> (Libor
-       Hoho&#353;)
+        Make command-line options of postmaster and postgres
+        identical (Peter)
        </para>
 
        <para>
-       This was added to <application>libpq</> as well.
+        This allows the postmaster to pass arguments to each backend
+        without using <literal>-o</>.
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Remove routine autovacuum server log entries (Bruce)
-       </para>
-
-       <para>
-       <literal>pg_stat_activity</> now shows autovacuum activity.
+        Remove /contrib/ora2pg, now at <ulink
+        url="http://www.samse.fr/GPL/ora2pg"></ulink>
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Add <literal>GRANT CONNECT ON DATABASE</>, to be used in
-       addition to <filename>pg_hba.conf</> (Gevik Babakhani)
+        Remove contrib modules that have been migrated to pgfoundry:
+        adddepend, dbase, dbmirror, fulltextindex, mac, userlock
        </para>
+      </listitem>
 
+      <listitem>
        <para>
-       This gives SQL-control over database access, and works in
-       combination with the existing <filename>pg_hba.conf</>
-       controls.
+        Remove contrib abandoned modules:  mSQL-interface, ips
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Add last vacuum and analyze timestamp columns to the stats
-       collector (Larry Rosenman)
+        In /contrib/xml2, rename <function>xml_valid()</> to
+        <function>xml_is_well_formed()</> (Tom)
        </para>
 
        <para>
-       These values now appear in the <literal>pg_stat_*_tables</>
-       system views, and are used by autovacuum. ?
+        <function>xml_valid()</> will remain for backward compability,
+        but its behavior will change to do schema checks in future
+        releases.
        </para>
       </listitem>
 
+    </itemizedlist>
+   </sect2>
+   <sect2>
+    <title>Changes</title>
+    <para>
+     Below you will find a detailed account of the additional
+     changes between <productname>PostgreSQL</productname> 8.2 and
+     the previous major release.
+    </para>
+    <sect3>
+     <title>Performance Improvements</title>
+     <itemizedlist>
+
       <listitem>
        <para>
-       Deprecate use of <application>postmaster</> symlink (Peter)
+        Improve efficiency of <literal>IN</> (list-of-expressions)
+        clauses (Tom)
        </para>
+      </listitem>
 
+      <listitem>
        <para>
-       <application>postmaster</> and <application>postgres</>
-       commands now act identically, with the behavior determined
-       by switches.  The <application>postmaster</> symlink is
-       kept for compatibility, but is not really needed.
+        Reduce locking requirements of sequential scans (Qingqing
+        Zhou)
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Add <acronym>GUC</> <envar>update_process_title</> to
-       control whether the <application>ps</> display is updated
-       for every command, default to <literal>on</> (Bruce)
+        Improve subtransaction performance (Alvaro, Itagaki Takahiro,
+        Tom)
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Track tables needing vacuum with more accuracy (Alvaro)
+        Improve locking performance by breaking locks into sections
+        (Tom)
        </para>
 
        <para>
-       This reduces the overhead involved in preventing transaction
-       ID wraparound.
+        This allows locking to be more fine-grained, reducing
+        contention.
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Allow units to be specified in configuration settings
-       (Peter)
+        Allow the planner to re-order <literal>OUTER JOIN</>s when
+        possible (Tom)
        </para>
 
        <para>
-       You can now set <envar>shared_buffer</> to <literal>32000kB</>,
-       for example.
+        This makes a considerable difference for queries involving
+        multiple outer joins.
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Improve logging of protocol-level prepare/bind/execute
-       messages (Bruce, Tom)
+        Improve planning of joins to inherited tables and <literal>UNION
+        ALL</> views (Tom)
        </para>
+      </listitem>
 
+      <listitem>
        <para>
-       Such logging now shows statement names, bind parameter
-       values, and the text of the query being executed.
+        Increase default values for <envar>shared_buffers</> and
+        <envar>max_fsm_pages</>(Andrew)
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Change <envar>log_duration</> to output even if the query
-       is not output (Tom)
+        Improve the optimizer statistics used by <literal>LIKE</>,
+        <literal>ILIKE</>, and regular expression operations (Tom)
        </para>
+      </listitem>
 
+      <listitem>
        <para>
-       In prior releases, <envar>log_duration</> only printed if
-       the query appeared earlier in the logs.
+        Allow constraint exclusion to be applied to inherited
+        <command>UPDATE</>/<command>DELETE</> queries (Tom)
        </para>
-      </listitem>
 
-      <listitem>
        <para>
-       Allow a forced switch to a new xlog file (Simon Riggs, Tom)
+        <command>SELECT</> already honored constraint exclusion.
        </para>
+      </listitem>
 
+      <listitem>
        <para>
-       This is valuable for keeping <acronym>PITR</> standby
-       servers in sync with the master.  xlog file switching also
-       happens automatically during <function>pg_stop_backup()</>.
-       This ensures that <acronym>PITR</> servers have all xlog
-       files needed for recovery.
+        Improve sorting speed and reduce memory usage (Simon, Tom)
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Add <acronym>WAL</> informational functions (Simon Riggs)
+        <function>MIN()</>/<function>MAX()</> can now use indexes
+        in more cases (Tom)
        </para>
+      </listitem>
 
+      <listitem>
        <para>
-       Add functions for interrogating the current xlog insertion
-       point and determining <acronym>WAL</> filenames from the
-       hex <acronym>WAL</> locations displayed by
-       <function>pg_stop_backup()</> and friends.
+        Improve concurrency for database creation and destruction
+        (Tom)
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Allow <acronym>WAL</> replay to be restored quicker in case
-       of a crash (Simon Riggs)
+        Speed up vacuuming of btree indexes (Heikki Linnakangas,
+        Tom)
        </para>
+      </listitem>
 
+      <listitem>
        <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
-       <acronym>PITR</> standby servers to replay the entire log
-       since the base backup if they crash.
+        Improve <command>COPY</> performance (Alon Goldshuv, Tom)
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Add <envar>archive_timeout</> to force xlog file switches
-       at a given interval (Simon Riggs)
+        Add <literal>FILLFACTOR</> to table and index creation
+        (ITAGAKI Takahiro)
+       </para>
+
+       <para>
+        This adds extra free space to each heap or index page,
+        allowing improved performance as the database grows.  This
+        is particularly valuable to maintain <command>CLUSTER</>ing.
        </para>
+      </listitem>
 
+      <listitem>
        <para>
-       This enforces a maximum delay for <acronym>PITR</> standby
-       servers.
+        Improve multicolumn <acronym>GIST</> indexing (Oleg, Teodor)
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Add a <literal>waiting</> column to <literal>pg_stat_activity</>
-       (Tom)
+        <acronym>GIST</> indexes now are clusterable (Teodor)
        </para>
+      </listitem>
 
+      <listitem>
        <para>
-       This allows <literal>pg_stat_activity</> to show the same
-       information as the <literal>ps</> display.
+        Remove dead index entries before btree page split (Junji
+        Teramoto)
        </para>
+      </listitem>
      </sect3>
 
     <sect3>
-     <title>Query Changes</title>
+     <title>Server Changes</title>
      <itemizedlist>
 
       <listitem>
        <para>
-       Support portal parameters in <command>EXPLAIN</> and
-       <command>EXECUTE</> (Tom)
+        Improve performance of statistics monitoring, especially
+        <literal>stats_command_string</> (Tom, Bruce)
        </para>
 
        <para>
-       This allows, for example, <literal>?</> parameters to work
-       in these commands in <acronym>JDBC</>.
+        This release sets <envar>stats_command_string</> to
+        <literal>on</> by default, now that its overhead is minimal.
+        This means <literal>pg_stat_activity</> now will show all
+        active queries by default.
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Add <literal>IS NOT DISTINCT FROM</> (Pavel Stehule)
+        Add support for include directives in <filename>postgresql.conf</>
+        (Joachim Wieland)
+       </para>
+      </listitem>
+
+      <listitem>
+       <para>
+        Add native <acronym>LDAP</> authentication (Magnus Hagander)
        </para>
 
        <para>
-       It is similar to equals (<literal>=</>), but is true when
-       both left and right arguments are <literal>NULL</>, and
-       false when just one is, rather than yielding <literal>NULL</>
-       in these cases.
+        This is particularly useful for platforms that do not
+        support <acronym>PAM</>, such as Win32.
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Make row comparisons follow <acronym>SQL</> standard
-       semantics and allow them to be used in index scans (Tom)
+        Allow <envar>full_page_writes</> to be turned <literal>off</>
+        again (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.
+        This flag can now be used even with <acronym>PITR</>. It
+        is turned on automatically between <function>pg_start_backup()</>
+        and <function>pg_stop_backup()</> calls.
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Allow additional row values comparison (Tom)
+        Add support for <acronym>SSL</> Certificate Revocation List
+        (<acronym>CRL</>) files, <filename>root.crl</> (Libor
+        Hoho&#353;)
        </para>
 
        <para>
-       Add &lt;, &lt;=, &gt;, &gt;=.
+        This was added to <application>libpq</> as well.
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Add system view <literal>pg_prepared_statements</> to show
-       prepared statements (Joachim Wieland)
+        Remove routine autovacuum server log entries (Bruce)
+       </para>
+
+       <para>
+        <literal>pg_stat_activity</> now shows autovacuum activity.
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Add system view <literal>pg_cursors</> to show open cursors
-       (Joachim Wieland)
+        Add <literal>GRANT CONNECT ON DATABASE</>, to be used in
+        addition to <filename>pg_hba.conf</> (Gevik Babakhani)
        </para>
 
        <para>
-       Both this and <literal>pg_prepared_statements</> are very
-       useful for pooled connection setups.
+        This gives SQL-control over database access, and works in
+        combination with the existing <filename>pg_hba.conf</>
+        controls.
        </para>
       </listitem>
 
       <listitem>
        <para>
-       If <acronym>SQL</>-level <command>PREPARE</> parameters
-       are unknown, infer their types from the context of the
-       query (Neil)
+        Add last vacuum and analyze timestamp columns to the stats
+        collector (Larry Rosenman)
+       </para>
+
+       <para>
+        These values now appear in the <literal>pg_stat_*_tables</>
+        system views, and are used by autovacuum. ?
        </para>
+      </listitem>
 
+      <listitem>
        <para>
-       Protocol-level <command>PREPARE</> already did this.
+        Add <acronym>GUC</> <envar>update_process_title</> to
+        control whether the <application>ps</> display is updated
+        for every command, default to <literal>on</> (Bruce)
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Allow <command>UPDATE</> and <command>DELETE</> to use an
-       alias for the target table (Atsushi Ogawa)
+        Track tables needing vacuum with more accuracy (Alvaro)
        </para>
 
        <para>
-       This allows these statements to support self-joins more
-       conveniently.  <command>UPDATE</> already supported as
-       <literal>FROM</> clause, but <command>DELETE</> did not.
+        This reduces the overhead involved in preventing transaction
+        ID wraparound.
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Add <literal>CASCADE</> option to <command>TRUNCATE</>
-       (Joachim Wieland)
+        Allow units to be specified in configuration settings
+        (Peter)
        </para>
 
        <para>
-       This allows <command>TRUNCATE</> also to automatically
-       truncate all foreign-key referencing tables.
+        You can now set <envar>shared_buffer</> to <literal>32000kB</>,
+        for example.
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Enable <envar>standard_conforming_strings</> to be turned
-       <literal>on</> (Kevin Grittner)
+        Improve logging of protocol-level prepare/bind/execute
+        messages (Bruce, Tom)
        </para>
 
        <para>
-       This allow special backslash escaping in strings to be
-       turned off so <productname>PostgreSQL</> is more
-       standards-compliant.  The default is <literal>off</>, but
-       future releases will default this to <literal>on</>.
+        Such logging now shows statement names, bind parameter
+        values, and the text of the query being executed.
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Set <envar>escape_string_warning</> to <literal>on</> by
-       default (Bruce)
+        Allow a forced switch to a new xlog file (Simon Riggs, Tom)
        </para>
 
        <para>
-       This issues a warning if backslash escapes are used in
-       non-escape (non-<literal>E''</>) strings.
+        This is valuable for keeping <acronym>PITR</> standby
+        servers in sync with the master.  xlog file switching also
+        happens automatically during <function>pg_stop_backup()</>.
+        This ensures that <acronym>PITR</> servers have all xlog
+        files needed for recovery.
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Support <literal>FOR UPDATE</> and <literal>FOR SHARE</>
-       in the same command (Tom)
+        Add <acronym>WAL</> informational functions (Simon Riggs)
+       </para>
+
+       <para>
+        Add functions for interrogating the current xlog insertion
+        point and determining <acronym>WAL</> filenames from the
+        hex <acronym>WAL</> locations displayed by
+        <function>pg_stop_backup()</> and friends.
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Disallow aggregate functions in <command>UPDATE</> commands
-       (unless within a subquery) (Tom)
+        Allow <acronym>WAL</> replay to be restored quicker in case
+        of a crash (Simon Riggs)
        </para>
 
        <para>
-       The standard disallows this, and it leads to unpredictable
-       results.
+        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
+        <acronym>PITR</> standby servers to replay the entire log
+        since the base backup if they crash.
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Change the row constructor syntax (<literal>ROW(...)</>)
-       so that list elements <literal>foo.*</> will be expanded
-       to a list of their member fields, rather than creating a
-       nested rowtype field as formerly (Tom)
+        Add <envar>archive_timeout</> to force xlog file switches
+        at a given interval (Simon Riggs)
        </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>.*</>.
+        This enforces a maximum delay for <acronym>PITR</> standby
+        servers.
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Change <literal>LIMIT</>/<literal>OFFSET</> to use
-       <type>int8</> (Dhanaraj M)
+        Add a <literal>waiting</> column to <literal>pg_stat_activity</>
+        (Tom)
        </para>
 
        <para>
-       This allows <literal>LIMIT</>/<literal>OFFSET</> over
-       two-billion.
+        This allows <literal>pg_stat_activity</> to show the same
+        information as the <literal>ps</> display.
        </para>
       </listitem>
 
+     </sect3>
+
+    <sect3>
+     <title>Query Changes</title>
+     <itemizedlist>
+
       <listitem>
        <para>
-       Add support for multi-row <literal>VALUES</> clauses as
-       part of <command>INSERT</> and <command>SELECT</> statements
-       (Joe, Tom)
+        Support portal parameters in <command>EXPLAIN</> and
+        <command>EXECUTE</> (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, ...)</>.
+        This allows, for example, <literal>?</> parameters to work
+        in these commands in <acronym>JDBC</>.
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Improve the length output used by
-       <literal>UNION</>/<literal>INTERSECT</>/<literal>EXCEPT</>
-       (Tom)
+        Add <literal>IS NOT DISTINCT FROM</> (Pavel Stehule)
        </para>
 
        <para>
-       When all columns are of the same defined length, that length
-       is used for output, rather than a generic length.
+        It is similar to equals (<literal>=</>), but is true when
+        both left and right arguments are <literal>NULL</>, and
+        false when just one is, rather than yielding <literal>NULL</>
+        in these cases.
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Add <command>INSERT</>/<command>UPDATE</>/<command>DELETE</>
-       <literal>RETURNING</> (Jonah Harris, Tom)
+        Allow additional row value comparisons (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 new state of the row are returned.
+        Add &lt;, &lt;=, &gt;, &gt;=.
+       </para>
+      </listitem>
+
+      <listitem>
+       <para>
+        Add system view <literal>pg_prepared_statements</> to show
+        prepared statements (Joachim Wieland)
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Allow <command>UPDATE</> to set multiple columns with a
-       list of values (Susanne Ebrecht)
+        Add system view <literal>pg_cursors</> to show open cursors
+        (Joachim Wieland)
        </para>
 
        <para>
-       This is basically as short-hand for assigning the columns
-       and values in pairs.  The syntax is <literal>UPDATE tab
-       SET (col, ...) = (val, ...)</>.
+        Both this and <literal>pg_prepared_statements</> are very
+        useful for pooled connection setups.
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Allow <literal>ILIKE</> to work for multi-byte encodings
-       (Tom)
+        If <acronym>SQL</>-level <command>PREPARE</> parameters
+        are unknown, infer their types from the context of the
+        query (Neil)
        </para>
 
        <para>
-       Internally, <literal>ILIKE</> now calls <function>lower()</>
-       and then uses <literal>LIKE</>.  Locale-specific regular
-       expression operations still do not work in these encodings.
+        Protocol-level <command>PREPARE</> already did this. ?
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Protocol-level unnamed prepared statements are re-planned
-       for each set of <literal>BIND</> values (Tom)
+        Allow <command>UPDATE</> and <command>DELETE</> to use an
+        alias for the target table (Atsushi Ogawa)
        </para>
 
        <para>
-       This improves performance because the exact parameter values
-       can be used in the plan.
+        This allows these statements to support self-joins more
+        conveniently.  <command>UPDATE</> already supported as
+        <literal>FROM</> clause, but <command>DELETE</> did not.
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Do not flatten subqueries that contain <literal>VOLATILE</>
-       functions in their target lists (Jaime Casanova)
+        Add <literal>CASCADE</> option to <command>TRUNCATE</>
+        (Joachim Wieland)
        </para>
 
        <para>
-       This prevents surprising behavior due to multiple evaluation
-       of a <literal>volatile</> function (such as <function>random()</>
-       or <function>nextval()</>).  It may cause performance
-       degradation in the presence of functions that are unnecessarily
-       marked as <literal>volatile</>.
+        This allows <command>TRUNCATE</> also to automatically
+        truncate all foreign-key referencing tables.
        </para>
-     </sect3>
-
-    <sect3>
-     <title>Object Manipulation Changes</title>
-     <itemizedlist>
+      </listitem>
 
       <listitem>
        <para>
-       Add <command>DROP</> object <literal>IF EXISTS</> for many
-       object types (Andrew)
+        Enable <envar>standard_conforming_strings</> to be turned
+        <literal>on</> (Kevin Grittner)
        </para>
 
        <para>
-       This allows <command>DROP</> operations on non-existent
-       objects without generating an error.
+        This allow special backslash escaping in strings to be
+        turned off so <productname>PostgreSQL</> is more
+        standards-compliant.  The default is <literal>off</>, but
+        future releases will default this to <literal>on</>.
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Add <literal>DROP OWNED</> to drop all objects owned by a
-       role (Alvaro)
+        Support <literal>FOR UPDATE</> and <literal>FOR SHARE</>
+        in the same command (Tom)
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Add <literal>REASSIGN OWNED</> to reassign ownership of
-       all objects owned by a role (Alvaro)
+        Change <literal>LIMIT</>/<literal>OFFSET</> to exceed
+        two billion</> (Dhanaraj M)
        </para>
+      </listitem>
 
+      <listitem>
        <para>
-       This, and <literal>DROP OWNED</> above, facilitate dropping
-       roles.
+        Add support for multi-row <literal>VALUES</> clauses as
+        part of <command>INSERT</> and <command>SELECT</> statements
+        (Joe, Tom)
        </para>
-      </listitem>
 
-      <listitem>
        <para>
-       Add <command>CREATE</>/<command>ALTER ROLE PASSWORD NULL</>,
-       which removes the role's password (Peter)
+        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>
-       Properly enforce <literal>DOMAIN</> check constraints
-       everywhere (Neil, Tom)
+        Improve the length output used by
+        <literal>UNION</>/<literal>INTERSECT</>/<literal>EXCEPT</>
+        (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 constraints.
+        When all columns are of the same defined length, that length
+        is used for output, rather than a generic length.
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Add <command>GRANT ON SEQUENCE</> syntax (Bruce)
+        Add <command>INSERT</>/<command>UPDATE</>/<command>DELETE</>
+        <literal>RETURNING</> (Jonah Harris, Tom)
        </para>
 
        <para>
-       This was added for setting sequence-specific permissions.
-       <literal>GRANT ON [TABLE]</> for sequences is still supported
-       for backward compatibility.
+        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 new state of the row are returned.
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Add <literal>USAGE</> permission for sequences that allows
-       only <function>currval()</> and <function>nextval()</>,
-       not <function>setval()</> (Bruce)
+        Allow <command>UPDATE</> to set multiple columns with a
+        list of values (Susanne Ebrecht)
        </para>
 
        <para>
-       <literal>USAGE</> permission allows more find-grained
-       control over sequence access.  It allows users to increment
-       a sequence, but prevents them from setting the sequence to
-       an arbitrary value using <function>setval()</>.
+        This is basically as short-hand for assigning the columns
+        and values in pairs.  The syntax is <literal>UPDATE tab
+        SET (col, ...) = (val, ...)</>.
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Allow comments on global objects to be stored globally
-       (Kris Jurka)
+        Allow <literal>ILIKE</> to work for multi-byte encodings
+        (Tom)
        </para>
 
        <para>
-       Previously, global object comments were stored in individual
-       databases, making them ineffective.  This adds a new
-       <literal>pg_shdescription</> table.
+        Internally, <literal>ILIKE</> now calls <function>lower()</>
+        and then uses <literal>LIKE</>.  Locale-specific regular
+        expression operations still do not work in these encodings.
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Add <literal>ON COMMIT</> clauses to <command>CREATE TABLE
-       AS</> (Neil)
+        Protocol-level unnamed prepared statements are re-planned
+        for each set of <literal>BIND</> values (Tom)
        </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.
+        This improves performance because the exact parameter values
+        can be used in the plan.
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Add <literal>TABLESPACE</> and <literal>ON COMMIT</> clauses
-       to <command>CREATE TABLE AS</> (Neil)
+        Do not flatten subqueries that contain <literal>VOLATILE</>
+        functions in their target lists (Jaime Casanova)
        </para>
 
        <para>
-       This allows the tablespace to be specified for the new
-       table.
+        This prevents surprising behavior due to multiple evaluation
+        of a <literal>volatile</> function (such as <function>random()</>
+        or <function>nextval()</>).  It may cause performance
+        degradation in the presence of functions that are unnecessarily
+        marked as <literal>volatile</>.
        </para>
       </listitem>
 
+     </sect3>
+
+    <sect3>
+     <title>Object Manipulation Changes</title>
+     <itemizedlist>
+
       <listitem>
        <para>
-       Allow placeholder (shell) types to be created (Martijn van
-       Oosterhout)
+        Add <command>DROP</> object <literal>IF EXISTS</> for many
+        object types (Andrew)
        </para>
 
        <para>
-       Shell types create a type reference, without specifying
-       any of the aspects of the type.  It is useful for creating
-       types with input/output functions that reference the data
-       type.  The syntax is <command>CREATE TYPE typname</>.
+        This allows <command>DROP</> operations on non-existent
+        objects without generating an error.
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Add new aggregate creation syntax (Tom)
+        Add <literal>DROP OWNED</> to drop all objects owned by a
+        role (Alvaro)
        </para>
+      </listitem>
 
+      <listitem>
        <para>
-       The new syntax is <command>CREATE AGGREGATE</> aggname
-       (input_type) (parameter_list).  This more naturally supports
-       the new multi-parameter aggregate functionality.  The
-       previous syntax is still supported.
+        Add <literal>REASSIGN OWNED</> 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>
-       Aggregate functions now support multiple input parameters
-       (Sergey Koposov, Tom)
+        Add <command>CREATE</>/<command>ALTER ROLE PASSWORD NULL</>,
+        which removes the role's password (Peter)
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Have <command>SET CONSTRAINT</> affect only one constraint
-       (Kris Jurka)
+        Properly enforce <literal>DOMAIN</> check constraints
+        everywhere (Neil, Tom)
        </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.
+        For example, the result of a user-defined function that is
+        declared to return a domain type is now checked against
+        the constraints.
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Add <literal>INCLUDING CONSTRAINTS</> to <command>CREATE
-       TABLE LIKE</> (Greg Stark)
+        Add <command>GRANT ON SEQUENCE</> syntax (Bruce)
        </para>
 
        <para>
-       This allows the new table to receive matching constraints.
+        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 <literal>ALTER TABLE ... [NO] INHERIT</> (Greg Stark)
+        Add <literal>USAGE</> permission for sequences that allows
+        only <function>currval()</> and <function>nextval()</>,
+        not <function>setval()</> (Bruce)
        </para>
 
        <para>
-       This allow inheritance to be added and removed dynamically,
-       rather than just at table creation and destruction.  This
-       is very valuable for table partitioning using constraint
-       exclusion.
+        <literal>USAGE</> permission allows more find-grained
+        control over sequence access.  It allows users to increment
+        a sequence, but prevents them from setting the sequence to
+        an arbitrary value using <function>setval()</>.
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Remove rule permission for tables, for security reasons
-       (Tom)
+        Allow comments on global objects to be stored globally
+        (Kris Jurka)
        </para>
 
        <para>
-       In 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.
+        Previously, global object comments were stored in individual
+        databases, making them ineffective.  This adds a new
+        <literal>pg_shdescription</> table.
        </para>
-     </sect3>
-
-    <sect3>
-     <title>Utility Command Changes</title>
-     <itemizedlist>
+      </listitem>
 
       <listitem>
        <para>
-       Reduce progress messages displayed by initdb (Tom)
+        Add <literal>ON COMMIT</> clauses to <command>CREATE TABLE
+        AS</> (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>
-       Have initdb detect the operating system locale and set the
-       default <envar>DateStyle</> accordingly (Peter)
+        Add <literal>TABLESPACE</> and <literal>ON COMMIT</> clauses
+        to <command>CREATE TABLE AS</> (Neil)
        </para>
 
        <para>
-       This make it more likely that the installed
-       <filename>postgresql.conf</> <envar>DateStyle</> value will
-       be correct.
+        This allows the tablespace to be specified for the new
+        table.
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Have the <command>COPY</> command return a command tag that
-       includes the number of rows copied (Volkan Yaz&#305;c&#305;)
+        Allow placeholder (shell) types to be created (Martijn van
+        Oosterhout)
+       </para>
+
+       <para>
+        Shell types create a type reference, without specifying
+        any of the aspects of the type.  It is useful for creating
+        types with input/output functions that reference the data
+        type.  The syntax is <command>CREATE TYPE typname</>.
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Allow <command>VACUUM</> to expire rows without being
-       affected by other concurrent <command>VACUUM</>s (Hannu
-       Krossing, Alvaro, Tom)
+        Add new aggregate creation syntax (Tom)
+       </para>
+
+       <para>
+        The new syntax is <command>CREATE AGGREGATE</> aggname
+        (input_type) (parameter_list).  This more naturally supports
+        the new multi-parameter aggregate functionality.  The
+        previous syntax is still supported.
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Avoid extra scan of tables during <command>VACUUM</> of
-       index-less table (Greg Stark)
+        Aggregate functions now support multiple input parameters
+        (Sergey Koposov, Tom)
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Add option to allow indexes to be created without blocking
-       concurrent writes to the table (Greg Stark)
+        Add <literal>INCLUDING CONSTRAINTS</> to <command>CREATE
+        TABLE LIKE</> (Greg Stark)
        </para>
 
        <para>
-       The new syntax is <command>CREATE INDEX CONCURRENTLY</>.
-       The default behavior is still to block table modification
-       while a index is being created.
+        This allows the new table to receive matching constraints.
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Allow <command>COPY</> to dump a <command>SELECT</> query
-       (Zoltan Boszormenyi, Karel Zak)
+        Add <literal>ALTER TABLE ... [NO] INHERIT</> (Greg Stark)
        </para>
 
        <para>
-       This allows <command>COPY</> to dump arbitrary <acronym>SQL</>
-       queries. The syntax is <literal>COPY (SELECT ...) TO</>.
+        This allow inheritance to be added and removed dynamically,
+        rather than just at table creation and destruction.  This
+        is very valuable for table partitioning using constraint
+        exclusion.
        </para>
+      </listitem>
+
      </sect3>
 
     <sect3>
-     <title>Data Type and Function Changes</title>
+     <title>Utility Command Changes</title>
      <itemizedlist>
 
       <listitem>
        <para>
-       Allow arrays to contain <literal>NULL</> elements (Tom)
+        Reduce progress messages displayed by initdb (Tom)
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Change array concatenation to match documented behavior
-       (Tom)
+        Have initdb detect the operating system locale and set the
+        default <envar>DateStyle</> accordingly (Peter)
        </para>
 
        <para>
-       This changes the previous behavior where concatenation
-       would adjust the lower array dimensions.
+        This make it more likely that the installed
+        <filename>postgresql.conf</> <envar>DateStyle</> value will
+        be correct.
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Array comparison improvements (Tom)
-       </para>
-
-       <para>
-       Now array dimensions are also compared.
+        Have the <command>COPY</> command return a command tag that
+        includes the number of rows copied (Volkan Yaz&#305;c&#305;)
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Allow <function>to_char(time)</> and <function>to_char(interval)</>
-       to output <acronym>AM</>/<acronym>PM</> specifications
-       (Bruce)
+        Allow <command>VACUUM</> to expire rows without being
+        affected by other concurrent <command>VACUUM</>s (Hannu
+        Krossing, Alvaro, Tom)
        </para>
+      </listitem>
 
+      <listitem>
        <para>
-       Intervals and times are treated as 24-hour periods, e.g.
-       <literal>25 hours</> is <acronym>AM</>.
+        Avoid extra scan of tables without indexes during <command>VACUUM</>
+        (Greg Stark)
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Have <function>to_char(time)</> and <function>to_char(interval)</>
-       treat <literal>'HH'</> and <literal>'HH12'</> as 12-hour
-       intervals.
+        Add option to allow indexes to be created without blocking
+        concurrent writes to the table (Greg Stark)
+       </para>
 
        <para>
-       Most applications should use <literal>'HH24'</> unless they
-       want a 12-hour display.
+        The new syntax is <command>CREATE INDEX CONCURRENTLY</>.
+        The default behavior is still to block table modification
+        while a index is being created.
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Add a server-side sleep function <function>pg_sleep()</>
-       (Joachim Wieland)
+        Allow <command>COPY</> 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>
 
+     </sect3>
+
+    <sect3>
+     <title>Data Type and Function Changes</title>
+     <itemizedlist>
+
       <listitem>
        <para>
-       Zero unmasked bits in conversion from <type>INET</> to
-       <type>CIDR</> (Tom)
+        Allow arrays to contain <literal>NULL</> elements (Tom)
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Add convenient arithmetic operations on <type>INET</>/<type>CIDR</>
-       values (Stephen R. van den Berg)
+        Allow <function>to_char(time)</> and <function>to_char(interval)</>
+        to output <acronym>AM</>/<acronym>PM</> specifications
+        (Bruce)
        </para>
 
        <para>
-       The new operators are <literal>&</> (and), <literal>|</>
-       (or), <literal>~</> (not), <literal>+</> <type>int8</>,
-       <literal>-</> <type>int8</>, and <type>inet</> <literal>-</>
-       <type>inet</>.
+        Intervals and times are treated as 24-hour periods, e.g.
+        <literal>25 hours</> is <acronym>AM</>.
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Allow <function>to_char()</> to print localized month and
-       day names (Euler Taveira de Oliveira)
+        Add a server-side sleep function <function>pg_sleep()</>
+        (Joachim Wieland)
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Add all comparison operators for the <type>tid</> data type
-       (Mark Kirkwood, Greg Stark, Tom)
+        Add convenient arithmetic operations on <type>INET</>/<type>CIDR</>
+        values (Stephen R. van den Berg)
+       </para>
+
+       <para>
+        The new operators are <literal>&</> (and), <literal>|</>
+        (or), <literal>~</> (not), <literal>+</> <type>int8</>,
+        <literal>-</> <type>int8</>, and <type>inet</> <literal>-</>
+        <type>inet</>.
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Add new function <function>justify_interval()</> to adjust
-       interval units (Mark Dilger)
+        Allow <function>to_char()</> to print localized month and
+        day names (Euler Taveira de Oliveira)
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Add new aggregate functions from SQL2003 (Neil)
+        Add all comparison operators for the <type>tid</> data type
+        (Mark Kirkwood, Greg Stark, Tom)
        </para>
+      </listitem>
 
+      <listitem>
        <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 have been kept
-       for backward compatibility.
+        Add new function <function>justify_interval()</> to adjust
+        interval units (Mark Dilger)
        </para>
       </listitem>
 
       <listitem>
        <para>
-       New operators for array-subset comparisons (<literal>@&gt;</>,
-       <literal>&lt;@</>, <literal>&amp;&amp;</>) (Teodor, Tom)
+        Add new aggregate functions from SQL2003 (Neil)
        </para>
 
        <para>
-       The old operators were kept for backward compatibility.
+        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 have been kept
+        for backward compatibility.
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Allow domains to be created using other domains (Tom)
+        New operators for array-subset comparisons (<literal>@&gt;</>,
+        <literal>&lt;@</>, <literal>&amp;&amp;</>) (Teodor, Tom)
        </para>
-      </listitem>
 
-      <listitem>
        <para>
-       Add <function>clock_timestamp()</>,
-       <function>statement_timestamp()</>, and
-       <function>transaction_timestamp()</> (Bruce)
+        The old operators were kept for backward compatibility.
        </para>
+      </listitem>
 
+      <listitem>
        <para>
-       <function>clock_timestamp()</> is the true current time,
-       and <function>statement_timestamp()</> is the time the
-       current command arrived at the server.
-       <function>transaction_timestamp()</> is the same as
-       <function>now()</>.
+        Allow domains to be created using other domains (Tom)
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Allow full timezone names in <type>timestamp</> values
-       (Joachim Wieland)
+        Add <function>clock_timestamp()</>,
+        <function>statement_timestamp()</>, and
+        <function>transaction_timestamp()</> (Bruce)
        </para>
 
        <para>
-       For example, <literal>'2006-05-24 21:11
-       America/New_York'::timestamptz</>.
+        <function>clock_timestamp()</> is the true current time,
+        and <function>statement_timestamp()</> is the time the
+        current command arrived at the server.
+        <function>transaction_timestamp()</> is the same as
+        <function>now()</>.
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Create a configuration file of timezone abbreviations
-       (Joachim Wieland)
+        Allow full timezone names in <type>timestamp</> values
+        (Joachim Wieland)
        </para>
 
        <para>
-       The file name is controlled by GUC variable
-       <envar>timezone_abbreviations</>.
+        For example, <literal>'2006-05-24 21:11
+        America/New_York'::timestamptz</>.
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Remove <envar>australian_timezones</> configuration variable
-       (Joachim Wieland)
+        Create a configuration file of timezone abbreviations
+        (Joachim Wieland)
        </para>
 
        <para>
-       No longer needed now that timezone abbreviations are
-       configurable.
+        The file name is controlled by GUC variable
+        <envar>timezone_abbreviations</>.
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Add <envar>pg_timezone_abbrevs</> and <envar>pg_timezone_names</>
-       views to show supported timezones (Magnus Hagander)
+        Add <envar>pg_timezone_abbrevs</> and <envar>pg_timezone_names</>
+        views to show supported timezones (Magnus Hagander)
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Add SQL2003-standard statistical aggregates (Sergey Koposov)
+        Add SQL2003-standard statistical aggregates (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()</>
+        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>
-       Fix problems with dumping renamed <type>SERIAL</> columns
-       (Tom)
+        Fix problems with dumping renamed <type>SERIAL</> 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 <command>ALTER SEQUENCE OWNED BY</> command.
-       This also allows dropping a <type>SERIAL</> column
-       specification.
+        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 <command>ALTER SEQUENCE OWNED BY</> command.
+        This also allows dropping a <type>SERIAL</> column
+        specification.
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Interval computation improvements (Michael Glaesemann,
-       Bruce)
+        Interval computation improvements (Michael Glaesemann,
+        Bruce)
        </para>
+      </listitem>
+
      </sect3>
 
     <sect3>
@@ -1266,36 +1345,38 @@ For new features, add links to the documentation sections.
 
       <listitem>
        <para>
-       Allow <literal>FOR</> statements to return values to scalars
-       as well as records and row types (Pavel Stehule)
+        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)
+        Add a <literal>BY</> clause to the <literal>FOR</> loop,
+        to control the iteration increment (Jaime Casanova)
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Add <literal>table_name</> and <literal>table_schema</> as
-       trigger data (Andrew)
+        Add <literal>table_name</> and <literal>table_schema</> as
+        trigger data (Andrew)
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Add <literal>STRICT</> to <command>SELECT INTO</> (Matt
-       Miller)
+        Add <literal>STRICT</> to <command>SELECT INTO</> (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.
+        <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>
+
      </sect3>
 
     <sect3>
@@ -1304,36 +1385,38 @@ For new features, add links to the documentation sections.
 
       <listitem>
        <para>
-       Honor <envar>check_function_bodies</> (Tom)
+        Honor <envar>check_function_bodies</> (Tom)
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Add prepared queries (Dmitry Karasik)
+        Add prepared queries (Dmitry Karasik)
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Add <literal>table_name</> and <literal>table_schema</> as
-       trigger data (Adam Sj&oslash;gren)
+        Add <literal>table_name</> and <literal>table_schema</> as
+        trigger data (Adam Sj&oslash;gren)
        </para>
 
        <para>
-       <literal>relname</> is kept but now deprecated
+        <literal>relname</> is kept but now deprecated
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Make <literal>$_TD</> trigger data a global variable (Andrew)
+        Make <literal>$_TD</> trigger data a global variable (Andrew)
        </para>
 
        <para>
-       Previously, it was lexical, which caused unexpected sharing
-       violations.
+        Previously, it was lexical, which caused unexpected sharing
+        violations.
        </para>
+      </listitem>
+
      </sect3>
 
     <sect3>
@@ -1342,42 +1425,44 @@ For new features, add links to the documentation sections.
 
       <listitem>
        <para>
-       Allow functions to return <literal>void</> (Neil)
+        Allow functions to return <literal>void</> (Neil)
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Add named parameters to the <literal>args[]</> array (Sven
-       Suursoho)
+        Add named parameters to the <literal>args[]</> array (Sven
+        Suursoho)
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Return composite-types as dictionary (Sven Suursoho)
+        Return composite-types as dictionary (Sven Suursoho)
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Return result-set as <literal>list</>, <literal>iterator</>,
-       or <literal>generator </>(Sven Suursoho)
+        Return result-set as <literal>list</>, <literal>iterator</>,
+        or <literal>generator </>(Sven Suursoho)
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Allow returning of <literal>composite types</> and
-       <literal>result sets</> (Sven Suursoho)
+        Allow returning of <literal>composite types</> and
+        <literal>result sets</> (Sven Suursoho)
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Add <literal>table_name</> and <literal>table_schema</> as
-       trigger data (Andrew)
+        Add <literal>table_name</> and <literal>table_schema</> as
+        trigger data (Andrew)
        </para>
+      </listitem>
+
      </sect3>
 
     <sect3>
@@ -1386,98 +1471,100 @@ For new features, add links to the documentation sections.
 
       <listitem>
        <para>
-       Add new command <literal>\password</> for changing role
-       password with client-side password encryption (Peter)
+        Add new command <literal>\password</> for changing role
+        password with client-side password encryption (Peter)
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Allow multi-line values to align in the proper column
-       (Martijn van Oosterhout)
+        Allow multi-line values to align in the proper column
+        (Martijn van Oosterhout)
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Save multi-line statements as a single entry, rather than
-       one line at a time (Sergey E. Koposov)
+        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 makes up-arrow recall of queries easier.
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Allow <literal>\c</> to connect to a new host and port
-       number (David, Volkan Yaz&#305;c&#305;)
+        Allow <literal>\c</> to connect to a new host and port
+        number (David, Volkan Yaz&#305;c&#305;)
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Add option to run the entire session in a single transaction
-       (Simon)
+        Add option to run the entire session in a single transaction
+        (Simon)
        </para>
 
        <para>
-       Use options <literal>-1</> or <literal>--single-transaction</>.
+        Use options <literal>-1</> or <literal>--single-transaction</>.
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Improve highlighting of error location in query in more
-       cases (Tom)
+        Improve highlighting of error location in query in more
+        cases (Tom)
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Add tablespace display to <literal>\l+</> (Philip Yarra)
+        Add tablespace display to <literal>\l+</> (Philip Yarra)
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Support binary <command>COPY</> (Andreas Pflug)
+        Support binary <command>COPY</> (Andreas Pflug)
        </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)
+        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>
-       Make the line counter 64-bit so it can handle files over
-       two billion lines (David Fetter)
+        Make the line counter 64-bit so it can handle files over
+        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)
+        Report both the returned data and the command status tag
+        for <command>INSERT</>/<command>UPDATE</>/<command>DELETE
+        RETURNING</> (Tom)
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Support retrieving <command>SELECT</> results in batches
-       using a cursor (Chris Mair)
+        Support retrieving <command>SELECT</> results in batches
+        using a cursor (Chris Mair)
        </para>
 
        <para>
-       This is accomplished using <command>\set FETCH_COUNT</>.
+        This is accomplished using <command>\set FETCH_COUNT</>.
        </para>
+      </listitem>
+
      </sect3>
 
     <sect3>
@@ -1486,37 +1573,39 @@ For new features, add links to the documentation sections.
 
       <listitem>
        <para>
-       Allow complex selection of objects to be included or excluded
-       by <application>pg_dump</> (Greg Sabino Mullane)
+        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>-T</> and <literal>-N</> options to exclude objects.
-       Also adds support for regular expressions for object names
-       in these switches.
+        <application>pg_dump</> now supports multiple <literal>-n</>
+        (schema) and <literal>-t</> (table) options, and adds
+        <literal>-T</> and <literal>-N</> options to exclude objects.
+        Also adds support for regular expressions for object names
+        in these switches.
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Add <application>pg_dump</> <literal>-X
-       no-data-for-failed-tables</> option to suppress loading
-       data if table creation failed (the table already exists)
-       (Martin Pitt)
+        Add <application>pg_dump</> <literal>-X
+        no-data-for-failed-tables</> option to suppress loading
+        data if table creation failed (the table already exists)
+        (Martin Pitt)
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Add <application>pg_restore</> option to run the entire
-       session in a single transaction (Simon)
+        Add <application>pg_restore</> option to run the entire
+        session in a single transaction (Simon)
        </para>
 
        <para>
-       Use options <literal>-1</> or <literal>--single-transaction</>.
+        Use options <literal>-1</> or <literal>--single-transaction</>.
        </para>
+      </listitem>
+
      </sect3>
 
     <sect3>
@@ -1525,68 +1614,51 @@ For new features, add links to the documentation sections.
 
       <listitem>
        <para>
-       Add <function>PQencryptPassword()</> to encrypt passwords
-       (Tom)
+        Add <function>PQencryptPassword()</> to encrypt passwords
+        (Tom)
        </para>
 
        <para>
-       This allows passwords to be sent encrypted for commands
-       like <command>ALTER USER ... PASSWORD</>.
+        This allows passwords to be sent encrypted for commands
+        like <command>ALTER USER ... PASSWORD</>.
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Change <function>PQdsplen()</> to return a useful value
-       (Martijn van Oosterhout)
+        Allow the <filename>.pgpass</> hostname to match the default
+        socket directory, as well as a blank <literal>pghost</>
+        (Bruce)
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Change <function>PQgetssl()</> to return a <literal>void*</>,
-       rather than <literal>SSL*</> (Martijn van Oosterhout)
+        Add function <function>PQisthreadsafe()</> (Bruce)
        </para>
 
        <para>
-       This allows applications to use the function without
-       <acronym>SSL</> headers.
+        This allows applications to query the thread-safety status
+        of the library.
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Allow the <filename>.pgpass</> hostname to match the default
-       socket directory, as well as a blank <literal>pghost</>
-       (Bruce)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-       Add function <function>PQisthreadsafe()</> (Bruce)
-       </para>
-
-       <para>
-       This allows applications to query the thread-safety status
-       of the library.
+        Allow <acronym>LDAP</> lookups from <filename>pg_service.conf</>
+        (Albe Laurenz)
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Allow <acronym>LDAP</> lookups from <filename>pg_service.conf</>
-       (Albe Laurenz)
+        Add <function>PQdescribePrepared()</>,
+        <function>PQdescribePortal()</>, and related functions
+        return information about previously prepared statements
+        and open cursors (Volkan Yaz&#305;c&#305;)
        </para>
       </listitem>
 
-      <listitem>
-       <para>
-       Add <function>PQdescribePrepared()</>,
-       <function>PQdescribePortal()</>, and related functions
-       return information about previously prepared statements
-       and open cursors (Volkan Yaz&#305;c&#305;)
-       </para>
      </sect3>
 
     <sect3>
@@ -1595,27 +1667,29 @@ For new features, add links to the documentation sections.
 
       <listitem>
        <para>
-       Allow <command>SHOW</> to put its result into a variable
-       (Joachim Wieland)
+        Allow <command>SHOW</> to put its result into a variable
+        (Joachim Wieland)
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Add <command>COPY TO STDOUT</> (Joachim Wieland)
+        Add <command>COPY TO STDOUT</> (Joachim Wieland)
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Add regression tests (Joachim Wieland, Michael)
+        Add regression tests (Joachim Wieland, Michael)
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Major source code cleanups (Joachim Wieland, Michael)
+        Major source code cleanups (Joachim Wieland, Michael)
        </para>
+      </listitem>
+
      </sect3>
 
     <sect3>
@@ -1624,52 +1698,54 @@ For new features, add links to the documentation sections.
 
       <listitem>
        <para>
-       Improve handling of intermittent file system and resource
-       failures (Qingqing Zhou)
+        Improve handling of intermittent file system and resource
+        failures (Qingqing Zhou)
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Stability fixes (Magnus)
+        Stability fixes (Magnus)
        </para>
 
        <para>
-       Particularly, prevent the postmaster from stopping if too
-       many connection requests arrive too rapidly.
+        Particularly, prevent the postmaster from stopping if too
+        many connection requests arrive too rapidly.
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Add support for Windows code pages <literal>1253</>,
-       <literal>1254</>, <literal>1255</>, and <literal>1257</>
-       (Kris Jurka)
+        Add support for Windows code pages <literal>1253</>,
+        <literal>1254</>, <literal>1255</>, and <literal>1257</>
+        (Kris Jurka)
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Allow <acronym>MSVC</> to compile the <productname>PostgreSQL</>
-       server (Magnus, Hiroshi Saito)
+        Allow <acronym>MSVC</> to compile the <productname>PostgreSQL</>
+        server (Magnus, Hiroshi Saito)
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Add <acronym>MSVC</> support for utility commands and
-       <application>pg_dump </>(Hiroshi Saito)
+        Add <acronym>MSVC</> support for utility commands and
+        <application>pg_dump </>(Hiroshi Saito)
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Add native semaphore implementation (Qingqing Zhou)
+        Add native semaphore implementation (Qingqing Zhou)
        </para>
 
        <para>
-       Previous implementations mimicked SysV semaphores.
+        Previous implementations mimicked SysV semaphores.
        </para>
+      </listitem>
+
      </sect3>
 
     <sect3>
@@ -1678,215 +1754,183 @@ For new features, add links to the documentation sections.
 
       <listitem>
        <para>
-       Remove R-tree indexing (Tom)
+        Remove R-tree indexing (Tom)
        </para>
 
        <para>
-       Rtree has been re-implemented using <acronym>GIST</>.
+        Rtree has been re-implemented using <acronym>GIST</>.
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Reduce libraries linked into the backend needlessly (Martijn
-       van Oosterhout, Tom)
+        Reduce libraries linked into the backend needlessly (Martijn
+        van Oosterhout, Tom)
        </para>
       </listitem>
 
       <listitem>
        <para>
-       New macro <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>
-       Improve multicolumn <acronym>GIST</> indexing (Oleg, Teodor)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-       <acronym>GIST</> indexes now are clusterable (Teodor)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-       Add a configure flag to allow libedit to be preferred over
-       <acronym>GNU</> readline (Bruce)
-       </para>
-
-       <para>
-       Use configure <literal>--with-libedit-preferred</>.
+        New macro <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>
-       Allow installation into directories containing spaces
-       (Peter)
+        Add a configure flag to allow libedit to be preferred over
+        <acronym>GNU</> readline (Bruce)
        </para>
-      </listitem>
 
-      <listitem>
        <para>
-       Improve ability to relocate installs in more complex
-       configurations (Tom)
+        Use configure <literal>--with-libedit-preferred</>.
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Add support for <productname>Solaris x86_64</> using the
-       <productname>Solaris</> compiler (Pierre Girard, Theo
-       Schlossnagle, Bruce)
+        Allow installation into directories containing spaces
+        (Peter)
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Remove <acronym>QNX</> and <acronym>BEOS</> ports (Bruce)
-       </para>
-
-       <para>
-       These ports no longer had active maintainers.
+        Improve ability to relocate installs in more complex
+        configurations (Tom)
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Make command-line options of postmaster and postgres
-       identical (Peter)
-       </para>
-
-       <para>
-       This allows the postmaster to pass arguments to each backend
-       without using <literal>-o</>.
+        Add support for <productname>Solaris x86_64</> using the
+        <productname>Solaris</> compiler (Pierre Girard, Theo
+        Schlossnagle, Bruce)
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Add <literal>XLOG_BLCKSZ</> as independent from <literal>BLCKSZ</>
-       (Mark Wong)
+        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)
+        Add <literal>LWLOCK_STATS</> define to report locking
+        activity (Tom)
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Add <acronym>GIN</> (Generalized Inverted iNdex) index
-       access method (Teodor)
+        Add <acronym>GIN</> (Generalized Inverted iNdex) index
+        access method (Teodor)
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Emit warnings for unknown <application>configure</> options
-       (Martijn van Oosterhout)
+        Emit warnings for unknown <application>configure</> options
+        (Martijn van Oosterhout)
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Add <literal>PG_MODULE_MAGIC</> header block to all shared
-       object files (Martijn van Oosterhout)
+        Add <literal>PG_MODULE_MAGIC</> header block to all shared
+        object files (Martijn van Oosterhout)
        </para>
 
        <para>
-       The magic blocks prevent version mismatches between object
-       files and servers.
+        The magic blocks prevent version mismatches between object
+        files and servers.
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Add a <acronym>GUC</> parameter <envar>seq_page_cost</>
-       (Tom)
+        Add a <acronym>GUC</> parameter <envar>seq_page_cost</>
+        (Tom)
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Re-implement the regression test script as a C program
-       (Magnus, Tom)
+        Re-implement the regression test script as a C program
+        (Magnus, Tom)
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Add <application>DTrace</> support (Robert Lor)
+        Add <application>DTrace</> support (Robert Lor)
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Allow loadable modules to allocate shared memory and
-       lightweight locks (Marc Munro)
+        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)
+        Add automatic initialization and finalization of dynamically
+        loaded libraries (Ralf Engelschall, Tom)
        </para>
 
        <para>
-       New functions <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
-       <envar>shared_preload_libraries</>; we can assume that the
-       library used the <function>_PG_init()</> convention instead.
+        New functions <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
+        <envar>shared_preload_libraries</>; we can assume that the
+        library used the <function>_PG_init()</> convention instead.
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Add support for libraries that enhance server-side languages
-       (Korry Douglas)
+        Add support for libraries that enhance server-side languages
+        (Korry Douglas)
        </para>
 
        <para>
-       Such libraries can be used for debugging or performance
-       measurement.
+        Such libraries can be used for debugging or performance
+        measurement.
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Rename existing <acronym>GUC</> variable
-       <envar>preload_libraries</> to <envar>shared_preload_libraries</>
-       (Tom)
+        Rename existing <acronym>GUC</> variable
+        <envar>preload_libraries</> to <envar>shared_preload_libraries</>
+        (Tom)
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Add new variable <envar>server_version_num</> (Greg Sabino
-       Mullane)
+        Add new variable <envar>server_version_num</> (Greg Sabino
+        Mullane)
        </para>
 
        <para>
-       This is like server_version, but is an integer, e.g.
-       <literal>80200</>. It allows easy applications version
-       checks.
+        This is like server_version, but is an integer, e.g.
+        <literal>80200</>. It allows easy applications version
+        checks.
        </para>
       </listitem>
 
       <listitem>
        <para>
-       New <acronym>XML</> documentation section (Bruce)
+        New <acronym>XML</> documentation section (Bruce)
        </para>
+      </listitem>
+
      </sect3>
 
     <sect3>
@@ -1895,40 +1939,40 @@ For new features, add links to the documentation sections.
 
       <listitem>
        <para>
-       Major tsearch2 improvements (Oleg, Teodor)
+        Major tsearch2 improvements (Oleg, Teodor)
        </para>
 
        <itemizedlist>
 
         <listitem>
          <para>
-         multibyte encoding support, including <acronym>UTF8</>
+          multibyte encoding support, including <acronym>UTF8</>
          </para>
         </listitem>
         <listitem>
          <para>
-         query rewriting support
+          query rewriting support
          </para>
         </listitem>
         <listitem>
          <para>
-         improved ranking functions
+          improved ranking functions
          </para>
         </listitem>
         <listitem>
          <para>
-         thesaurus dictionary support
+          thesaurus dictionary support
          </para>
         </listitem>
         <listitem>
          <para>
-         Ispell dictionaries now recognize <application>MySpell</>
-         format, used by <application>OpenOffice</>.
+          Ispell dictionaries now recognize <application>MySpell</>
+          format, used by <application>OpenOffice</>.
          </para>
         </listitem>
         <listitem>
          <para>
-         <acronym>GIN</> support
+          <acronym>GIN</> support
          </para>
         </listitem>
 
@@ -1938,138 +1982,105 @@ For new features, add links to the documentation sections.
 
       <listitem>
        <para>
-       Add pg_freespacemap to display free space map information
-       (Mark Kirkwood)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-       New uninstall scripts (David)
+        Add pg_freespacemap to display free space map information
+        (Mark Kirkwood)
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Add pgrowlocks (Tatsuo)
-       </para>
-
-       <para>
-       This shows row locking information for a specified table.
+        New uninstall scripts (David)
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Add <application>Pgadmin</> administration functions to
-       adminpack (Dave)
+        Add pgrowlocks (Tatsuo)
        </para>
 
        <para>
-       These functions provide additional file system access
-       routines not present in the default <productname>PostgreSQL</>
-       server.
+        This shows row locking information for a specified table.
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Add index information to pgstattuple (ITAGAKI Takahiro,
-       Satoshi Nagayasu)
+        Add <application>Pgadmin</> administration functions to
+        adminpack (Dave)
        </para>
-      </listitem>
 
-      <listitem>
        <para>
-       pgcrypto now has all planned functionality (Marko Kreen)
+        These functions provide additional file system access
+        routines not present in the default <productname>PostgreSQL</>
+        server.
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Update cube (Joshua Reich)
-       </para>
-
-       <para>
-       New functions are <function>cube(float[])</>,
-       <function>cube(float[], float[])</>, and
-       <function>cube_subset(cube, int4[])</>.
+        Add index information to pgstattuple (ITAGAKI Takahiro,
+        Satoshi Nagayasu)
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Added async query capability to dblink (Kai Londenberg,
-       Joe Conway)
+        pgcrypto now has all planned functionality (Marko Kreen)
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Add sslinfo (Victor Wagner)
+        Update cube (Joshua Reich)
        </para>
 
        <para>
-       Reports information about the current <acronym>SSL</>
-       certificate.
+        New functions are <function>cube(float[])</>,
+        <function>cube(float[], float[])</>, and
+        <function>cube_subset(cube, int4[])</>.
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Remove ora2pg, now at <ulink
-       url="http://www.samse.fr/GPL/ora2pg"></ulink>
+        Added async query capability to dblink (Kai Londenberg,
+        Joe Conway)
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Remove contrib modules that have been migrated to pgfoundry:
-       adddepend, dbase, dbmirror, fulltextindex, mac, userlock
+        Add sslinfo (Victor Wagner)
        </para>
-      </listitem>
 
-      <listitem>
        <para>
-       Remove abandoned modules:  mSQL-interface, ips
+        Reports information about the current <acronym>SSL</>
+        certificate.
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Add hstore module (Oleg, Teodor)
+        Add hstore module (Oleg, Teodor)
        </para>
       </listitem>
 
       <listitem>
        <para>
-       Add isn module, replacing isbn_issn (Jeremy Kronuz)
+        Add isn module, replacing isbn_issn (Jeremy Kronuz)
        </para>
 
        <para>
-       This now supports <acronym>EAN13</>, <acronym>UPC</>,
-       <acronym>ISBN</> (books), <acronym>ISMN</> (music), and
-       <acronym>ISSN</> (serials).
+        This now supports <acronym>EAN13</>, <acronym>UPC</>,
+        <acronym>ISBN</> (books), <acronym>ISMN</> (music), and
+        <acronym>ISSN</> (serials).
        </para>
       </listitem>
 
       <listitem>
        <para>
-       New operators for array-subset comparisons (<literal>@&gt;</>,
-       <literal>&lt;@</>, <literal>&amp;&amp;</>) (Tom)
-       </para>
-      </listitem>
-
-      <listitem>
-       <para>
-       In xml, rename <function>xml_valid()</> to
-       <function>xml_is_well_formed()</> (Tom)
-       </para>
-
-       <para>
-       <function>xml_valid()</> will remain for backward compability,
-       but its behavior will change to do schema checks in future
-       releases.
+        New operators for array-subset comparisons (<literal>@&gt;</>,
+        <literal>&lt;@</>, <literal>&amp;&amp;</>) (Tom)
        </para>
       </listitem>