]> granicus.if.org Git - postgresql/commitdiff
Edits to 9.1 release notes.
authorRobert Haas <rhaas@postgresql.org>
Thu, 24 Mar 2011 20:57:12 +0000 (16:57 -0400)
committerRobert Haas <rhaas@postgresql.org>
Thu, 24 Mar 2011 20:58:01 +0000 (16:58 -0400)
Add some new items and some additional details to existing items, mostly
by cribbing from the 9.1alpha notes.  Some additional clarifications and
corrections elsewhere, and a few typo fixes.

doc/src/sgml/release-9.1.sgml

index 10f1e6ae6911805e73b674003d44c2e5f4bf2731..1a1bac1e10dc4c8eabf874d28760b3a2235b9e04 100644 (file)
@@ -73,7 +73,7 @@
 
      <listitem>
       <para>
-       Disallow functional or attribute string data type casts for
+       Disallow function-style and attribute-style data type casts for
        composite types (Tom Lane)
       </para>
 
 
       <listitem>
        <para>
-        Support <literal>RIGHT</> and <literal>FULL OUTER JOIN</> in
-        hash joins (Tom Lane)
+        Allow <literal>FULL OUTER JOIN</literal> to be implemented as a
+        hash join, and allow either side of a <literal>LEFT OUTER JOIN</>
+        or <literal>RIGHT OUTER JOIN</> to be hashed (Tom Lane)
        </para>
 
        <para>
-        Previously hash joins could not be considered for outer joins;
-        this provides additional query optimization possibilities.
-        **What about <literal>LEFT</> joins?
+        Previously <literal>FULL OUTER JOIN</literal> could only be
+        implemented as a merge join, and <literal>LEFT OUTER JOIN</literal>
+        and <literal>RIGHT OUTER JOIN</literal> could has only the nullable
+        side of the join.  These changes provide additional query optimization
+        possibilities.
        </para>
       </listitem>
 
        </para>
       </listitem>
 
+      <listitem>
+       <para>
+        Reduce the memory requirement for large ispell dictionaries
+        (Pavel Stehule, Tom Lane)
+       </para>
+      </listitem>
+
      </itemizedlist>
 
     </sect4>
 
      <listitem>
       <para>
-       Add a <link
-       linkend="guc-synchronous-replication"><varname>synchronous_replication</></link>
-       option (Simon Riggs, Fujii Masao)
+       Allow synchronous replication (Simon Riggs, Fujii Masao)
       </para>
 
       <para>
-       This allows the primary to wait for the standby to receive
-       transaction information before acknowledging the commit.
+       One standby at a time can take the role of the synchronous standby,
+       as controlled by the
+       <link linkend="guc-synchronous-standby-names"><varname>synchronous_standby_names</varname></link>
+       setting.  Synchronous replication can be enabled or disabled on a
+       per-transaction basis using the
+       <link linkend="guc-synchronous-replication"><varname>synchronous_replication</></link>
+       setting.  This allows the primary to wait for a standby to write the
+       transaction information to disk before acknowledging the commit.
       </para>
      </listitem>
 
       <para>
        Add variable <link
        linkend="guc-hot-standby-feedback"><varname>hot_standby_feedback</></link>
-       to enable standbys to communicate their needed snapshots to
-       the primary (Simon Riggs)
+       to enable standbys to postpone cleanup of old row versions on the
+       primary (Simon Riggs)
       </para>
 
       <para>
 
        <para>
         These named restore points can be specified as recovery
-        targets in <filename>recovery.conf</>.
+        targets using the new <filename>recovery.conf</> setting
+        <link linkend="recovery-target-name"><varname>recovery_target_name</></link>
        </para>
       </listitem>
 
         clauses to be fed into <command>INSERT</>, <command>UPDATE</>,
         <command>DELETE </> statements (Marko Tiikkaja, Hitoshi Harada)
        </para>
-
-       <para>
-        Specifically, let <command>SELECT</> query results be fed
-        into <command>INSERT</>, <command>UPDATE</>, <command>DELETE</>
-        statements.
-       </para>
       </listitem>
 
       <listitem>
 
        <para>
         Some other database system already allowed this behavior, and
-        because of the primary key, the result is unambiguous..
+        because of the primary key, the result is unambiguous.
        </para>
       </listitem>
 
        </para>
       </listitem>
 
+      <listitem>
+       <para>
+        Fix ordinary queries with rules to use the same snapshot behavior
+        as <command>EXPLAIN ANALYZE</> (Marko Tiikkaja)
+       </para>
+
+       <para>
+        Previously <command>EXPLAIN ANALYZE</> used a slightly different
+        snapshot for queries involving rules.  The <command>EXPLAIN ANALYZE</>
+        behavior was judged to be more logical.
+       </para>
+      </listitem>
+
      </itemizedlist>
 
     <sect4>
         Add support for more object types in <command>ALTER ... SET
         SCHEMA</> commands (Dimitri Fontaine)
        </para>
+
+       <para>
+        This command is now supported for conversions, operators, operator
+        classes, operator families, text search configurations, and text search
+        dictionaries, text search parsers, and text search templates.
+       </para>
       </listitem>
 
      </itemizedlist>
       <listitem>
        <para>
         Add <link linkend="SQL-ALTERTABLE"><command>ALTER TABLE ...
-        ADD UNIQUE</></link>/<literal>PRIMARY KEY USING INDEX</>
+        ADD UNIQUE/PRIMARY KEY USING INDEX</command></link>
         (Gurjeet Singh)
        </para>
 
        <para>
-        This allows existing unique indexes to be used as primary
-        keys, including indexes that were created concurrently.
+        This allows a primary key or unique constraint to be added using an
+        existing unique index, including a concurrently created unique index.
        </para>
       </listitem>
 
 
       <listitem>
        <para>
-        Allow <link linkend="SQL-ALTERTABLE"><command>ALTER TABLE</></link>
-        ... <literal>SET DATA TYPE</> to avoid table rewrites in
+        Allow <link linkend="SQL-ALTERTABLE"><command>ALTER TABLE
+        ... SET DATA TYPE</command></link> to avoid table rewrites in
         appropriate cases (Noah Misch, Robert Haas)
        </para>
 
        <para>
         For example, converting a varchar column to text no longer
-        requires a rewrite of the table.  **Length changes require
-        rewrite?
+        requires a rewrite of the table.  However, increasing the length
+        constraint on a varchar column still requires a table rewrite.
        </para>
       </listitem>
 
 
      <listitem>
       <para>
-       Add a true <link linkend="xact-serializable"><literal>serializable</>
-       </link> isolation level (Kevin Grittner, Dan Ports)
+       Add a true <link linkend="xact-serializable"><literal>serializable</></link> isolation level (Kevin Grittner, Dan Ports)
       </para>
 
       <para>
-       Previously asking for serializable isolation produced
-       snapshot isolation, which had certain documented anomalies.
+       Previously asking for serializable isolation guaranteed only that
+       a single MVCC snapshot would be used for the entire transaction, which
+       allowed certain documented anomalies.
        The old snapshot isolation level is still accessible by
        requesting the <link linkend="xact-repeatable-read"><literal>REPEATABLE
        READ</></link> isolation level.
        </para>
       </listitem>
 
-      <listitem>
-       <para>
-        Fix <command>EXPLAIN ANALYZE</>
-        with rules to use the same snapshot behavior as ordinary
-        queries (Marko Tiikkaja)
-       </para>
-
-       <para>
-        Previously <command>EXPLAIN ANALYZE</> used a slightly different
-        snapshot for queries involving rules.
-       </para>
-      </listitem>
-
      </itemizedlist>
 
     </sect4>
 
     </sect4>
 
+    <sect4>
+     <title><link linkend="SQL-CLUSTER"><command>CLUSTER</></link></title>
+
+     <itemizedlist>
+
+      <listitem>
+       <para>
+        Allow CLUSTER to sort the table rather than scanning the index
+        when it seems likely to be cheaper (Leonardo Francalanci)
+       </para>
+      </listitem>
+
+     </itemizedlist>
+
+    </sect4>
+
     <sect4>
      <title>Indexes</title>
 
        </para>
       </listitem>
 
+      <listitem>
+       <para>
+        Allow <link linkend="GIN"><acronym>GIN</> indexes</link> to
+        better recognize duplicate search entries (Tom Lane)
+       </para>
+
+       <para>
+        This reduces the cost of index scans, especially in cases where
+        it avoids unnecessary full index scans.
+       </para>
+      </listitem>
+
       <listitem>
        <para>
         Fix <link linkend="GiST"><acronym>GiST</> indexes</link> to be fully
       </para>
      </listitem>
 
+     <listitem>
+      <para>
+       Allow binary I/O on type <type>void</type> (Radoslaw Smogura)
+      </para>
+     </listitem>
+
+     <listitem>
+      <para>
+       Improve hypotenuse calculations for geometric operators (Paul Matthews)
+      </para>
+
+      <para>
+       This avoids unnecessary overflows, and may also be more accurate.
+      </para>
+     </listitem>
+
     </itemizedlist>
 
     <sect4>
        </para>
 
        <para>
-        **Needs description.
+        This is analogous to the existing facility that allows casting a row
+        type to a supertable's row type.
        </para>
       </listitem>
 
        </para>
 
        <para>
-        This is used for xpath matching.
+        These are used for xpath matching.
        </para>
       </listitem>
 
 
        <para>
         These check whether the input is properly-formed <acronym>XML</>.
+        They supersede functionality that was previously available only using
+        <filename>contrib/xml2</filename>.
        </para>
       </listitem>
 
        </para>
 
        <para>
-        **Why were these added?
+        These improve compatibility with other database products.
        </para>
       </listitem>
 
        </para>
 
        <para>
-        This function is used to obtain comments on objects.  **Alvaro,
-        why is this useful for pg_depend?
+        This function is used to obtain comments on objects.
        </para>
       </listitem>
 
    <sect3>
     <title>Server-Side Languages</title>
 
-    <itemizedlist>
+    <sect4>
+     <title><link linkend="plpgsql">PL/pgSQL</link> Server-Side Language</title>
 
-     <listitem>
-      <para>
-       Add <link linkend="plpgsql-foreach-array"><command>FOREACH IN
-       ARRAY</></link> to <link linkend="plpgsql">PL/pgSQL</link> to
-       allow array iteration (Pavel Stehule)
-      </para>
+     <itemizedlist>
 
-      <para>
-       This is more efficient than previous methods.
-      </para>
-     </listitem>
+      <listitem>
+       <para>
+        Add <link linkend="plpgsql-foreach-array"><command>FOREACH IN
+        ARRAY</></link> to <link linkend="plpgsql">PL/pgSQL</link> to
+        allow array iteration (Pavel Stehule)
+       </para>
+
+       <para>
+        This is more efficient than previous methods.
+       </para>
+      </listitem>
+
+      <listitem>
+       <para>
+        Add <link linkend="plpgsql-foreach-array"><command>FOREACH IN
+        ARRAY</></link> to <link linkend="plpgsql">PL/pgSQL</link> to
+        allow array iteration (Pavel Stehule)
+       </para>
+
+       <para>
+        This is more efficient than previous methods.
+       </para>
+      </listitem>
+
+      <listitem>
+       <para>
+        Allow <command>RAISE</command> without parameters to be caught in
+        the same places that could catch a <command>RAISE ERROR</command>
+        from the same location.
+       </para>
+
+       <para>
+        The new behavior is more consistent.
+       </para>
+      </listitem>
 
     </itemizedlist>
 
+    </sect4>
+
     <sect4>
      <title><link linkend="plperl">PL/Perl</link> Server-Side Language</title>
 
        </para>
       </listitem>
 
+      <listitem>
+       <para>
+        <function>plpy.Fatal</function> now raises <literal>FATAL</>, rather
+        than <literal>ERROR</literal> (Jan Urbanski)
+       </para>
+
+       <para>
+        The old behavior was incorrect.
+       </para>
+      </listitem>
+
       <listitem>
        <para>
         Overhaul of PL/Python (Jan Urbanski)
        </para>
       </listitem>
 
+      <listitem>
+       <para>
+        Make <application>psql</application> distinguish between unique
+        indices and unique constraints (Josh Kupershmidt)
+       </para>
+      </listitem>
+
       <listitem>
        <para>
          Additional tab completion of <application>psql</> variables (Pavel
 
     </sect4>
 
+    <sect4>
+     <title><link linkend="ecpg"><application>ECPG</></link></title>
+
+     <itemizedlist>
+
+      <listitem>
+       <para>
+         Allow ecpg to accept dynamic cursor names even in
+         <literal>WHERE CURRENT OF</literal> clauses
+       </para>
+      </listitem>
+
+     </itemizedlist>
+    </sect4>
+
    </sect3>
 
    <sect3>
 
       <listitem>
        <para>
-        Add <link linkend="extension">extensions</link> which allow
-        packaged additions to <productname>PostgreSQL</> (Dimitri
+        Add <link linkend="extension">extensions</link> which simplify
+        packaging of additions to <productname>PostgreSQL</> (Dimitri
         Fontaine, Tom Lane)
        </para>
 
      <listitem>
       <para>
        Add <link linkend="file-fdw"><filename>contrib/file_fdw</></link>
-       foreign-data wrapper for reading files via <command>COPY
-       </>(Shigeru Hanada)
+       foreign-data wrapper (Shigeru Hanada)
       </para>
 
       <para>
-       This adds foreign table support for flat-file.
+       Foreign tables using this foreign data wrapper will read flat files
+       in a matter very similar to <command>COPY</>.
       </para>
      </listitem>
 
       </para>
      </listitem>
 
+     <listitem>
+      <para>
+       Allow <link linkend="intarray"><filename>contrib/intarray</></link>
+       to work properly on multi-dimensional arrays (Tom Lane)
+      </para>
+     </listitem>
+
+     <listitem>
+      <para>
+       In
+       <link linkend="intarray"><filename>contrib/intarray</></link>,
+       avoid errors complaining about the presence nulls in cases where no
+       nulls are actually present (Tom Lane)
+      </para>
+     </listitem>
+
+     <listitem>
+      <para>
+       In
+       <link linkend="intarray"><filename>contrib/intarray</></link>,
+       fix behavior of containment operators with respect to empty arrays
+       (Tom Lane)
+      </para>
+
+      <para>
+       Empty arrays are now correctly considered to be contained in any other
+       array.
+      </para>
+     </listitem>
+
      <listitem>
       <para>
        In <link linkend="xml2"><filename>contrib/xml2</></link>, remove
       </para>
      </listitem>
 
+     <listitem>
+      <para>
+       In <link linkend="pageinspect"><filename>contrib/pageinspect</></link>,
+       fix heap_page_item to return infomasks as 32-bit values (Alvaro Herrera)
+      </para>
+
+      <para>
+       This avoids returning negative values, which was confusing.  The
+       underlying value is a 16-bit unsigned integer.
+      </para>
+     </listitem>
+
     </itemizedlist>
 
     <sect4>