|
|
@ -1,6 +1,325 @@ |
|
|
|
<!-- 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-22"> |
|
|
|
|
|
|
|
<title>Release 8.4.22</title> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<note> |
|
|
|
|
|
|
|
<title>Release Date</title> |
|
|
|
|
|
|
|
<simpara>2014-07-24</simpara> |
|
|
|
|
|
|
|
</note> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<para> |
|
|
|
|
|
|
|
This release contains a variety of fixes from 8.4.21. |
|
|
|
|
|
|
|
For information about new features in the 8.4 major release, see |
|
|
|
|
|
|
|
<xref linkend="release-8-4">. |
|
|
|
|
|
|
|
</para> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<para> |
|
|
|
|
|
|
|
This is expected to be the last <productname>PostgreSQL</> release |
|
|
|
|
|
|
|
in the 8.4.X series. Users are encouraged to update to a newer |
|
|
|
|
|
|
|
release branch soon. |
|
|
|
|
|
|
|
</para> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<sect2> |
|
|
|
|
|
|
|
<title>Migration to Version 8.4.22</title> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<para> |
|
|
|
|
|
|
|
A dump/restore is not required for those running 8.4.X. |
|
|
|
|
|
|
|
</para> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<para> |
|
|
|
|
|
|
|
However, this release corrects an index corruption problem in some GiST |
|
|
|
|
|
|
|
indexes. See the first changelog entry below to find out whether your |
|
|
|
|
|
|
|
installation has been affected and what steps you should take if so. |
|
|
|
|
|
|
|
</para> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<para> |
|
|
|
|
|
|
|
Also, 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> |
|
|
|
|
|
|
|
Correctly initialize padding bytes in <filename>contrib/btree_gist</> |
|
|
|
|
|
|
|
indexes on <type>bit</> columns (Heikki Linnakangas) |
|
|
|
|
|
|
|
</para> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<para> |
|
|
|
|
|
|
|
This error could result in incorrect query results due to values that |
|
|
|
|
|
|
|
should compare equal not being seen as equal. |
|
|
|
|
|
|
|
Users with GiST indexes on <type>bit</> or <type>bit varying</> |
|
|
|
|
|
|
|
columns should <command>REINDEX</> those indexes after installing this |
|
|
|
|
|
|
|
update. |
|
|
|
|
|
|
|
</para> |
|
|
|
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
|
|
|
<para> |
|
|
|
|
|
|
|
Protect against torn pages when deleting GIN list pages (Heikki |
|
|
|
|
|
|
|
Linnakangas) |
|
|
|
|
|
|
|
</para> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<para> |
|
|
|
|
|
|
|
This fix prevents possible index corruption if a system crash occurs |
|
|
|
|
|
|
|
while the page update is being written to disk. |
|
|
|
|
|
|
|
</para> |
|
|
|
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
|
|
|
<para> |
|
|
|
|
|
|
|
Fix possibly-incorrect cache invalidation during nested calls |
|
|
|
|
|
|
|
to <function>ReceiveSharedInvalidMessages</> (Andres Freund) |
|
|
|
|
|
|
|
</para> |
|
|
|
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
|
|
|
<para> |
|
|
|
|
|
|
|
Don't assume a subquery's output is unique if there's a set-returning |
|
|
|
|
|
|
|
function in its targetlist (David Rowley) |
|
|
|
|
|
|
|
</para> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<para> |
|
|
|
|
|
|
|
This oversight could lead to misoptimization of constructs |
|
|
|
|
|
|
|
like <literal>WHERE x IN (SELECT y, generate_series(1,10) FROM t GROUP |
|
|
|
|
|
|
|
BY y)</literal>. |
|
|
|
|
|
|
|
</para> |
|
|
|
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
|
|
|
<para> |
|
|
|
|
|
|
|
Fix failure to detoast fields in composite elements of structured |
|
|
|
|
|
|
|
types (Tom Lane) |
|
|
|
|
|
|
|
</para> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<para> |
|
|
|
|
|
|
|
This corrects cases where TOAST pointers could be copied into other |
|
|
|
|
|
|
|
tables without being dereferenced. If the original data is later |
|
|
|
|
|
|
|
deleted, it would lead to errors like <quote>missing chunk number 0 |
|
|
|
|
|
|
|
for toast value ...</> when the now-dangling pointer is used. |
|
|
|
|
|
|
|
</para> |
|
|
|
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
|
|
|
<para> |
|
|
|
|
|
|
|
Fix <quote>record type has not been registered</> failures with |
|
|
|
|
|
|
|
whole-row references to the output of Append plan nodes (Tom Lane) |
|
|
|
|
|
|
|
</para> |
|
|
|
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
|
|
|
<para> |
|
|
|
|
|
|
|
Fix possible crash when invoking a user-defined function while |
|
|
|
|
|
|
|
rewinding a cursor (Tom Lane) |
|
|
|
|
|
|
|
</para> |
|
|
|
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
|
|
|
<para> |
|
|
|
|
|
|
|
Fix query-lifespan memory leak while evaluating the arguments for a |
|
|
|
|
|
|
|
function in <literal>FROM</> (Tom Lane) |
|
|
|
|
|
|
|
</para> |
|
|
|
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
|
|
|
<para> |
|
|
|
|
|
|
|
Fix session-lifespan memory leaks in regular-expression processing |
|
|
|
|
|
|
|
(Tom Lane, Arthur O'Dwyer, Greg Stark) |
|
|
|
|
|
|
|
</para> |
|
|
|
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
|
|
|
<para> |
|
|
|
|
|
|
|
Fix data encoding error in <filename>hungarian.stop</> (Tom Lane) |
|
|
|
|
|
|
|
</para> |
|
|
|
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
|
|
|
<para> |
|
|
|
|
|
|
|
Fix liveness checks for rows that were inserted in the current |
|
|
|
|
|
|
|
transaction and then deleted by a now-rolled-back subtransaction |
|
|
|
|
|
|
|
(Andres Freund) |
|
|
|
|
|
|
|
</para> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<para> |
|
|
|
|
|
|
|
This could cause problems (at least spurious warnings, and at worst an |
|
|
|
|
|
|
|
infinite loop) if <command>CREATE INDEX</> or <command>CLUSTER</> were |
|
|
|
|
|
|
|
done later in the same transaction. |
|
|
|
|
|
|
|
</para> |
|
|
|
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
|
|
|
<para> |
|
|
|
|
|
|
|
Clear <structname>pg_stat_activity</>.<structfield>xact_start</> |
|
|
|
|
|
|
|
during <command>PREPARE TRANSACTION</> (Andres Freund) |
|
|
|
|
|
|
|
</para> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<para> |
|
|
|
|
|
|
|
After the <command>PREPARE</>, the originating session is no longer in |
|
|
|
|
|
|
|
a transaction, so it should not continue to display a transaction |
|
|
|
|
|
|
|
start time. |
|
|
|
|
|
|
|
</para> |
|
|
|
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
|
|
|
<para> |
|
|
|
|
|
|
|
Fix <command>REASSIGN OWNED</> to not fail for text search objects |
|
|
|
|
|
|
|
(Álvaro Herrera) |
|
|
|
|
|
|
|
</para> |
|
|
|
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
|
|
|
<para> |
|
|
|
|
|
|
|
Block signals during postmaster startup (Tom Lane) |
|
|
|
|
|
|
|
</para> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<para> |
|
|
|
|
|
|
|
This ensures that the postmaster will properly clean up after itself |
|
|
|
|
|
|
|
if, for example, it receives <systemitem>SIGINT</> while still |
|
|
|
|
|
|
|
starting up. |
|
|
|
|
|
|
|
</para> |
|
|
|
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
|
|
|
<para> |
|
|
|
|
|
|
|
Secure Unix-domain sockets of temporary postmasters started during |
|
|
|
|
|
|
|
<literal>make check</> (Noah Misch) |
|
|
|
|
|
|
|
</para> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<para> |
|
|
|
|
|
|
|
Any local user able to access the socket file could connect as the |
|
|
|
|
|
|
|
server's bootstrap superuser, then proceed to execute arbitrary code as |
|
|
|
|
|
|
|
the operating-system user running the test, as we previously noted in |
|
|
|
|
|
|
|
CVE-2014-0067. This change defends against that risk by placing the |
|
|
|
|
|
|
|
server's socket in a temporary, mode 0700 subdirectory |
|
|
|
|
|
|
|
of <filename>/tmp</>. The hazard remains however on platforms where |
|
|
|
|
|
|
|
Unix sockets are not supported, notably Windows, because then the |
|
|
|
|
|
|
|
temporary postmaster must accept local TCP connections. |
|
|
|
|
|
|
|
</para> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<para> |
|
|
|
|
|
|
|
A useful side effect of this change is to simplify |
|
|
|
|
|
|
|
<literal>make check</> testing in builds that |
|
|
|
|
|
|
|
override <literal>DEFAULT_PGSOCKET_DIR</>. Popular non-default values |
|
|
|
|
|
|
|
like <filename>/var/run/postgresql</> are often not writable by the |
|
|
|
|
|
|
|
build user, requiring workarounds that will no longer be necessary. |
|
|
|
|
|
|
|
</para> |
|
|
|
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
|
|
|
<para> |
|
|
|
|
|
|
|
On Windows, allow new sessions to absorb values of PGC_BACKEND |
|
|
|
|
|
|
|
parameters (such as <xref linkend="guc-log-connections">) from the |
|
|
|
|
|
|
|
configuration file (Amit Kapila) |
|
|
|
|
|
|
|
</para> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<para> |
|
|
|
|
|
|
|
Previously, if such a parameter were changed in the file post-startup, |
|
|
|
|
|
|
|
the change would have no effect. |
|
|
|
|
|
|
|
</para> |
|
|
|
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
|
|
|
<para> |
|
|
|
|
|
|
|
Properly quote executable path names on Windows (Nikhil Deshpande) |
|
|
|
|
|
|
|
</para> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<para> |
|
|
|
|
|
|
|
This oversight could cause <application>initdb</> |
|
|
|
|
|
|
|
and <application>pg_upgrade</> to fail on Windows, if the installation |
|
|
|
|
|
|
|
path contained both spaces and <literal>@</> signs. |
|
|
|
|
|
|
|
</para> |
|
|
|
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
|
|
|
<para> |
|
|
|
|
|
|
|
Fix linking of <application>libpython</> on OS X (Tom Lane) |
|
|
|
|
|
|
|
</para> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<para> |
|
|
|
|
|
|
|
The method we previously used can fail with the Python library |
|
|
|
|
|
|
|
supplied by Xcode 5.0 and later. |
|
|
|
|
|
|
|
</para> |
|
|
|
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
|
|
|
<para> |
|
|
|
|
|
|
|
Avoid buffer bloat in <application>libpq</> when the server |
|
|
|
|
|
|
|
consistently sends data faster than the client can absorb it |
|
|
|
|
|
|
|
(Shin-ichi Morita, Tom Lane) |
|
|
|
|
|
|
|
</para> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<para> |
|
|
|
|
|
|
|
<application>libpq</> could be coerced into enlarging its input buffer |
|
|
|
|
|
|
|
until it runs out of memory (which would be reported misleadingly |
|
|
|
|
|
|
|
as <quote>lost synchronization with server</>). Under ordinary |
|
|
|
|
|
|
|
circumstances it's quite far-fetched that data could be continuously |
|
|
|
|
|
|
|
transmitted more quickly than the <function>recv()</> loop can |
|
|
|
|
|
|
|
absorb it, but this has been observed when the client is artificially |
|
|
|
|
|
|
|
slowed by scheduler constraints. |
|
|
|
|
|
|
|
</para> |
|
|
|
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
|
|
|
<para> |
|
|
|
|
|
|
|
Ensure that LDAP lookup attempts in <application>libpq</> time out as |
|
|
|
|
|
|
|
intended (Laurenz Albe) |
|
|
|
|
|
|
|
</para> |
|
|
|
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
|
|
|
<para> |
|
|
|
|
|
|
|
Fix <application>pg_restore</>'s processing of old-style large object |
|
|
|
|
|
|
|
comments (Tom Lane) |
|
|
|
|
|
|
|
</para> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<para> |
|
|
|
|
|
|
|
A direct-to-database restore from an archive file generated by a |
|
|
|
|
|
|
|
pre-9.0 version of <application>pg_dump</> would usually fail if the |
|
|
|
|
|
|
|
archive contained more than a few comments for large objects. |
|
|
|
|
|
|
|
</para> |
|
|
|
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
|
|
|
<para> |
|
|
|
|
|
|
|
In <filename>contrib/pgcrypto</> functions, ensure sensitive |
|
|
|
|
|
|
|
information is cleared from stack variables before returning |
|
|
|
|
|
|
|
(Marko Kreen) |
|
|
|
|
|
|
|
</para> |
|
|
|
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
|
|
|
<para> |
|
|
|
|
|
|
|
In <filename>contrib/uuid-ossp</>, cache the state of the OSSP UUID |
|
|
|
|
|
|
|
library across calls (Tom Lane) |
|
|
|
|
|
|
|
</para> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<para> |
|
|
|
|
|
|
|
This improves the efficiency of UUID generation and reduces the amount |
|
|
|
|
|
|
|
of entropy drawn from <filename>/dev/urandom</>, on platforms that |
|
|
|
|
|
|
|
have that. |
|
|
|
|
|
|
|
</para> |
|
|
|
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
|
|
|
|
<para> |
|
|
|
|
|
|
|
Update time zone data files to <application>tzdata</> release 2014e |
|
|
|
|
|
|
|
for DST law changes in Crimea, Egypt, and Morocco. |
|
|
|
|
|
|
|
</para> |
|
|
|
|
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</itemizedlist> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</sect2> |
|
|
|
|
|
|
|
</sect1> |
|
|
|
|
|
|
|
|
|
|
|
<sect1 id="release-8-4-21"> |
|
|
|
<sect1 id="release-8-4-21"> |
|
|
|
<title>Release 8.4.21</title> |
|
|
|
<title>Release 8.4.21</title> |
|
|
|
|
|
|
|
|
|
|
@ -113,9 +432,6 @@ |
|
|
|
for DST law changes in Fiji and Turkey, plus historical changes in |
|
|
|
for DST law changes in Fiji and Turkey, plus historical changes in |
|
|
|
Israel and Ukraine. |
|
|
|
Israel and Ukraine. |
|
|
|
</para> |
|
|
|
</para> |
|
|
|
|
|
|
|
|
|
|
|
<para> |
|
|
|
|
|
|
|
</para> |
|
|
|
|
|
|
|
</listitem> |
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
|
|
</itemizedlist> |
|
|
|
</itemizedlist> |
|
|
@ -3702,9 +4018,6 @@ |
|
|
|
Prevent crash triggered by constant-false WHERE conditions during |
|
|
|
Prevent crash triggered by constant-false WHERE conditions during |
|
|
|
GEQO optimization (Tom Lane) |
|
|
|
GEQO optimization (Tom Lane) |
|
|
|
</para> |
|
|
|
</para> |
|
|
|
|
|
|
|
|
|
|
|
<para> |
|
|
|
|
|
|
|
</para> |
|
|
|
|
|
|
|
</listitem> |
|
|
|
</listitem> |
|
|
|
|
|
|
|
|
|
|
|
<listitem> |
|
|
|
<listitem> |
|
|
|