mirror of
https://github.com/postgres/postgres.git
synced 2025-05-01 01:04:50 +03:00
Update release notes for 9.2.2, 9.1.7, 9.0.11, 8.4.15, 8.3.22.
This commit is contained in:
parent
7f7b49c47a
commit
decb3bc07e
@ -1,6 +1,302 @@
|
|||||||
<!-- doc/src/sgml/release-8.3.sgml -->
|
<!-- doc/src/sgml/release-8.3.sgml -->
|
||||||
<!-- See header comment in release.sgml about typical markup -->
|
<!-- See header comment in release.sgml about typical markup -->
|
||||||
|
|
||||||
|
<sect1 id="release-8-3-22">
|
||||||
|
<title>Release 8.3.22</title>
|
||||||
|
|
||||||
|
<note>
|
||||||
|
<title>Release Date</title>
|
||||||
|
<simpara>2012-12-06</simpara>
|
||||||
|
</note>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This release contains a variety of fixes from 8.3.21.
|
||||||
|
For information about new features in the 8.3 major release, see
|
||||||
|
<xref linkend="release-8-3">.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The <productname>PostgreSQL</> community will stop releasing updates
|
||||||
|
for the 8.3.X release series in February 2013.
|
||||||
|
Users are encouraged to update to a newer release branch soon.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<sect2>
|
||||||
|
<title>Migration to Version 8.3.22</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
A dump/restore is not required for those running 8.3.X.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
However, if you are upgrading from a version earlier than 8.3.17,
|
||||||
|
see the release notes for 8.3.17.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
</sect2>
|
||||||
|
|
||||||
|
<sect2>
|
||||||
|
<title>Changes</title>
|
||||||
|
|
||||||
|
<itemizedlist>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix multiple bugs associated with <command>CREATE INDEX
|
||||||
|
CONCURRENTLY</> (Andres Freund, Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Fix <command>CREATE INDEX CONCURRENTLY</> to use
|
||||||
|
in-place updates when changing the state of an index's
|
||||||
|
<structname>pg_index</> row. This prevents race conditions that could
|
||||||
|
cause concurrent sessions to miss updating the target index, thus
|
||||||
|
resulting in corrupt concurrently-created indexes.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Also, fix various other operations to ensure that they ignore
|
||||||
|
invalid indexes resulting from a failed <command>CREATE INDEX
|
||||||
|
CONCURRENTLY</> command. The most important of these is
|
||||||
|
<command>VACUUM</>, because an auto-vacuum could easily be launched
|
||||||
|
on the table before corrective action can be taken to fix or remove
|
||||||
|
the invalid index.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Avoid corruption of internal hash tables when out of memory
|
||||||
|
(Hitoshi Harada)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix planning of non-strict equivalence clauses above outer joins
|
||||||
|
(Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The planner could derive incorrect constraints from a clause equating
|
||||||
|
a non-strict construct to something else, for example
|
||||||
|
<literal>WHERE COALESCE(foo, 0) = 0</>
|
||||||
|
when <literal>foo</> is coming from the nullable side of an outer join.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Improve planner's ability to prove exclusion constraints from
|
||||||
|
equivalence classes (Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix partial-row matching in hashed subplans to handle cross-type cases
|
||||||
|
correctly (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This affects multicolumn <literal>NOT IN</> subplans, such as
|
||||||
|
<literal>WHERE (a, b) NOT IN (SELECT x, y FROM ...)</>
|
||||||
|
when for instance <literal>b</> and <literal>y</> are <type>int4</>
|
||||||
|
and <type>int8</> respectively. This mistake led to wrong answers
|
||||||
|
or crashes depending on the specific datatypes involved.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Acquire buffer lock when re-fetching the old tuple for an
|
||||||
|
<literal>AFTER ROW UPDATE/DELETE</> trigger (Andres Freund)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
In very unusual circumstances, this oversight could result in passing
|
||||||
|
incorrect data to the precheck logic for a foreign-key enforcement
|
||||||
|
trigger. That could result in a crash, or in an incorrect decision
|
||||||
|
about whether to fire the trigger.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <command>REASSIGN OWNED</> to handle grants on tablespaces
|
||||||
|
(Álvaro Herrera)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Ignore incorrect <structname>pg_attribute</> entries for system
|
||||||
|
columns for views (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Views do not have any system columns. However, we forgot to
|
||||||
|
remove such entries when converting a table to a view. That's fixed
|
||||||
|
properly for 9.3 and later, but in previous branches we need to defend
|
||||||
|
against existing mis-converted views.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix rule printing to dump <literal>INSERT INTO <replaceable>table</>
|
||||||
|
DEFAULT VALUES</literal> correctly (Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Guard against stack overflow when there are too many
|
||||||
|
<literal>UNION</>/<literal>INTERSECT</>/<literal>EXCEPT</> clauses
|
||||||
|
in a query (Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Prevent platform-dependent failures when dividing the minimum possible
|
||||||
|
integer value by -1 (Xi Wang, Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix possible access past end of string in date parsing
|
||||||
|
(Hitoshi Harada)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Produce an understandable error message if the length of the path name
|
||||||
|
for a Unix-domain socket exceeds the platform-specific limit
|
||||||
|
(Tom Lane, Andrew Dunstan)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Formerly, this would result in something quite unhelpful, such as
|
||||||
|
<quote>Non-recoverable failure in name resolution</>.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix memory leaks when sending composite column values to the client
|
||||||
|
(Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Make <application>pg_ctl</> more robust about reading the
|
||||||
|
<filename>postmaster.pid</> file (Heikki Linnakangas)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Fix race conditions and possible file descriptor leakage.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix possible crash in <application>psql</> if incorrectly-encoded data
|
||||||
|
is presented and the <varname>client_encoding</> setting is a
|
||||||
|
client-only encoding, such as SJIS (Jiang Guiqing)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix bugs in the <filename>restore.sql</> script emitted by
|
||||||
|
<application>pg_dump</> in <literal>tar</> output format (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The script would fail outright on tables whose names include
|
||||||
|
upper-case characters. Also, make the script capable of restoring
|
||||||
|
data in <option>--inserts</> mode as well as the regular COPY mode.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <application>pg_restore</> to accept POSIX-conformant
|
||||||
|
<literal>tar</> files (Brian Weaver, Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The original coding of <application>pg_dump</>'s <literal>tar</>
|
||||||
|
output mode produced files that are not fully conformant with the
|
||||||
|
POSIX standard. This has been corrected for version 9.3. This
|
||||||
|
patch updates previous branches so that they will accept both the
|
||||||
|
incorrect and the corrected formats, in hopes of avoiding
|
||||||
|
compatibility problems when 9.3 comes out.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <application>pg_resetxlog</> to locate <filename>postmaster.pid</>
|
||||||
|
correctly when given a relative path to the data directory (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This mistake could lead to <application>pg_resetxlog</> not noticing
|
||||||
|
that there is an active postmaster using the data directory.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <application>libpq</>'s <function>lo_import()</> and
|
||||||
|
<function>lo_export()</> functions to report file I/O errors properly
|
||||||
|
(Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <application>ecpg</>'s processing of nested structure pointer
|
||||||
|
variables (Muhammad Usama)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Make <filename>contrib/pageinspect</>'s btree page inspection
|
||||||
|
functions take buffer locks while examining pages (Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <application>pgxs</> support for building loadable modules on AIX
|
||||||
|
(Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Building modules outside the original source tree didn't work on AIX.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Update time zone data files to <application>tzdata</> release 2012j
|
||||||
|
for DST law changes in Cuba, Israel, Jordan, Libya, Palestine, Western
|
||||||
|
Samoa, and portions of Brazil.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
</itemizedlist>
|
||||||
|
|
||||||
|
</sect2>
|
||||||
|
</sect1>
|
||||||
|
|
||||||
<sect1 id="release-8-3-21">
|
<sect1 id="release-8-3-21">
|
||||||
<title>Release 8.3.21</title>
|
<title>Release 8.3.21</title>
|
||||||
|
|
||||||
|
@ -1,6 +1,308 @@
|
|||||||
<!-- doc/src/sgml/release-8.4.sgml -->
|
<!-- doc/src/sgml/release-8.4.sgml -->
|
||||||
<!-- See header comment in release.sgml about typical markup -->
|
<!-- See header comment in release.sgml about typical markup -->
|
||||||
|
|
||||||
|
<sect1 id="release-8-4-15">
|
||||||
|
<title>Release 8.4.15</title>
|
||||||
|
|
||||||
|
<note>
|
||||||
|
<title>Release Date</title>
|
||||||
|
<simpara>2012-12-06</simpara>
|
||||||
|
</note>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This release contains a variety of fixes from 8.4.14.
|
||||||
|
For information about new features in the 8.4 major release, see
|
||||||
|
<xref linkend="release-8-4">.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<sect2>
|
||||||
|
<title>Migration to Version 8.4.15</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
A dump/restore is not required for those running 8.4.X.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
However, if you are upgrading from a version earlier than 8.4.10,
|
||||||
|
see the release notes for 8.4.10.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
</sect2>
|
||||||
|
|
||||||
|
<sect2>
|
||||||
|
<title>Changes</title>
|
||||||
|
|
||||||
|
<itemizedlist>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix multiple bugs associated with <command>CREATE INDEX
|
||||||
|
CONCURRENTLY</> (Andres Freund, Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Fix <command>CREATE INDEX CONCURRENTLY</> to use
|
||||||
|
in-place updates when changing the state of an index's
|
||||||
|
<structname>pg_index</> row. This prevents race conditions that could
|
||||||
|
cause concurrent sessions to miss updating the target index, thus
|
||||||
|
resulting in corrupt concurrently-created indexes.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Also, fix various other operations to ensure that they ignore
|
||||||
|
invalid indexes resulting from a failed <command>CREATE INDEX
|
||||||
|
CONCURRENTLY</> command. The most important of these is
|
||||||
|
<command>VACUUM</>, because an auto-vacuum could easily be launched
|
||||||
|
on the table before corrective action can be taken to fix or remove
|
||||||
|
the invalid index.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Avoid corruption of internal hash tables when out of memory
|
||||||
|
(Hitoshi Harada)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix planning of non-strict equivalence clauses above outer joins
|
||||||
|
(Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The planner could derive incorrect constraints from a clause equating
|
||||||
|
a non-strict construct to something else, for example
|
||||||
|
<literal>WHERE COALESCE(foo, 0) = 0</>
|
||||||
|
when <literal>foo</> is coming from the nullable side of an outer join.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Improve planner's ability to prove exclusion constraints from
|
||||||
|
equivalence classes (Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix partial-row matching in hashed subplans to handle cross-type cases
|
||||||
|
correctly (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This affects multicolumn <literal>NOT IN</> subplans, such as
|
||||||
|
<literal>WHERE (a, b) NOT IN (SELECT x, y FROM ...)</>
|
||||||
|
when for instance <literal>b</> and <literal>y</> are <type>int4</>
|
||||||
|
and <type>int8</> respectively. This mistake led to wrong answers
|
||||||
|
or crashes depending on the specific datatypes involved.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Acquire buffer lock when re-fetching the old tuple for an
|
||||||
|
<literal>AFTER ROW UPDATE/DELETE</> trigger (Andres Freund)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
In very unusual circumstances, this oversight could result in passing
|
||||||
|
incorrect data to the precheck logic for a foreign-key enforcement
|
||||||
|
trigger. That could result in a crash, or in an incorrect decision
|
||||||
|
about whether to fire the trigger.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <command>ALTER COLUMN TYPE</> to handle inherited check
|
||||||
|
constraints properly (Pavan Deolasee)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This worked correctly in pre-8.4 releases, and now works correctly
|
||||||
|
in 8.4 and later.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <command>REASSIGN OWNED</> to handle grants on tablespaces
|
||||||
|
(Álvaro Herrera)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Ignore incorrect <structname>pg_attribute</> entries for system
|
||||||
|
columns for views (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Views do not have any system columns. However, we forgot to
|
||||||
|
remove such entries when converting a table to a view. That's fixed
|
||||||
|
properly for 9.3 and later, but in previous branches we need to defend
|
||||||
|
against existing mis-converted views.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix rule printing to dump <literal>INSERT INTO <replaceable>table</>
|
||||||
|
DEFAULT VALUES</literal> correctly (Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Guard against stack overflow when there are too many
|
||||||
|
<literal>UNION</>/<literal>INTERSECT</>/<literal>EXCEPT</> clauses
|
||||||
|
in a query (Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Prevent platform-dependent failures when dividing the minimum possible
|
||||||
|
integer value by -1 (Xi Wang, Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix possible access past end of string in date parsing
|
||||||
|
(Hitoshi Harada)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Produce an understandable error message if the length of the path name
|
||||||
|
for a Unix-domain socket exceeds the platform-specific limit
|
||||||
|
(Tom Lane, Andrew Dunstan)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Formerly, this would result in something quite unhelpful, such as
|
||||||
|
<quote>Non-recoverable failure in name resolution</>.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix memory leaks when sending composite column values to the client
|
||||||
|
(Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Make <application>pg_ctl</> more robust about reading the
|
||||||
|
<filename>postmaster.pid</> file (Heikki Linnakangas)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Fix race conditions and possible file descriptor leakage.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix possible crash in <application>psql</> if incorrectly-encoded data
|
||||||
|
is presented and the <varname>client_encoding</> setting is a
|
||||||
|
client-only encoding, such as SJIS (Jiang Guiqing)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix bugs in the <filename>restore.sql</> script emitted by
|
||||||
|
<application>pg_dump</> in <literal>tar</> output format (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The script would fail outright on tables whose names include
|
||||||
|
upper-case characters. Also, make the script capable of restoring
|
||||||
|
data in <option>--inserts</> mode as well as the regular COPY mode.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <application>pg_restore</> to accept POSIX-conformant
|
||||||
|
<literal>tar</> files (Brian Weaver, Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The original coding of <application>pg_dump</>'s <literal>tar</>
|
||||||
|
output mode produced files that are not fully conformant with the
|
||||||
|
POSIX standard. This has been corrected for version 9.3. This
|
||||||
|
patch updates previous branches so that they will accept both the
|
||||||
|
incorrect and the corrected formats, in hopes of avoiding
|
||||||
|
compatibility problems when 9.3 comes out.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <application>pg_resetxlog</> to locate <filename>postmaster.pid</>
|
||||||
|
correctly when given a relative path to the data directory (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This mistake could lead to <application>pg_resetxlog</> not noticing
|
||||||
|
that there is an active postmaster using the data directory.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <application>libpq</>'s <function>lo_import()</> and
|
||||||
|
<function>lo_export()</> functions to report file I/O errors properly
|
||||||
|
(Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <application>ecpg</>'s processing of nested structure pointer
|
||||||
|
variables (Muhammad Usama)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Make <filename>contrib/pageinspect</>'s btree page inspection
|
||||||
|
functions take buffer locks while examining pages (Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <application>pgxs</> support for building loadable modules on AIX
|
||||||
|
(Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Building modules outside the original source tree didn't work on AIX.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Update time zone data files to <application>tzdata</> release 2012j
|
||||||
|
for DST law changes in Cuba, Israel, Jordan, Libya, Palestine, Western
|
||||||
|
Samoa, and portions of Brazil.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
</itemizedlist>
|
||||||
|
|
||||||
|
</sect2>
|
||||||
|
</sect1>
|
||||||
|
|
||||||
<sect1 id="release-8-4-14">
|
<sect1 id="release-8-4-14">
|
||||||
<title>Release 8.4.14</title>
|
<title>Release 8.4.14</title>
|
||||||
|
|
||||||
|
@ -1,6 +1,384 @@
|
|||||||
<!-- doc/src/sgml/release-9.0.sgml -->
|
<!-- doc/src/sgml/release-9.0.sgml -->
|
||||||
<!-- See header comment in release.sgml about typical markup -->
|
<!-- See header comment in release.sgml about typical markup -->
|
||||||
|
|
||||||
|
<sect1 id="release-9-0-11">
|
||||||
|
<title>Release 9.0.11</title>
|
||||||
|
|
||||||
|
<note>
|
||||||
|
<title>Release Date</title>
|
||||||
|
<simpara>2012-12-06</simpara>
|
||||||
|
</note>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This release contains a variety of fixes from 9.0.10.
|
||||||
|
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.11</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
A dump/restore is not required for those running 9.0.X.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
However, if you are upgrading from a version earlier than 9.0.6,
|
||||||
|
see the release notes for 9.0.6.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
</sect2>
|
||||||
|
|
||||||
|
<sect2>
|
||||||
|
<title>Changes</title>
|
||||||
|
|
||||||
|
<itemizedlist>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix multiple bugs associated with <command>CREATE INDEX
|
||||||
|
CONCURRENTLY</> (Andres Freund, Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Fix <command>CREATE INDEX CONCURRENTLY</> to use
|
||||||
|
in-place updates when changing the state of an index's
|
||||||
|
<structname>pg_index</> row. This prevents race conditions that could
|
||||||
|
cause concurrent sessions to miss updating the target index, thus
|
||||||
|
resulting in corrupt concurrently-created indexes.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Also, fix various other operations to ensure that they ignore
|
||||||
|
invalid indexes resulting from a failed <command>CREATE INDEX
|
||||||
|
CONCURRENTLY</> command. The most important of these is
|
||||||
|
<command>VACUUM</>, because an auto-vacuum could easily be launched
|
||||||
|
on the table before corrective action can be taken to fix or remove
|
||||||
|
the invalid index.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix buffer locking during WAL replay (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The WAL replay code was insufficiently careful about locking buffers
|
||||||
|
when replaying WAL records that affect more than one page. This could
|
||||||
|
result in hot standby queries transiently seeing inconsistent states,
|
||||||
|
resulting in wrong answers or unexpected failures.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix an error in WAL generation logic for GIN indexes (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This could result in index corruption, if a torn-page failure occurred.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Properly remove startup process's virtual XID lock when promoting a
|
||||||
|
hot standby server to normal running (Simon Riggs)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This oversight could prevent subsequent execution of certain
|
||||||
|
operations such as <command>CREATE INDEX CONCURRENTLY</>.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Avoid bogus <quote>out-of-sequence timeline ID</> errors in standby
|
||||||
|
mode (Heikki Linnakangas)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Prevent the postmaster from launching new child processes after it's
|
||||||
|
received a shutdown signal (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This mistake could result in shutdown taking longer than it should, or
|
||||||
|
even never completing at all without additional user action.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Avoid corruption of internal hash tables when out of memory
|
||||||
|
(Hitoshi Harada)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix planning of non-strict equivalence clauses above outer joins
|
||||||
|
(Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The planner could derive incorrect constraints from a clause equating
|
||||||
|
a non-strict construct to something else, for example
|
||||||
|
<literal>WHERE COALESCE(foo, 0) = 0</>
|
||||||
|
when <literal>foo</> is coming from the nullable side of an outer join.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Improve planner's ability to prove exclusion constraints from
|
||||||
|
equivalence classes (Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix partial-row matching in hashed subplans to handle cross-type cases
|
||||||
|
correctly (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This affects multicolumn <literal>NOT IN</> subplans, such as
|
||||||
|
<literal>WHERE (a, b) NOT IN (SELECT x, y FROM ...)</>
|
||||||
|
when for instance <literal>b</> and <literal>y</> are <type>int4</>
|
||||||
|
and <type>int8</> respectively. This mistake led to wrong answers
|
||||||
|
or crashes depending on the specific datatypes involved.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Acquire buffer lock when re-fetching the old tuple for an
|
||||||
|
<literal>AFTER ROW UPDATE/DELETE</> trigger (Andres Freund)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
In very unusual circumstances, this oversight could result in passing
|
||||||
|
incorrect data to the precheck logic for a foreign-key enforcement
|
||||||
|
trigger. That could result in a crash, or in an incorrect decision
|
||||||
|
about whether to fire the trigger.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <command>ALTER COLUMN TYPE</> to handle inherited check
|
||||||
|
constraints properly (Pavan Deolasee)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This worked correctly in pre-8.4 releases, and now works correctly
|
||||||
|
in 8.4 and later.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <command>REASSIGN OWNED</> to handle grants on tablespaces
|
||||||
|
(Álvaro Herrera)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Ignore incorrect <structname>pg_attribute</> entries for system
|
||||||
|
columns for views (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Views do not have any system columns. However, we forgot to
|
||||||
|
remove such entries when converting a table to a view. That's fixed
|
||||||
|
properly for 9.3 and later, but in previous branches we need to defend
|
||||||
|
against existing mis-converted views.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix rule printing to dump <literal>INSERT INTO <replaceable>table</>
|
||||||
|
DEFAULT VALUES</literal> correctly (Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Guard against stack overflow when there are too many
|
||||||
|
<literal>UNION</>/<literal>INTERSECT</>/<literal>EXCEPT</> clauses
|
||||||
|
in a query (Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Prevent platform-dependent failures when dividing the minimum possible
|
||||||
|
integer value by -1 (Xi Wang, Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix possible access past end of string in date parsing
|
||||||
|
(Hitoshi Harada)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix failure to advance XID epoch if XID wraparound happens during a
|
||||||
|
checkpoint and <varname>wal_level</> is <literal>hot_standby</>
|
||||||
|
(Tom Lane, Andres Freund)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
While this mistake had no particular impact on
|
||||||
|
<productname>PostgreSQL</productname> itself, it was bad for
|
||||||
|
applications that rely on <function>txid_current()</> and related
|
||||||
|
functions: the TXID value would appear to go backwards.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Produce an understandable error message if the length of the path name
|
||||||
|
for a Unix-domain socket exceeds the platform-specific limit
|
||||||
|
(Tom Lane, Andrew Dunstan)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Formerly, this would result in something quite unhelpful, such as
|
||||||
|
<quote>Non-recoverable failure in name resolution</>.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix memory leaks when sending composite column values to the client
|
||||||
|
(Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Make <application>pg_ctl</> more robust about reading the
|
||||||
|
<filename>postmaster.pid</> file (Heikki Linnakangas)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Fix race conditions and possible file descriptor leakage.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix possible crash in <application>psql</> if incorrectly-encoded data
|
||||||
|
is presented and the <varname>client_encoding</> setting is a
|
||||||
|
client-only encoding, such as SJIS (Jiang Guiqing)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix bugs in the <filename>restore.sql</> script emitted by
|
||||||
|
<application>pg_dump</> in <literal>tar</> output format (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The script would fail outright on tables whose names include
|
||||||
|
upper-case characters. Also, make the script capable of restoring
|
||||||
|
data in <option>--inserts</> mode as well as the regular COPY mode.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <application>pg_restore</> to accept POSIX-conformant
|
||||||
|
<literal>tar</> files (Brian Weaver, Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The original coding of <application>pg_dump</>'s <literal>tar</>
|
||||||
|
output mode produced files that are not fully conformant with the
|
||||||
|
POSIX standard. This has been corrected for version 9.3. This
|
||||||
|
patch updates previous branches so that they will accept both the
|
||||||
|
incorrect and the corrected formats, in hopes of avoiding
|
||||||
|
compatibility problems when 9.3 comes out.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <application>pg_resetxlog</> to locate <filename>postmaster.pid</>
|
||||||
|
correctly when given a relative path to the data directory (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This mistake could lead to <application>pg_resetxlog</> not noticing
|
||||||
|
that there is an active postmaster using the data directory.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <application>libpq</>'s <function>lo_import()</> and
|
||||||
|
<function>lo_export()</> functions to report file I/O errors properly
|
||||||
|
(Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <application>ecpg</>'s processing of nested structure pointer
|
||||||
|
variables (Muhammad Usama)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <application>ecpg</>'s <function>ecpg_get_data</> function to
|
||||||
|
handle arrays properly (Michael Meskes)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Make <filename>contrib/pageinspect</>'s btree page inspection
|
||||||
|
functions take buffer locks while examining pages (Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <application>pgxs</> support for building loadable modules on AIX
|
||||||
|
(Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Building modules outside the original source tree didn't work on AIX.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Update time zone data files to <application>tzdata</> release 2012j
|
||||||
|
for DST law changes in Cuba, Israel, Jordan, Libya, Palestine, Western
|
||||||
|
Samoa, and portions of Brazil.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
</itemizedlist>
|
||||||
|
|
||||||
|
</sect2>
|
||||||
|
</sect1>
|
||||||
|
|
||||||
<sect1 id="release-9-0-10">
|
<sect1 id="release-9-0-10">
|
||||||
<title>Release 9.0.10</title>
|
<title>Release 9.0.10</title>
|
||||||
|
|
||||||
|
@ -1,6 +1,469 @@
|
|||||||
<!-- doc/src/sgml/release-9.1.sgml -->
|
<!-- doc/src/sgml/release-9.1.sgml -->
|
||||||
<!-- See header comment in release.sgml about typical markup -->
|
<!-- See header comment in release.sgml about typical markup -->
|
||||||
|
|
||||||
|
<sect1 id="release-9-1-7">
|
||||||
|
<title>Release 9.1.7</title>
|
||||||
|
|
||||||
|
<note>
|
||||||
|
<title>Release Date</title>
|
||||||
|
<simpara>2012-12-06</simpara>
|
||||||
|
</note>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This release contains a variety of fixes from 9.1.6.
|
||||||
|
For information about new features in the 9.1 major release, see
|
||||||
|
<xref linkend="release-9-1">.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<sect2>
|
||||||
|
<title>Migration to Version 9.1.7</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
A dump/restore is not required for those running 9.1.X.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
However, if you are upgrading from a version earlier than 9.1.6,
|
||||||
|
see the release notes for 9.1.6.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
</sect2>
|
||||||
|
|
||||||
|
<sect2>
|
||||||
|
<title>Changes</title>
|
||||||
|
|
||||||
|
<itemizedlist>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix multiple bugs associated with <command>CREATE INDEX
|
||||||
|
CONCURRENTLY</> (Andres Freund, Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Fix <command>CREATE INDEX CONCURRENTLY</> to use
|
||||||
|
in-place updates when changing the state of an index's
|
||||||
|
<structname>pg_index</> row. This prevents race conditions that could
|
||||||
|
cause concurrent sessions to miss updating the target index, thus
|
||||||
|
resulting in corrupt concurrently-created indexes.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Also, fix various other operations to ensure that they ignore
|
||||||
|
invalid indexes resulting from a failed <command>CREATE INDEX
|
||||||
|
CONCURRENTLY</> command. The most important of these is
|
||||||
|
<command>VACUUM</>, because an auto-vacuum could easily be launched
|
||||||
|
on the table before corrective action can be taken to fix or remove
|
||||||
|
the invalid index.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix buffer locking during WAL replay (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The WAL replay code was insufficiently careful about locking buffers
|
||||||
|
when replaying WAL records that affect more than one page. This could
|
||||||
|
result in hot standby queries transiently seeing inconsistent states,
|
||||||
|
resulting in wrong answers or unexpected failures.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix an error in WAL generation logic for GIN indexes (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This could result in index corruption, if a torn-page failure occurred.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Properly remove startup process's virtual XID lock when promoting a
|
||||||
|
hot standby server to normal running (Simon Riggs)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This oversight could prevent subsequent execution of certain
|
||||||
|
operations such as <command>CREATE INDEX CONCURRENTLY</>.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Avoid bogus <quote>out-of-sequence timeline ID</> errors in standby
|
||||||
|
mode (Heikki Linnakangas)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Prevent the postmaster from launching new child processes after it's
|
||||||
|
received a shutdown signal (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This mistake could result in shutdown taking longer than it should, or
|
||||||
|
even never completing at all without additional user action.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Avoid corruption of internal hash tables when out of memory
|
||||||
|
(Hitoshi Harada)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Prevent file descriptors for dropped tables from being held open past
|
||||||
|
transaction end (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This should reduce problems with long-since-dropped tables continuing
|
||||||
|
to occupy disk space.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Prevent database-wide crash and restart when a new child process is
|
||||||
|
unable to create a pipe for its latch (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Although the new process must fail, there is no good reason to force a
|
||||||
|
database-wide restart, so avoid that. This improves robustness when
|
||||||
|
the kernel is nearly out of file descriptors.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix planning of non-strict equivalence clauses above outer joins
|
||||||
|
(Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The planner could derive incorrect constraints from a clause equating
|
||||||
|
a non-strict construct to something else, for example
|
||||||
|
<literal>WHERE COALESCE(foo, 0) = 0</>
|
||||||
|
when <literal>foo</> is coming from the nullable side of an outer join.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <command>SELECT DISTINCT</> with index-optimized
|
||||||
|
<function>MIN</>/<function>MAX</> on an inheritance tree (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The planner would fail with <quote>failed to re-find MinMaxAggInfo
|
||||||
|
record</> given this combination of factors.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Improve planner's ability to prove exclusion constraints from
|
||||||
|
equivalence classes (Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix partial-row matching in hashed subplans to handle cross-type cases
|
||||||
|
correctly (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This affects multicolumn <literal>NOT IN</> subplans, such as
|
||||||
|
<literal>WHERE (a, b) NOT IN (SELECT x, y FROM ...)</>
|
||||||
|
when for instance <literal>b</> and <literal>y</> are <type>int4</>
|
||||||
|
and <type>int8</> respectively. This mistake led to wrong answers
|
||||||
|
or crashes depending on the specific datatypes involved.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Acquire buffer lock when re-fetching the old tuple for an
|
||||||
|
<literal>AFTER ROW UPDATE/DELETE</> trigger (Andres Freund)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
In very unusual circumstances, this oversight could result in passing
|
||||||
|
incorrect data to a trigger <literal>WHEN</> condition, or to the
|
||||||
|
precheck logic for a foreign-key enforcement trigger. That could
|
||||||
|
result in a crash, or in an incorrect decision about whether to
|
||||||
|
fire the trigger.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <command>ALTER COLUMN TYPE</> to handle inherited check
|
||||||
|
constraints properly (Pavan Deolasee)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This worked correctly in pre-8.4 releases, and now works correctly
|
||||||
|
in 8.4 and later.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <command>ALTER EXTENSION SET SCHEMA</>'s failure to move some
|
||||||
|
subsidiary objects into the new schema (Álvaro Herrera, Dimitri
|
||||||
|
Fontaine)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <command>REASSIGN OWNED</> to handle grants on tablespaces
|
||||||
|
(Álvaro Herrera)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Ignore incorrect <structname>pg_attribute</> entries for system
|
||||||
|
columns for views (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Views do not have any system columns. However, we forgot to
|
||||||
|
remove such entries when converting a table to a view. That's fixed
|
||||||
|
properly for 9.3 and later, but in previous branches we need to defend
|
||||||
|
against existing mis-converted views.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix rule printing to dump <literal>INSERT INTO <replaceable>table</>
|
||||||
|
DEFAULT VALUES</literal> correctly (Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Guard against stack overflow when there are too many
|
||||||
|
<literal>UNION</>/<literal>INTERSECT</>/<literal>EXCEPT</> clauses
|
||||||
|
in a query (Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Prevent platform-dependent failures when dividing the minimum possible
|
||||||
|
integer value by -1 (Xi Wang, Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix possible access past end of string in date parsing
|
||||||
|
(Hitoshi Harada)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix failure to advance XID epoch if XID wraparound happens during a
|
||||||
|
checkpoint and <varname>wal_level</> is <literal>hot_standby</>
|
||||||
|
(Tom Lane, Andres Freund)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
While this mistake had no particular impact on
|
||||||
|
<productname>PostgreSQL</productname> itself, it was bad for
|
||||||
|
applications that rely on <function>txid_current()</> and related
|
||||||
|
functions: the TXID value would appear to go backwards.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix display of
|
||||||
|
<structname>pg_stat_replication</>.<structfield>sync_state</> at a
|
||||||
|
page boundary (Kyotaro Horiguchi)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Produce an understandable error message if the length of the path name
|
||||||
|
for a Unix-domain socket exceeds the platform-specific limit
|
||||||
|
(Tom Lane, Andrew Dunstan)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Formerly, this would result in something quite unhelpful, such as
|
||||||
|
<quote>Non-recoverable failure in name resolution</>.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix memory leaks when sending composite column values to the client
|
||||||
|
(Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Make <application>pg_ctl</> more robust about reading the
|
||||||
|
<filename>postmaster.pid</> file (Heikki Linnakangas)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Fix race conditions and possible file descriptor leakage.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix possible crash in <application>psql</> if incorrectly-encoded data
|
||||||
|
is presented and the <varname>client_encoding</> setting is a
|
||||||
|
client-only encoding, such as SJIS (Jiang Guiqing)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Make <application>pg_dump</> dump <literal>SEQUENCE SET</> items in
|
||||||
|
the data not pre-data section of the archive (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This change fixes dumping of sequences that are marked as extension
|
||||||
|
configuration tables.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix bugs in the <filename>restore.sql</> script emitted by
|
||||||
|
<application>pg_dump</> in <literal>tar</> output format (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The script would fail outright on tables whose names include
|
||||||
|
upper-case characters. Also, make the script capable of restoring
|
||||||
|
data in <option>--inserts</> mode as well as the regular COPY mode.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <application>pg_restore</> to accept POSIX-conformant
|
||||||
|
<literal>tar</> files (Brian Weaver, Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The original coding of <application>pg_dump</>'s <literal>tar</>
|
||||||
|
output mode produced files that are not fully conformant with the
|
||||||
|
POSIX standard. This has been corrected for version 9.3. This
|
||||||
|
patch updates previous branches so that they will accept both the
|
||||||
|
incorrect and the corrected formats, in hopes of avoiding
|
||||||
|
compatibility problems when 9.3 comes out.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <literal>tar</> files emitted by <application>pg_basebackup</> to
|
||||||
|
be POSIX conformant (Brian Weaver, Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <application>pg_resetxlog</> to locate <filename>postmaster.pid</>
|
||||||
|
correctly when given a relative path to the data directory (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This mistake could lead to <application>pg_resetxlog</> not noticing
|
||||||
|
that there is an active postmaster using the data directory.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <application>libpq</>'s <function>lo_import()</> and
|
||||||
|
<function>lo_export()</> functions to report file I/O errors properly
|
||||||
|
(Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <application>ecpg</>'s processing of nested structure pointer
|
||||||
|
variables (Muhammad Usama)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <application>ecpg</>'s <function>ecpg_get_data</> function to
|
||||||
|
handle arrays properly (Michael Meskes)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Make <filename>contrib/pageinspect</>'s btree page inspection
|
||||||
|
functions take buffer locks while examining pages (Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Ensure that <literal>make install</> for an extension creates the
|
||||||
|
<filename>extension</> installation directory (Cédric Villemain)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Previously, this step was missed if <varname>MODULEDIR</> was set in
|
||||||
|
the extension's Makefile.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <application>pgxs</> support for building loadable modules on AIX
|
||||||
|
(Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Building modules outside the original source tree didn't work on AIX.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Update time zone data files to <application>tzdata</> release 2012j
|
||||||
|
for DST law changes in Cuba, Israel, Jordan, Libya, Palestine, Western
|
||||||
|
Samoa, and portions of Brazil.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
</itemizedlist>
|
||||||
|
|
||||||
|
</sect2>
|
||||||
|
</sect1>
|
||||||
|
|
||||||
<sect1 id="release-9-1-6">
|
<sect1 id="release-9-1-6">
|
||||||
<title>Release 9.1.6</title>
|
<title>Release 9.1.6</title>
|
||||||
|
|
||||||
@ -146,7 +609,7 @@
|
|||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Disallow extensions from containing the schema they are assigned to
|
Disallow extensions from containing the schema they are assigned to
|
||||||
(Thom Brown)
|
(Thom Brown)
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
@ -3322,7 +3785,7 @@
|
|||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Add
|
Add
|
||||||
<link linkend="guc-replication-timeout"><varname>replication_timeout</></link>
|
<varname>replication_timeout</>
|
||||||
setting (Fujii Masao, Heikki Linnakangas)
|
setting (Fujii Masao, Heikki Linnakangas)
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
|
@ -1,6 +1,730 @@
|
|||||||
<!-- doc/src/sgml/release-9.2.sgml -->
|
<!-- doc/src/sgml/release-9.2.sgml -->
|
||||||
<!-- See header comment in release.sgml about typical markup -->
|
<!-- See header comment in release.sgml about typical markup -->
|
||||||
|
|
||||||
|
<sect1 id="release-9-2-2">
|
||||||
|
<title>Release 9.2.2</title>
|
||||||
|
|
||||||
|
<note>
|
||||||
|
<title>Release Date</title>
|
||||||
|
<simpara>2012-12-06</simpara>
|
||||||
|
</note>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This release contains a variety of fixes from 9.2.1.
|
||||||
|
For information about new features in the 9.2 major release, see
|
||||||
|
<xref linkend="release-9-2">.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<sect2>
|
||||||
|
<title>Migration to Version 9.2.2</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
A dump/restore is not required for those running 9.2.X.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
However, you may need to perform <command>REINDEX</> operations to
|
||||||
|
correct problems in concurrently-built indexes, as described in the first
|
||||||
|
changelog item below.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Also, if you are upgrading from version 9.2.0,
|
||||||
|
see the release notes for 9.2.1.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
</sect2>
|
||||||
|
|
||||||
|
<sect2>
|
||||||
|
<title>Changes</title>
|
||||||
|
|
||||||
|
<itemizedlist>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix multiple bugs associated with <command>CREATE/DROP INDEX
|
||||||
|
CONCURRENTLY</> (Andres Freund, Tom Lane, Simon Riggs, Pavan Deolasee)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
An error introduced while adding <command>DROP INDEX CONCURRENTLY</>
|
||||||
|
allowed incorrect indexing decisions to be made during the initial
|
||||||
|
phase of <command>CREATE INDEX CONCURRENTLY</>; so that indexes built
|
||||||
|
by that command could be corrupt. It is recommended that indexes
|
||||||
|
built in 9.2.X with <command>CREATE INDEX CONCURRENTLY</> be rebuilt
|
||||||
|
after applying this update.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
In addition, fix <command>CREATE/DROP INDEX CONCURRENTLY</> to use
|
||||||
|
in-place updates when changing the state of an index's
|
||||||
|
<structname>pg_index</> row. This prevents race conditions that could
|
||||||
|
cause concurrent sessions to miss updating the target index, thus
|
||||||
|
again resulting in corrupt concurrently-created indexes.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Also, fix various other operations to ensure that they ignore
|
||||||
|
invalid indexes resulting from a failed <command>CREATE INDEX
|
||||||
|
CONCURRENTLY</> command. The most important of these is
|
||||||
|
<command>VACUUM</>, because an auto-vacuum could easily be launched
|
||||||
|
on the table before corrective action can be taken to fix or remove
|
||||||
|
the invalid index.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Also fix <command>DROP INDEX CONCURRENTLY</> to not disable
|
||||||
|
insertions into the target index until all queries using it are done.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Also fix misbehavior if <command>DROP INDEX CONCURRENTLY</> is
|
||||||
|
canceled: the previous coding could leave an un-droppable index behind.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Correct predicate locking for <command>DROP INDEX CONCURRENTLY</>
|
||||||
|
(Kevin Grittner)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Previously, SSI predicate locks were processed at the wrong time,
|
||||||
|
possibly leading to incorrect behavior of serializable transactions
|
||||||
|
executing in parallel with the <command>DROP</>.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix buffer locking during WAL replay (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The WAL replay code was insufficiently careful about locking buffers
|
||||||
|
when replaying WAL records that affect more than one page. This could
|
||||||
|
result in hot standby queries transiently seeing inconsistent states,
|
||||||
|
resulting in wrong answers or unexpected failures.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix an error in WAL generation logic for GIN indexes (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This could result in index corruption, if a torn-page failure occurred.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix an error in WAL replay logic for SP-GiST indexes (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This could result in index corruption after a crash, or on a standby
|
||||||
|
server.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix incorrect detection of end-of-base-backup location during WAL
|
||||||
|
recovery (Heikki Linnakangas)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This mistake allowed hot standby mode to start up before the database
|
||||||
|
reaches a consistent state.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Properly remove startup process's virtual XID lock when promoting a
|
||||||
|
hot standby server to normal running (Simon Riggs)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This oversight could prevent subsequent execution of certain
|
||||||
|
operations such as <command>CREATE INDEX CONCURRENTLY</>.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Avoid bogus <quote>out-of-sequence timeline ID</> errors in standby
|
||||||
|
mode (Heikki Linnakangas)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Prevent the postmaster from launching new child processes after it's
|
||||||
|
received a shutdown signal (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This mistake could result in shutdown taking longer than it should, or
|
||||||
|
even never completing at all without additional user action.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix the syslogger process to not fail when
|
||||||
|
<varname>log_rotation_age</> exceeds 2^31 milliseconds (about 25 days)
|
||||||
|
(Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <function>WaitLatch()</> to return promptly when the requested
|
||||||
|
timeout expires (Jeff Janes, Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
With the previous coding, a steady stream of non-wait-terminating
|
||||||
|
interrupts could delay return from <function>WaitLatch()</>
|
||||||
|
indefinitely. This has been shown to be a problem for the autovacuum
|
||||||
|
launcher process, and might cause trouble elsewhere as well.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Avoid corruption of internal hash tables when out of memory
|
||||||
|
(Hitoshi Harada)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Prevent file descriptors for dropped tables from being held open past
|
||||||
|
transaction end (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This should reduce problems with long-since-dropped tables continuing
|
||||||
|
to occupy disk space.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Prevent database-wide crash and restart when a new child process is
|
||||||
|
unable to create a pipe for its latch (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Although the new process must fail, there is no good reason to force a
|
||||||
|
database-wide restart, so avoid that. This improves robustness when
|
||||||
|
the kernel is nearly out of file descriptors.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Avoid planner crash with joins to unflattened subqueries (Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix planning of non-strict equivalence clauses above outer joins
|
||||||
|
(Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The planner could derive incorrect constraints from a clause equating
|
||||||
|
a non-strict construct to something else, for example
|
||||||
|
<literal>WHERE COALESCE(foo, 0) = 0</>
|
||||||
|
when <literal>foo</> is coming from the nullable side of an outer join.
|
||||||
|
9.2 showed this type of error in more cases than previous releases,
|
||||||
|
but the basic bug has been there for a long time.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <command>SELECT DISTINCT</> with index-optimized
|
||||||
|
<function>MIN</>/<function>MAX</> on an inheritance tree (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The planner would fail with <quote>failed to re-find MinMaxAggInfo
|
||||||
|
record</> given this combination of factors.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Make sure the planner sees implicit and explicit casts as equivalent
|
||||||
|
for all purposes, except in the minority of cases where there's
|
||||||
|
actually a semantic difference (Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Include join clauses when considering whether partial indexes can be
|
||||||
|
used for a query (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
A strict join clause can be sufficient to establish an
|
||||||
|
<replaceable>x</> <literal>IS NOT NULL</> predicate, for example.
|
||||||
|
This fixes a planner regression in 9.2, since previous versions could
|
||||||
|
make comparable deductions.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Limit growth of planning time when there are many indexable join
|
||||||
|
clauses for the same index (Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Improve planner's ability to prove exclusion constraints from
|
||||||
|
equivalence classes (Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix partial-row matching in hashed subplans to handle cross-type cases
|
||||||
|
correctly (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This affects multicolumn <literal>NOT IN</> subplans, such as
|
||||||
|
<literal>WHERE (a, b) NOT IN (SELECT x, y FROM ...)</>
|
||||||
|
when for instance <literal>b</> and <literal>y</> are <type>int4</>
|
||||||
|
and <type>int8</> respectively. This mistake led to wrong answers
|
||||||
|
or crashes depending on the specific datatypes involved.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix btree mark/restore functions to handle array keys (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This oversight could result in wrong answers from merge joins whose
|
||||||
|
inner side is an index scan using an
|
||||||
|
<literal><replaceable>indexed_column</> =
|
||||||
|
ANY(<replaceable>array</>)</literal> condition.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Revert patch for taking fewer snapshots (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The 9.2 change to reduce the number of snapshots taken during query
|
||||||
|
execution led to some anomalous behaviors not seen in previous
|
||||||
|
releases, because execution would proceed with a snapshot acquired
|
||||||
|
before locking the tables used by the query. Thus, for example,
|
||||||
|
a query would not be guaranteed to see updates committed by a
|
||||||
|
preceding transaction even if that transaction had exclusive lock.
|
||||||
|
We'll probably revisit this in future releases, but meanwhile put it
|
||||||
|
back the way it was before 9.2.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Acquire buffer lock when re-fetching the old tuple for an
|
||||||
|
<literal>AFTER ROW UPDATE/DELETE</> trigger (Andres Freund)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
In very unusual circumstances, this oversight could result in passing
|
||||||
|
incorrect data to a trigger <literal>WHEN</> condition, or to the
|
||||||
|
precheck logic for a foreign-key enforcement trigger. That could
|
||||||
|
result in a crash, or in an incorrect decision about whether to
|
||||||
|
fire the trigger.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <command>ALTER COLUMN TYPE</> to handle inherited check
|
||||||
|
constraints properly (Pavan Deolasee)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This worked correctly in pre-8.4 releases, and now works correctly
|
||||||
|
in 8.4 and later.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <command>ALTER EXTENSION SET SCHEMA</>'s failure to move some
|
||||||
|
subsidiary objects into the new schema (Álvaro Herrera, Dimitri
|
||||||
|
Fontaine)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Handle <command>CREATE TABLE AS EXECUTE</> correctly in extended query
|
||||||
|
protocol (Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Don't modify the input parse tree in <command>DROP RULE IF NOT
|
||||||
|
EXISTS</> and <command>DROP TRIGGER IF NOT EXISTS</> (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This mistake would cause errors if a cached statement of one of these
|
||||||
|
types was re-executed.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <command>REASSIGN OWNED</> to handle grants on tablespaces
|
||||||
|
(Álvaro Herrera)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Ignore incorrect <structname>pg_attribute</> entries for system
|
||||||
|
columns for views (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Views do not have any system columns. However, we forgot to
|
||||||
|
remove such entries when converting a table to a view. That's fixed
|
||||||
|
properly for 9.3 and later, but in previous branches we need to defend
|
||||||
|
against existing mis-converted views.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix rule printing to dump <literal>INSERT INTO <replaceable>table</>
|
||||||
|
DEFAULT VALUES</literal> correctly (Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Guard against stack overflow when there are too many
|
||||||
|
<literal>UNION</>/<literal>INTERSECT</>/<literal>EXCEPT</> clauses
|
||||||
|
in a query (Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Prevent platform-dependent failures when dividing the minimum possible
|
||||||
|
integer value by -1 (Xi Wang, Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix possible access past end of string in date parsing
|
||||||
|
(Hitoshi Harada)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix failure to advance XID epoch if XID wraparound happens during a
|
||||||
|
checkpoint and <varname>wal_level</> is <literal>hot_standby</>
|
||||||
|
(Tom Lane, Andres Freund)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
While this mistake had no particular impact on
|
||||||
|
<productname>PostgreSQL</productname> itself, it was bad for
|
||||||
|
applications that rely on <function>txid_current()</> and related
|
||||||
|
functions: the TXID value would appear to go backwards.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <function>pg_terminate_backend()</> and
|
||||||
|
<function>pg_cancel_backend()</> to not throw error for a non-existent
|
||||||
|
target process (Josh Kupershmidt)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This case already worked as intended when called by a superuser,
|
||||||
|
but not so much when called by ordinary users.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix display of
|
||||||
|
<structname>pg_stat_replication</>.<structfield>sync_state</> at a
|
||||||
|
page boundary (Kyotaro Horiguchi)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Produce an understandable error message if the length of the path name
|
||||||
|
for a Unix-domain socket exceeds the platform-specific limit
|
||||||
|
(Tom Lane, Andrew Dunstan)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Formerly, this would result in something quite unhelpful, such as
|
||||||
|
<quote>Non-recoverable failure in name resolution</>.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix memory leaks when sending composite column values to the client
|
||||||
|
(Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Save some cycles by not searching for subtransaction locks at commit
|
||||||
|
(Simon Riggs)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
In a transaction holding many exclusive locks, this useless activity
|
||||||
|
could be quite costly.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Make <application>pg_ctl</> more robust about reading the
|
||||||
|
<filename>postmaster.pid</> file (Heikki Linnakangas)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This fixes race conditions and possible file descriptor leakage.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix possible crash in <application>psql</> if incorrectly-encoded data
|
||||||
|
is presented and the <varname>client_encoding</> setting is a
|
||||||
|
client-only encoding, such as SJIS (Jiang Guiqing)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Make <application>pg_dump</> dump <literal>SEQUENCE SET</> items in
|
||||||
|
the data not pre-data section of the archive (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This fixes an undesirable inconsistency between the meanings of
|
||||||
|
<option>--data-only</> and <option>--section=data</>, and also fixes
|
||||||
|
dumping of sequences that are marked as extension configuration tables.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <application>pg_dump</>'s handling of <command>DROP DATABASE</>
|
||||||
|
commands in <option>--clean</> mode (Guillaume Lelarge)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Beginning in 9.2.0, <literal>pg_dump --clean</> would issue a
|
||||||
|
<command>DROP DATABASE</> command, which was either useless or
|
||||||
|
dangerous depending on the usage scenario. It no longer does that.
|
||||||
|
This change also fixes the combination of <option>--clean</> and
|
||||||
|
<option>--create</> to work sensibly, i.e., emit <command>DROP
|
||||||
|
DATABASE</> then <command>CREATE DATABASE</> before reconnecting to the
|
||||||
|
target database.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <application>pg_dump</> for views with circular dependencies and
|
||||||
|
no relation options (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The previous fix to dump relation options when a view is
|
||||||
|
involved in a circular dependency didn't work right for the case
|
||||||
|
that the view has no options; it emitted <literal>ALTER VIEW foo
|
||||||
|
SET ()</> which is invalid syntax.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix bugs in the <filename>restore.sql</> script emitted by
|
||||||
|
<application>pg_dump</> in <literal>tar</> output format (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The script would fail outright on tables whose names include
|
||||||
|
upper-case characters. Also, make the script capable of restoring
|
||||||
|
data in <option>--inserts</> mode as well as the regular COPY mode.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <application>pg_restore</> to accept POSIX-conformant
|
||||||
|
<literal>tar</> files (Brian Weaver, Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The original coding of <application>pg_dump</>'s <literal>tar</>
|
||||||
|
output mode produced files that are not fully conformant with the
|
||||||
|
POSIX standard. This has been corrected for version 9.3. This
|
||||||
|
patch updates previous branches so that they will accept both the
|
||||||
|
incorrect and the corrected formats, in hopes of avoiding
|
||||||
|
compatibility problems when 9.3 comes out.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <literal>tar</> files emitted by <application>pg_basebackup</> to
|
||||||
|
be POSIX conformant (Brian Weaver, Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <application>pg_resetxlog</> to locate <filename>postmaster.pid</>
|
||||||
|
correctly when given a relative path to the data directory (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This mistake could lead to <application>pg_resetxlog</> not noticing
|
||||||
|
that there is an active postmaster using the data directory.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <application>libpq</>'s <function>lo_import()</> and
|
||||||
|
<function>lo_export()</> functions to report file I/O errors properly
|
||||||
|
(Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <application>ecpg</>'s processing of nested structure pointer
|
||||||
|
variables (Muhammad Usama)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <application>ecpg</>'s <function>ecpg_get_data</> function to
|
||||||
|
handle arrays properly (Michael Meskes)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Prevent <application>pg_upgrade</> from trying to process TOAST tables
|
||||||
|
for system catalogs (Bruce Momjian)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This fixes an error seen when the <literal>information_schema</> has
|
||||||
|
been dropped and recreated. Other failures were also possible.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Improve <application>pg_upgrade</> performance by setting
|
||||||
|
<varname>synchronous_commit</> to <literal>off</> in the new cluster
|
||||||
|
(Bruce Momjian)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Make <filename>contrib/pageinspect</>'s btree page inspection
|
||||||
|
functions take buffer locks while examining pages (Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Work around unportable behavior of <literal>malloc(0)</> and
|
||||||
|
<literal>realloc(NULL, 0)</> (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
On platforms where these calls return <literal>NULL</>, some code
|
||||||
|
mistakenly thought that meant out-of-memory.
|
||||||
|
This is known to have broken <application>pg_dump</> for databases
|
||||||
|
containing no user-defined aggregates. There might be other cases
|
||||||
|
as well.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Ensure that <literal>make install</> for an extension creates the
|
||||||
|
<filename>extension</> installation directory (Cédric Villemain)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Previously, this step was missed if <varname>MODULEDIR</> was set in
|
||||||
|
the extension's Makefile.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <application>pgxs</> support for building loadable modules on AIX
|
||||||
|
(Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Building modules outside the original source tree didn't work on AIX.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Update time zone data files to <application>tzdata</> release 2012j
|
||||||
|
for DST law changes in Cuba, Israel, Jordan, Libya, Palestine, Western
|
||||||
|
Samoa, and portions of Brazil.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
</itemizedlist>
|
||||||
|
|
||||||
|
</sect2>
|
||||||
|
</sect1>
|
||||||
|
|
||||||
<sect1 id="release-9-2-1">
|
<sect1 id="release-9-2-1">
|
||||||
<title>Release 9.2.1</title>
|
<title>Release 9.2.1</title>
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user