OSDN Git Service

Preliminary pass at release note editing.
authorTom Lane <tgl@sss.pgh.pa.us>
Wed, 24 Aug 2005 22:03:14 +0000 (22:03 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Wed, 24 Aug 2005 22:03:14 +0000 (22:03 +0000)
doc/src/sgml/release.sgml

index 60cdd33..1cb8a22 100644 (file)
@@ -1,5 +1,5 @@
 <!--
-$PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.361 2005/08/24 19:41:33 momjian Exp $
+$PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.362 2005/08/24 22:03:14 tgl Exp $
 
 Typical markup:
 
@@ -23,7 +23,7 @@ pg_[A-Za-z0-9_]                 <application>
     <title>Release date</title>
     <simpara>2005-1?-??, Current as of 2005-08-24</simpara>
    </note>
+
    <sect2>
     <title>Overview</title>
  
@@ -49,24 +49,7 @@ pg_[A-Za-z0-9_]                 <application>
 
      <varlistentry>
       <term>
-       Automatically use indexes for <function>MIN()</> and
-       <function>MAX()</> (Tom)
-      </term>
-      <listitem>
-       <para>
-        In previous releases, the only way to use an index for
-        <function>MIN()</> or <function>MAX()</> was to rewrite the
-        query as <command>SELECT col FROM tab ORDER BY col LIMIT 1</>.
-        Index usage now happens automatically.
-       </para> 
-      </listitem>
-     </varlistentry>
-
-     <varlistentry>
-      <term>
-       Add in-memory bitmaps which allows multiple indexes to be merged
-       in a single query (Tom)
+       Allow index scans to use an intermediate in-memory bitmap (Tom)
       </term>
 
       <listitem>
@@ -75,12 +58,16 @@ pg_[A-Za-z0-9_]                 <application>
         lookups on a table. With this feature, if a query has
         <command>WHERE tab.col1 = 4 and tab.col2 = 9</>, and there is no
         multicolumn index on col1 and col2, but there is an index on
-        col1 and another on col2, it is possible to do lookups on the
-        col1 index and the col2 index and combine them in memory to do
-        heap lookups on rows matching both the col1 and col2
+        col1 and another on col2, it is possible to search both indexes
+        and combine the results in memory, then do heap fetches for only
+        the rows matching both the col1 and col2
         restrictions. This is very useful in environments that have a
         lot of unstructured queries where it is impossible to create
-        indexes that match all possible access conditions.
+        indexes that match all possible access conditions.  Bitmap scans
+        are useful even with a single index, as they reduce the amount
+        of random access needed; a bitmap index scan is efficient for
+        retrieving fairly large fractions of the complete table, whereas
+        plain index scans are not.
        </para>
       </listitem>
      </varlistentry>
@@ -96,8 +83,8 @@ pg_[A-Za-z0-9_]                 <application>
         computers, and once all computers have successfully prepared
         their transactions (none failed), all transactions can be
         committed. Even if a machine crashes after a prepare, the
-        prepared transaction can be committed after it is restarted. New
-        syntax includes <command>PREPARE TRANSACTION</> and
+        prepared transaction can be committed after the machine is
+        restarted. New syntax includes <command>PREPARE TRANSACTION</> and
         <command>COMMIT/ROLLBACK PREPARED</>. A new system view
         <literal>pg_prepared_xacts</> has also been added.
        </para>
@@ -122,7 +109,7 @@ pg_[A-Za-z0-9_]                 <application>
   
         <listitem>
          <para>
-           Have optionally have login capability
+           Have login capability (optionally)
          </para>
         </listitem>
 
@@ -134,40 +121,58 @@ pg_[A-Za-z0-9_]                 <application>
 
         <listitem>
          <para>
-          Inherit permission from other member roles
+          Hold access permissions for database objects
          </para>
         </listitem>
 
         <listitem>
          <para>
-          Switch to another member role using <command>SET ROLE</>
+          Inherit permissions from other roles it is a member of
          </para>
         </listitem>
 
        </itemizedlist>
        <para>
-        So, once a user logs into a role, she inherits capabilities of
+        Once a user logs into a role, she obtains capabilities of
         the login role plus any inherited roles, and can use
-        <command>SET ROLE</> to switch to other member roles. This
-        change also replaces <literal>pg_shadow</> and 
-        <literal>pg_group</> by with new role-capable catalogs 
-        <literal>pg_authid</> and <literal>pg_auth_members</>. The old
-        tables are redefined as views on the new role tables.
+        <command>SET ROLE</> to switch to other roles she is a member of.
+        This feature is a generalization of the SQL standard's concept of
+        roles.
+        This change also replaces <structname>pg_shadow</> and 
+        <structname>pg_group</> by new role-capable catalogs 
+        <structname>pg_authid</> and <structname>pg_auth_members</>. The old
+        tables are redefined as read-only views on the new role tables.
        </para>
       </listitem>
      </varlistentry>
 
      <varlistentry>
       <term>
-       Move <filename>/contrib/pgautovacuum</> into the main server
+       Automatically use indexes for <function>MIN()</> and
+       <function>MAX()</> (Tom)
+      </term>
+      <listitem>
+       <para>
+        In previous releases, the only way to use an index for
+        <function>MIN()</> or <function>MAX()</> was to rewrite the
+        query as <command>SELECT col FROM tab ORDER BY col LIMIT 1</>.
+        Index usage now happens automatically.
+       </para> 
+      </listitem>
+     </varlistentry>
+
+     <varlistentry>
+      <term>
+       Move <filename>/contrib/pg_autovacuum</> into the main server
        (Alvaro Herrera)
       </term>
 
       <listitem>
        <para>
-        Moving pgautovacuum from <filename>/contrib</> allows it to be
+        Integrating autovacuum into the server allows it to be
         automatically started and stopped in sync with the database
-        server, and allows for pgautovacuum to be configured from
+        server, and allows autovacuum to be configured from
         <filename>postgresql.conf</>.
        </para>
       </listitem>
@@ -185,8 +190,25 @@ pg_[A-Za-z0-9_]                 <application>
         allows <command>SELECT</> to never be blocked by writers and
         therefore does not need shared row locks for typical operations,
         shared locks are useful for applications that require shared row
-        locking, and to reduce the locking requirements to maintain
-        referential integrity.
+        locking.  In particular this reduces the locking requirements
+        imposed by referential integrity checks.
+       </para>
+      </listitem>
+     </varlistentry>
+
+     <varlistentry>
+      <term>
+       Add dependencies on shared objects, specifically roles
+       (Alvaro)
+      </term>
+
+      <listitem>
+       <para>
+        This extension of the dependency mechanism prevents roles from
+        being dropped while there are still database objects they own.
+        Formerly it was possible to accidentally <quote>orphan</> objects by
+        deleting their owner.  While this could be recovered from, it
+        was messy and unpleasant.
        </para>
       </listitem>
      </varlistentry>
@@ -205,8 +227,8 @@ pg_[A-Za-z0-9_]                 <application>
     <para>
      The 8.0 release announced that the <function>to_char()</> function
      for intervals would be removed in 8.1. However, since no better API
-     has been suggested, to_char(interval) has been enhanced in 8.1 and
-     will remain in the server.
+     has been suggested, <function>to_char(interval)</> has been enhanced in
+     8.1 and will remain in the server.
     </para>
 
     <para>
@@ -217,19 +239,19 @@ pg_[A-Za-z0-9_]                 <application>
 
      <listitem>
       <para>
-       Change add_missing_from to 'false'
+       <varname>add_missing_from</> is now false by default (Neil)
       </para>
       <para>
-       Generate an error if a table used in a query without a
-       <command>FROM</> reference (Neil) This command, <command>SELECT
-       pg_class.*</>, now generates an error.
+       By default, we now generate an error if a table is used in a query
+       without a <command>FROM</> reference.  The old behavior is still
+       available, but the parameter must be set to 'true' to obtain it.
       </para>
      </listitem>
 
      <listitem>
       <para>
-       Cause input of a zero-length strings ('') for float4/float8/oid
-       to throw an error, rather than treat it as a zero (Neil)
+       Cause input of a zero-length string ('') for float4/float8/oid
+       to throw an error, rather than treating it as a zero (Neil)
       </para>
       <para>
        This change is consistent with the current handling of
@@ -240,18 +262,18 @@ pg_[A-Za-z0-9_]                 <application>
 
      <listitem>
       <para>
-       Change <varname>default_with_oids</> to default to false (Neil)
+       <varname>default_with_oids</> is now false by default (Neil)
       </para>
       <para>
        With this option set to false, user-created tables no longer have
-       an the usually-invisible OID column unless <command>WITH OIDS</>
+       the usually-invisible OID column unless <command>WITH OIDS</>
        is specified in <command>CREATE TABLE</>. Though OIDs have
-       existed in all previous releases of
+       existed in all releases of
        <productname>PostgreSQL</productname>, their use is limited
-       because they are only four bytes long and the counter is unique
+       because they are only four bytes long and the counter is shared
        across all installed databases. The preferred way of uniquely
        identifying rows is via sequences and <command>SERIAL</>, which
-       has been supported since <productname>PostgreSQL</productname>
+       have been supported since <productname>PostgreSQL</productname>
        6.4.
       </para>
      </listitem>
@@ -263,36 +285,22 @@ pg_[A-Za-z0-9_]                 <application>
       </para>
       <para>
        Currently <productname>PostgreSQL</productname> processes a
-       backslash in a string as preceeding a character that requires
-       special processing, e.g. <literal>\n</> or <literal>\010</>.
+       backslash in a string literal as introducing a special escape sequence,
+       e.g. <literal>\n</> or <literal>\010</>.
        While this allows easy entry of special values, it is
-       non-standard and makes porting of application from other
+       non-standard and makes porting of applications from other
        databases more difficult. For this reason, the
        <productname>PostgreSQL</productname> project is planning to
        remove the special meaning of backslashes in strings. For
        backward compatibility and for users who want special backslash
-       processing, a new string type will be created. This new string
-       type is formed by having an E precede the single quote that
-       starts the string, e.g. <literal>E'hi\n'</>. While this release
-       does not change the handling of backslashes in strings, it does
-       add several new GUC variables to help users migrate applications
+       processing, a new string syntax has been created. This new string
+       syntax is formed by writing an <literal>E</> immediately preceding the
+       single quote that starts the string, e.g. <literal>E'hi\n'</>. While
+       this release does not change the handling of backslashes in strings, it
+       does add new GUC variables to help users migrate applications
        for future releases:
       </para>
       <itemizedlist>
-  
-       <listitem>
-       <para>
-        <varname>escape_string_warning</> - warn about backslashes in
-        ordinary (non-E) strings
-       </para>
-      </listitem>
-
-       <listitem>
-        <para>
-         <varname>escape_string_syntax</> - does this release support
-         the E'' syntax?
-        </para>
-       </listitem>
 
        <listitem>
         <para>
@@ -300,23 +308,32 @@ pg_[A-Za-z0-9_]                 <application>
          treat backslashes literally in ordinary strings?
         </para>
        </listitem>
+  
+       <listitem>
+       <para>
+        <varname>escape_string_warning</> - warn about backslashes in
+        ordinary (non-E) strings
+       </para>
+      </listitem>
 
       </itemizedlist>
 
       <para>
-       The last two values are read-only and should assist in the
-       porting of applications. Applications can retrieve these values
-       to know how backslashes are processed. In a later release,
-       standard_conforming_strings will be true, meaning backslashes
-       will be treated literally in non-E strings. To prepare for this
-       change, use E'' strings in places that need special backslash
-       processing, and turn on escape_string_warning to find additional
-       strings that need to be converted to use <literal>E''</>.  Also,
-       use two single-quotes ('') to embed a literal single-quote
-       in a string, rather than the PostgreSQL-supported syntax of
-       backslash single-quote (\').  The former is standards-conforming
-       and does not require the use of the E'' string syntax.  You can
-       also use the $$ string syntax, which does not treat backslashes
+       The <varname>standard_conforming_strings</> value is read-only.
+       Applications can retrieve the value to know how backslashes are
+       processed.  (Presence of the parameter can also be taken as an
+       indication that <literal>E''</> string syntax is supported.)  In a
+       future release, <varname>standard_conforming_strings</> will be true,
+       meaning backslashes will be treated literally in non-E strings. To
+       prepare for this change, use <literal>E''</> strings in places that
+       need special backslash processing, and turn on
+       <varname>escape_string_warning</> to find additional strings that need
+       to be converted to use <literal>E''</>.  Also, use two single-quotes
+       (<literal>''</>) to embed a literal single-quote in a string, rather
+       than the PostgreSQL-supported syntax of backslash single-quote
+       (<literal>\'</>).  The former is standards-conforming and does not
+       require the use of the <literal>E''</> string syntax.  You can also use
+       the <literal>$$</> string syntax, which does not treat backslashes
        specially.
       </para>
      </listitem>
@@ -401,7 +418,11 @@ pg_[A-Za-z0-9_]                 <application>
 
       <listitem>
        <para>
-        Change WAL CRC records from 64bit to 32bit (Tom)
+        Change WAL record CRCs from 64-bit to 32-bit (Tom)
+       </para>
+       <para>
+        We determined that the extra cost of computing 64-bit CRCs was
+        significant, and the gain in reliability too marginal to justify it.
        </para>
       </listitem>
 
@@ -431,7 +452,8 @@ pg_[A-Za-z0-9_]                 <application>
        <para>
         Since a crash during <command>CREATE TABLE</> would cause the
         table to be dropped during recovery, there is no reason to WAL
-        log as the table is loaded.
+        log as the table is loaded.  (Logging still happens if WAL
+        archiving is enabled, however.)
        </para>
       </listitem>
 
@@ -451,9 +473,9 @@ pg_[A-Za-z0-9_]                 <application>
         To prevent partial disk writes from corrupting the database,
         <productname>PostgreSQL</productname> writes a complete copy of
         each database disk page to WAL the first time it is modified
-        after a checkpoint. This turns off that functionality for users
-        with battery-backed disk caches where partial page writes cannot
-        happen.
+        after a checkpoint. This option turns off that functionality for more
+        speed.  This is safe to use with battery-backed disk caches where
+        partial page writes cannot happen.
        </para>
       </listitem>
 
@@ -463,10 +485,10 @@ pg_[A-Za-z0-9_]                 <application>
         on table constraints (Simon)
        </para>
        <para>
-        This allows for a type of table partitioning. If child table
-        placed in a different tablespaces using appropriate
+        This allows for a type of table partitioning. If child tables
+        store separate key ranges and this is enforced using appropriate
         <command>CHECK</> constraints, the optimizer will skip child
-        table accesses if the constraint guarantees no matching rows
+        table accesses when the constraint guarantees no matching rows
         exist in the child table.
        </para>
       </listitem>
@@ -505,17 +527,17 @@ pg_[A-Za-z0-9_]                 <application>
         Prevent problems due to transaction ID (XID) wraparound (Tom)
        </para>
        <para>
-        This was accomplished by warning the transaction counter is near
-        the the earliest transaction id determined by the database whose
-        last vacuum is the oldest. If the limit is reached, the server
-        will no longer accept queries.
+        The server will now warn when the transaction counter approaches
+        the wraparound point.  If the counter becomes too close to wraparound,
+        the server will stop accepting queries.  This ensures that data is
+        not lost before needed vacuuming is performed.
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Fix problem of object ID (OID) wraparound conflicting with
-        existing system objects (Tom)
+        Fix problems with object IDs (OIDs) conflicting with existing system
+        objects after the OID counter has wrapped around (Tom)
        </para>
       </listitem>
   
@@ -607,6 +629,11 @@ pg_[A-Za-z0-9_]                 <application>
         Add GUC variables to control TCP/IP keep-alive times for idle,
         interval, and count (Oliver Jowett)
        </para>
+
+       <para>
+        These values can be changed to allow more rapid detection of
+        lost client connections.
+       </para>
       </listitem>
 
       <listitem>
@@ -615,8 +642,8 @@ pg_[A-Za-z0-9_]                 <application>
        </para>
        <para>
         Using <command>ALTER USER</> and <command>ALTER DATABASE</>,
-        limits can now be enforced on the maximum number of users who
-        can connect as as a specific user or to a specific database.
+        limits can now be enforced on the maximum number of sessions that
+        can concurrently connect as a specific user or to a specific database.
         Setting the limit to zero disables user or database connections.
        </para>
       </listitem>
@@ -696,10 +723,10 @@ pg_[A-Za-z0-9_]                 <application>
         UPDATE/SHARE</> (Hans-Juergen Schoenig)
        </para>
        <para>
-        While <command>SET</> statement_timeout allows a query taking
-        over a certain amount of time to be cancelled, the <command>NO
-        WAIT</> option allows a query to be canceled as soon as a
-        <command>SELECT ... FOR UPDATE/SHARE</> cannot immediately
+        While <command>SET</> <varname>statement_timeout</> allows a query
+        taking over a certain amount of time to be cancelled, the
+        <command>NOWAIT</> option allows a query to be canceled as soon as a
+        <command>SELECT ... FOR UPDATE/SHARE</> command cannot immediately
         acquire a row lock.
        </para>
       </listitem>
@@ -733,10 +760,12 @@ pg_[A-Za-z0-9_]                 <application>
         by the object owner (Stephen Frost)
        </para>
        <para>
-        Prior releases allowed only the super-user to change object owners,
-        even if the current owner was executing the command and the new
-        owner was in the same group.  With roles such transfers are now
-        possible.
+        Prior releases allowed only superusers to change object owners.
+        Now, ownership can be transferred if the user executing the command
+        owns the object and would be able to create it as the new owner
+        (that is, the user is a member of the new owning role and that role
+        has the CREATE permission that would be needed to create the object
+        afresh).
        </para>
       </listitem>
 
@@ -771,12 +800,12 @@ pg_[A-Za-z0-9_]                 <application>
         single command (Alvaro)
        </para>
        <para>
-        Because of referential integrity checks, it is impossible to
+        Because of referential integrity checks, it is not allowed to
         truncate a table that is part of a referential integrity
         constraint. Using this new functionality, <command>TRUNCATE</>
-        can be used to truncate all tables involved in referential
-        integrity if they are truncated in a single <command>TRUNCATE</>
-        command.
+        can be used to truncate such tables, if both tables involved in
+        a referential integrity constraint are truncated in a single
+        <command>TRUNCATE</> command.
        </para>
       </listitem>
 
@@ -807,7 +836,7 @@ pg_[A-Za-z0-9_]                 <application>
 
       <listitem>
        <para>
-        On Win32, display better sub-second precision in
+        On Windows, display better sub-second precision in
         <command>EXPLAIN ANALYZE</> (Magnus)
        </para>
       </listitem>
@@ -818,8 +847,9 @@ pg_[A-Za-z0-9_]                 <application>
         (Tom)
        </para>
        <para>
-        Prior releases accumulated trigger execution time as part of the
-        total execution time.
+        Prior releases included trigger execution time as part of the
+        total execution time, but did not show it separately.  It is now
+        possible to see how much time is spent in each trigger.
        </para>
       </listitem>
 
@@ -835,7 +865,7 @@ pg_[A-Za-z0-9_]                 <application>
 
       <listitem>
        <para>
-        Have <command>SHOW ALL</> include variable descriptions
+        Make <command>SHOW ALL</> include variable descriptions
         (Matthias Schmidt)
        </para>
        <para>
@@ -846,16 +876,16 @@ pg_[A-Za-z0-9_]                 <application>
 
       <listitem>
        <para>
-        Have initdb create new standard database called
-        <literal>postgres</> and convert utilities to use
+        Make initdb create a new standard database called
+        <literal>postgres</>, and convert utilities to use
         <literal>postgres</> rather than <literal>template1</> for
         standard lookups (Dave)
        </para>
        <para>
-        In prior releases, template1 was used both as a default
+        In prior releases, <literal>template1</> was used both as a default
         connection for utilities like createuser, and as a template for
         new databases. This caused <command>CREATE DATABASE</> to
-        sometimes fail because a new database cannot be created if
+        sometimes fail, because a new database cannot be created if
         anyone else is in the template database. With this change, the
         default connection database is now <literal>postgres</>, meaning
         it is much less likely someone will be using
@@ -884,9 +914,6 @@ pg_[A-Za-z0-9_]                 <application>
         Add <function>MAX()</> and <function>MIN()</> aggregates for
         array types (Koju Iijima)
        </para>
-       <para>
-        How does this work?
-       </para>
       </listitem>
 
       <listitem>
@@ -899,7 +926,7 @@ pg_[A-Za-z0-9_]                 <application>
         If the format specification contains <literal>CC</> and a year
         specification is <literal>YYY</> or longer, ignore the
         <literal>CC</>. If the year specification is <literal>YY</> or
-        shorter, interpret <literal>CC</> as the previous century. ?
+        shorter, interpret <literal>CC</> as the previous century.
        </para>
       </listitem>
 
@@ -927,7 +954,7 @@ pg_[A-Za-z0-9_]                 <application>
 
       <listitem>
        <para>
-        Add support for <command>NUMERIC ^ NUMERIC</> based on
+        Add support for <command>numeric ^ numeric</> based on
         <function>power(numeric, numeric)</>
        </para>
        <para>
@@ -943,7 +970,7 @@ pg_[A-Za-z0-9_]                 <application>
        </para>
        <para>
         In previous releases, modulus for large values sometimes
-        returned negative results due to the rounding of the quotient.
+        returned negative results due to rounding of the quotient.
        </para>
       </listitem>
 
@@ -1001,7 +1028,7 @@ pg_[A-Za-z0-9_]                 <application>
        </para>
        <para>
         These functions take a variable number of arguments and return
-        the greatest or least value.
+        the greatest or least value among the arguments.
        </para>
       </listitem>
 
@@ -1020,8 +1047,8 @@ pg_[A-Za-z0-9_]                 <application>
         Add <function>regexp_replace()</> (Atsushi Ogawa)
        </para>
        <para>
-        This allows regular expression replacement, like sed. A
-        four-argument version also allows for global (replace all) and
+        This allows regular expression replacement, like sed. An optional
+        flag argument allows selection of global (replace all) and
         case-insensitive modes.
        </para>
       </listitem>
@@ -1049,7 +1076,7 @@ pg_[A-Za-z0-9_]                 <application>
         (not fixed 24-hour periods) to be added to dates who's result
         includes a daylight savings time adjustment period. Therefore,
         while in previous releases <literal>1 day</> and <literal>24
-        hours</> where interchangeable interval periods, in this release
+        hours</> were interchangeable interval values, in this release
         they are treated differently, e.g.
         <programlisting>
          '2005-05-03 00:00:00 EST' + '1 day' = '2005-05-04 00:00:00-04'
@@ -1157,13 +1184,13 @@ pg_[A-Za-z0-9_]                 <application>
       <listitem>
        <para>
         Add <function>pg_rotate_logfile()</> to force rotation of the
-        server log file (Dave Page,
+        server log file (Dave Page, Andreas Pflug)
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Change <literal>pg_stat_*</> views to show TOAST tables (Tom)
+        Change <literal>pg_stat_*</> views to include TOAST tables (Tom)
        </para>
       </listitem>
 
@@ -1178,7 +1205,7 @@ pg_[A-Za-z0-9_]                 <application>
       <listitem>
        <para>
         Rename some encodings to be more consistent and to follow
-        international standards(Bruce)
+        international standards (Bruce)
        </para>
        <para>
         <itemizedlist>
@@ -1228,7 +1255,7 @@ pg_[A-Za-z0-9_]                 <application>
        <para>
         Previously only one and two-byte <literal>UTF8</> characters
         were supported. This is particularly important for support for
-        some Chinese character.
+        some Chinese characters.
        </para>
       </listitem>
 
@@ -1242,11 +1269,12 @@ pg_[A-Za-z0-9_]                 <application>
 
       <listitem>
        <para>
-        Allow the UTF8 encoding to work on Win32 (Magnus)
+        Allow the UTF8 encoding to work on Windows (Magnus)
        </para>
        <para>
-        This is done by mapping UTF8 to the Win32-native UTF16 
+        This is done by mapping UTF8 to the Windows-native UTF16 
         implementation.
+       </para>
       </listitem>
 
      </itemizedlist>
@@ -1295,7 +1323,7 @@ pg_[A-Za-z0-9_]                 <application>
 
       <listitem>
        <para>
-        Move language handlers into the <literal>pg_catalog</> schema
+        Move language handler functions into the <literal>pg_catalog</> schema
        </para>
        <para>
         This makes it easier to drop the public schema if desired.
@@ -1321,7 +1349,7 @@ pg_[A-Za-z0-9_]                 <application>
 
       <listitem>
        <para>
-        Check function syntax as <command>CREATE FUNCTION</> time,
+        Check function syntax at <command>CREATE FUNCTION</> time,
         rather than at runtime (Neil)
        </para>
        <para>
@@ -1344,7 +1372,8 @@ pg_[A-Za-z0-9_]                 <application>
        </para>
        <para>
         This is a byproduct of the newly added <command>OUT</> and
-        <command>INOUT</> functionality.
+        <command>INOUT</> functionality.  <command>RETURN</> can
+        be omitted when it is not needed to provide the function result.
        </para>
       </listitem>
 
@@ -1511,8 +1540,8 @@ pg_[A-Za-z0-9_]                 <application>
 
       <listitem>
        <para>
-        Prevent psql <command>\x</> (expanded mode) from affecting other
-        backslash output (Neil)
+        Prevent psql <command>\x</> (expanded mode) from affecting 
+        backslash-command displays (Neil)
        </para>
       </listitem>
 
@@ -1528,7 +1557,7 @@ pg_[A-Za-z0-9_]                 <application>
 
       <listitem>
        <para>
-        Have psql <command>\d</> show tablespace of indexes (Qingqing
+        Make psql <command>\d</> show tablespaces of indexes (Qingqing
         Zhou)
        </para>
       </listitem>
@@ -1541,8 +1570,8 @@ pg_[A-Za-z0-9_]                 <application>
        <para>
         This allows the user to just add <command>\h</> to the front of
         the syntax error query and get help on the supported syntax.
-        Previously any additional query text beyond the help topics
-        supported had to be removed to use <command>\h</>.
+        Previously any additional query text beyond the command name
+        had to be removed to use <command>\h</>.
        </para>
       </listitem>
 
@@ -1553,7 +1582,7 @@ pg_[A-Za-z0-9_]                 <application>
        </para>
        <para>
         For example, using <literal>C</> locale <literal>100000</> would
-        be output as <literal>100,000.0</> and European locale might
+        be output as <literal>100,000.0</> while a European locale might
         output this value as <literal>100.000,0</>.
        </para>
       </listitem>
@@ -1650,7 +1679,7 @@ pg_[A-Za-z0-9_]                 <application>
 
       <listitem>
        <para>
-        Add Kerberos 5 support for Win32 (Magnus)
+        Add Kerberos 5 support for Windows (Magnus)
        </para>
       </listitem>
 
@@ -1725,7 +1754,7 @@ pg_[A-Za-z0-9_]                 <application>
 
       <listitem>
        <para>
-        Allow libpq to be build thread-safe on Win32 (Dave Page)
+        Allow libpq to be built thread-safe on Windows (Dave Page)
        </para>
       </listitem>
 
@@ -1756,7 +1785,7 @@ pg_[A-Za-z0-9_]                 <application>
 
       <listitem>
        <para>
-        Cleanup the <filename>/contrib/lo</> module (Tom)
+        Clean up the <filename>/contrib/lo</> module (Tom)
        </para>
       </listitem>
 
@@ -1786,7 +1815,7 @@ pg_[A-Za-z0-9_]                 <application>
 
       <listitem>
        <para>
-        <filename>/contrib/pgcrypto</> (Marko Kreen)
+        Improve <filename>/contrib/pgcrypto</> (Marko Kreen)
        </para>
 
        <itemizedlist>
@@ -1796,7 +1825,7 @@ pg_[A-Za-z0-9_]                 <application>
           implementation of OpenPGP symmetric-key and public-key encryption
          </para>
          <para>
-          Supported are both RSA and Elgamal public-key algorithms.
+          Both RSA and Elgamal public-key algorithms are supported.
          </para>
         </listitem>