mirror of
https://github.com/postgres/postgres.git
synced 2025-06-01 14:21:49 +03:00
Release notes for 9.3.3, 9.2.7, 9.1.12, 9.0.16, 8.4.20.
This commit is contained in:
parent
8f46ea7dc9
commit
9649892c33
@ -1,6 +1,326 @@
|
|||||||
<!-- 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-20">
|
||||||
|
<title>Release 8.4.20</title>
|
||||||
|
|
||||||
|
<note>
|
||||||
|
<title>Release Date</title>
|
||||||
|
<simpara>2014-02-20</simpara>
|
||||||
|
</note>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This release contains a variety of fixes from 8.4.19.
|
||||||
|
For information about new features in the 8.4 major release, see
|
||||||
|
<xref linkend="release-8-4">.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The <productname>PostgreSQL</> community will stop releasing updates
|
||||||
|
for the 8.4.X release series in July 2014.
|
||||||
|
Users are encouraged to update to a newer release branch soon.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<sect2>
|
||||||
|
<title>Migration to Version 8.4.20</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.19,
|
||||||
|
see <xref linkend="release-8-4-19">.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
</sect2>
|
||||||
|
|
||||||
|
<sect2>
|
||||||
|
<title>Changes</title>
|
||||||
|
|
||||||
|
<itemizedlist>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix possible mis-replay of WAL records when some segments of a
|
||||||
|
relation aren't full size (Greg Stark, Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The WAL update could be applied to the wrong page, potentially many
|
||||||
|
pages past where it should have been. Aside from corrupting data,
|
||||||
|
this error has been observed to result in significant <quote>bloat</>
|
||||||
|
of standby servers compared to their masters, due to updates being
|
||||||
|
applied far beyond where the end-of-file should have been. This
|
||||||
|
failure mode does not appear to be a significant risk during crash
|
||||||
|
recovery, only when initially synchronizing a standby created from a
|
||||||
|
base backup taken from a quickly-changing master.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Ensure that insertions into non-leaf GIN index pages write a full-page
|
||||||
|
WAL record when appropriate (Heikki Linnakangas)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The previous coding risked index corruption in the event of a
|
||||||
|
partial-page write during a system crash.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix race conditions during server process exit (Robert Haas)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Ensure that signal handlers don't attempt to use the
|
||||||
|
process's <varname>MyProc</> pointer after it's no longer valid.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix unsafe references to <varname>errno</> within error reporting
|
||||||
|
logic (Christian Kruse)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This would typically lead to odd behaviors such as missing or
|
||||||
|
inappropriate <literal>HINT</> fields.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix possible crashes from using <function>ereport()</> too early
|
||||||
|
during server startup (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The principal case we've seen in the field is a crash if the server
|
||||||
|
is started in a directory it doesn't have permission to read.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Clear retry flags properly in OpenSSL socket write
|
||||||
|
function (Alexander Kukushkin)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This omission could result in a server lockup after unexpected loss
|
||||||
|
of an SSL-encrypted connection.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix length checking for Unicode identifiers (<literal>U&"..."</>
|
||||||
|
syntax) containing escapes (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
A spurious truncation warning would be printed for such identifiers
|
||||||
|
if the escaped form of the identifier was too long, but the
|
||||||
|
identifier actually didn't need truncation after de-escaping.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix possible crash due to invalid plan for nested sub-selects, such
|
||||||
|
as <literal>WHERE (... x IN (SELECT ...) ...) IN (SELECT ...)</>
|
||||||
|
(Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Ensure that <command>ANALYZE</> creates statistics for a table column
|
||||||
|
even when all the values in it are <quote>too wide</> (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
<command>ANALYZE</> intentionally omits very wide values from its
|
||||||
|
histogram and most-common-values calculations, but it neglected to do
|
||||||
|
something sane in the case that all the sampled entries are too wide.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
In <literal>ALTER TABLE ... SET TABLESPACE</>, allow the database's
|
||||||
|
default tablespace to be used without a permissions check
|
||||||
|
(Stephen Frost)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
<literal>CREATE TABLE</> has always allowed such usage,
|
||||||
|
but <literal>ALTER TABLE</> didn't get the memo.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <quote>cannot accept a set</> error when some arms of
|
||||||
|
a <literal>CASE</> return a set and others don't (Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix checks for all-zero client addresses in pgstat functions (Kevin
|
||||||
|
Grittner)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix possible misclassification of multibyte characters by the text
|
||||||
|
search parser (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Non-ASCII characters could be misclassified when using C locale with
|
||||||
|
a multibyte encoding. On Cygwin, non-C locales could fail as well.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix possible misbehavior in <function>plainto_tsquery()</>
|
||||||
|
(Heikki Linnakangas)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Use <function>memmove()</> not <function>memcpy()</> for copying
|
||||||
|
overlapping memory regions. There have been no field reports of
|
||||||
|
this actually causing trouble, but it's certainly risky.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Accept <literal>SHIFT_JIS</> as an encoding name for locale checking
|
||||||
|
purposes (Tatsuo Ishii)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix misbehavior of <function>PQhost()</> on Windows (Fujii Masao)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
It should return <literal>localhost</> if no host has been specified.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Improve error handling in <application>libpq</> and <application>psql</>
|
||||||
|
for failures during <literal>COPY TO STDOUT/FROM STDIN</> (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
In particular this fixes an infinite loop that could occur in 9.2 and
|
||||||
|
up if the server connection was lost during <literal>COPY FROM
|
||||||
|
STDIN</>. Variants of that scenario might be possible in older
|
||||||
|
versions, or with other client applications.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix misaligned descriptors in <application>ecpg</> (MauMau)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
In <application>ecpg</>, handle lack of a hostname in the connection
|
||||||
|
parameters properly (Michael Meskes)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix performance regression in <filename>contrib/dblink</> connection
|
||||||
|
startup (Joe Conway)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Avoid an unnecessary round trip when client and server encodings match.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
In <filename>contrib/isn</>, fix incorrect calculation of the check
|
||||||
|
digit for ISMN values (Fabien Coelho)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Ensure client-code-only installation procedure works as documented
|
||||||
|
(Peter Eisentraut)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
In Mingw and Cygwin builds, install the <application>libpq</> DLL
|
||||||
|
in the <filename>bin</> directory (Andrew Dunstan)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This duplicates what the MSVC build has long done. It should fix
|
||||||
|
problems with programs like <application>psql</> failing to start
|
||||||
|
because they can't find the DLL.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Don't generate plain-text <filename>HISTORY</>
|
||||||
|
and <filename>src/test/regress/README</> files anymore (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
These text files duplicated the main HTML and PDF documentation
|
||||||
|
formats. The trouble involved in maintaining them greatly outweighs
|
||||||
|
the likely audience for plain-text format. Distribution tarballs
|
||||||
|
will still contain files by these names, but they'll just be stubs
|
||||||
|
directing the reader to consult the main documentation.
|
||||||
|
The plain-text <filename>INSTALL</> file will still be maintained, as
|
||||||
|
there is arguably a use-case for that.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Update time zone data files to <application>tzdata</> release 2013i
|
||||||
|
for DST law changes in Jordan and historical changes in Cuba.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
In addition, the zones <literal>Asia/Riyadh87</>,
|
||||||
|
<literal>Asia/Riyadh88</>, and <literal>Asia/Riyadh89</> have been
|
||||||
|
removed, as they are no longer maintained by IANA, and never
|
||||||
|
represented actual civil timekeeping practice.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
</itemizedlist>
|
||||||
|
|
||||||
|
</sect2>
|
||||||
|
</sect1>
|
||||||
|
|
||||||
<sect1 id="release-8-4-19">
|
<sect1 id="release-8-4-19">
|
||||||
<title>Release 8.4.19</title>
|
<title>Release 8.4.19</title>
|
||||||
|
|
||||||
|
@ -1,6 +1,368 @@
|
|||||||
<!-- 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-16">
|
||||||
|
<title>Release 9.0.16</title>
|
||||||
|
|
||||||
|
<note>
|
||||||
|
<title>Release Date</title>
|
||||||
|
<simpara>2014-02-20</simpara>
|
||||||
|
</note>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This release contains a variety of fixes from 9.0.15.
|
||||||
|
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.16</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.15,
|
||||||
|
see <xref linkend="release-9-0-15">.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
</sect2>
|
||||||
|
|
||||||
|
<sect2>
|
||||||
|
<title>Changes</title>
|
||||||
|
|
||||||
|
<itemizedlist>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix possible mis-replay of WAL records when some segments of a
|
||||||
|
relation aren't full size (Greg Stark, Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The WAL update could be applied to the wrong page, potentially many
|
||||||
|
pages past where it should have been. Aside from corrupting data,
|
||||||
|
this error has been observed to result in significant <quote>bloat</>
|
||||||
|
of standby servers compared to their masters, due to updates being
|
||||||
|
applied far beyond where the end-of-file should have been. This
|
||||||
|
failure mode does not appear to be a significant risk during crash
|
||||||
|
recovery, only when initially synchronizing a standby created from a
|
||||||
|
base backup taken from a quickly-changing master.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix bug in determining when recovery has reached consistency
|
||||||
|
(Tomonari Katsumata, Heikki Linnakangas)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
In some cases WAL replay would mistakenly conclude that the database
|
||||||
|
was already consistent at the start of replay, thus possibly allowing
|
||||||
|
hot-standby queries before the database was really consistent. Other
|
||||||
|
symptoms such as <quote>PANIC: WAL contains references to invalid
|
||||||
|
pages</> were also possible.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix improper locking of btree index pages while replaying
|
||||||
|
a <literal>VACUUM</> operation in hot-standby mode (Andres Freund,
|
||||||
|
Heikki Linnakangas, Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This error could result in <quote>PANIC: WAL contains references to
|
||||||
|
invalid pages</> failures.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Ensure that insertions into non-leaf GIN index pages write a full-page
|
||||||
|
WAL record when appropriate (Heikki Linnakangas)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The previous coding risked index corruption in the event of a
|
||||||
|
partial-page write during a system crash.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix race conditions during server process exit (Robert Haas)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Ensure that signal handlers don't attempt to use the
|
||||||
|
process's <varname>MyProc</> pointer after it's no longer valid.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix unsafe references to <varname>errno</> within error reporting
|
||||||
|
logic (Christian Kruse)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This would typically lead to odd behaviors such as missing or
|
||||||
|
inappropriate <literal>HINT</> fields.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix possible crashes from using <function>ereport()</> too early
|
||||||
|
during server startup (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The principal case we've seen in the field is a crash if the server
|
||||||
|
is started in a directory it doesn't have permission to read.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Clear retry flags properly in OpenSSL socket write
|
||||||
|
function (Alexander Kukushkin)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This omission could result in a server lockup after unexpected loss
|
||||||
|
of an SSL-encrypted connection.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix length checking for Unicode identifiers (<literal>U&"..."</>
|
||||||
|
syntax) containing escapes (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
A spurious truncation warning would be printed for such identifiers
|
||||||
|
if the escaped form of the identifier was too long, but the
|
||||||
|
identifier actually didn't need truncation after de-escaping.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Allow keywords that are type names to be used in lists of roles
|
||||||
|
(Stephen Frost)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
A previous patch allowed such keywords to be used without quoting
|
||||||
|
in places such as role identifiers; but it missed cases where a
|
||||||
|
list of role identifiers was permitted, such as <literal>DROP ROLE</>.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix possible crash due to invalid plan for nested sub-selects, such
|
||||||
|
as <literal>WHERE (... x IN (SELECT ...) ...) IN (SELECT ...)</>
|
||||||
|
(Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Ensure that <command>ANALYZE</> creates statistics for a table column
|
||||||
|
even when all the values in it are <quote>too wide</> (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
<command>ANALYZE</> intentionally omits very wide values from its
|
||||||
|
histogram and most-common-values calculations, but it neglected to do
|
||||||
|
something sane in the case that all the sampled entries are too wide.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
In <literal>ALTER TABLE ... SET TABLESPACE</>, allow the database's
|
||||||
|
default tablespace to be used without a permissions check
|
||||||
|
(Stephen Frost)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
<literal>CREATE TABLE</> has always allowed such usage,
|
||||||
|
but <literal>ALTER TABLE</> didn't get the memo.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <quote>cannot accept a set</> error when some arms of
|
||||||
|
a <literal>CASE</> return a set and others don't (Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix checks for all-zero client addresses in pgstat functions (Kevin
|
||||||
|
Grittner)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix possible misclassification of multibyte characters by the text
|
||||||
|
search parser (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Non-ASCII characters could be misclassified when using C locale with
|
||||||
|
a multibyte encoding. On Cygwin, non-C locales could fail as well.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix possible misbehavior in <function>plainto_tsquery()</>
|
||||||
|
(Heikki Linnakangas)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Use <function>memmove()</> not <function>memcpy()</> for copying
|
||||||
|
overlapping memory regions. There have been no field reports of
|
||||||
|
this actually causing trouble, but it's certainly risky.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Accept <literal>SHIFT_JIS</> as an encoding name for locale checking
|
||||||
|
purposes (Tatsuo Ishii)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix misbehavior of <function>PQhost()</> on Windows (Fujii Masao)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
It should return <literal>localhost</> if no host has been specified.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Improve error handling in <application>libpq</> and <application>psql</>
|
||||||
|
for failures during <literal>COPY TO STDOUT/FROM STDIN</> (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
In particular this fixes an infinite loop that could occur in 9.2 and
|
||||||
|
up if the server connection was lost during <literal>COPY FROM
|
||||||
|
STDIN</>. Variants of that scenario might be possible in older
|
||||||
|
versions, or with other client applications.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix misaligned descriptors in <application>ecpg</> (MauMau)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
In <application>ecpg</>, handle lack of a hostname in the connection
|
||||||
|
parameters properly (Michael Meskes)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix performance regression in <filename>contrib/dblink</> connection
|
||||||
|
startup (Joe Conway)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Avoid an unnecessary round trip when client and server encodings match.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
In <filename>contrib/isn</>, fix incorrect calculation of the check
|
||||||
|
digit for ISMN values (Fabien Coelho)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Ensure client-code-only installation procedure works as documented
|
||||||
|
(Peter Eisentraut)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
In Mingw and Cygwin builds, install the <application>libpq</> DLL
|
||||||
|
in the <filename>bin</> directory (Andrew Dunstan)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This duplicates what the MSVC build has long done. It should fix
|
||||||
|
problems with programs like <application>psql</> failing to start
|
||||||
|
because they can't find the DLL.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Avoid using the deprecated <literal>dllwrap</> tool in Cygwin builds
|
||||||
|
(Marco Atzeri)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Don't generate plain-text <filename>HISTORY</>
|
||||||
|
and <filename>src/test/regress/README</> files anymore (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
These text files duplicated the main HTML and PDF documentation
|
||||||
|
formats. The trouble involved in maintaining them greatly outweighs
|
||||||
|
the likely audience for plain-text format. Distribution tarballs
|
||||||
|
will still contain files by these names, but they'll just be stubs
|
||||||
|
directing the reader to consult the main documentation.
|
||||||
|
The plain-text <filename>INSTALL</> file will still be maintained, as
|
||||||
|
there is arguably a use-case for that.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Update time zone data files to <application>tzdata</> release 2013i
|
||||||
|
for DST law changes in Jordan and historical changes in Cuba.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
In addition, the zones <literal>Asia/Riyadh87</>,
|
||||||
|
<literal>Asia/Riyadh88</>, and <literal>Asia/Riyadh89</> have been
|
||||||
|
removed, as they are no longer maintained by IANA, and never
|
||||||
|
represented actual civil timekeeping practice.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
</itemizedlist>
|
||||||
|
|
||||||
|
</sect2>
|
||||||
|
</sect1>
|
||||||
|
|
||||||
<sect1 id="release-9-0-15">
|
<sect1 id="release-9-0-15">
|
||||||
<title>Release 9.0.15</title>
|
<title>Release 9.0.15</title>
|
||||||
|
|
||||||
|
@ -1,6 +1,417 @@
|
|||||||
<!-- 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-12">
|
||||||
|
<title>Release 9.1.12</title>
|
||||||
|
|
||||||
|
<note>
|
||||||
|
<title>Release Date</title>
|
||||||
|
<simpara>2014-02-20</simpara>
|
||||||
|
</note>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This release contains a variety of fixes from 9.1.11.
|
||||||
|
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.12</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.11,
|
||||||
|
see <xref linkend="release-9-1-11">.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
</sect2>
|
||||||
|
|
||||||
|
<sect2>
|
||||||
|
<title>Changes</title>
|
||||||
|
|
||||||
|
<itemizedlist>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix possible mis-replay of WAL records when some segments of a
|
||||||
|
relation aren't full size (Greg Stark, Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The WAL update could be applied to the wrong page, potentially many
|
||||||
|
pages past where it should have been. Aside from corrupting data,
|
||||||
|
this error has been observed to result in significant <quote>bloat</>
|
||||||
|
of standby servers compared to their masters, due to updates being
|
||||||
|
applied far beyond where the end-of-file should have been. This
|
||||||
|
failure mode does not appear to be a significant risk during crash
|
||||||
|
recovery, only when initially synchronizing a standby created from a
|
||||||
|
base backup taken from a quickly-changing master.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix bug in determining when recovery has reached consistency
|
||||||
|
(Tomonari Katsumata, Heikki Linnakangas)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
In some cases WAL replay would mistakenly conclude that the database
|
||||||
|
was already consistent at the start of replay, thus possibly allowing
|
||||||
|
hot-standby queries before the database was really consistent. Other
|
||||||
|
symptoms such as <quote>PANIC: WAL contains references to invalid
|
||||||
|
pages</> were also possible.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix improper locking of btree index pages while replaying
|
||||||
|
a <literal>VACUUM</> operation in hot-standby mode (Andres Freund,
|
||||||
|
Heikki Linnakangas, Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This error could result in <quote>PANIC: WAL contains references to
|
||||||
|
invalid pages</> failures.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Ensure that insertions into non-leaf GIN index pages write a full-page
|
||||||
|
WAL record when appropriate (Heikki Linnakangas)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The previous coding risked index corruption in the event of a
|
||||||
|
partial-page write during a system crash.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
When <literal>pause_at_recovery_target</>
|
||||||
|
and <literal>recovery_target_inclusive</> are both set, ensure the
|
||||||
|
target record is applied before pausing, not after (Heikki
|
||||||
|
Linnakangas)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix race conditions during server process exit (Robert Haas)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Ensure that signal handlers don't attempt to use the
|
||||||
|
process's <varname>MyProc</> pointer after it's no longer valid.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix race conditions in walsender shutdown logic and walreceiver
|
||||||
|
SIGHUP signal handler (Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix unsafe references to <varname>errno</> within error reporting
|
||||||
|
logic (Christian Kruse)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This would typically lead to odd behaviors such as missing or
|
||||||
|
inappropriate <literal>HINT</> fields.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix possible crashes from using <function>ereport()</> too early
|
||||||
|
during server startup (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The principal case we've seen in the field is a crash if the server
|
||||||
|
is started in a directory it doesn't have permission to read.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Clear retry flags properly in OpenSSL socket write
|
||||||
|
function (Alexander Kukushkin)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This omission could result in a server lockup after unexpected loss
|
||||||
|
of an SSL-encrypted connection.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix length checking for Unicode identifiers (<literal>U&"..."</>
|
||||||
|
syntax) containing escapes (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
A spurious truncation warning would be printed for such identifiers
|
||||||
|
if the escaped form of the identifier was too long, but the
|
||||||
|
identifier actually didn't need truncation after de-escaping.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Allow keywords that are type names to be used in lists of roles
|
||||||
|
(Stephen Frost)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
A previous patch allowed such keywords to be used without quoting
|
||||||
|
in places such as role identifiers; but it missed cases where a
|
||||||
|
list of role identifiers was permitted, such as <literal>DROP ROLE</>.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix parser crash for <literal>EXISTS(SELECT * FROM
|
||||||
|
zero_column_table)</literal> (Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix possible crash due to invalid plan for nested sub-selects, such
|
||||||
|
as <literal>WHERE (... x IN (SELECT ...) ...) IN (SELECT ...)</>
|
||||||
|
(Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Ensure that <command>ANALYZE</> creates statistics for a table column
|
||||||
|
even when all the values in it are <quote>too wide</> (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
<command>ANALYZE</> intentionally omits very wide values from its
|
||||||
|
histogram and most-common-values calculations, but it neglected to do
|
||||||
|
something sane in the case that all the sampled entries are too wide.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
In <literal>ALTER TABLE ... SET TABLESPACE</>, allow the database's
|
||||||
|
default tablespace to be used without a permissions check
|
||||||
|
(Stephen Frost)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
<literal>CREATE TABLE</> has always allowed such usage,
|
||||||
|
but <literal>ALTER TABLE</> didn't get the memo.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <quote>cannot accept a set</> error when some arms of
|
||||||
|
a <literal>CASE</> return a set and others don't (Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix checks for all-zero client addresses in pgstat functions (Kevin
|
||||||
|
Grittner)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix possible misclassification of multibyte characters by the text
|
||||||
|
search parser (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Non-ASCII characters could be misclassified when using C locale with
|
||||||
|
a multibyte encoding. On Cygwin, non-C locales could fail as well.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix possible misbehavior in <function>plainto_tsquery()</>
|
||||||
|
(Heikki Linnakangas)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Use <function>memmove()</> not <function>memcpy()</> for copying
|
||||||
|
overlapping memory regions. There have been no field reports of
|
||||||
|
this actually causing trouble, but it's certainly risky.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix placement of permissions checks in <function>pg_start_backup()</>
|
||||||
|
and <function>pg_stop_backup()</> (Andres Freund, Magnus Hagander)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The previous coding might attempt to do catalog access when it
|
||||||
|
shouldn't.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Accept <literal>SHIFT_JIS</> as an encoding name for locale checking
|
||||||
|
purposes (Tatsuo Ishii)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix misbehavior of <function>PQhost()</> on Windows (Fujii Masao)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
It should return <literal>localhost</> if no host has been specified.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Improve error handling in <application>libpq</> and <application>psql</>
|
||||||
|
for failures during <literal>COPY TO STDOUT/FROM STDIN</> (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
In particular this fixes an infinite loop that could occur in 9.2 and
|
||||||
|
up if the server connection was lost during <literal>COPY FROM
|
||||||
|
STDIN</>. Variants of that scenario might be possible in older
|
||||||
|
versions, or with other client applications.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix possible incorrect printing of filenames
|
||||||
|
in <application>pg_basebackup</>'s verbose mode (Magnus Hagander)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Avoid including tablespaces inside PGDATA twice in base backups
|
||||||
|
(Dimitri Fontaine, Magnus Hagander)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix misaligned descriptors in <application>ecpg</> (MauMau)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
In <application>ecpg</>, handle lack of a hostname in the connection
|
||||||
|
parameters properly (Michael Meskes)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix performance regression in <filename>contrib/dblink</> connection
|
||||||
|
startup (Joe Conway)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Avoid an unnecessary round trip when client and server encodings match.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
In <filename>contrib/isn</>, fix incorrect calculation of the check
|
||||||
|
digit for ISMN values (Fabien Coelho)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Ensure client-code-only installation procedure works as documented
|
||||||
|
(Peter Eisentraut)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
In Mingw and Cygwin builds, install the <application>libpq</> DLL
|
||||||
|
in the <filename>bin</> directory (Andrew Dunstan)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This duplicates what the MSVC build has long done. It should fix
|
||||||
|
problems with programs like <application>psql</> failing to start
|
||||||
|
because they can't find the DLL.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Avoid using the deprecated <literal>dllwrap</> tool in Cygwin builds
|
||||||
|
(Marco Atzeri)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Don't generate plain-text <filename>HISTORY</>
|
||||||
|
and <filename>src/test/regress/README</> files anymore (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
These text files duplicated the main HTML and PDF documentation
|
||||||
|
formats. The trouble involved in maintaining them greatly outweighs
|
||||||
|
the likely audience for plain-text format. Distribution tarballs
|
||||||
|
will still contain files by these names, but they'll just be stubs
|
||||||
|
directing the reader to consult the main documentation.
|
||||||
|
The plain-text <filename>INSTALL</> file will still be maintained, as
|
||||||
|
there is arguably a use-case for that.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Update time zone data files to <application>tzdata</> release 2013i
|
||||||
|
for DST law changes in Jordan and historical changes in Cuba.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
In addition, the zones <literal>Asia/Riyadh87</>,
|
||||||
|
<literal>Asia/Riyadh88</>, and <literal>Asia/Riyadh89</> have been
|
||||||
|
removed, as they are no longer maintained by IANA, and never
|
||||||
|
represented actual civil timekeeping practice.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
</itemizedlist>
|
||||||
|
|
||||||
|
</sect2>
|
||||||
|
</sect1>
|
||||||
|
|
||||||
<sect1 id="release-9-1-11">
|
<sect1 id="release-9-1-11">
|
||||||
<title>Release 9.1.11</title>
|
<title>Release 9.1.11</title>
|
||||||
|
|
||||||
|
@ -1,6 +1,477 @@
|
|||||||
<!-- 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-7">
|
||||||
|
<title>Release 9.2.7</title>
|
||||||
|
|
||||||
|
<note>
|
||||||
|
<title>Release Date</title>
|
||||||
|
<simpara>2014-02-20</simpara>
|
||||||
|
</note>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This release contains a variety of fixes from 9.2.6.
|
||||||
|
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.7</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
A dump/restore is not required for those running 9.2.X.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
However, if you are upgrading from a version earlier than 9.2.6,
|
||||||
|
see <xref linkend="release-9-2-6">.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
</sect2>
|
||||||
|
|
||||||
|
<sect2>
|
||||||
|
<title>Changes</title>
|
||||||
|
|
||||||
|
<itemizedlist>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix possible mis-replay of WAL records when some segments of a
|
||||||
|
relation aren't full size (Greg Stark, Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The WAL update could be applied to the wrong page, potentially many
|
||||||
|
pages past where it should have been. Aside from corrupting data,
|
||||||
|
this error has been observed to result in significant <quote>bloat</>
|
||||||
|
of standby servers compared to their masters, due to updates being
|
||||||
|
applied far beyond where the end-of-file should have been. This
|
||||||
|
failure mode does not appear to be a significant risk during crash
|
||||||
|
recovery, only when initially synchronizing a standby created from a
|
||||||
|
base backup taken from a quickly-changing master.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix bug in determining when recovery has reached consistency
|
||||||
|
(Tomonari Katsumata, Heikki Linnakangas)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
In some cases WAL replay would mistakenly conclude that the database
|
||||||
|
was already consistent at the start of replay, thus possibly allowing
|
||||||
|
hot-standby queries before the database was really consistent. Other
|
||||||
|
symptoms such as <quote>PANIC: WAL contains references to invalid
|
||||||
|
pages</> were also possible.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix improper locking of btree index pages while replaying
|
||||||
|
a <literal>VACUUM</> operation in hot-standby mode (Andres Freund,
|
||||||
|
Heikki Linnakangas, Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This error could result in <quote>PANIC: WAL contains references to
|
||||||
|
invalid pages</> failures.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Ensure that insertions into non-leaf GIN index pages write a full-page
|
||||||
|
WAL record when appropriate (Heikki Linnakangas)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The previous coding risked index corruption in the event of a
|
||||||
|
partial-page write during a system crash.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
When <literal>pause_at_recovery_target</>
|
||||||
|
and <literal>recovery_target_inclusive</> are both set, ensure the
|
||||||
|
target record is applied before pausing, not after (Heikki
|
||||||
|
Linnakangas)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix race conditions during server process exit (Robert Haas)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Ensure that signal handlers don't attempt to use the
|
||||||
|
process's <varname>MyProc</> pointer after it's no longer valid.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix race conditions in walsender shutdown logic and walreceiver
|
||||||
|
SIGHUP signal handler (Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix unsafe references to <varname>errno</> within error reporting
|
||||||
|
logic (Christian Kruse)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This would typically lead to odd behaviors such as missing or
|
||||||
|
inappropriate <literal>HINT</> fields.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix possible crashes from using <function>ereport()</> too early
|
||||||
|
during server startup (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The principal case we've seen in the field is a crash if the server
|
||||||
|
is started in a directory it doesn't have permission to read.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Clear retry flags properly in OpenSSL socket write
|
||||||
|
function (Alexander Kukushkin)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This omission could result in a server lockup after unexpected loss
|
||||||
|
of an SSL-encrypted connection.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix length checking for Unicode identifiers (<literal>U&"..."</>
|
||||||
|
syntax) containing escapes (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
A spurious truncation warning would be printed for such identifiers
|
||||||
|
if the escaped form of the identifier was too long, but the
|
||||||
|
identifier actually didn't need truncation after de-escaping.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Allow keywords that are type names to be used in lists of roles
|
||||||
|
(Stephen Frost)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
A previous patch allowed such keywords to be used without quoting
|
||||||
|
in places such as role identifiers; but it missed cases where a
|
||||||
|
list of role identifiers was permitted, such as <literal>DROP ROLE</>.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix parser crash for <literal>EXISTS(SELECT * FROM
|
||||||
|
zero_column_table)</literal> (Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix possible crash due to invalid plan for nested sub-selects, such
|
||||||
|
as <literal>WHERE (... x IN (SELECT ...) ...) IN (SELECT ...)</>
|
||||||
|
(Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <literal>UPDATE/DELETE</> of an inherited target table
|
||||||
|
that has <literal>UNION ALL</> subqueries (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Without this fix, <literal>UNION ALL</> subqueries aren't correctly
|
||||||
|
inserted into the update plans for inheritance child tables after the
|
||||||
|
first one, typically resulting in no update happening for those child
|
||||||
|
table(s).
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Ensure that <command>ANALYZE</> creates statistics for a table column
|
||||||
|
even when all the values in it are <quote>too wide</> (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
<command>ANALYZE</> intentionally omits very wide values from its
|
||||||
|
histogram and most-common-values calculations, but it neglected to do
|
||||||
|
something sane in the case that all the sampled entries are too wide.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
In <literal>ALTER TABLE ... SET TABLESPACE</>, allow the database's
|
||||||
|
default tablespace to be used without a permissions check
|
||||||
|
(Stephen Frost)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
<literal>CREATE TABLE</> has always allowed such usage,
|
||||||
|
but <literal>ALTER TABLE</> didn't get the memo.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <quote>cannot accept a set</> error when some arms of
|
||||||
|
a <literal>CASE</> return a set and others don't (Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Properly distinguish numbers from non-numbers when generating JSON
|
||||||
|
output (Andrew Dunstan)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix checks for all-zero client addresses in pgstat functions (Kevin
|
||||||
|
Grittner)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix possible misclassification of multibyte characters by the text
|
||||||
|
search parser (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Non-ASCII characters could be misclassified when using C locale with
|
||||||
|
a multibyte encoding. On Cygwin, non-C locales could fail as well.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix possible misbehavior in <function>plainto_tsquery()</>
|
||||||
|
(Heikki Linnakangas)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Use <function>memmove()</> not <function>memcpy()</> for copying
|
||||||
|
overlapping memory regions. There have been no field reports of
|
||||||
|
this actually causing trouble, but it's certainly risky.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix placement of permissions checks in <function>pg_start_backup()</>
|
||||||
|
and <function>pg_stop_backup()</> (Andres Freund, Magnus Hagander)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The previous coding might attempt to do catalog access when it
|
||||||
|
shouldn't.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Accept <literal>SHIFT_JIS</> as an encoding name for locale checking
|
||||||
|
purposes (Tatsuo Ishii)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <literal>*</>-qualification of named parameters in SQL-language
|
||||||
|
functions (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Given a composite-type parameter
|
||||||
|
named <literal>foo</>, <literal>$1.*</> worked fine,
|
||||||
|
but <literal>foo.*</> not so much.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix misbehavior of <function>PQhost()</> on Windows (Fujii Masao)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
It should return <literal>localhost</> if no host has been specified.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Improve error handling in <application>libpq</> and <application>psql</>
|
||||||
|
for failures during <literal>COPY TO STDOUT/FROM STDIN</> (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
In particular this fixes an infinite loop that could occur in 9.2 and
|
||||||
|
up if the server connection was lost during <literal>COPY FROM
|
||||||
|
STDIN</>. Variants of that scenario might be possible in older
|
||||||
|
versions, or with other client applications.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix incorrect translation handling in
|
||||||
|
some <application>psql</> <literal>\d</> commands
|
||||||
|
(Peter Eisentraut, Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Ensure <application>pg_basebackup</>'s background process is killed
|
||||||
|
when exiting its foreground process (Magnus Hagander)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix possible incorrect printing of filenames
|
||||||
|
in <application>pg_basebackup</>'s verbose mode (Magnus Hagander)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Avoid including tablespaces inside PGDATA twice in base backups
|
||||||
|
(Dimitri Fontaine, Magnus Hagander)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix misaligned descriptors in <application>ecpg</> (MauMau)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
In <application>ecpg</>, handle lack of a hostname in the connection
|
||||||
|
parameters properly (Michael Meskes)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix performance regression in <filename>contrib/dblink</> connection
|
||||||
|
startup (Joe Conway)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Avoid an unnecessary round trip when client and server encodings match.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
In <filename>contrib/isn</>, fix incorrect calculation of the check
|
||||||
|
digit for ISMN values (Fabien Coelho)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <filename>contrib/pg_stat_statement</>'s handling
|
||||||
|
of <literal>CURRENT_DATE</> and related constructs (Kyotaro
|
||||||
|
Horiguchi)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Ensure client-code-only installation procedure works as documented
|
||||||
|
(Peter Eisentraut)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
In Mingw and Cygwin builds, install the <application>libpq</> DLL
|
||||||
|
in the <filename>bin</> directory (Andrew Dunstan)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This duplicates what the MSVC build has long done. It should fix
|
||||||
|
problems with programs like <application>psql</> failing to start
|
||||||
|
because they can't find the DLL.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Avoid using the deprecated <literal>dllwrap</> tool in Cygwin builds
|
||||||
|
(Marco Atzeri)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Don't generate plain-text <filename>HISTORY</>
|
||||||
|
and <filename>src/test/regress/README</> files anymore (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
These text files duplicated the main HTML and PDF documentation
|
||||||
|
formats. The trouble involved in maintaining them greatly outweighs
|
||||||
|
the likely audience for plain-text format. Distribution tarballs
|
||||||
|
will still contain files by these names, but they'll just be stubs
|
||||||
|
directing the reader to consult the main documentation.
|
||||||
|
The plain-text <filename>INSTALL</> file will still be maintained, as
|
||||||
|
there is arguably a use-case for that.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Update time zone data files to <application>tzdata</> release 2013i
|
||||||
|
for DST law changes in Jordan and historical changes in Cuba.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
In addition, the zones <literal>Asia/Riyadh87</>,
|
||||||
|
<literal>Asia/Riyadh88</>, and <literal>Asia/Riyadh89</> have been
|
||||||
|
removed, as they are no longer maintained by IANA, and never
|
||||||
|
represented actual civil timekeeping practice.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
</itemizedlist>
|
||||||
|
|
||||||
|
</sect2>
|
||||||
|
</sect1>
|
||||||
|
|
||||||
<sect1 id="release-9-2-6">
|
<sect1 id="release-9-2-6">
|
||||||
<title>Release 9.2.6</title>
|
<title>Release 9.2.6</title>
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user