OSDN Git Service

Further editing of release notes.
authorTom Lane <tgl@sss.pgh.pa.us>
Tue, 24 Aug 2010 23:45:37 +0000 (23:45 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Tue, 24 Aug 2010 23:45:37 +0000 (23:45 +0000)
doc/src/sgml/release-9.0.sgml

index 71b0f06..8218566 100644 (file)
@@ -1,4 +1,4 @@
-<!-- $PostgreSQL: pgsql/doc/src/sgml/release-9.0.sgml,v 2.39.2.8 2010/08/24 14:46:35 momjian Exp $ -->
+<!-- $PostgreSQL: pgsql/doc/src/sgml/release-9.0.sgml,v 2.39.2.9 2010/08/24 23:45:37 tgl Exp $ -->
 
  <sect1 id="release-9-0">
   <title>Release 9.0</title>
     <listitem>
      <para>
       Easier database object permissions management. <link
-      linkend="SQL-GRANT"><command>GRANT</>/<command>REVOKE
-      IN SCHEMA</></link> supports mass permissions changes, and
-      the <link linkend="SQL-ALTERDEFAULTPRIVILEGES"><command>ALTER
-      DEFAULT PRIVILEGES</></link> command controls privileges
-      of all newly-created objects.  Large object permissions now
-      support <command>GRANT</>/<command>REVOKE</> as well.
+      linkend="SQL-GRANT"><command>GRANT</>/<command>REVOKE IN
+      SCHEMA</></link> supports mass permissions changes on existing objects,
+      while <link linkend="SQL-ALTERDEFAULTPRIVILEGES"><command>ALTER DEFAULT
+      PRIVILEGES</></link> allows control of privileges for objects created in
+      the future.  Large objects (BLOBs) now support privilege management as
+      well.
      </para>
     </listitem>
 
     <listitem>
      <para>
-      Add support for compiling on <link
-      linkend="install-win32-full">64-bit
-      <productname>Windows</></link> and running in 64-bit
-      mode.
+      Broadly enhanced stored procedure support.
+      The <link linkend="SQL-DO"><command>DO</></link> statement supports
+      ad-hoc or <quote>anonymous</> code blocks.
+      Functions can now be called using named parameters.
+      <link linkend="plpgsql">PL/pgSQL</link> is now installed by default, and
+      <link linkend="plperl">PL/Perl</link> and <link
+      linkend="plpython">PL/Python</link> have been enhanced in several ways,
+      including support for Python3.
      </para>
     </listitem>
 
     <listitem>
      <para>
-      Broadly enhanced stored procedure support.
-      The <link linkend="SQL-DO"><command>DO</></link> statement permits
-      ad-hoc or anonymous code blocks.  Functions can now be called using named
-      parameters.  <link linkend="plpgsql">PL/pgSQL</link> is now installed by default,
-      and <link linkend="plperl">PL/Perl</link> and <link linkend="plpython">PL/Python</link>
-      have been enhanced in several ways, including support for Python3.
+      Full support for <link linkend="install-win32">64-bit
+      <productname>Windows</></link>.
      </para>
     </listitem>
 
     <listitem>
      <para>
-      More advanced reporting queries with additional <link
-      linkend="functions-window">window functions</link>
-      (<literal>PRECEDING</> and <literal>FOLLOWING</>) and the ability
-      to <link linkend="syntax-aggregates"><literal>ORDER BY</></link>
-      inside aggregate functions.
+      More advanced reporting queries, including additional windowing options
+      (<literal>PRECEDING</> and <literal>FOLLOWING</>) and the ability to
+      control the order in which values are fed to aggregate functions.
      </para>
     </listitem>
 
     <listitem>
      <para>
-      Triggers now support two new features,
-      SQL-compliant <link
-      linkend="SQL-CREATETRIGGER">per-column triggers</link>, and
+      New trigger features, including
+      SQL-standard-compliant <link
+      linkend="SQL-CREATETRIGGER">per-column triggers</link> and
       conditional trigger execution.
      </para>
     </listitem>
 
     <listitem>
      <para>
-      New and enhanced security features, including <link linkend="client-authentication">RADIUS authentication</link>,
-      LDAP authentication improvements, and the new <link linkend="passwordcheck">passwordcheck</link> optional module
-      for testing password strength.
+      <link linkend="ddl-constraints-exclusion">Exclusion constraints</link>.
+      These provide a generalized version of unique constraints, allowing
+      enforcement of complex conditions.
      </para>
     </listitem>
 
     <listitem>
      <para>
-      The <link linkend="SQL-LISTEN"><command>LISTEN</></link>/<link
-      linkend="SQL-NOTIFY"><command>NOTIFY</></link>
-      feature has been overhauled to make it into
-      a high-performance event queuing system.  It now stores
-      events in a memory-based queue, and it now allows delivery
-      of a string payload to listeners with each event.
+      New and enhanced security features, including RADIUS authentication,
+      LDAP authentication improvements, and a new contrib module
+      <link linkend="passwordcheck"><filename>passwordcheck</></link>
+      for testing password strength.
      </para>
     </listitem>
 
     <listitem>
      <para>
-      Add <link linkend="pgupgrade"><filename>/contrib/pg_upgrade</></link>
-      to support in-place upgrades from 8.3 or 8.4 to 9.0.
+      New high-performance implementation of the
+      <link linkend="SQL-LISTEN"><command>LISTEN</></link>/<link
+      linkend="SQL-NOTIFY"><command>NOTIFY</></link> feature.
+      Pending events are now stored in a memory-based queue rather than
+      a table.  Also, a <quote>payload</> string can be sent with each
+      event, rather than transmitting just an event name as before.
      </para>
     </listitem>
 
     <listitem>
      <para>
-      Multiple performance enhancements for specific types of queries,
-      including join elimination, which optimizes automatically generated
-      queries, such as those produced by object-relational mappers (ORMs).
+      New implementation of
+      <link linkend="SQL-VACUUM"><command>VACUUM FULL</></link>.
+      This command now rewrites the entire table and indexes, rather than
+      moving individual rows to compact space.  It is substantially faster
+      in most cases, and no longer results in index bloat.
      </para>
     </listitem>
 
     <listitem>
      <para>
-      <link linkend="ddl-constraints-exclusion">Exclusion constraints</link>
-      let database designers define uniqueness based on complex
-      criteria, including for non-scalar data such as time periods,
-      ranges and arrays.
+      New contrib module
+      <link linkend="pgupgrade"><filename>pg_upgrade</></link>
+      to support in-place upgrades from 8.3 or 8.4 to 9.0.
      </para>
     </listitem>
 
     <listitem>
      <para>
-      As part of our decade-long effort to eliminate the pain of VACUUM,
-      <link linkend="vacuum-for-space-recovery"><command>VACUUM FULL</></link>
-      is now substantially faster by rewriting the entire table and
-      indexes, rather than moving around single rows to compact space.
+      Multiple performance enhancements for specific types of queries,
+      including elimination of unnecessary joins.  This helps optimize some
+      automatically-generated queries, such as those produced by
+      object-relational mappers (ORMs).
      </para>
     </listitem>
 
     <listitem>
      <para>
-      <link linkend="using-explain"><command>EXPLAIN</command></link>
-      plans are now available in JSON, XML and YAML format, and include
+      <link linkend="SQL-EXPLAIN "><command>EXPLAIN</></link> enhancements.
+      The output is now available in JSON, XML, or YAML format, and includes
       buffer utilization and other data not previously available.
      </para>
     </listitem>
 
     <listitem>
      <para>
-      The <link linkend="hstore">HStore optional module</link> has been improved with new functions and greater
-      data capacity to make it a high-performance key-value store.
+      <link linkend="hstore"><filename>hstore</></link> improvements,
+      including new functions and greater data capacity.
      </para>
     </listitem>
 
 
     <listitem>
      <para>
-      <link linkend="guc-wal-level"><varname>wal_level</></link> should now be
-      set to <literal>archive</>, not <literal>on</>, to do continuous
-      archiving (Heikki Linnakangas)
+      Replace server parameter <varname>archive_mode</> with
+      <link linkend="guc-wal-level"><varname>wal_level</></link>
+      (Heikki Linnakangas)
      </para>
     </listitem>
 
     </para>
    </listitem>
 
-   <listitem>
-    <para>
-     Make <function>date_trunc</> truncate rather than round when reducing
-     fractional-seconds precision (Tom Lane)
-    </para>
-
-    <para>
-     The code always acted this way for integer-based dates/times.
-     Now float-based dates/times behave similarly.
-    </para>
-   </listitem>
-
    </itemizedlist>
 
   </sect3>
     </para>
    </listitem>
 
+   <listitem>
+    <para>
+     Make <function>date_trunc</> truncate rather than round when reducing
+     precision of fractional seconds (Tom Lane)
+    </para>
+
+    <para>
+     The code always acted this way for integer-based dates/times.
+     Now float-based dates/times behave similarly.
+    </para>
+   </listitem>
+
   </itemizedlist>
 
   </sect3>
 
      <listitem>
       <para>
+       Improve performance and reliability of EvalPlanQual rechecks in join
+       queries (Tom Lane)
+      </para>
+
+      <para>
+       <command>UPDATE</>, <command>DELETE</>, and <command>SELECT FOR
+       UPDATE/SHARE</> queries that involve joins will now behave much better
+       when encountering freshly-updated rows.
+      </para>
+     </listitem>
+
+     <listitem>
+      <para>
        Improve performance of <link
        linkend="SQL-TRUNCATE"><command>TRUNCATE</></link> when
-       used in the same transaction as table creation (Tom Lane)
+       the table was created or truncated earlier in the same transaction
+       (Tom Lane)
       </para>
      </listitem>
 
       </para>
 
       <para>
-       Outer joins where the inner side is unique and not referenced in
-       the query are unnecessary and are therefore now removed.  This will
+       Outer joins where the inner side is unique and not referenced above
+       the join are unnecessary and are therefore now removed.  This will
        accelerate many automatically generated queries, such as those created
        by object-relational mappers (ORMs).
       </para>
 
      <listitem>
       <para>
+       Improve the optimizer's choices about when to use materialize nodes,
+       and when to use sorting versus hashing for <literal>DISTINCT</>
+       (Tom Lane)
+      </para>
+     </listitem>
+
+     <listitem>
+      <para>
        Improve the optimizer's equivalence detection for expressions involving
        <type>boolean</> <literal>&lt;&gt;</> operators (Tom Lane)
       </para>
       </para>
 
       <para>
-       This avoids the rare error <quote>failed to make a valid plan</>.
+       This avoids the rare error <quote>failed to make a valid plan</>,
+       and should also improve planning speed.
       </para>
      </listitem>
 
        Add <link
        linkend="monitoring-stats-funcs-table"><function>pg_stat_reset_single_table_counters()</></link>
        and <function>pg_stat_reset_single_function_counters()</>
-       to allow resetting of the statistics counters for individual
+       to allow resetting the statistics counters for individual
        tables and indexes (Magnus Hagander)
       </para>
      </listitem>
        not combinations. All role and database settings are now stored
        in the new <structname>pg_db_role_setting</> system table. A new
        <application>psql</> command <literal>\drds</> shows these settings.
-       Backwards-compatible system views do not show combination settings.
+       The legacy system views <structname>pg_roles</>,
+       <structname>pg_shadow</>, and <structname>pg_user</>
+       do not show combination settings, and therefore no longer
+       completely represent the configuration for a user or database.
       </para>
-
      </listitem>
 
      <listitem>
 
      <listitem>
       <para>
+       Change server parameter <link
+       linkend="guc-log-temp-files"><varname>log_temp_files</></link> to
+       use default file size units of kilobytes (Robert Haas)
+      </para>
+
+      <para>
+       Previously this setting was interpreted in bytes if no units were
+       specified.
+      </para>
+     </listitem>
+
+     <listitem>
+      <para>
        Log changes of parameter values when <filename>postgresql.conf</> is
        reloaded (Peter Eisentraut)
       </para>
        settings, and is also very convenient for checking the effects of
        <filename>postgresql.conf</> edits.
       </para>
-
      </listitem>
 
      <listitem>
       <para>
-       Add proper permissions for custom server parameters (Tom Lane)
+       Properly enforce superuser permissions for custom server parameters
+       (Tom Lane)
       </para>
 
       <para>
-       Custom parameters can now only be created by super-users,
-       but then can be modified by ordinary users if the parameter's
-       permissions allow it. This makes custom parameters
-       appropriate for security-related settings. Previously, any user
-       could create or modify custom parameters.
+       Non-superusers can no longer issue <command>ALTER
+       ROLE</>/<command>DATABASE SET</> for parameters that are not currently
+       known to the server.  This allows the server to correctly check that
+       superuser-only parameters are only set by superusers.  Previously,
+       the <literal>SET</> would be allowed and then ignored at session start,
+       making superuser-only custom parameters practically useless.
       </para>
      </listitem>
 
-    <listitem>
-     <para>
-      Change server parameter <link
-      linkend="guc-log-temp-files"><varname>log_temp_files</></link> to
-      use default file size units of kilobytes (Robert Haas)
-     </para>
-
-     <para>
-      Previously this setting was interpreted in bytes if no units were
-      specified.
-     </para>
-    </listitem>
-
     </itemizedlist>
 
    </sect4>
      <para>
       Allow mixing of traditional and SQL-standard <link
       linkend="SQL-LIMIT"><literal>LIMIT</>/<literal>OFFSET</></link>
-      syntax in the same query (Tom Lane)
+      syntax (Tom Lane)
      </para>
     </listitem>
 
    </itemizedlist>
 
    <sect4>
-    <title><command>ALTER</></title>
+    <title><command>ALTER TABLE</></title>
 
     <itemizedlist>
 
      <listitem>
       <para>
-       Add <link linkend="SQL-ALTERDEFAULTPRIVILEGES"><command>ALTER
-       DEFAULT PRIVILEGES</></link> command to control privileges
-       of objects created later (Petr Jelinek)
-      </para>
-
-      <para>
-       This greatly simplifies the assignment of object privileges in a
-       complex database application.  Default privileges can be set for
-       tables, views, sequences, and functions. Defaults may be assigned on a
-       per-schema basis, or database-wide.
-      </para>
-     </listitem>
-
-     <listitem>
-      <para>
-       Implement <literal>IF EXISTS</> for <literal>DROP COLUMN</> and
-       <literal>DROP CONSTRAINT </> (Andres Freund)
+       Implement <literal>IF EXISTS</> for <literal>ALTER TABLE DROP COLUMN</>
+       and <literal>ALTER TABLE DROP CONSTRAINT </> (Andres Freund)
       </para>
      </listitem>
 
        and makes it easier to utilize database roles for application
        data security.
       </para>
+     </listitem>
 
+     <listitem>
+      <para>
+       Add <link linkend="SQL-ALTERDEFAULTPRIVILEGES"><command>ALTER
+       DEFAULT PRIVILEGES</></link> command to control privileges
+       of objects created later (Petr Jelinek)
+      </para>
+
+      <para>
+       This greatly simplifies the assignment of object privileges in a
+       complex database application.  Default privileges can be set for
+       tables, views, sequences, and functions. Defaults may be assigned on a
+       per-schema basis, or database-wide.
+      </para>
      </listitem>
 
      <listitem>
       <para>
        Formerly, any database user could read or modify any large object.
        Read and write permissions can now be granted and revoked per
-       large object.
+       large object, and the ownership of large objects is tracked.
       </para>
      </listitem>
 
      </para>
 
      <para>
-      Global catalogs still cannot be clustered.
+      Shared catalogs still cannot be clustered.
      </para>
     </listitem>
 
 
      <listitem>
       <para>
+       By default, multicolumn indexes are now named after all their columns;
+       and index expression columns are now named based on their expressions
+       (Tom Lane)
+      </para>
+     </listitem>
+
+     <listitem>
+      <para>
        Reindexing shared system catalogs is now fully transactional
        and crash-safe (Tom Lane)
       </para>
 
     <listitem>
      <para>
-      Tighten input requirements for <type>int2vector</> input (Caleb
+      Tighten input checking for <type>int2vector</> values (Caleb
       Welton)
      </para>
     </listitem>
 
     <listitem>
      <para>
-      Fix <function>to_char()</> to output the proper localized
-      numeric and monetary characters on <productname>Windows</>
-      (Hiroshi Inoue, Itagaki Takahir, Bruce Momjian)
+      Fix <function>to_char()</> to output localized numeric and monetary
+      strings in the correct encoding on <productname>Windows</>
+      (Hiroshi Inoue, Itagaki Takahiro, Bruce Momjian)
      </para>
     </listitem>
 
      <listitem>
       <para>
        Allow aggregate functions to use <link
-       linkend="syntax-aggregates"><literal>ORDER BY</></> (Andrew
-       Gierth)
+       linkend="syntax-aggregates"><literal>ORDER BY</></> (Andrew Gierth)
       </para>
 
       <para>
 
      <listitem>
       <para>
+       Multi-argument aggregate functions can now use <literal>DISTINCT</>
+       (Andrew Gierth)
+      </para>
+     </listitem>
+
+     <listitem>
+      <para>
        Add the <link
        linkend="functions-aggregate-table"><function>string_agg()</></link>
        aggregate function to combine values into a single
 
      <listitem>
       <para>
-       Make the <link linkend="information-schema">information_schema</link>
-       views properly display maximum octet lengths for <type>char</> and
-       <type>varchar</> columns, as well as the proper precision for datetime
-       columns (Peter Eisentraut)
+       Update the <link linkend="information-schema">information_schema</link>
+       views to conform to SQL:2008
+       (Peter Eisentraut)
+      </para>
+     </listitem>
+
+     <listitem>
+      <para>
+       Make the <literal>information_schema</> views correctly display maximum
+       octet lengths for <type>char</> and <type>varchar</> columns (Peter
+       Eisentraut)
       </para>
      </listitem>
 
      <listitem>
       <para>
-       Speed up information_schema privilege views (Joachim Wieland)
+       Speed up <literal>information_schema</> privilege views
+       (Joachim Wieland)
       </para>
      </listitem>
 
 
      <listitem>
       <para>
+       Avoid throwing an unnecessary error for an invalid record reference
+       (Tom Lane)
+      </para>
+
+      <para>
+       An error is now thrown only if the reference is actually fetched,
+       rather than whenever the enclosing expression is reached.  For
+       example, many people have tried to do this in triggers:
+<programlisting>
+if TG_OP = 'INSERT' AND NEW.col1 = ... then
+</programlisting>
+       This will now actually work as expected.
+      </para>
+     </listitem>
+
+     <listitem>
+      <para>
        Improve PL/pgSQL's ability to handle row types with dropped columns
        (Pavel Stehule)
       </para>
 
       <para>
        <type>Bytea</> values passed into PL/Python are now represented as
-       binary, rather than the PostgreSQL <type>bytea</> text format. Null
-       bytes are now also output properly from PL/Python. <type>boolean</>
-       and <type>numeric</> value passing in PL/Python was also improved.
+       binary, rather than the PostgreSQL <type>bytea</> text format.
+       <type>Bytea</> values containing null bytes are now also output
+       properly from PL/Python.  Passing of boolean, integer, and float
+       values was also improved.
       </para>
      </listitem>
 
      <listitem>
       <para>
-       Add <link linkend="plpython-arrays">array parameter/return
-       support</link> to PL/Python (Peter Eisentraut)
+       Support <link linkend="plpython-arrays">arrays</link> as parameters and
+       return values in PL/Python (Peter Eisentraut)
       </para>
      </listitem>
 
      <listitem>
       <para>
-       Improve mapping of domains to Python base types in PL/Python (Peter Eisentraut)
+       Improve mapping of SQL domains to Python types (Peter Eisentraut)
       </para>
      </listitem>
 
       </para>
 
       <para>
-       Previously the <application>pg_ctl</> process could have been mistakenly
-       identified as a running <application>postmaster</> based on a stale
-       <application>postmaster</> lock file, resulting in a transient failure
-       to start the database.
+       Previously, <application>pg_ctl</>'s parent process could have been
+       mistakenly identified as a running <application>postmaster</> based on
+       a stale <application>postmaster</> lock file, resulting in a transient
+       failure to start the database.
       </para>
      </listitem>
 
 
      <listitem>
       <para>
+       Avoid extra system calls to block and unblock <literal>SIGPIPE</>
+       in <application>libpq</>, on platforms that offer alternative methods
+       (Jeremy Kerr)
+      </para>
+     </listitem>
+
+     <listitem>
+      <para>
        When a <link linkend="libpq-pgpass"><filename>.pgpass</></link>-supplied
        password fails, mention where the password came from in the error
        message (Bruce Momjian)
 
       <listitem>
        <para>
-        Add <application>ecpg</> out-of-scope cursor support in native mode
+        Add out-of-scope cursor support in <application>ecpg</>'s native mode
         (Boszormenyi Zoltan)
        </para>
 
        <para>
         This allows <command>DECLARE</> to use variables that are not in
         scope when <command>OPEN</> is called. This facility already existed
-        in <application>ecpg</> Informix-compatibility mode.
+        in <application>ecpg</>'s Informix-compatibility mode.
        </para>
       </listitem>
 
       <listitem>
        <para>
-        Allow dynamic <application>ecpg</> cursor names (Boszormenyi Zoltan)
+        Allow dynamic cursor names in <application>ecpg</> (Boszormenyi Zoltan)
        </para>
       </listitem>
 
 
       <para>
        These are similar to the existing <literal>all</>, <literal>install</>,
-       and <literal>installcheck</> targets, but they build <acronym>HTML</>
-       documentation, build and test <filename>contrib</>, and test
-       server-side languages and <application>ecpg</>.
+       and <literal>installcheck</> targets, but they also build
+       <acronym>HTML</> documentation, build and test <filename>contrib</>,
+       and test server-side languages and <application>ecpg</>.
       </para>
      </listitem>
 
      <listitem>
       <para>
-       Add data and documentation location control to <link
+       Add data and documentation installation location control to <link
        linkend="xfunc-c-pgxs"><acronym>PGXS</></link> Makefiles
        (Mark Cave-Ayland)
       </para>
 
     <listitem>
      <para>
-      Add a Makefile rule to build documentation as a single text file
-      (Bruce Momjian)
+      Add Makefile rules to build documentation as a single <acronym>HTML</>
+      file or as a single plain-text file
+      (Peter Eisentraut, Bruce Momjian)
      </para>
     </listitem>
 
       </para>
      </listitem>
 
-     <listitem>
-      <para>
-       Support multiprocessor compilation using <productname>Microsoft Visual
-       C</> (Magnus Hagander)
-      </para>
-     </listitem>
-
     </itemizedlist>
 
    </sect4>
 
     <listitem>
      <para>
-      Improve the ability to translate <application>psql</> strings
+      Automatically generate the initial contents of
+      <structname>pg_attribute</> for <quote>bootstrapped</> catalogs
+      (John Naylor)
+     </para>
+
+     <para>
+      This greatly simplifies changes to these catalogs.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Split the processing of
+      <command>INSERT</>/<command>UPDATE</>/<command>DELETE</> operations out
+      of <filename>execMain.c</> (Marko Tiikkaja)
+     </para>
+
+     <para>
+      Updates are now executed in a separate ModifyTable node.  This change is
+      necessary infrastructure for future improvements.
+     </para>
+    </listitem>
+
+    <listitem>
+     <para>
+      Simplify translation of <application>psql</>'s SQL help text
       (Peter Eisentraut)
      </para>
     </listitem>
 
     <listitem>
      <para>
-      Reduce the length of some file names so that all file paths in the
+      Reduce the lengths of some file names so that all file paths in the
       distribution tarball are less than 100 characters (Tom Lane)
      </para>
 
 
     <listitem>
      <para>
-      Restructure the <acronym>HTML</> documentation build
-      <filename>Makefile</> rules (Peter Eisentraut)
+      Restructure the <acronym>HTML</> documentation
+      <filename>Makefile</> rules to make their dependency checks work
+      correctly, avoiding unnecessary rebuilds (Peter Eisentraut)
      </para>
     </listitem>
 
     <listitem>
      <para>
       Use <productname>DocBook</> <acronym>XSL</> stylesheets for man page
-      building (Peter Eisentraut)
+      building, rather than <productname>Docbook2X</> (Peter Eisentraut)
+     </para>
+
+     <para>
+      This changes the set of tools needed to build the man pages.
      </para>
     </listitem>
 
 
     <listitem>
      <para>
-      Improve error context support in PL/Perl (Alexey Klyukin)
+      Improve error context reports in PL/Perl (Alexey Klyukin)
      </para>
     </listitem>
 
        Restructure use of <literal>LDFLAGS</> to be more consistent
        across platforms (Tom Lane)
       </para>
+
+      <para>
+       <literal>LDFLAGS</> is now used for linking both executables and shared
+       libraries, and we add on <literal>LDFLAGS_EX</> when linking
+       executables, or <literal>LDFLAGS_SL</> when linking shared libraries.
+      </para>
      </listitem>
 
     </itemizedlist>
 
      <listitem>
       <para>
-       Simplify use of <productname>C++</> functions in backend code (Kurt
-       Harriman, Peter Eisentraut)
+       Make backend header files safe to include in <productname>C++</>
+       (Kurt Harriman, Peter Eisentraut)
       </para>
 
       <para>
 
      <listitem>
       <para>
+       Change calling convention for <function>SearchSysCache()</> and related
+       functions to avoid hard-wiring the maximum number of cache keys
+       (Robert Haas)
+      </para>
+
+      <para>
+       Existing calls will still work for the moment, but can be expected to
+       break in 9.1 or later if not converted.
+      </para>
+     </listitem>
+
+     <listitem>
+      <para>
        Require calls of <function>fastgetattr()</> and
-       <function>heap_getattr()</> backend macros to use a non-NULL fourth
+       <function>heap_getattr()</> backend macros to provide a non-NULL fourth
        argument (Robert Haas)
       </para>
      </listitem>
 
      <listitem>
       <para>
-       Add parser hooks to access column and parameter references in
-       queries (Tom Lane)
+       Add parser hooks for processing ColumnRef and ParamRef nodes
+       (Tom Lane)
       </para>
      </listitem>
 
      </para>
 
      <para>
-      This filter dictionary removes accents from letters, which
+      This filtering dictionary removes accents from letters, which
       makes full-text searches over multiple languages much easier.
      </para>
     </listitem>