|
|
|
|
@ -1,6 +1,350 @@ |
|
|
|
|
<!-- doc/src/sgml/release-9.0.sgml --> |
|
|
|
|
<!-- See header comment in release.sgml about typical markup --> |
|
|
|
|
|
|
|
|
|
<sect1 id="release-9-0-4"> |
|
|
|
|
<title>Release 9.0.4</title> |
|
|
|
|
|
|
|
|
|
<note> |
|
|
|
|
<title>Release Date</title> |
|
|
|
|
<simpara>2011-04-18</simpara> |
|
|
|
|
</note> |
|
|
|
|
|
|
|
|
|
<para> |
|
|
|
|
This release contains a variety of fixes from 9.0.3. |
|
|
|
|
For information about new features in the 9.0 major release, see |
|
|
|
|
<xref linkend="release-9-0">. |
|
|
|
|
</para> |
|
|
|
|
|
|
|
|
|
<sect2> |
|
|
|
|
<title>Migration to Version 9.0.4</title> |
|
|
|
|
|
|
|
|
|
<para> |
|
|
|
|
A dump/restore is not required for those running 9.0.X. |
|
|
|
|
</para> |
|
|
|
|
|
|
|
|
|
<para> |
|
|
|
|
However, if your installation was upgraded from a previous major |
|
|
|
|
release by running <application>pg_upgrade</>, you should take |
|
|
|
|
action to prevent possible data loss due to a now-fixed bug in |
|
|
|
|
<application>pg_upgrade</>. The recommended solution is to run |
|
|
|
|
<command>VACUUM FREEZE</> on all TOAST tables. |
|
|
|
|
More information is available at <ulink |
|
|
|
|
url="http://wiki.postgresql.org/wiki/20110408pg_upgrade_fix"> |
|
|
|
|
http://wiki.postgresql.org/wiki/20110408pg_upgrade_fix</ulink>. |
|
|
|
|
</para> |
|
|
|
|
|
|
|
|
|
</sect2> |
|
|
|
|
|
|
|
|
|
<sect2> |
|
|
|
|
<title>Changes</title> |
|
|
|
|
|
|
|
|
|
<itemizedlist> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Fix <application>pg_upgrade</>'s handling of TOAST tables |
|
|
|
|
(Bruce Momjian) |
|
|
|
|
</para> |
|
|
|
|
|
|
|
|
|
<para> |
|
|
|
|
The <structname>pg_class</>.<structfield>relfrozenxid</> value for |
|
|
|
|
TOAST tables was not correctly copied into the new installation |
|
|
|
|
during <application>pg_upgrade</>. This could later result in |
|
|
|
|
<literal>pg_clog</> files being discarded while they were still |
|
|
|
|
needed to validate tuples in the TOAST tables, leading to |
|
|
|
|
<quote>could not access status of transaction</> failures. |
|
|
|
|
</para> |
|
|
|
|
|
|
|
|
|
<para> |
|
|
|
|
This error poses a significant risk of data loss for installations |
|
|
|
|
that have been upgraded with <application>pg_upgrade</>. This patch |
|
|
|
|
corrects the problem for future uses of <application>pg_upgrade</>, |
|
|
|
|
but does not in itself cure the issue in installations that have been |
|
|
|
|
processed with a buggy version of <application>pg_upgrade</>. |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Suppress incorrect <quote>PD_ALL_VISIBLE flag was incorrectly set</> |
|
|
|
|
warning (Heikki Linnakangas) |
|
|
|
|
</para> |
|
|
|
|
|
|
|
|
|
<para> |
|
|
|
|
<command>VACUUM</> would sometimes issue this warning in cases that |
|
|
|
|
are actually valid. |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Use better SQLSTATE error codes for hot standby conflict cases |
|
|
|
|
(Tatsuo Ishii and Simon Riggs) |
|
|
|
|
</para> |
|
|
|
|
|
|
|
|
|
<para> |
|
|
|
|
All retryable conflict errors now have an error code that indicates |
|
|
|
|
that a retry is possible. Also, session closure due to the database |
|
|
|
|
being dropped on the master is now reported as |
|
|
|
|
<literal>ERRCODE_DATABASE_DROPPED</>, rather than |
|
|
|
|
<literal>ERRCODE_ADMIN_SHUTDOWN</>, so that connection poolers can |
|
|
|
|
handle the situation correctly. |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Prevent intermittent hang in interactions of startup process with |
|
|
|
|
bgwriter process (Simon Riggs) |
|
|
|
|
</para> |
|
|
|
|
|
|
|
|
|
<para> |
|
|
|
|
This affected recovery in non-hot-standby cases. |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Disallow including a composite type in itself (Tom Lane) |
|
|
|
|
</para> |
|
|
|
|
|
|
|
|
|
<para> |
|
|
|
|
This prevents scenarios wherein the server could recurse infinitely |
|
|
|
|
while processing the composite type. While there are some possible |
|
|
|
|
uses for such a structure, they don't seem compelling enough to |
|
|
|
|
justify the effort required to make sure it always works safely. |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Avoid potential deadlock during catalog cache initialization |
|
|
|
|
(Nikhil Sontakke) |
|
|
|
|
</para> |
|
|
|
|
|
|
|
|
|
<para> |
|
|
|
|
In some cases the cache loading code would acquire share lock on a |
|
|
|
|
system index before locking the index's catalog. This could deadlock |
|
|
|
|
against processes trying to acquire exclusive locks in the other, |
|
|
|
|
more standard order. |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Fix dangling-pointer problem in <literal>BEFORE ROW UPDATE</> trigger |
|
|
|
|
handling when there was a concurrent update to the target tuple |
|
|
|
|
(Tom Lane) |
|
|
|
|
</para> |
|
|
|
|
|
|
|
|
|
<para> |
|
|
|
|
This bug has been observed to result in intermittent <quote>cannot |
|
|
|
|
extract system attribute from virtual tuple</> failures while trying to |
|
|
|
|
do <literal>UPDATE RETURNING ctid</>. There is a very small probability |
|
|
|
|
of more serious errors, such as generating incorrect index entries for |
|
|
|
|
the updated tuple. |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Disallow <command>DROP TABLE</> when there are pending deferred trigger |
|
|
|
|
events for the table (Tom Lane) |
|
|
|
|
</para> |
|
|
|
|
|
|
|
|
|
<para> |
|
|
|
|
Formerly the <command>DROP</> would go through, leading to |
|
|
|
|
<quote>could not open relation with OID nnn</> errors when the |
|
|
|
|
triggers were eventually fired. |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Allow <quote>replication</> as a user name in |
|
|
|
|
<filename>pg_hba.conf</> (Andrew Dunstan) |
|
|
|
|
</para> |
|
|
|
|
|
|
|
|
|
<para> |
|
|
|
|
<quote>replication</> is special in the database name column, but it |
|
|
|
|
was mistakenly also treated as special in the user name column. |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Prevent crash triggered by constant-false WHERE conditions during |
|
|
|
|
GEQO optimization (Tom Lane) |
|
|
|
|
</para> |
|
|
|
|
|
|
|
|
|
<para> |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Improve planner's handling of semi-join and anti-join cases |
|
|
|
|
(Tom Lane) |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Fix handling of <literal>SELECT FOR UPDATE</> in a sub-SELECT |
|
|
|
|
(Tom Lane) |
|
|
|
|
</para> |
|
|
|
|
|
|
|
|
|
<para> |
|
|
|
|
This bug typically led to <quote>cannot extract system attribute from |
|
|
|
|
virtual tuple</> errors. |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Fix selectivity estimation for text search to account for NULLs |
|
|
|
|
(Jesper Krogh) |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Fix get_actual_variable_range() to support hypothetical indexes |
|
|
|
|
injected by an index adviser plugin (Gurjeet Singh) |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Fix PL/Python memory leak involving array slices (Daniel Popowich) |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Allow <application>libpq</>'s SSL initialization to succeed when |
|
|
|
|
user's home directory is unavailable (Tom Lane) |
|
|
|
|
</para> |
|
|
|
|
|
|
|
|
|
<para> |
|
|
|
|
If the SSL mode is such that a root certificate file is not required, |
|
|
|
|
there is no need to fail. This change restores the behavior to what |
|
|
|
|
it was in pre-9.0 releases. |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Fix <application>libpq</> to return a useful error message for errors |
|
|
|
|
detected in <function>conninfo_array_parse</> (Joseph Adams) |
|
|
|
|
</para> |
|
|
|
|
|
|
|
|
|
<para> |
|
|
|
|
A typo caused the library to return NULL, rather than the |
|
|
|
|
<structname>PGconn</> structure containing the error message, to the |
|
|
|
|
application. |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Fix <application>ecpg</> preprocessor's handling of float constants |
|
|
|
|
(Heikki Linnakangas) |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Fix parallel <application>pg_restore</> to handle comments on |
|
|
|
|
POST_DATA items correctly (Arnd Hannemann) |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Fix <application>pg_restore</> to cope with long lines (over 1KB) in |
|
|
|
|
TOC files (Tom Lane) |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Put in more safeguards against crashing due to division-by-zero |
|
|
|
|
with overly enthusiastic compiler optimization (Aurelien Jarno) |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Support use of dlopen() in FreeBSD and OpenBSD on MIPS (Tom Lane) |
|
|
|
|
</para> |
|
|
|
|
|
|
|
|
|
<para> |
|
|
|
|
There was a hard-wired assumption that this system function was not |
|
|
|
|
available on MIPS hardware on these systems. Use a compile-time test |
|
|
|
|
instead, since more recent versions have it. |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Fix compilation failures on HP-UX (Heikki Linnakangas) |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Avoid crash when trying to write to the Windows console very early |
|
|
|
|
in process startup (Rushabh Lathia) |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Support building with MinGW 64 bit compiler for Windows |
|
|
|
|
(Andrew Dunstan) |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Fix version-incompatibility problem with <application>libintl</> on |
|
|
|
|
Windows (Hiroshi Inoue) |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Fix usage of <application>xcopy</> in Windows build scripts to |
|
|
|
|
work correctly under Windows 7 (Andrew Dunstan) |
|
|
|
|
</para> |
|
|
|
|
|
|
|
|
|
<para> |
|
|
|
|
This affects the build scripts only, not installation or usage. |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Fix path separator used by <application>pg_regress</> on Cygwin |
|
|
|
|
(Andrew Dunstan) |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
<para> |
|
|
|
|
Update time zone data files to <application>tzdata</> release 2011f |
|
|
|
|
for DST law changes in Chile, Cuba, Falkland Islands, Morocco, Samoa, |
|
|
|
|
and Turkey; also historical corrections for South Australia, Alaska, |
|
|
|
|
and Hawaii. |
|
|
|
|
</para> |
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
</itemizedlist> |
|
|
|
|
|
|
|
|
|
</sect2> |
|
|
|
|
</sect1> |
|
|
|
|
|
|
|
|
|
<sect1 id="release-9-0-3"> |
|
|
|
|
<title>Release 9.0.3</title> |
|
|
|
|
|
|
|
|
|
|