mirror of
https://git.postgresql.org/git/postgresql.git
synced 2025-03-13 19:57:53 +08: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
fc5c1bbbeb
commit
7510bec607
@ -1,6 +1,302 @@
|
||||
<!-- doc/src/sgml/release-8.3.sgml -->
|
||||
<!-- 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">
|
||||
<title>Release 8.3.21</title>
|
||||
|
||||
|
@ -1,6 +1,308 @@
|
||||
<!-- doc/src/sgml/release-8.4.sgml -->
|
||||
<!-- 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">
|
||||
<title>Release 8.4.14</title>
|
||||
|
||||
|
@ -1,6 +1,384 @@
|
||||
<!-- doc/src/sgml/release-9.0.sgml -->
|
||||
<!-- 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">
|
||||
<title>Release 9.0.10</title>
|
||||
|
||||
|
@ -1,6 +1,469 @@
|
||||
<!-- doc/src/sgml/release-9.1.sgml -->
|
||||
<!-- 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">
|
||||
<title>Release 9.1.6</title>
|
||||
|
||||
@ -146,7 +609,7 @@
|
||||
<listitem>
|
||||
<para>
|
||||
Disallow extensions from containing the schema they are assigned to
|
||||
(Thom Brown)
|
||||
(Thom Brown)
|
||||
</para>
|
||||
|
||||
<para>
|
||||
|
@ -1,6 +1,730 @@
|
||||
<!-- doc/src/sgml/release-9.2.sgml -->
|
||||
<!-- 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">
|
||||
<title>Release 9.2.1</title>
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user