]> granicus.if.org Git - postgresql/commitdiff
Join in the fun of editorializing on the alpha release notes.
authorTom Lane <tgl@sss.pgh.pa.us>
Sat, 19 Dec 2009 02:38:54 +0000 (02:38 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Sat, 19 Dec 2009 02:38:54 +0000 (02:38 +0000)
doc/src/sgml/release-8.5.sgml

index 27d598f603923d873b545232e2a63f7795ca296b..668c2adc2fbc7111b2ac98bfdd3f958afb3353e4 100644 (file)
@@ -1,4 +1,4 @@
-<!-- $PostgreSQL: pgsql/doc/src/sgml/release-8.5.sgml,v 1.11 2009/12/19 00:05:27 rhaas Exp $ -->
+<!-- $PostgreSQL: pgsql/doc/src/sgml/release-8.5.sgml,v 1.12 2009/12/19 02:38:54 tgl Exp $ -->
 
 <sect1 id="release-8-5">
   <title>Release 8.5alpha3</title>
   <sect2>
     <title>Testing</title>
     <para>
-      The primary reason we release alphas is to get users to test new 
+      The primary reason we release alphas is to get users to test new
       features as early as possible.  If you are interested in helping
-      with organized testing, please see 
-      <ulink url="http://wiki.postgresql.org/wiki/HowToBetaTest">the 
+      with organized testing, please see
+      <ulink url="http://wiki.postgresql.org/wiki/HowToBetaTest">the
       testing information page</ulink>.
       </para>
   </sect2>
@@ -77,8 +77,8 @@
        <listitem>
         <para>
          <emphasis>Performance and behavioral improvements in UPDATE,
-         DELETE, and SELECT FOR UPDATE/SHARE queries with
-         joins. Various corner-cases could result in duplicated output
+         DELETE, and SELECT FOR UPDATE/SHARE queries with joins.
+         Fix various corner cases that could have resulted in duplicated output
          rows. Set-returning functions are now prohibited in the
          target list of SELECT FOR UPDATE/SHARE. FOR UPDATE does not
          propagate into a WITH query anymore.</emphasis>
@@ -86,7 +86,7 @@
        </listitem>
        <listitem>
         <para>
-         <emphasis>Fixed for SELECT FOR UPDATE/SHARE in conjuction with LIMIT.
+         <emphasis>Fix SELECT FOR UPDATE/SHARE in conjunction with LIMIT.
           Previously, it could return fewer rows than the limit specified.</emphasis>
         </para>
        </listitem>
         </para>
         <para>
          <emphasis>Behavioral change: formerly, agg(DISTINCT x) dropped null values of
-          x unconditionally. Now, it does so only if the agg transition
+          x unconditionally. Now, it does so only if the aggregate's transition
           function is strict; otherwise nulls are treated as DISTINCT
           normally would, i.e., you get one copy.</emphasis>
         </para>
       <itemizedlist>
        <listitem>
         <para>
-         <emphasis>Allow rewriting ALTER TABLE to skip WAL logging.</emphasis>
+         <emphasis>Allow rewriting forms of ALTER TABLE to skip WAL
+          logging.</emphasis>
         </para>
        </listitem>
        <listitem>
         <para>
-         <emphasis>Speed up information schema privilege views.</emphasis>
+         <emphasis>Speed up INFORMATION_SCHEMA's privilege views.</emphasis>
         </para>
        </listitem>
        <listitem>
           interruptions.</emphasis>
         </para>
        </listitem>
-       <listitem>
-        <para>
-         <emphasis>Error when a specified connection service is not found in
-          pg_service.conf, instead of ignoring it.</emphasis>
-        </para>
-       </listitem>
        <listitem>
         <para>
          <emphasis>Add YAML to list of EXPLAIN formats.</emphasis>
          <emphasis>Teach the regular expression functions to do case-insensitive
           matching and locale-dependent character classification properly
           when the database encoding is UTF8. This previously only worked
-          correct for single-byte encodings and is still broken for other
+          correctly for single-byte encodings.  It is still broken for other
           multibyte encodings.</emphasis>
         </para>
        </listitem>
         </listitem>
       </itemizedlist>
     </sect3>
+    <sect3>
+      <title>libpq</title>
+      <itemizedlist>
+       <listitem>
+        <para>
+         <emphasis>Throw error when a specified connection service name is not
+          found in pg_service.conf, instead of ignoring it.</emphasis>
+        </para>
+       </listitem>
+       <listitem>
+        <para>
+         Make libpq reject non-numeric and out-of-range port numbers with a
+         suitable error message.
+        </para>
+       </listitem>
+      </itemizedlist>
+    </sect3>
     <sect3>
       <title>psql</title>
       <itemizedlist>
           go, ie, a place where a column value or parameter would be legal,
           instead of the former behavior that would replace any textual match
           including table names and column aliases (leading to syntax errors
-          later on). PL/pgSQL variable names that match fully-reserved words
-          will now need to be quoted. On the other hand, a number of
-          PL/pgSQL-specific words were de-reserved.</emphasis>
+          later on).</emphasis>
         </para>
         <para>
-         <emphasis>The variable resolution behavior is by default not backward
-          compatible, but can be configured; see documentation.</emphasis>
+         <emphasis>When a name could refer either to a PL/pgSQL variable or a
+          table column, PL/pgSQL formerly always assumed the variable was
+          meant, sometimes resulting in surprising behavior.  Now, PL/pgSQL
+          can assume the variable is meant, or assume the table column is
+          meant, or throw an error in ambiguous cases.  For safety the default
+          is to throw error.  To configure this see <xref
+          linkend="plpgsql-var-subst">.</emphasis>
         </para>
         <para>
-         <emphasis>Error reporting is much nicer and accurate.</emphasis>
+         <emphasis>Error reporting is much nicer: it no longer shows edited
+          versions of statements that look significantly different from what
+          you wrote.</emphasis>
         </para>
         <para>
-         <emphasis>The argument of WHERE CURRENT OF can be a PL/pgSQL cursor variable.</emphasis>
+         <emphasis>Note that this change affects the set of keywords that are
+          reserved in PL/pgSQL (i.e., cannot be the name of a PL/pgSQL
+          variable).  Now, all keywords shown as reserved in <xref
+          linkend="sql-keywords-appendix"> are reserved for PL/pgSQL purposes
+          as well.  However, many PL/pgSQL-only keywords that were formerly
+          treated as reserved no longer are.  As in regular SQL, you can
+          double-quote a variable's name if you want to use a name that
+          conflicts with a reserved keyword.</emphasis>
         </para>
        </listitem>
        <listitem>
        </listitem>
        <listitem>
         <para>
-         <emphasis>Python 3 support in PL/Python; behaves more or less unchanged
-          compared to Python 2, but the new language variant is called
-          plpython3u.</emphasis>
+         <emphasis>Add Python 3 support to PL/Python.  It behaves more or less
+          unchanged compared to Python 2, but the new language variant is
+          called plpython3u.</emphasis>
         </para>
        </listitem>
        <listitem>
        </listitem>
        <listitem>
         <para>
-         Allow cursor commands MOVE FORWARD n, MOVE BACKWARD n, 
+         Allow cursor commands MOVE FORWARD n, MOVE BACKWARD n,
          MOVE FORWARD ALL, MOVE BACKWARD ALL in PL/pgSQL.
         </para>
        </listitem>
          <emphasis>Add \shell and \setshell meta commands to pgbench.</emphasis>
         </para>
         <para>
-         <emphasis>\shell command runs an external shell command. \setshell also does
-          the same and sets the result to a variable.</emphasis>
+         <emphasis>\shell runs an external shell command. \setshell
+          does the same and assigns the result to a variable.</emphasis>
         </para>
        </listitem>
        <listitem>
       </itemizedlist>
     </sect3>
     <sect3>
-      <title>Development</title>
+      <title>ecpg</title>
       <itemizedlist>
        <listitem>
         <para>
         Make ECPG more robust against applications freeing strings.
        </para>
       </listitem>
-      <listitem>
-       <para>
-        Make libpq reject non-numeric and out-of-range port numbers with a
-        suitable error message.
-       </para>
-      </listitem>
-        <listitem>
-          <para>
-            Functions which conflict with C++ reserved words have been renamed,
-            making backend header files now safe to use with C++ libraries.
-          </para>
-        </listitem>
-        <listitem>
-          <para>
-            Add man pages for SPI functions.
-          </para>
-        </listitem>
         <listitem>
           <para>
             ECPG now includes a STRING datatype for Informix compatibility
         <para>
          Derived files that are shipped in the distribution used to be
          built in the source directory even for out-of-tree
-         builds. They are now also built in the build tree. This
+         builds. They are now built in the build tree. This
          should be more convenient for certain developers' workflows.
         </para>
        </listitem>
-       <listitem>
-        <para>
-         Translations were updated.
-        </para>
-       </listitem>
+        <listitem>
+          <para>
+            Functions which conflict with C++ reserved words have been renamed,
+            making backend header files now safe to use with C++ libraries.
+          </para>
+        </listitem>
+        <listitem>
+          <para>
+            Add man pages for SPI functions.
+          </para>
+        </listitem>
         <listitem>
           <para>
             Upgrade to Autoconf 2.63 (not relevant to users of distribution