Edits to 9.1 release notes.

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.
This commit is contained in:
Robert Haas 2011-03-24 16:57:12 -04:00
parent 3bba9ce945
commit 7b630e7b8e

View 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>
@ -293,14 +293,17 @@
<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>
@ -323,6 +326,13 @@
</para>
</listitem>
<listitem>
<para>
Reduce the memory requirement for large ispell dictionaries
(Pavel Stehule, Tom Lane)
</para>
</listitem>
</itemizedlist>
</sect4>
@ -585,14 +595,18 @@
<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>
@ -600,8 +614,8 @@
<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>
@ -712,7 +726,8 @@
<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>
@ -786,12 +801,6 @@
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>
@ -804,7 +813,7 @@
<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>
@ -822,6 +831,19 @@
</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>
@ -912,6 +934,12 @@
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>
@ -926,13 +954,13 @@
<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>
@ -951,15 +979,15 @@
<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>
@ -1008,13 +1036,13 @@
<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.
@ -1094,19 +1122,6 @@
</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>
@ -1145,6 +1160,22 @@
</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>
@ -1173,6 +1204,18 @@
</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
@ -1215,6 +1258,22 @@
</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>
@ -1236,7 +1295,8 @@
</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>
@ -1258,7 +1318,7 @@
</para>
<para>
This is used for xpath matching.
These are used for xpath matching.
</para>
</listitem>
@ -1275,6 +1335,8 @@
<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>
@ -1317,7 +1379,7 @@
</para>
<para>
**Why were these added?
These improve compatibility with other database products.
</para>
</listitem>
@ -1362,8 +1424,7 @@
</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>
@ -1471,22 +1532,51 @@
<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>
@ -1605,6 +1695,17 @@
</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)
@ -1701,6 +1802,13 @@
</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
@ -1858,6 +1966,21 @@
</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>
@ -1867,8 +1990,8 @@
<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>
@ -2087,12 +2210,12 @@
<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>
@ -2144,6 +2267,36 @@
</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
@ -2156,6 +2309,18 @@
</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>