mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-12-09 08:10:09 +08:00
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:
parent
3bba9ce945
commit
7b630e7b8e
@ -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>
|
||||
|
Loading…
Reference in New Issue
Block a user