diff --git a/doc/src/sgml/release-9.1.sgml b/doc/src/sgml/release-9.1.sgml
index 10f1e6ae691..1a1bac1e10d 100644
--- a/doc/src/sgml/release-9.1.sgml
+++ b/doc/src/sgml/release-9.1.sgml
@@ -73,7 +73,7 @@
- Disallow functional or attribute string data type casts for
+ Disallow function-style and attribute-style data type casts for
composite types (Tom Lane)
@@ -293,14 +293,17 @@
- Support RIGHT> and FULL OUTER JOIN> in
- hash joins (Tom Lane)
+ Allow FULL OUTER JOIN to be implemented as a
+ hash join, and allow either side of a LEFT OUTER JOIN>
+ or RIGHT OUTER JOIN> to be hashed (Tom Lane)
- Previously hash joins could not be considered for outer joins;
- this provides additional query optimization possibilities.
- **What about LEFT> joins?
+ Previously FULL OUTER JOIN could only be
+ implemented as a merge join, and LEFT OUTER JOIN
+ and RIGHT OUTER JOIN could has only the nullable
+ side of the join. These changes provide additional query optimization
+ possibilities.
@@ -323,6 +326,13 @@
+
+
+ Reduce the memory requirement for large ispell dictionaries
+ (Pavel Stehule, Tom Lane)
+
+
+
@@ -585,14 +595,18 @@
- Add a synchronous_replication>
- option (Simon Riggs, Fujii Masao)
+ Allow synchronous replication (Simon Riggs, Fujii Masao)
- 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
+ synchronous_standby_names
+ setting. Synchronous replication can be enabled or disabled on a
+ per-transaction basis using the
+ synchronous_replication>
+ setting. This allows the primary to wait for a standby to write the
+ transaction information to disk before acknowledging the commit.
@@ -600,8 +614,8 @@
Add variable hot_standby_feedback>
- 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)
@@ -712,7 +726,8 @@
These named restore points can be specified as recovery
- targets in recovery.conf>.
+ targets using the new recovery.conf> setting
+ recovery_target_name>
@@ -786,12 +801,6 @@
clauses to be fed into INSERT>, UPDATE>,
DELETE > statements (Marko Tiikkaja, Hitoshi Harada)
-
-
- Specifically, let SELECT> query results be fed
- into INSERT>, UPDATE>, DELETE>
- statements.
-
@@ -804,7 +813,7 @@
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.
@@ -822,6 +831,19 @@
+
+
+ Fix ordinary queries with rules to use the same snapshot behavior
+ as EXPLAIN ANALYZE> (Marko Tiikkaja)
+
+
+
+ Previously EXPLAIN ANALYZE> used a slightly different
+ snapshot for queries involving rules. The EXPLAIN ANALYZE>
+ behavior was judged to be more logical.
+
+
+
@@ -912,6 +934,12 @@
Add support for more object types in ALTER ... SET
SCHEMA> commands (Dimitri Fontaine)
+
+
+ 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.
+
@@ -926,13 +954,13 @@
Add ALTER TABLE ...
- ADD UNIQUE>/PRIMARY KEY USING INDEX>
+ ADD UNIQUE/PRIMARY KEY USING INDEX
(Gurjeet Singh)
- 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.
@@ -951,15 +979,15 @@
- Allow ALTER TABLE>
- ... SET DATA TYPE> to avoid table rewrites in
+ Allow ALTER TABLE
+ ... SET DATA TYPE to avoid table rewrites in
appropriate cases (Noah Misch, Robert Haas)
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.
@@ -1008,13 +1036,13 @@
- Add a true serializable>
- isolation level (Kevin Grittner, Dan Ports)
+ Add a true serializable> isolation level (Kevin Grittner, Dan Ports)
- 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 REPEATABLE
READ> isolation level.
@@ -1094,19 +1122,6 @@
-
-
- Fix EXPLAIN ANALYZE>
- with rules to use the same snapshot behavior as ordinary
- queries (Marko Tiikkaja)
-
-
-
- Previously EXPLAIN ANALYZE> used a slightly different
- snapshot for queries involving rules.
-
-
-
@@ -1145,6 +1160,22 @@
+
+ CLUSTER>
+
+
+
+
+
+ Allow CLUSTER to sort the table rather than scanning the index
+ when it seems likely to be cheaper (Leonardo Francalanci)
+
+
+
+
+
+
+
Indexes
@@ -1173,6 +1204,18 @@
+
+
+ Allow GIN> indexes to
+ better recognize duplicate search entries (Tom Lane)
+
+
+
+ This reduces the cost of index scans, especially in cases where
+ it avoids unnecessary full index scans.
+
+
+
Fix GiST> indexes to be fully
@@ -1215,6 +1258,22 @@
+
+
+ Allow binary I/O on type void (Radoslaw Smogura)
+
+
+
+
+
+ Improve hypotenuse calculations for geometric operators (Paul Matthews)
+
+
+
+ This avoids unnecessary overflows, and may also be more accurate.
+
+
+
@@ -1236,7 +1295,8 @@
- **Needs description.
+ This is analogous to the existing facility that allows casting a row
+ type to a supertable's row type.
@@ -1258,7 +1318,7 @@
- This is used for xpath matching.
+ These are used for xpath matching.
@@ -1275,6 +1335,8 @@
These check whether the input is properly-formed XML>.
+ They supersede functionality that was previously available only using
+ contrib/xml2.
@@ -1317,7 +1379,7 @@
- **Why were these added?
+ These improve compatibility with other database products.
@@ -1362,8 +1424,7 @@
- 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.
@@ -1471,22 +1532,51 @@
Server-Side Languages
-
+
+ PL/pgSQL Server-Side Language
-
-
- Add FOREACH IN
- ARRAY> to PL/pgSQL to
- allow array iteration (Pavel Stehule)
-
+
-
- This is more efficient than previous methods.
-
-
+
+
+ Add FOREACH IN
+ ARRAY> to PL/pgSQL to
+ allow array iteration (Pavel Stehule)
+
+
+
+ This is more efficient than previous methods.
+
+
+
+
+
+ Add FOREACH IN
+ ARRAY> to PL/pgSQL to
+ allow array iteration (Pavel Stehule)
+
+
+
+ This is more efficient than previous methods.
+
+
+
+
+
+ Allow RAISE without parameters to be caught in
+ the same places that could catch a RAISE ERROR
+ from the same location.
+
+
+
+ The new behavior is more consistent.
+
+
+
+
PL/Perl Server-Side Language
@@ -1605,6 +1695,17 @@
+
+
+ plpy.Fatal now raises FATAL>, rather
+ than ERROR (Jan Urbanski)
+
+
+
+ The old behavior was incorrect.
+
+
+
Overhaul of PL/Python (Jan Urbanski)
@@ -1701,6 +1802,13 @@
+
+
+ Make psql distinguish between unique
+ indices and unique constraints (Josh Kupershmidt)
+
+
+
Additional tab completion of psql> variables (Pavel
@@ -1858,6 +1966,21 @@
+
+ ECPG>
+
+
+
+
+
+ Allow ecpg to accept dynamic cursor names even in
+ WHERE CURRENT OF clauses
+
+
+
+
+
+
@@ -1867,8 +1990,8 @@
- Add extensions which allow
- packaged additions to PostgreSQL> (Dimitri
+ Add extensions which simplify
+ packaging of additions to PostgreSQL> (Dimitri
Fontaine, Tom Lane)
@@ -2087,12 +2210,12 @@
Add contrib/file_fdw>
- foreign-data wrapper for reading files via COPY
- >(Shigeru Hanada)
+ foreign-data wrapper (Shigeru Hanada)
- 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 COPY>.
@@ -2144,6 +2267,36 @@
+
+
+ Allow contrib/intarray>
+ to work properly on multi-dimensional arrays (Tom Lane)
+
+
+
+
+
+ In
+ contrib/intarray>,
+ avoid errors complaining about the presence nulls in cases where no
+ nulls are actually present (Tom Lane)
+
+
+
+
+
+ In
+ contrib/intarray>,
+ fix behavior of containment operators with respect to empty arrays
+ (Tom Lane)
+
+
+
+ Empty arrays are now correctly considered to be contained in any other
+ array.
+
+
+
In contrib/xml2>, remove
@@ -2156,6 +2309,18 @@
+
+
+ In contrib/pageinspect>,
+ fix heap_page_item to return infomasks as 32-bit values (Alvaro Herrera)
+
+
+
+ This avoids returning negative values, which was confusing. The
+ underlying value is a 16-bit unsigned integer.
+
+
+