OSDN Git Service

More release note changes, including a lower level of subsections.
authorBruce Momjian <bruce@momjian.us>
Mon, 30 Mar 2009 22:01:15 +0000 (22:01 +0000)
committerBruce Momjian <bruce@momjian.us>
Mon, 30 Mar 2009 22:01:15 +0000 (22:01 +0000)
doc/src/sgml/release.sgml

index 231ef4f..410e6ec 100644 (file)
@@ -1,4 +1,4 @@
-<!-- $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.618 2009/03/30 20:32:49 momjian Exp $ -->
+<!-- $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.619 2009/03/30 22:01:15 momjian Exp $ -->
 <!--
 
 Typical markup:
@@ -142,7 +142,7 @@ do it for earlier branch release files.
 
     </itemizedlist>
 
-    </sect3>
+   </sect3>
 
    <sect3>
     <title>Server Settings</title>
@@ -231,10 +231,10 @@ do it for earlier branch release files.
 
     </itemizedlist>
 
-    </sect3>
+   </sect3>
 
-    <sect3>
-     <title>Queries</title>
+   <sect3>
+    <title>Queries</title>
 
     <itemizedlist>
 
@@ -293,11 +293,11 @@ do it for earlier branch release files.
 
     </itemizedlist>
 
-    </sect3>
+   </sect3>
 
 
-    <sect3>
-     <title>General Functions and Operators</title>
+   <sect3>
+    <title>Functions and Operators</title>
 
     <itemizedlist>
 
@@ -350,72 +350,72 @@ do it for earlier branch release files.
 
     </itemizedlist>
 
-   </sect3>
-
-    <sect3>
+    <sect4>
      <title>Temporal Functions and Operators</title>
 
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Have <function>to_char()</>'s localized month/day names depend
-       on <varname>LC_TIME</>, not <varname>LC_MESSAGES</> (Euler
-       Taveira de Oliveira)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Cause <function>to_date()</> and <function>to_timestamp()</>
-       to more consistently report errors on invalid input (Brendan
-       Jurd)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Provide consistent rounding for fractional seconds (Ron Mayer)
-       bjm:  combine with another item?
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Fix <function>to_timestamp()</> to not require upper/lower case
-       matching for meridian (<literal>AM</>/<literal>PM</>) and era
-       (<literal>BC</>/<literal>AD</>) format designations  (Brendan
-       Jurd)
-      </para>
-
-      <para>
-       For example, input value <literal>ad</> now matches the format
-       string <literal>AD</>.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Require the existence of periods in <function>to_timestamp()</>
-       meridian (<literal>AM</>/<literal>PM</>) and era
-       (<literal>BC</>/<literal>AD</>) format designations to match
-       (Brendan Jurd)
-      </para>
-
-      <para>
-       For example, input value <literal>AD</> now does not match
-       format string <literal>A.D.</>.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       <varname>DateStyle</> no longer controls <type>INTERVAL</>
-       output (use new variable <varname>IntervalStyle</>)
-      </para>
-     </listitem>
-
-    </itemizedlist>
+     <itemizedlist>
+      <listitem>
+       <para>
+        Have <function>to_char()</>'s localized month/day names depend
+        on <varname>LC_TIME</>, not <varname>LC_MESSAGES</> (Euler
+        Taveira de Oliveira)
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Cause <function>to_date()</> and <function>to_timestamp()</>
+        to more consistently report errors on invalid input (Brendan
+        Jurd)
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Provide consistent rounding for fractional seconds (Ron Mayer)
+        bjm:  combine with another item?
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Fix <function>to_timestamp()</> to not require upper/lower case
+        matching for meridian (<literal>AM</>/<literal>PM</>) and era
+        (<literal>BC</>/<literal>AD</>) format designations  (Brendan
+        Jurd)
+       </para>
+       <para>
+        For example, input value <literal>ad</> now matches the format
+        string <literal>AD</>.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Require the existence of periods in <function>to_timestamp()</>
+        meridian (<literal>AM</>/<literal>PM</>) and era
+        (<literal>BC</>/<literal>AD</>) format designations to match
+        (Brendan Jurd)
+       </para>
+       <para>
+        For example, input value <literal>AD</> now does not match
+        format string <literal>A.D.</>.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        <varname>DateStyle</> no longer controls <type>INTERVAL</>
+        output (use new variable <varname>IntervalStyle</>)
+       </para>
+      </listitem>
+     </itemizedlist>
+    </sect4>
 
    </sect3>
 
@@ -565,58 +565,216 @@ do it for earlier branch release files.
    </sect3>
 
    <sect3>
-    <title>Server Settings</title>
-    <itemizedlist>
+    <title>Server</title>
 
-     <listitem>
-      <para>
-       Convert many <filename>postgresql.conf</> settings to enumerated
-       values so <literal>pg_settings</> can easily display valid
-       values (Magnus)
-      </para>
-     </listitem>
+    <sect4>
+     <title>Settings</title>
+
+     <itemizedlist>
+      <listitem>
+       <para>
+        Convert many <filename>postgresql.conf</> settings to enumerated
+        values so <literal>pg_settings</> can easily display valid
+        values (Magnus)
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Add <varname>cursor_tuple_fraction</> parameter to control the
+        fraction of a cursor's rows expected to be requested by the
+        user (Robert Hell)
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Allow underscores in <filename>postgresql.conf</> custom variable
+        classes (Tom)
+       </para>
+      </listitem>
+     </itemizedlist>
+    </sect4>
+    <sect4>
+     <title>Authentication</title>
+     <itemizedlist>
+      <listitem>
+       <para>
+        Report appropriate error message for combination of <literal>MD5</>
+        authentication and <varname>db_user_namespace</> enabled (Bruce)
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Support regular expressions in <filename>pg_ident.conf</>
+        (Magnus)
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Allow <productname>Kerberos</>/<acronym>GSSAPI</> parameters
+        to be changed without restarting the postmaster (Magnus)
+       </para>
+      </listitem>
+     </itemizedlist>
+    </sect4>
+    <sect4 id="release-8-4-pg-hba-conf">
+     <title><filename>pg_hba.conf</></title>
+     <itemizedlist>
+      <listitem>
+       <para>
+        Parse <filename>pg_hba.conf</> in the postmaster so errors are
+        reported on reload (Magnus)
+       </para>
+       
+       <para>
+        Previously errors in the file wouldn't be detected until clients
+        tried to connect, which could leave the system with a broken
+        file loaded.
+       </para>
+      </listitem>
+
+      <listitem>
+       <para>
+        Remove the <literal>sameuser</> option, making it the default
+        if no usermap is specified (Magnus)
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Change all authentication options to be <literal>name=value</>
+        settings (Magnus)
+       </para>
+      </listitem>
+      
+      <listitem>
+       <para>
+        Allow usermap parameter for all external authentication methods
+        (Magnus)
+       </para>
+       
+       <para>
+        Previously this was only supported for <literal>ident</>
+        authentication.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Allow <literal>ident</> authentication over Unix-domain sockets
+        on <productname>Solaris</> (Garick Hamlin)
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Add <literal>clientcert</> option to control requesting of a
+        client certificate (Magnus)
+       </para>
+       <para>
+        Previously this was controlled by the presence of a root
+        certificate file in the server's data directory.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Add <literal>cert</> authentication method to allow user
+        authentication via <acronym>SSL</> certificates (Magnus)
+       </para>
+       <para>
+        Previously <acronym>SSL</> certificates could only verify that
+        the client had access to a certificate, not authenticate a
+        user.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Allow <literal>krb5</>, <literal>gssapi</> and <literal>sspi</>
+        realm and <literal>krb5</> host settings to be specified in
+        <filename>pg_hba.conf</> (Magnus)
+       </para>
+       <para>
+        These override the settings in <filename>postgresql.conf</>.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Add <literal>krb5</>, <literal>gssapi</>, and <literal>sspi</>
+        <varname>include_realm</> parameter (Magnus)
+       </para>
+       <para>
+        This allows identical usernames from different realms to be
+        authenticated as different database users using usermaps.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Show all parsing errors instead of aborting after the first
+        one (Selena Deckelmann)
+       </para>
+      </listitem>
+     </itemizedlist>
+    </sect4>
+
+   </sect3>
+
+   <sect3>
+    <title>Continuous Archiving</title>
+    <itemizedlist>
 
      <listitem>
       <para>
-       Add <varname>cursor_tuple_fraction</> parameter to control the
-       fraction of a cursor's rows expected to be requested by the
-       user (Robert Hell)
+       Have <function>pg_stop_backup()</> wait for modified <acronym>WAL</>
+       files to be archived (Simon)
       </para>
-     </listitem>
 
-     <listitem>
       <para>
-       Allow underscores in <filename>postgresql.conf</> custom variable
-       classes (Tom)
+       This guarantees that the backup is valid at the time
+       <function>pg_stop_backup()</> completes.
       </para>
      </listitem>
 
-    </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title>Authentication</title>
-    <itemizedlist>
-
      <listitem>
       <para>
-       Report appropriate error message for combination of <literal>MD5</>
-       authentication and <varname>db_user_namespace</> enabled (Bruce)
+       Prevent normal shutdown if a continuous archiving base backup
+       is in progress (Laurenz Albe)
       </para>
      </listitem>
 
      <listitem>
       <para>
-       Support regular expressions in <filename>pg_ident.conf</>
-       (Magnus)
+       Cancel a continuous archiving base backup if a fast shutdown
+       is requested (Laurenz Albe)
       </para>
      </listitem>
 
      <listitem>
       <para>
-       Allow <productname>Kerberos</>/<acronym>GSSAPI</> parameters
-       to be changed without restarting the postmaster (Magnus)
+       Allow <filename>recovery.conf</> boolean variables to take the
+       same range of string values as <filename>postgresql.conf</>
+       (Bruce)
       </para>
      </listitem>
 
@@ -624,240 +782,88 @@ do it for earlier branch release files.
 
    </sect3>
 
-   <sect3 id="release-8-4-pg-hba-conf">
-    <title><filename>pg_hba.conf</></title>
+   <sect3>
+    <title>Monitoring</title>
     <itemizedlist>
 
      <listitem>
       <para>
-       Parse <filename>pg_hba.conf</> in the postmaster so errors are
-       reported on reload (Magnus)
-      </para>
-      
-      <para>
-       Previously errors in the file wouldn't be detected until clients
-       tried to connect, which could leave the system with a broken
-       file loaded.
+       Add <function>pg_conf_load_time()</> to report when
+       the Postgres configuration files were last loaded (George
+       Gensure)
       </para>
      </listitem>
 
      <listitem>
       <para>
-       Remove the <literal>sameuser</> option, making it the default
-       if no usermap is specified (Magnus)
+       Add <function>pg_terminate_backend()</> to safely terminate a
+       backend (the <literal>SIGTERM</> signal works also) (Tom, Bruce)
       </para>
      </listitem>
 
      <listitem>
       <para>
-       Change all authentication options to be <literal>name=value</>
-       settings (Magnus)
-      </para>
-     </listitem>
-     
-     <listitem>
-      <para>
-       Allow usermap parameter for all external authentication methods
-       (Magnus)
+       Add ability to track user-defined functions call counts and
+       runtimes via parameter <varname>track_functions</> (Martin
+       Pihlak)
       </para>
-      
+
       <para>
-       Previously this was only supported for <literal>ident</>
-       authentication.
+       Function statistics appear in a new system table,
+       <literal>pg_stat_user_functions</>.  However, inlined
+       <acronym>SQL</> functions are not tracked.
       </para>
      </listitem>
 
      <listitem>
       <para>
-       Allow <literal>ident</> authentication over Unix-domain sockets
-       on <productname>Solaris</> (Garick Hamlin)
+       Allow specification of the maximum <literal>pg_stat_activity</>
+       query string size via <varname>track_activity_query_size</>
+       parameter (Thomas Lee)
       </para>
      </listitem>
 
      <listitem>
       <para>
-       Add <literal>clientcert</> option to control requesting of a
-       client certificate (Magnus)
-      </para>
-
-      <para>
-       Previously this was controlled by the presence of a root
-       certificate file in the server's data directory.
+       Improve syslog performance by increasing the maximum line length
+       (Tom)
       </para>
      </listitem>
 
      <listitem>
       <para>
-       Add <literal>cert</> authentication method to allow user
-       authentication via <acronym>SSL</> certificates (Magnus)
-      </para>
-
-      <para>
-       Previously <acronym>SSL</> certificates could only verify that
-       the client had access to a certificate, not authenticate a
-       user.
+       Add read-only <filename>postgresql.conf</> variables <varname>segment_size</>,
+       <varname>wal_block_size</>, and <varname>wal_segment_size</> (Bernd Helmle)
       </para>
      </listitem>
 
      <listitem>
       <para>
-       Allow <literal>krb5</>, <literal>gssapi</> and <literal>sspi</>
-       realm and <literal>krb5</> host settings to be specified in
-       <filename>pg_hba.conf</> (Magnus)
+       When reporting a deadlock, report all session queries involved
+       in the deadlock to the server log  (Itagaki Takahiro)
       </para>
+     </listitem>
 
+     <listitem>
       <para>
-       These override the settings in <filename>postgresql.conf</>.
+       New <function>pg_stat_get_activity(pid)</> function to return
+       information about a specific process id (Magnus)
       </para>
      </listitem>
 
      <listitem>
       <para>
-       Add <literal>krb5</>, <literal>gssapi</>, and <literal>sspi</>
-       <varname>include_realm</> parameter (Magnus)
+       Move the server statistics file into the subdirectory
+       <filename>pg_stat_tmp</> and allow its location to be specified
+       via <varname>stats_temp_directory</> (Magnus)
       </para>
 
       <para>
-       This allows identical usernames from different realms to be
-       authenticated as different database users using usermaps.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Show all parsing errors instead of aborting after the first
-       one (Selena Deckelmann)
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title>Continuous Archiving</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Have <function>pg_stop_backup()</> wait for modified <acronym>WAL</>
-       files to be archived (Simon)
-      </para>
-
-      <para>
-       This guarantees that the backup is valid at the time
-       <function>pg_stop_backup()</> completes.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Prevent normal shutdown if a continuous archiving base backup
-       is in progress (Laurenz Albe)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Cancel a continuous archiving base backup if a fast shutdown
-       is requested (Laurenz Albe)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow <filename>recovery.conf</> boolean variables to take the
-       same range of string values as <filename>postgresql.conf</>
-       (Bruce)
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title>Monitoring</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Add <function>pg_conf_load_time()</> to report when
-       the Postgres configuration files were last loaded (George
-       Gensure)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <function>pg_terminate_backend()</> to safely terminate a
-       backend (the <literal>SIGTERM</> signal works also) (Tom, Bruce)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add ability to track user-defined functions call counts and
-       runtimes via parameter <varname>track_functions</> (Martin
-       Pihlak)
-      </para>
-
-      <para>
-       Function statistics appear in a new system table,
-       <literal>pg_stat_user_functions</>.  However, inlined
-       <acronym>SQL</> functions are not tracked.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow specification of the maximum <literal>pg_stat_activity</>
-       query string size via <varname>track_activity_query_size</>
-       parameter (Thomas Lee)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Improve syslog performance by increasing the maximum line length
-       (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add read-only <filename>postgresql.conf</> variables <varname>segment_size</>,
-       <varname>wal_block_size</>, and <varname>wal_segment_size</> (Bernd Helmle)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       When reporting a deadlock, report all session queries involved
-       in the deadlock to the server log  (Itagaki Takahiro)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       New <function>pg_stat_get_activity(pid)</> function to return
-       information about a specific process id (Magnus)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Move the server statistics file into the subdirectory
-       <filename>pg_stat_tmp</> and allow its location to be specified
-       via <varname>stats_temp_directory</> (Magnus)
-      </para>
-
-      <para>
-       This allows the statistics file to be placed in a
-       <acronym>RAM</>-resident directory to reduce I/O requirements.
-       On startup/shutdown, the file is copied to the top-level
-       <literal>$PGDATA</> directory so it is preserved between
-       restarts.
+       This allows the statistics file to be placed in a
+       <acronym>RAM</>-resident directory to reduce I/O requirements.
+       On startup/shutdown, the file is copied to the top-level
+       <literal>$PGDATA</> directory so it is preserved between
+       restarts.
       </para>
      </listitem>
 
@@ -974,1507 +980,1521 @@ do it for earlier branch release files.
 
     </itemizedlist>
 
+    <sect4>
+     <title><command>TRUNCATE</></title>
+     <itemizedlist>
+      <listitem>
+       <para>
+        Support statement-level <literal>ON TRUNCATE</> triggers (Simon)
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Add <command>TRUNCATE TABLE</> ...
+        <literal>RESTART</>/<literal>CONTINUE IDENTITY</> clauses
+        (Zoltan Boszormenyi)
+       </para>
+       <para>
+        The start value of a sequence can be changed by <command>ALTER
+        SEQUENCE START WITH</>.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Allow <command>TRUNCATE tab1, tab1</> to succeed (Bruce)
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Add a separate <command>TRUNCATE</> permission (Robert Haas)
+       </para>
+      </listitem>
+     </itemizedlist>
+    </sect4>
+    <sect4>
+     <title><command>EXPLAIN</></title>
+     <itemizedlist>
+      <listitem>
+       <para>
+        Have <command>EXPLAIN VERBOSE</> show the output columns of a
+        query (Tom)
+       </para>
+       <para>
+        Previously <command>EXPLAIN VERBOSE</> output an internal
+        representation of the query plan.  (That behavior is now
+        available via <varname>debug_print_plan</>.)
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Have <command>EXPLAIN</> honor <varname>debug_print_plan</> (Tom)
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Allow <command>EXPLAIN</> on <command>CREATE TABLE AS</> (Peter)
+       </para>
+      </listitem>
+     </itemizedlist>
+    </sect4>
+    <sect4>
+     <title><literal>LIMIT</>/<literal>OFFSET</></title>
+     <itemizedlist>
+      <listitem>
+       <para>
+        Allow <literal>LIMIT</> and <literal>OFFSET</> to use subselects
+        as arguments (Tom)
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Document that <literal>LIMIT NULL</> and <literal>OFFSET NULL</>
+        have no effect (Tom)
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Add <acronym>SQL</>-standards syntax for
+        <literal>LIMIT</>/<literal>OFFSET</> capabilities (Peter)
+       </para>
+       <para>
+        <literal>OFFSET num {ROW|ROWS} FETCH {FIRST|NEXT} [num] {ROW|ROWS}
+        ONLY</>.
+       </para>
+      </listitem>
+     </itemizedlist>
+    </sect4>
    </sect3>
-
    <sect3>
-    <title><command>TRUNCATE</></title>
+    <title>Object Manipulation</title>
     <itemizedlist>
 
      <listitem>
       <para>
-       Support statement-level <literal>ON TRUNCATE</> triggers (Simon)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <command>TRUNCATE TABLE</> ...
-       <literal>RESTART</>/<literal>CONTINUE IDENTITY</> clauses
-       (Zoltan Boszormenyi)
-      </para>
-
-      <para>
-       The start value of a sequence can be changed by <command>ALTER
-       SEQUENCE START WITH</>.
+       Add support for column-level privileges (Stephen Frost, KaiGai
+       Kohei)
       </para>
      </listitem>
 
      <listitem>
       <para>
-       Allow <command>TRUNCATE tab1, tab1</> to succeed (Bruce)
+       Improve reporting of dependencies during <command>DROP</>
+       commands (Alex Hunsaker)
       </para>
      </listitem>
 
      <listitem>
       <para>
-       Add a separate <command>TRUNCATE</> permission (Robert Haas)
+       Refactor multi-object <command>DROP</> operations so conflicting
+       dependencies do not generate an error (Alex Hunsaker)
       </para>
      </listitem>
 
-    </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title><command>EXPLAIN</></title>
-    <itemizedlist>
-
      <listitem>
       <para>
-       Have <command>EXPLAIN VERBOSE</> show the output columns of a
-       query (Tom)
-      </para>
-
-      <para>
-       Previously <command>EXPLAIN VERBOSE</> output an internal
-       representation of the query plan.  (That behavior is now
-       available via <varname>debug_print_plan</>.)
+       Add <literal>WITH [NO] DATA</> clause to <command>CREATE TABLE
+       AS</>, per the <acronym>SQL</> standard (Tom, Peter)
       </para>
      </listitem>
 
      <listitem>
       <para>
-       Have <command>EXPLAIN</> honor <varname>debug_print_plan</> (Tom)
+       Add support for user-defined I/O conversion casts (Heikki)
       </para>
      </listitem>
 
      <listitem>
       <para>
-       Allow <command>EXPLAIN</> on <command>CREATE TABLE AS</> (Peter)
+       Allow <command>CREATE AGGREGATE</> to use an <type>internal</>
+       transition datatype (for super-users only)  (Tom)
       </para>
      </listitem>
 
-    </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title><literal>LIMIT</>/<literal>OFFSET</></title>
-    <itemizedlist>
-
      <listitem>
       <para>
-       Allow <literal>LIMIT</> and <literal>OFFSET</> to use subselects
-       as arguments (Tom)
+       Add <literal>LIKE</> clause to <command>CREATE TYPE</> (Tom)
       </para>
-     </listitem>
 
-     <listitem>
       <para>
-       Document that <literal>LIMIT NULL</> and <literal>OFFSET NULL</>
-       have no effect (Tom)
+       This simplifies creation of data types like existing types.
       </para>
      </listitem>
 
      <listitem>
       <para>
-       Add <acronym>SQL</>-standards syntax for
-       <literal>LIMIT</>/<literal>OFFSET</> capabilities (Peter)
-      </para>
-
-      <para>
-       <literal>OFFSET num {ROW|ROWS} FETCH {FIRST|NEXT} [num] {ROW|ROWS}
-       ONLY</>.
+       Allow <command>CREATE OR REPLACE VIEW</> to add columns to the
+       <emphasis>end</> of a view (Robert Haas)
       </para>
      </listitem>
 
     </itemizedlist>
 
-   </sect3>
-
-   <sect3>
-    <title>Object Manipulation</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Add support for column-level privileges (Stephen Frost, KaiGai
-       Kohei)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Improve reporting of dependencies during <command>DROP</>
-       commands (Alex Hunsaker)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Refactor multi-object <command>DROP</> operations so conflicting
-       dependencies do not generate an error (Alex Hunsaker)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <literal>WITH [NO] DATA</> clause to <command>CREATE TABLE
-       AS</>, per the <acronym>SQL</> standard (Tom, Peter)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add support for user-defined I/O conversion casts (Heikki)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow <command>CREATE AGGREGATE</> to use an <type>internal</>
-       transition datatype (for super-users only)  (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <literal>LIKE</> clause to <command>CREATE TYPE</> (Tom)
-      </para>
-
-      <para>
-       This simplifies creation of data types like existing types.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow <command>CREATE OR REPLACE VIEW</> to add columns to the
-       <emphasis>end</> of a view (Robert Haas)
-      </para>
-     </listitem>
+    <sect4>
+     <title><command>ALTER</></title>
+     <itemizedlist>
+      <listitem>
+       <para>
+        Add <command>ALTER TYPE RENAME</> (Petr Jelinek)
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Add <command>ALTER SEQUENCE ... RESTART</> (no parameter) to
+        reset a sequence to its initial value (Zoltan Boszormenyi)
+        bjm: compatibility problem?
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Modify the <command>ALTER TABLE</> syntax to allow all reasonable
+        combinations for tables, indexes, sequences, and views (Tom)
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        New syntax supported (these formerly required <command>ALTER
+        TABLE</>)
+       </para>
+       <para>
+        <itemizedlist>
+         <listitem>
+          <para>
+           <command>ALTER SEQUENCE OWNER TO</>
+          </para>
+         </listitem>
+         <listitem>
+          <para>
+           <command>ALTER VIEW ALTER COLUMN SET/DROP DEFAULT</>
+          </para>
+         </listitem>
+         <listitem>
+          <para>
+           <command>ALTER VIEW OWNER TO</>
+          </para>
+         </listitem>
+         <listitem>
+          <para>
+           <command>ALTER VIEW SET SCHEMA</>
+          </para>
+         </listitem>
+        </itemizedlist>
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Add support for the syntax <command>ALTER TABLE ... ALTER COLUMN
+        ... SET DATA TYPE</> (Peter)
+       </para>
+       <para>
+        This is <acronym>SQL</>-standard syntax for functionality that
+        was already supported.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Have <command>ALTER TABLE SET WITHOUT OIDS</> rewrite the table
+        to remove <type>OID</> values (Tom)
+       </para>
+       <para>
+        Also, add <command>ALTER TABLE SET WITH OIDS</> to rewrite the
+        table to add <type>OID</>s.
+       </para>
+      </listitem>
+     </itemizedlist>
+    </sect4>
+    <sect4>
+     <title>Database Manipulation</title>
+     <itemizedlist>
+      <listitem>
+       <para>
+        Improve reporting of
+        <command>CREATE</>/<command>DROP</>/<command>RENAME DATABASE</>
+        failure when uncommitted prepared transactions are the cause
+        (Tom)
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Make <varname>LC_COLLATE</> and <varname>LC_CTYPE</> database-level
+        settings (Radek Strnad, Heikki)
+       </para>
+       <para>
+        This makes collation similar to encoding, which was always
+        configurable per database.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Improve checks that the database encoding, collation
+        (<varname>LC_COLLATE</>), and character classes
+        (<varname>LC_CTYPE</>) match (Heikki)
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Add <command>ALTER DATABASE SET TABLESPACE</> to move a database
+        to a new tablespace (Guillaume Lelarge, Bernd Helmle)
+       </para>
+      </listitem>
+     </itemizedlist>
+    </sect4>
+   </sect3>
 
-    </itemizedlist>
+   <sect3>
+    <title>Utility Operations</title>
 
+    <sect4>
+     <title>Indexes</title>
+     <itemizedlist>
+      <listitem>
+       <para>
+        Dramatically improve the speed of building and accessing hash
+        indexes (Tom Raney, Shreya Bhargava, Kenneth Marshall)
+       </para>
+       <para>
+        This allows hash indexes to be sometimes faster than btree
+        indexes.  However, hash indexes are still not crash-safe.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Have hash indexes store only the hashed value, not the full
+        indexed columns (Xiao Meng)
+       </para>
+       <para>
+        This greatly reduces the size of hash indexes for long indexed
+        values, and improves performance.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Special xxx_pattern_ops <literal>LIKE</> indexes can now be
+        used for simple equality comparisons (Tom)
+       </para>
+      </listitem>
+     </itemizedlist>
+    </sect4>
+    <sect4>
+     <title>Full Text Indexes</title>
+     <itemizedlist>
+      <listitem>
+       <para>
+        Remove the requirement to use <literal>@@@</> when doing
+        <acronym>GIN</> weighted lookups on full text indexes (Tom)
+       </para>
+       <para>
+        The normal <literal>@@</> text search operator can be used
+        instead.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Add an optimizer selectivity function for <literal>@@</> text
+        search operations (Jan Urbanski)
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Add partial match support for <acronym>GIN</> indexes (Teodor
+        Sigaev, Oleg Bartunov)
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Allow prefix matching in full text searches (Teodor Sigaev,
+        Oleg Bartunov)
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Support multi-column <acronym>GIN</> indexes (Teodor Sigaev)
+       </para>
+      </listitem>
+     </itemizedlist>
+    </sect4>
+    <sect4>
+     <title><command>VACUUM</></title>
+     <itemizedlist>
+      <listitem>
+       <para>
+        Allow relation forks to track free space (Heikki)
+       </para>
+       <para>
+        This allows the recording of all free space discovered by vacuum
+        in <filename>*.fsm</> files, rather than having to limit
+        recording to a fixed-sized shared memory area;
+        <varname>max_fsm_pages</> and <varname>max_fsm_relations</>
+        settings have been removed.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        New visibility map file to track pages that do not require
+        vacuum (Heikki)
+       </para>
+       <para>
+        This allows <command>VACUUM</> to avoid sequentially scanning
+        a table when only a portion of the table needs vacuuming.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Track explicit transaction snapshots (Alvaro)
+       </para>
+       <para>
+        This improves space reuse by vacuum in the presence of long-running
+        transactions.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Add <varname>vacuum_freeze_table_age</> parameter to control
+        when <command>VACUUM</> should ignore the visibility map and
+        do a full table scan to set frozen xids (Heikki)
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Add ability to specify autovacuum and <acronym>TOAST</> parameters
+        in <command>CREATE TABLE</> (Alvaro, Euler Taveira de Oliveira)
+       </para>
+       <para>
+        Autovacuum options used to be stored in a system table.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Add <literal>--freeze</> option to <application>vacuumdb</>
+        (Bruce)
+       </para>
+      </listitem>
+     </itemizedlist>
+    </sect4>
+    <sect4>
+     <title>Other Utility Operations</title>
+     <itemizedlist>
+      <listitem>
+       <para>
+        Add verbose option to the <command>CLUSTER</> command and
+        <application>clusterdb</> (Jim Cox)
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Decrease memory requirements for recording pending trigger
+        events (Tom)
+       </para>
+      </listitem>
+     </itemizedlist>
+    </sect4>
    </sect3>
-
    <sect3>
-    <title><command>ALTER</></title>
+    <title>Data Types</title>
     <itemizedlist>
 
      <listitem>
       <para>
-       Add <command>ALTER TYPE RENAME</> (Petr Jelinek)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <command>ALTER SEQUENCE ... RESTART</> (no parameter) to
-       reset a sequence to its initial value (Zoltan Boszormenyi)
-       bjm: compatibility problem?
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Modify the <command>ALTER TABLE</> syntax to allow all reasonable
-       combinations for tables, indexes, sequences, and views (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       New syntax supported (these formerly required <command>ALTER
-       TABLE</>)
-      </para>
-
-      <para>
-       <itemizedlist>
-        <listitem>
-         <para>
-          <command>ALTER SEQUENCE OWNER TO</>
-         </para>
-        </listitem>
-        <listitem>
-         <para>
-          <command>ALTER VIEW ALTER COLUMN SET/DROP DEFAULT</>
-         </para>
-        </listitem>
-        <listitem>
-         <para>
-          <command>ALTER VIEW OWNER TO</>
-         </para>
-        </listitem>
-        <listitem>
-         <para>
-          <command>ALTER VIEW SET SCHEMA</>
-         </para>
-        </listitem>
-       </itemizedlist>
-      </para>
-
-     </listitem>
-
-     <listitem>
-      <para>
-       Add support for the syntax <command>ALTER TABLE ... ALTER COLUMN
-       ... SET DATA TYPE</> (Peter)
-      </para>
-
-      <para>
-       This is <acronym>SQL</>-standard syntax for functionality that
-       was already supported.
+       Add a <literal>CaseSensitive</> option for text search synonym
+       dictionaries (Simon)
       </para>
      </listitem>
 
      <listitem>
       <para>
-       Have <command>ALTER TABLE SET WITHOUT OIDS</> rewrite the table
-       to remove <type>OID</> values (Tom)
-      </para>
-
-      <para>
-       Also, add <command>ALTER TABLE SET WITH OIDS</> to rewrite the
-       table to add <type>OID</>s.
+       Improve the precision of <type>NUMERIC</> division (Tom)
       </para>
      </listitem>
 
-    </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title>Database Manipulation</title>
-    <itemizedlist>
-
      <listitem>
       <para>
-       Improve reporting of
-       <command>CREATE</>/<command>DROP</>/<command>RENAME DATABASE</>
-       failure when uncommitted prepared transactions are the cause
+       Add <type>int2</> with <type>int8</> basic arithmetic operators
        (Tom)
       </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Make <varname>LC_COLLATE</> and <varname>LC_CTYPE</> database-level
-       settings (Radek Strnad, Heikki)
-      </para>
 
       <para>
-       This makes collation similar to encoding, which was always
-       configurable per database.
+       This simplifies casting requirements.
       </para>
      </listitem>
 
      <listitem>
       <para>
-       Improve checks that the database encoding, collation
-       (<varname>LC_COLLATE</>), and character classes
-       (<varname>LC_CTYPE</>) match (Heikki)
+       Allow <type>UUID</> input to accept optional hyphens after
+       every four digits (Robert Haas)
       </para>
      </listitem>
 
      <listitem>
       <para>
-       Add <command>ALTER DATABASE SET TABLESPACE</> to move a database
-       to a new tablespace (Guillaume Lelarge, Bernd Helmle)
+       Accept <literal>on</>/<literal>off</> as boolean data type
+       values (Itagaki Takahiro)
       </para>
      </listitem>
 
     </itemizedlist>
 
-   </sect3>
-
-   <sect3>
-    <title>General Indexes</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Dramatically improve the speed of building and accessing hash
-       indexes (Tom Raney, Shreya Bhargava, Kenneth Marshall)
-      </para>
-
-      <para>
-       This allows hash indexes to be sometimes faster than btree
-       indexes.  However, hash indexes are still not crash-safe.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Have hash indexes store only the hashed value, not the full
-       indexed columns (Xiao Meng)
-      </para>
-
-      <para>
-       This greatly reduces the size of hash indexes for long indexed
-       values, and improves performance.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Special xxx_pattern_ops <literal>LIKE</> indexes can now be
-       used for simple equality comparisons (Tom)
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title>Full Text Indexes</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Remove the requirement to use <literal>@@@</> when doing
-       <acronym>GIN</> weighted lookups on full text indexes (Tom)
-      </para>
-
-      <para>
-       The normal <literal>@@</> text search operator can be used
-       instead.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add an optimizer selectivity function for <literal>@@</> text
-       search operations (Jan Urbanski)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add partial match support for <acronym>GIN</> indexes (Teodor
-       Sigaev, Oleg Bartunov)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow prefix matching in full text searches (Teodor Sigaev,
-       Oleg Bartunov)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Support multi-column <acronym>GIN</> indexes (Teodor Sigaev)
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title><command>VACUUM</></title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Allow relation forks to track free space (Heikki)
-      </para>
-
-      <para>
-       This allows the recording of all free space discovered by vacuum
-       in <filename>*.fsm</> files, rather than having to limit
-       recording to a fixed-sized shared memory area;
-       <varname>max_fsm_pages</> and <varname>max_fsm_relations</>
-       settings have been removed.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       New visibility map file to track pages that do not require
-       vacuum (Heikki)
-      </para>
-
-      <para>
-       This allows <command>VACUUM</> to avoid sequentially scanning
-       a table when only a portion of the table needs vacuuming.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Track explicit transaction snapshots (Alvaro)
-      </para>
-
-      <para>
-       This improves space reuse by vacuum in the presence of long-running
-       transactions.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <varname>vacuum_freeze_table_age</> parameter to control
-       when <command>VACUUM</> should ignore the visibility map and
-       do a full table scan to set frozen xids (Heikki)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add ability to specify autovacuum and <acronym>TOAST</> parameters
-       in <command>CREATE TABLE</> (Alvaro, Euler Taveira de Oliveira)
-      </para>
-
-      <para>
-       Autovacuum options used to be stored in a system table.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <literal>--freeze</> option to <application>vacuumdb</>
-       (Bruce)
-      </para>
-     </listitem>
-
-    </itemizedlist>
+    <sect4>
+     <title>Temporal Data Types</title>
+     <itemizedlist>
+      <listitem>
+       <para>
+        Reject year <literal>0 BC</> and years <literal>000</> and
+        <literal>0000</> (Tom)
+       </para>
+       <para>
+        Previously these were interpreted as <literal>1 BC</>;  years
+        <literal>0</> and <literal>00</> are assumed to be the year
+        2000.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Include <acronym>SGT</> (Singapore time) as a valid time zone
+        abbreviation (Tom)
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Support the <acronym>IS0 8601</> <type>interval</> syntax (Tom,
+        Kevin Grittner)
+       </para>
+       <para>
+        For example, <literal>INTERVAL 'P1Y2M3DT4H5M6.7S'</> is now
+        supported.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Allow <type>INTERVAL</> precision to be specified after the
+        last field, for <acronym>SQL</>-standards compliance (Tom)
+       </para>
+       <para>
+        Formerly the precision had to be specified after the keyword
+        <type>INTERVAL</> (this syntax is still supported).  Data type
+        definitions will now be output using the new format.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Support <literal>infinite</> dates (Tom)
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Add <varname>IntervalStyle</> parameter
+        which controls how <type>INTERVAL</> values are output (Ron Mayer)
+       </para>
+       <para>
+        Valid value are:  <literal>postgres</>, <literal>postgres_verbose</>,
+        <literal>sql_standard</>, <literal>iso_8601</>.  This also
+        controls the handling of negative <type>INTERVAL</> input when only
+        some fields have positive/negative designations.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Make <type>INTERVAL</> seconds rounding more consistent across
+        output formats (Ron Mayer)
+       </para>
+      </listitem>
+     </itemizedlist>
+    </sect4>
+    <sect4>
+     <title>Arrays</title>
+     <itemizedlist>
+      <listitem>
+       <para>
+        Have cast on <type>ARRAY</> apply to all elements, not just
+        the array result (Brendan Jurd)
+       </para>
+       <para>
+        This allows <literal>NULL</> <type>ARRAY</> entries as long as
+        they are properly cast.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Make <acronym>SQL</>-syntax <type>ARRAY</> dimensions optional
+        to match the <acronym>SQL</> standard (Peter)
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Add <function>array_ndims()</> to return the number
+        of dimensions of an array (Robert Haas)
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Add <function>array_length()</> to return the length
+        of an array for the specified dimensions (Jim Nasby, Robert
+        Haas, Peter Eisentraut)
+       </para>
+       <para>
+        Also add identically-functioning <acronym>SQL</>-standard
+        function <function>cardinality()</>.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Add new aggregate function <function>array_agg()</>, which
+        returns all aggregated values as a single array (Robert Haas,
+        Jeff Davis, Peter)
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Add <function>unnest()</>, which converts an array to
+        individual row values (Tom)
+       </para>
+       <para>
+        This is the opposite of <function>array_agg()</>.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Add <function>array_fill()</> to create arrays initialized with
+        a value (Pavel Stehule)
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Add <function>generate_subscripts()</> to generate array
+        subscripts (Pavel Stehule)
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Generate proper error if a <type>SERIAL</> array is specified
+        (Tom)
+       </para>
+      </listitem>
+     </itemizedlist>
+    </sect4>
 
+    <sect4>
+     <title>Wide-Value Storage (<acronym>TOAST</>)</title>
+     <itemizedlist>
+      <listitem>
+       <para>
+        Consider <acronym>TOAST</> compression on values as short as
+        32 bytes (previously 256 bytes) (Tom)
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Require 25% of space savings before using <acronym>TOAST</>
+        compression (previously 20%) (Tom)
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Be more aggressive in storing <literal>EXTERNAL</> and
+        <literal>EXTENDED</> column values in <acronym>TOAST</>(Tom)
+       </para>
+      </listitem>
+     </itemizedlist>
+    </sect4>
    </sect3>
-
    <sect3>
-    <title>Other Utility Operations</title>
+    <title>Functions</title>
     <itemizedlist>
 
      <listitem>
       <para>
-       Add verbose option to the <command>CLUSTER</> command and
-       <application>clusterdb</> (Jim Cox)
+       Document that <function>setseed()</> allows values from
+       <literal>-1</> to <literal>1</> (not just <literal>0</> to
+       <literal>1</>), and enforce the valid range (Kris Jurka)
       </para>
      </listitem>
 
      <listitem>
       <para>
-       Decrease memory requirements for recording pending trigger
-       events (Tom)
+       Add server side function <function>lo_import(filename, oid)</>
+       (Tatsuo)
       </para>
      </listitem>
 
-    </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title>General Data Types</title>
-    <itemizedlist>
-
      <listitem>
       <para>
-       Add a <literal>CaseSensitive</> option for text search synonym
-       dictionaries (Simon)
+       Add <function>quote_nullable()</>, which behaves like
+       <function>quote_literal()</> but returns <literal>NULL</> for
+       a null argument (Brendan Jurd)
       </para>
      </listitem>
 
      <listitem>
       <para>
-       Improve the precision of <type>NUMERIC</> division (Tom)
+       Improve full text search <function>headline()</> generation to
+       allow several fragments (Sushant Sinha)
       </para>
      </listitem>
 
      <listitem>
       <para>
-       Add <type>int2</> with <type>int8</> basic arithmetic operators
-       (Tom)
-      </para>
-
-      <para>
-       This simplifies casting requirements.
+       Add <function>suppress_redundant_updates_trigger()</> trigger
+       function to avoid non-data-changing updates (Andrew)
       </para>
      </listitem>
 
      <listitem>
       <para>
-       Allow <type>UUID</> input to accept optional hyphens after
-       every four digits (Robert Haas)
+       Add <function>div(NUMERIC, NUMERIC)</> for <type>NUMERIC</>
+       division, without rounding (Tom)
       </para>
      </listitem>
 
      <listitem>
       <para>
-       Accept <literal>on</>/<literal>off</> as boolean data type
-       values (Itagaki Takahiro)
+       Add <type>TIMESTAMP</> and <type>TIMESTAMPTZ</> versions of
+       <function>generate_series()</> (Hitoshi Harada)
       </para>
      </listitem>
 
     </itemizedlist>
 
-   </sect3>
-
-   <sect3>
-    <title>Temporal Data Types</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Reject year <literal>0 BC</> and years <literal>000</> and
-       <literal>0000</> (Tom)
-      </para>
-
-      <para>
-       Previously these were interpreted as <literal>1 BC</>;  years
-       <literal>0</> and <literal>00</> are assumed to be the year
-       2000.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Include <acronym>SGT</> (Singapore time) as a valid time zone
-       abbreviation (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Support the <acronym>IS0 8601</> <type>interval</> syntax (Tom,
-       Kevin Grittner)
-      </para>
-
-      <para>
-       For example, <literal>INTERVAL 'P1Y2M3DT4H5M6.7S'</> is now
-       supported.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow <type>INTERVAL</> precision to be specified after the
-       last field, for <acronym>SQL</>-standards compliance (Tom)
-      </para>
-
-      <para>
-       Formerly the precision had to be specified after the keyword
-       <type>INTERVAL</> (this syntax is still supported).  Data type
-       definitions will now be output using the new format.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Support <literal>infinite</> dates (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <varname>IntervalStyle</> parameter
-       which controls how <type>INTERVAL</> values are output (Ron Mayer)
-      </para>
-
-      <para>
-       Valid value are:  <literal>postgres</>, <literal>postgres_verbose</>,
-       <literal>sql_standard</>, <literal>iso_8601</>.  This also
-       controls the handling of negative <type>INTERVAL</> input when only
-       some fields have positive/negative designations.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Make <type>INTERVAL</> seconds rounding more consistent across
-       output formats (Ron Mayer)
-      </para>
-     </listitem>
-
-
-    </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title>Arrays</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Have cast on <type>ARRAY</> apply to all elements, not just
-       the array result (Brendan Jurd)
-      </para>
-
-      <para>
-       This allows <literal>NULL</> <type>ARRAY</> entries as long as
-       they are properly cast.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Make <acronym>SQL</>-syntax <type>ARRAY</> dimensions optional
-       to match the <acronym>SQL</> standard (Peter)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <function>array_ndims()</> to return the number
-       of dimensions of an array (Robert Haas)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <function>array_length()</> to return the length
-       of an array for the specified dimensions (Jim Nasby, Robert
-       Haas, Peter Eisentraut)
-      </para>
-
-      <para>
-       Also add identically-functioning <acronym>SQL</>-standard
-       function <function>cardinality()</>.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add new aggregate function <function>array_agg()</>, which
-       returns all aggregated values as a single array (Robert Haas,
-       Jeff Davis, Peter)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <function>unnest()</>, which converts an array to
-       individual row values (Tom)
-      </para>
-
-      <para>
-       This is the opposite of <function>array_agg()</>.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <function>array_fill()</> to create arrays initialized with
-       a value (Pavel Stehule)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <function>generate_subscripts()</> to generate array
-       subscripts (Pavel Stehule)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Generate proper error if a <type>SERIAL</> array is specified
-       (Tom)
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title>Wide-Value Storage (<acronym>TOAST</>)</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Consider <acronym>TOAST</> compression on values as short as
-       32 bytes (previously 256 bytes) (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Require 25% of space savings before using <acronym>TOAST</>
-       compression (previously 20%) (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Be more aggressive in storing <literal>EXTERNAL</> and
-       <literal>EXTENDED</> column values in <acronym>TOAST</>(Tom)
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title>General Functions</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Document that <function>setseed()</> allows values from
-       <literal>-1</> to <literal>1</> (not just <literal>0</> to
-       <literal>1</>), and enforce the valid range (Kris Jurka)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add server side function <function>lo_import(filename, oid)</>
-       (Tatsuo)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <function>quote_nullable()</>, which behaves like
-       <function>quote_literal()</> but returns <literal>NULL</> for
-       a null argument (Brendan Jurd)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Improve full text search <function>headline()</> generation to
-       allow several fragments (Sushant Sinha)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <function>suppress_redundant_updates_trigger()</> trigger
-       function to avoid non-data-changing updates (Andrew)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <function>div(NUMERIC, NUMERIC)</> for <type>NUMERIC</>
-       division, without rounding (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <type>TIMESTAMP</> and <type>TIMESTAMPTZ</> versions of
-       <function>generate_series()</> (Hitoshi Harada)
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title>Object Information Functions</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Implement <function>current_query()</> for use by functions
-       that need to know the currently running query (Tomas Doran)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <function>pg_get_keywords()</> to return predefined
-       parser keywords (Dave Page)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <function>pg_get_functiondef()</> to see a functions
-       definition (Abhijit Menon-Sen)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Modify <function>pg_relation_size()</> to handle free space
-       map (<filename>*.fsm</>) files (Heikki)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Modify <function>pg_relation_size()</> to use <literal>regclass</>
-       (Heikki)
-      </para>
-
-      <para>
-       <function>pg_relation_size(data_type_name)</> no longer works.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <literal>boot_val</> and <literal>reset_val</> columns to
-       <literal>pg_settings</> output (Greg Smith)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add support for <varname>CURRENT_CATALOG</>,
-       <varname>CURRENT_SCHEMA</>, <varname>SET CATALOG</>, <varname>SET
-       SCHEMA</> (Peter)
-      </para>
-
-      <para>
-       These are <acronym>SQL</>-standard capabilities.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <function>pg_typeof()</> which returns the data type
-       of any value (Brendan Jurd)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Have <function>version()</> return information about whether
-       the server is a 32 or 64-bit binary (Bruce)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Fix the behavior of information schema columns
-       <literal>is_insertable_into</> and <literal>is_updatable</> to
-       be consistent (Peter)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Convert remaining builtin set-returning functions to use
-       <literal>OUT</> parameters (Jaime Casanova)
-      </para>
-
-      <para>
-       This makes it possible to call these functions without specifying
-       a column list:  <function>pg_show_all_settings()</>,
-       <function>pg_lock_status()</>, <function>pg_prepared_xact()</>,
-       <function>pg_prepared_statement()</>, <function>pg_cursor()</>
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Have <function>pg_*_is_visible()</> and
-       <function>has_*_privilege()</> functions return <literal>NULL</>
-       for invalid oids, rather than generate an error (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <function>has_column_privilege()</> and
-       <function>has_any_column_privilege()</> functions (Stephen
-       Frost, Tom)
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title>Function Creation</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Support variadic functions (functions with a variable number
-       of arguments) (Pavel Stehule)
-      </para>
-
-      <para>
-       Only trailing arguments can be optional, and they all must be
-       of the same data type.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow <literal>DEFAULT</> values for function arguments (Pavel
-       Stehule)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <command>CREATE FUNCTION ... RETURNS TABLE</> clause (Pavel
-       Stehule)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow <acronym>SQL</>-language functions to return the output
-       of an <command>INSERT</>/<command>UPDATE</>/<command>DELETE</>
-       <literal>RETURNING</> clause (Tom)
-      </para>
-
-      <para>
-       Formerly only <command>SELECT</> was supported.
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title>PL/PgSQL Server-Side Language</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Support <literal>EXECUTE USING</> (Pavel Stehule)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow looping over an open cursor using a <literal>FOR</>
-       loop (Pavel Stehule)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Support <literal>RETURN QUERY EXECUTE</> (Pavel
-       Stehule)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Improve the <literal>RAISE</> command: (Pavel Stehule)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       <itemizedlist>
-        <listitem>
-         <para>
-          Support <literal>DETAIL</> and <literal>HINT</> fields
-         </para>
-        </listitem>
-        <listitem>
-         <para>
-          Support <literal>SQLSTATE</> error codes
-         </para>
-        </listitem>
-        <listitem>
-         <para>
-          Support an exception name parameter
-         </para>
-        </listitem>
-        <listitem>
-         <para>
-          Allow <literal>RAISE</> without parameters in an exception
-          block to rethrow the current error
-         </para>
-        </listitem>
-       </itemizedlist>
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow specification of <varname>SQLSTATE</> numeric codes
-       in <literal>EXCEPTION</> lists (Pavel Stehule)
-      </para>
-
-      <para>
-       This is useful for handling custom <varname>SQLSTATE</> codes.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Support the <literal>CASE</> statement (Pavel Stehule)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <literal>FOUND</> and <command>GET DIAGNOSTICS</> support
-       for the <literal>RETURN QUERY</> statement (Pavel Stehule)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add message translation support (Alvaro)
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title>General <link linkend="APP-PSQL"><application>psql</></link></title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Remove startup banner;  now just suggest <literal>help</>
-       (Joshua Drake)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Have <literal>help</> show common backslash commands (Greg
-       Sabino Mullane)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <literal>\pset format wrapped</> mode to wrap output to the
-       screen width, or file/pipe output too if <literal>\pset columns</>
-       is set (Bryce Nesbitt)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Use the pager for wide output (Bruce)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Require a space between a backslash command and the first
-       argument (Bernd Helmle)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Display access control rights on multiple lines (Brendan
-       Jurd, Andreas Scherbaum)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Improve tab completion support for schema qualified and
-       quoted identifiers (Greg Sabino Mullane)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow the normal range of boolean values in <command>\pset</>,
-       rather than just <literal>on</> and <literal>off</> (Bruce)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add optional <literal>on</>/<literal>off</> arguments for
-       <command>\timing</> (David Fetter)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Have <command>\l</> show access privileges (Andrew Gilligan)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Have <command>\l+</> show database sizes, if permissions
-       allow (Andrew Gilligan)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add the <command>\ef</> command to edit function definitions
-       (Abhijit Menon-Sen)
-      </para>
-
-      <para>
-       <command>\ef</> without a function name creates an empty
-       function template for editing.
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title><link linkend="APP-PSQL"><application>psql</></link> \d*</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Have <command>\d</> show cases where this table is referenced
-       as a foreign-key constraint (Kenneth D'Souza)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Have <command>\d</> show the value of sequence columns
-       (Euler Taveira de Oliveira)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add column storage type and other relation options to the
-       <command>\d+</> display (Gregory Stark, Euler Taveira de
-       Oliveira)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Show relation size in <command>\d+</> output (Dickson S.
-       Guedes)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Have all <command>\d*</> commands show system objects only
-       if <literal>S</> is specified (Greg Sabino Mullane)
-      </para>
-
-      <para>
-       <command>\dt</> already behaved this way. bjm: accuate?
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Make <command>\d</> and <command>\dt</> consistent in
-       their display of system tables (Bruce)
-      </para>
-
-      <para>
-       Previously, <literal>\d pg_class</> would show <literal>pg_class</>
-       while <literal>\dt pg_class</> would not.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Show enumerated values in <command>\dT+</> (David Fetter)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow <command>\dC</> to accept wildcard patterns (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow <command>\d*</> commands to work with versions of
-       <productname>PostgreSQL</> back to 7.4 (Guillaume Lelarge)
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title><link linkend="APP-PGDUMP"><application>pg_dump</></link></title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Add a <literal>--no-tablespaces</> option to
-       <application>pg_dump</>/<application>pg_dumpall</>/<application>pg_restore</>
-       so dumps can be restored to clusters that have non-matching
-       tablespace layouts (Gavin Roy)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Remove <literal>-i</>/<literal>--ignore-version</> option from
-       <application>pg_dump</> and <application>pg_dumpall</> (Tom)
-      </para>
-
-      <para>
-       Use of this option does not throw an error, but it has no
-       effect.  This option was removed because the version checks
-       are considered necessary.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Disable <varname>statement_timeout</> during dump and restore
-       (Joshua Drake)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <application>pg_dump</>/<application>pg_dumpall</> option
-       <literal>--lock-wait-timeout</> (David Gould)
-      </para>
-
-      <para>
-       This allows dumps to fail if unable to acquire a shared lock
-       within the specified amount of time.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Reorder <application>pg_dump</> <literal>--data-only</> output
-       to dump primary-key tables referenced by foreign keys before
-       the foreign-key referencing tables (Tom)
-      </para>
-
-      <para>
-       This allows data loads when foreign keys are already present.
-       If circular references make this impossible, a <literal>NOTICE</>
-       is issued.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow <application>pg_dump</>, <application>pg_dumpall</>, and
-       <application>pg_restore</> to use a specified role (Benedek
-       László)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow <application>pg_restore</> of a custom format archive to
-       use multiple concurrent connections to do the restore (Andrew)
-      </para>
-
-      <para>
-       The number of concurrent connections is controlled by the option
-       <literal>--jobs</>.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add new <application>pg_dump</> <literal>--binary-upgrade</>
-       option for use by binary upgrade utilities (Bruce)
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title>Other Client Applications</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Fix <literal>pg_ctl restart</> to preserve command-line arguments
-       (Bruce)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add <literal>-w</>/<literal>--no-password</> option that
-       suppresses password prompts to all utilities that have a
-       <literal>-W</>/<literal>--password</> option (Peter)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Remove <literal>-q</> (quiet) option for create* and drop*
-       utility commands (Peter)
-      </para>
-
-      <para>
-       These options have had no effect since <productname>PostgreSQL</>
-       8.3.
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title>General <link linkend="libpq"><application>libpq</></link></title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Allow the <type>OID</> to be specified when importing large
-       objects using <function>lo_import_with_oid()</> (Tatsuo)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add events support (Andrew Chernow, Merlin Moncure)
-      </para>
-
-      <para>
-       This adds the ability to register callbacks to handle private
-       data for connection and result creation and destruction.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Improve error handling to allow the return of multiple
-       error messages as multi-line error reports (Magnus)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Have <function>PQexecParams()</> return
-       <varname>PGRES_EMPTY_QUERY</> for an empty query (Tom)
-      </para>
-
-      <para>
-        It previously returned <varname>PGRES_COMMAND_OK</>.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Document how to avoid the overhead of <function>WSACleanup()</>
-       on Windows (Andrew Chernow)
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title><link linkend="libpq"><application>libpq</></link>
-    <acronym>SSL</> (Secure Sockets Layer)</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Fix certificate validation for <acronym>SSL</> connections
-       (Magnus)
-      </para>
-      
-      <para>
-       <application>libpq</> now verifies both the certificate and
-       the name of the server by default when making <acronym>SSL</>
-       connections. If a root certificate is not available to use for
-       verification, <acronym>SSL</> connections will fail. The
-       <literal>sslverify</> parameter can be used to disable the host
-       and certificate verification if required.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Allow the file locations for client certificates to be specified
-       (Mark Woodward, Alvaro, Magnus)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add connection parameter <literal>sslverify</> to control
-       the verification of the server's certificate
-       (Magnus)
-      </para>
-
-      <para>
-       The default is full verification.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Properly unregister <application>OpenSSL</> callbacks when
-       libpq is done with all connection (Bruce, Magnus, Russell Smith)
-      </para>
-
-      <para>
-       This is required for applications that unload the libpq library
-       so no invalid <application>OpenSSL</> callbacks remain.
-      </para>
-     </listitem>
-
-    </itemizedlist>
-
-   </sect3>
-
-   <sect3>
-    <title><link linkend="ecpg"><application>ecpg</></link></title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Add localization support for messages (Euler Taveira de
-       Oliveira)
-      </para>
-     </listitem>
+    <sect4>
+     <title>Object Information Functions</title>
+     <itemizedlist>
+      <listitem>
+       <para>
+        Implement <function>current_query()</> for use by functions
+        that need to know the currently running query (Tomas Doran)
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Add <function>pg_get_keywords()</> to return predefined
+        parser keywords (Dave Page)
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Add <function>pg_get_functiondef()</> to see a functions
+        definition (Abhijit Menon-Sen)
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Modify <function>pg_relation_size()</> to handle free space
+        map (<filename>*.fsm</>) files (Heikki)
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Modify <function>pg_relation_size()</> to use <literal>regclass</>
+        (Heikki)
+       </para>
+       <para>
+        <function>pg_relation_size(data_type_name)</> no longer works.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Add <literal>boot_val</> and <literal>reset_val</> columns to
+        <literal>pg_settings</> output (Greg Smith)
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Add support for <varname>CURRENT_CATALOG</>,
+        <varname>CURRENT_SCHEMA</>, <varname>SET CATALOG</>, <varname>SET
+        SCHEMA</> (Peter)
+       </para>
+       <para>
+        These are <acronym>SQL</>-standard capabilities.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Add <function>pg_typeof()</> which returns the data type
+        of any value (Brendan Jurd)
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Have <function>version()</> return information about whether
+        the server is a 32 or 64-bit binary (Bruce)
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Fix the behavior of information schema columns
+        <literal>is_insertable_into</> and <literal>is_updatable</> to
+        be consistent (Peter)
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Convert remaining builtin set-returning functions to use
+        <literal>OUT</> parameters (Jaime Casanova)
+       </para>
+       <para>
+        This makes it possible to call these functions without specifying
+        a column list:  <function>pg_show_all_settings()</>,
+        <function>pg_lock_status()</>, <function>pg_prepared_xact()</>,
+        <function>pg_prepared_statement()</>, <function>pg_cursor()</>
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Have <function>pg_*_is_visible()</> and
+        <function>has_*_privilege()</> functions return <literal>NULL</>
+        for invalid oids, rather than generate an error (Tom)
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Add <function>has_column_privilege()</> and
+        <function>has_any_column_privilege()</> functions (Stephen
+        Frost, Tom)
+       </para>
+      </listitem>
+     </itemizedlist>
+    </sect4>
+    <sect4>
+     <title>Function Creation</title>
+     <itemizedlist>
+      <listitem>
+       <para>
+        Support variadic functions (functions with a variable number
+        of arguments) (Pavel Stehule)
+       </para>
+       <para>
+        Only trailing arguments can be optional, and they all must be
+        of the same data type.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Allow <literal>DEFAULT</> values for function arguments (Pavel
+        Stehule)
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Add <command>CREATE FUNCTION ... RETURNS TABLE</> clause (Pavel
+        Stehule)
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Allow <acronym>SQL</>-language functions to return the output
+        of an <command>INSERT</>/<command>UPDATE</>/<command>DELETE</>
+        <literal>RETURNING</> clause (Tom)
+       </para>
+       <para>
+        Formerly only <command>SELECT</> was supported.
+       </para>
+      </listitem>
+     </itemizedlist>
+    </sect4>
+    <sect4>
+     <title>PL/PgSQL Server-Side Language</title>
+     <itemizedlist>
+      <listitem>
+       <para>
+        Support <literal>EXECUTE USING</> (Pavel Stehule)
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Allow looping over an open cursor using a <literal>FOR</>
+        loop (Pavel Stehule)
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Support <literal>RETURN QUERY EXECUTE</> (Pavel
+        Stehule)
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Improve the <literal>RAISE</> command: (Pavel Stehule)
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        <itemizedlist>
+         <listitem>
+          <para>
+           Support <literal>DETAIL</> and <literal>HINT</> fields
+          </para>
+         </listitem>
+         <listitem>
+          <para>
+           Support <literal>SQLSTATE</> error codes
+          </para>
+         </listitem>
+         <listitem>
+          <para>
+           Support an exception name parameter
+          </para>
+         </listitem>
+         <listitem>
+          <para>
+           Allow <literal>RAISE</> without parameters in an exception
+           block to rethrow the current error
+          </para>
+         </listitem>
+        </itemizedlist>
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Allow specification of <varname>SQLSTATE</> numeric codes
+        in <literal>EXCEPTION</> lists (Pavel Stehule)
+       </para>
+       <para>
+        This is useful for handling custom <varname>SQLSTATE</> codes.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Support the <literal>CASE</> statement (Pavel Stehule)
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Add <literal>FOUND</> and <command>GET DIAGNOSTICS</> support
+        for the <literal>RETURN QUERY</> statement (Pavel Stehule)
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Add message translation support (Alvaro)
+       </para>
+      </listitem>
+     </itemizedlist>
+    </sect4>
+   </sect3>
 
-     <listitem>
-      <para>
-       ecpg parser is now automatically generated from the server
-       parser (Michael)
-      </para>
+   <sect3>
+    <title>Client Applications</title>
 
-      <para>
-       Previously a separate ecpg parser was maintained.
-      </para>
-     </listitem>
+    <sect4>
+     <title><link linkend="APP-PSQL"><application>psql</></link></title>
+     <itemizedlist>
+      <listitem>
+       <para>
+        Remove startup banner;  now just suggest <literal>help</>
+        (Joshua Drake)
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Have <literal>help</> show common backslash commands (Greg
+        Sabino Mullane)
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Add <literal>\pset format wrapped</> mode to wrap output to the
+        screen width, or file/pipe output too if <literal>\pset columns</>
+        is set (Bryce Nesbitt)
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Use the pager for wide output (Bruce)
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Require a space between a backslash command and the first
+        argument (Bernd Helmle)
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Display access control rights on multiple lines (Brendan
+        Jurd, Andreas Scherbaum)
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Improve tab completion support for schema qualified and
+        quoted identifiers (Greg Sabino Mullane)
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Allow the normal range of boolean values in <command>\pset</>,
+        rather than just <literal>on</> and <literal>off</> (Bruce)
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Add optional <literal>on</>/<literal>off</> arguments for
+        <command>\timing</> (David Fetter)
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Have <command>\l</> show access privileges (Andrew Gilligan)
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Have <command>\l+</> show database sizes, if permissions
+        allow (Andrew Gilligan)
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Add the <command>\ef</> command to edit function definitions
+        (Abhijit Menon-Sen)
+       </para>
+       <para>
+        <command>\ef</> without a function name creates an empty
+        function template for editing.
+       </para>
+      </listitem>
+     </itemizedlist>
+    </sect4>
+    <sect4>
+     <title><link linkend="APP-PSQL"><application>psql</></link> \d*</title>
+     <itemizedlist>
+      <listitem>
+       <para>
+        Have <command>\d</> show cases where this table is referenced
+        as a foreign-key constraint (Kenneth D'Souza)
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Have <command>\d</> show the value of sequence columns
+        (Euler Taveira de Oliveira)
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Add column storage type and other relation options to the
+        <command>\d+</> display (Gregory Stark, Euler Taveira de
+        Oliveira)
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Show relation size in <command>\d+</> output (Dickson S.
+        Guedes)
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Have all <command>\d*</> commands show system objects only
+        if <literal>S</> is specified (Greg Sabino Mullane)
+       </para>
+       <para>
+        <command>\dt</> already behaved this way. bjm: accuate?
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Make <command>\d</> and <command>\dt</> consistent in
+        their display of system tables (Bruce)
+       </para>
+       <para>
+        Previously, <literal>\d pg_class</> would show <literal>pg_class</>
+        while <literal>\dt pg_class</> would not.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Show enumerated values in <command>\dT+</> (David Fetter)
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Allow <command>\dC</> to accept wildcard patterns (Tom)
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Allow <command>\d*</> commands to work with versions of
+        <productname>PostgreSQL</> back to 7.4 (Guillaume Lelarge)
+       </para>
+      </listitem>
+     </itemizedlist>
+    </sect4>
 
-    </itemizedlist>
+    <sect4>
+     <title><link linkend="APP-PGDUMP"><application>pg_dump</></link></title>
+     <itemizedlist>
+      <listitem>
+       <para>
+        Add a <literal>--no-tablespaces</> option to
+        <application>pg_dump</>/<application>pg_dumpall</>/<application>pg_restore</>
+        so dumps can be restored to clusters that have non-matching
+        tablespace layouts (Gavin Roy)
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Remove <literal>-i</>/<literal>--ignore-version</> option from
+        <application>pg_dump</> and <application>pg_dumpall</> (Tom)
+       </para>
+       <para>
+        Use of this option does not throw an error, but it has no
+        effect.  This option was removed because the version checks
+        are considered necessary.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Disable <varname>statement_timeout</> during dump and restore
+        (Joshua Drake)
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Add <application>pg_dump</>/<application>pg_dumpall</> option
+        <literal>--lock-wait-timeout</> (David Gould)
+       </para>
+       <para>
+        This allows dumps to fail if unable to acquire a shared lock
+        within the specified amount of time.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Reorder <application>pg_dump</> <literal>--data-only</> output
+        to dump primary-key tables referenced by foreign keys before
+        the foreign-key referencing tables (Tom)
+       </para>
+       <para>
+        This allows data loads when foreign keys are already present.
+        If circular references make this impossible, a <literal>NOTICE</>
+        is issued.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Allow <application>pg_dump</>, <application>pg_dumpall</>, and
+        <application>pg_restore</> to use a specified role (Benedek
+        László)
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Allow <application>pg_restore</> of a custom format archive to
+        use multiple concurrent connections to do the restore (Andrew)
+       </para>
+       <para>
+        The number of concurrent connections is controlled by the option
+        <literal>--jobs</>.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Add new <application>pg_dump</> <literal>--binary-upgrade</>
+        option for use by binary upgrade utilities (Bruce)
+       </para>
+      </listitem>
+     </itemizedlist>
+    </sect4>
+    <sect4>
+     <title>Other Client Applications</title>
+     <itemizedlist>
+      <listitem>
+       <para>
+        Fix <literal>pg_ctl restart</> to preserve command-line arguments
+        (Bruce)
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Add <literal>-w</>/<literal>--no-password</> option that
+        suppresses password prompts to all utilities that have a
+        <literal>-W</>/<literal>--password</> option (Peter)
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Remove <literal>-q</> (quiet) option for create* and drop*
+        utility commands (Peter)
+       </para>
+       <para>
+        These options have had no effect since <productname>PostgreSQL</>
+        8.3.
+       </para>
+      </listitem>
+     </itemizedlist>
+    </sect4>
 
    </sect3>
 
    <sect3>
-    <title>Server Programming Interface (<acronym>SPI</>)</title>
-    <itemizedlist>
-
-     <listitem>
-      <para>
-       Add support for single-use plans with out-of-line
-       parameters (Tom)
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Add new <varname>SPI_OK_REWRITTEN</> return code to
-       <function>SPI_execute()</> (Heikki)
-      </para>
+    <title>Programming Tools</title>
 
-      <para>
-       This is used when a command is rewritten to another type of
-       command.
-      </para>
-     </listitem>
-
-    </itemizedlist>
+    <sect4>
+     <title><link linkend="libpq"><application>libpq</></link></title>
+     <itemizedlist>
+      <listitem>
+       <para>
+        Allow the <type>OID</> to be specified when importing large
+        objects using <function>lo_import_with_oid()</> (Tatsuo)
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Add events support (Andrew Chernow, Merlin Moncure)
+       </para>
+       <para>
+        This adds the ability to register callbacks to handle private
+        data for connection and result creation and destruction.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Improve error handling to allow the return of multiple
+        error messages as multi-line error reports (Magnus)
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Have <function>PQexecParams()</> return
+        <varname>PGRES_EMPTY_QUERY</> for an empty query (Tom)
+       </para>
+       <para>
+         It previously returned <varname>PGRES_COMMAND_OK</>.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Document how to avoid the overhead of <function>WSACleanup()</>
+        on Windows (Andrew Chernow)
+       </para>
+      </listitem>
+     </itemizedlist>
+    </sect4>
 
+    <sect4>
+     <title><link linkend="libpq"><application>libpq</></link>
+     <acronym>SSL</> (Secure Sockets Layer)</title>
+     <itemizedlist>
+      <listitem>
+       <para>
+        Fix certificate validation for <acronym>SSL</> connections
+        (Magnus)
+       </para>
+       
+       <para>
+        <application>libpq</> now verifies both the certificate and
+        the name of the server by default when making <acronym>SSL</>
+        connections. If a root certificate is not available to use for
+        verification, <acronym>SSL</> connections will fail. The
+        <literal>sslverify</> parameter can be used to disable the host
+        and certificate verification if required.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Allow the file locations for client certificates to be specified
+        (Mark Woodward, Alvaro, Magnus)
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Add connection parameter <literal>sslverify</> to control
+        the verification of the server's certificate
+        (Magnus)
+       </para>
+       <para>
+        The default is full verification.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Properly unregister <application>OpenSSL</> callbacks when
+        libpq is done with all connection (Bruce, Magnus, Russell Smith)
+       </para>
+       <para>
+        This is required for applications that unload the libpq library
+        so no invalid <application>OpenSSL</> callbacks remain.
+       </para>
+      </listitem>
+     </itemizedlist>
+    </sect4>
+    <sect4>
+     <title><link linkend="ecpg"><application>ecpg</></link></title>
+     <itemizedlist>
+      <listitem>
+       <para>
+        Add localization support for messages (Euler Taveira de
+        Oliveira)
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        ecpg parser is now automatically generated from the server
+        parser (Michael)
+       </para>
+       <para>
+        Previously a separate ecpg parser was maintained.
+       </para>
+      </listitem>
+     </itemizedlist>
+    </sect4>
+    <sect4>
+     <title>Server Programming Interface (<acronym>SPI</>)</title>
+     <itemizedlist>
+      <listitem>
+       <para>
+        Add support for single-use plans with out-of-line
+        parameters (Tom)
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Add new <varname>SPI_OK_REWRITTEN</> return code to
+        <function>SPI_execute()</> (Heikki)
+       </para>
+       <para>
+        This is used when a command is rewritten to another type of
+        command.
+       </para>
+      </listitem>
+     </itemizedlist>
+    </sect4>
    </sect3>
-
    <sect3>
     <title>Build Options</title>
     <itemizedlist>