- PostgreSQL alpha releases are snapshots of development code.
- used in production installations or active development projects.
- any time during the development cycle.
- not indicative of the likely feature set of the final release.
- testing information page.
standard;
linkend="guc-escape-string-warning">escape_string_warning>
has produced warnings about this usage for years. E''>
- strings the proper way to embed escapes in strings and is
+ strings are the proper way to embed escapes in strings and are
unaffected by this change.
- For example, disallow composite_name.text and text(composite_name).
- CAST> and ::> are still available for
- casting.
+ For example, disallow
+ composite_value>.text and
+ text(composite_value>).
+ The CAST> and ::> syntaxes are still available
+ for use when a cast of an entire composite value is actually intended.
Tighten casting checks for domains based on arrays (Tom Lane)
-
+
- **Details?
+ When a domain is based on an array type, it is allowed to look
+ through> the domain type to access the array elements, including
+ subscripting the domain value to fetch or assign an element.
+ Assignment to an element of such a domain value, for instance via
+ UPDATE ... SET domaincol[5] = ...>, will now result in
+ rechecking the domain type's constraints, whereas before the checks
+ were skipped.
+
+
+ Also, such a domain type is no longer allowed to match an
+ anyarray> parameter of a polymorphic function, except by
+ explicitly downcasting it to the base array type.
Fix improper checks for before/after triggers (Tom Lane)
-
+
- **Tom, I need more details on the impact of this for existing
- installs.
+ Triggers can now be fired in three cases: BEFORE, AFTER, or INSTEAD OF
+ some action. Trigger function authors should verify that their logic
+ behaves sanely in all three cases.
- Previously RAISE> in a code block always scoped to
+ Previously RAISE> in a code block was always scoped to
an attached exception block, so it was uncatchable at the same
scope.
Adjust PL/pgSQL's error line reporting code to be consistent
- with SQL error line reporting (Pavel Stehule)
+ with other PLs (Pavel Stehule)
-
+
- Previously error numbering was off by one.
+ Previously, PL/pgSQL would ignore (not count) an empty line at the
+ start of the function body. Since this was inconsistent with all
+ other languages, the special case was removed.
Have
linkend="monitoring-stats-funcs-table">pg_stat_reset()>
- reset all database-level statistics (Tom Lane)
+ reset all database-level statistics (Tomas Vondra)
- Some counters were not being reset.
+ Some pg_stat_database> counters were not being reset.
-
Changes, current as of 2011-03-15
+
Changes
Version 9.1 has ...
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
+ and RIGHT OUTER JOIN could hash only the nullable
side of the join. These changes provide additional query optimization
possibilities.
- Allow hash joins for array values (Tom Lane)
+ Support hashing array values (Tom Lane)
Specifically this allows Unix-based
GSSAPI> clients
- to
SSPI> authenticate to Windows servers.
+ to
do SSPI> authentication with Windows servers.
Add
linkend="monitoring-stats-views-table">pg_stat_xact_*>
- statistic functions and views (Joel Jacobson)
+ statistics functions and views (Joel Jacobson)
- These are like the database-wide statistics counter views but
+ These are like the database-wide statistics counter views, but
reflect counts for only the current transaction.
- Add record of last reset in database and background writer-level
+ Add time of last reset in database-level and background writer
statistics views (Tomas Vondra)
Increase the maximum values for
deadlock_timeout,
log_min_duration_statement, and
- log_autovacuum_min_duration.
+ log_autovacuum_min_duration
+ (Peter Eisentraut)
- Cancelations can occur because of dropped tablespaces, lock
+ Cancellations can occur because of dropped tablespaces, lock
timeouts, old snapshots, pinned buffers, and deadlocks.
- Add a <
literal>conflicts> count to
+ Add a <
structfield>conflicts> count to
linkend="monitoring-stats-views-table">pg_stat_database>
(Magnus Hagander)
+
+ Add a true
+ linkend="xact-serializable">serializable> isolation
+ level (Kevin Grittner, Dan Ports)
+
+
+ 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
+ behavior is still accessible by requesting the
+ linkend="xact-repeatable-read">REPEATABLE READ>
+ isolation level.
+
+
+
Allow data-modification commands
- This allows INSERT>/UPDATE>/DELETE>
- RETURNING> in WITH> clauses to pass rows
- to outer queries.
+ These commands can use RETURNING> to pass data up to the
+ containing query.
Allow WITH>
- clauses to be fed into INSERT>, UPDATE>,
- DELETE > statements (Marko Tiikkaja, Hitoshi Harada)
+ clauses to be attached to INSERT>, UPDATE>,
+ DELETE> statements (Marko Tiikkaja, Hitoshi Harada)
- Allow the use of the keyword
- linkend="queries-union">DISTINCT> in
- UNION>/INTERSECT>/EXCEPT>
+ Allow use of the keyword
DISTINCT> in
+ linkend="queries-union">UNION>/INTERSECT>/EXCEPT>
clauses (Tom Lane)
DISTINCT> is the default behavior so use of this
- keyword is redundant.
+ keyword is redundant, but the SQL standard allows it.
- Previously collation could only be set at the database level.
+ Previously collation could only be set at database creation.
Collation can now be set per column, domain, index, or
- expression.
+ expression, via the SQL-standard COLLATE> clause.
- This allows data stored in foreign sources to be used like
- native
PostgreSQL>-stored data.
+ This allows data stored outside the database to be used like
+ native
PostgreSQL>-stored data. Foreign tables
+ are currently read-only, however.
-
- Add a true serializable> isolation level (Kevin Grittner, Dan Ports)
-
-
- 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.
-
-
-
Add transaction-level advisory
This is similar to the existing session-level advisory locks,
- but are freed at transaction end.
+ but the locks are automatically released at transaction end.
- Have EXPLAIN VERBOSE>
- show the function call expression (Tom Lane)
+ Make EXPLAIN VERBOSE> show the function call expression
+ in a FunctionScan node (Tom Lane)
- Allow CLUSTER to sort the table rather than scanning the index
- when it seems likely to be cheaper (Leonardo Francalanci)
+ Allow CLUSTER> to sort the table rather than scanning
+ the index when it seems likely to be cheaper (Leonardo Francalanci)
- This allows
GiST> indexes to quickly return
- <literal>LIMIT>-specified closest values.
+ This allows
GiST> indexes to quickly return the
+ <replaceable>N> closest values in a query with LIMIT>.
- This allows full
GIN> index scans.
+ This allows full
GIN> index scans, and fixes various
+ corner cases in which GIN scans would fail.
These check whether the input is properly-formed
XML>.
- They supersede functionality that was previously available only using
- contrib/xml2.
+ They provide functionality that was previously available only in
+ the deprecated contrib/xml2 module.
- Minimi
se lock levels for
+ Minimi
ze lock levels for
linkend="SQL-CREATETRIGGER">CREATE TRIGGER>
and many ALTER
TABLE> and CREATE
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)
+ ARRAY> to PL/pgSQL
+ (Pavel Stehule)
- This is more efficient than previous methods.
+ This is more efficient and readable than previous methods of
+ iterating through the elements of an array value.
Allow RAISE without parameters to be caught in
the same places that could catch a RAISE ERROR
- from the same location.
+ from the same location (Piyush Newe)
- The new behavior is more consistent.
+ The previous coding threw the error
+ from the block containing the active exception handler.
+ The new behavior is more consistent with other DBMS products.
- **Andrew, I need details on this.
+ PL/Perl functions can now be declared to accept type record>.
+ The behavior is the same as for any named composite type.
- Convert PL/Perl input arguments to Perl arrays (Alexey Klyukin,
+ Convert PL/Perl array arguments to Perl arrays (Alexey Klyukin,
Alex Hunsaker)
- Convert PL/Perl row and composite type arguments to Perl hashes
+ Convert PL/Perl composite-type arguments to Perl hashes
(Alexey Klyukin, Alex Hunsaker)
- PL/Python now can return multiple OUT> parameters
+ PL/Python can now return multiple OUT> parameters
and record sets.
- Add validator to PL/Python (Jan Urbanski)
+ Add a validator to PL/Python (Jan Urbanski)
- This allows PL/Python functions to be validated at function
+ This allows PL/Python functions to be syntax-checked at function
creation time.
-
- Allow PL/Python to access SQLSTATE> exception values
- (Jan Urbanski)
-
-
- **Is this the same as the item above?
-
-
-
Add PL/Python explicit subtransactions (Jan Urbanski)
- This includes exception support for Python 3. **More?
+ This includes exception support for Python 3. **More detail?
Mark
linkend="APP-CREATELANG">
createlang>
- as deprecated now that they use the extension framework (Tom
+ as deprecated now that they just invoke extension commands (Tom
Lane)
start's "wait" (
- port numbers, non-standard unix-domain socket locations,
+ port numbers, non-standard Unix-domain socket locations,
permission problems, and stale postmaster lock files (Bruce
Momjian)
- Require
GNU>
- linkend="install-requirements">
make>
- 3.80 or newer (Peter Eisentraut)
+ Improved parallel make support (Peter Eisentraut)
+
+
+ This allows for faster compiles. Also, make
+ and make
- Improved parallel make support (Peter Eisentraut)
+ Require
GNU>
+ linkend="install-requirements">
make>
+ 3.80 or newer (Peter Eisentraut)
- This allows for faster compiles. Also, make
- and make
- make supported?
+ This is necessary because of the parallel-make improvements.
- Foreign tables using this foreign data wrapper will read flat files
- in a matter very similar to COPY>.
+ Foreign tables using this foreign data wrapper can read flat files
+ in a manner very similar to COPY>.
Add
linkend="btree-gist">contrib/btree_gist>
- support for searching on not equals (Jeff Davis)
+ support for searching on not-equals (Jeff Davis)
In
contrib/intarray>,
- avoid errors complaining about the presence nulls in cases where no
+ avoid errors complaining about the presence of nulls in cases where no
nulls are actually present (Tom Lane)
- In contrib/xml2>, remove
- arbitrary limit on the number of parameter=value pairs that
- can be handled by xslt_process()> (Pavel Stehule)
+ Remove contrib/xml2>'s
+ arbitrary limit on the number of
+ parameter>=value> pairs that can be
+ handled by xslt_process()> (Pavel Stehule)
- The previous limit was 20.
+ The previous limit was 10.
linkend="seg">contrib/seg> columns (Alexander
Korotkov)
-
- **Confirm this does not affect
pg_upgrade>
-
using (compositeval).*
syntax> (Peter Eisentraut)
-
- **Is this syntax new in 9.1?
-