mirror of
https://github.com/postgres/postgres.git
synced 2025-06-16 06:01:02 +03:00
Release notes for 9.4.1, 9.3.6, 9.2.10, 9.1.15, 9.0.19.
This commit is contained in:
@ -1,6 +1,647 @@
|
|||||||
<!-- 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-19">
|
||||||
|
<title>Release 9.0.19</title>
|
||||||
|
|
||||||
|
<note>
|
||||||
|
<title>Release Date</title>
|
||||||
|
<simpara>2015-02-05</simpara>
|
||||||
|
</note>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This release contains a variety of fixes from 9.0.18.
|
||||||
|
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.19</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.18,
|
||||||
|
see <xref linkend="release-9-0-18">.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
</sect2>
|
||||||
|
|
||||||
|
<sect2>
|
||||||
|
<title>Changes</title>
|
||||||
|
|
||||||
|
<itemizedlist>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix information leak via constraint-violation error messages
|
||||||
|
(Stephen Frost)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Some server error messages show the values of columns that violate
|
||||||
|
a constraint, such as a unique constraint. If the user does not have
|
||||||
|
<literal>SELECT</> privilege on all columns of the table, this could
|
||||||
|
mean exposing values that the user should not be able to see. Adjust
|
||||||
|
the code so that values are displayed only when they came from the SQL
|
||||||
|
command or could be selected by the user.
|
||||||
|
(CVE-2014-8161)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Lock down regression testing's temporary installations on Windows
|
||||||
|
(Noah Misch)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Use SSPI authentication to allow connections only from the OS user
|
||||||
|
who launched the test suite. This closes on Windows the same
|
||||||
|
vulnerability previously closed on other platforms, namely that other
|
||||||
|
users might be able to connect to the test postmaster.
|
||||||
|
(CVE-2014-0067)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Avoid possible data corruption if <command>ALTER DATABASE SET
|
||||||
|
TABLESPACE</> is used to move a database to a new tablespace and then
|
||||||
|
shortly later move it back to its original tablespace (Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Avoid corrupting tables when <command>ANALYZE</> inside a transaction
|
||||||
|
is rolled back (Andres Freund, Tom Lane, Michael Paquier)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
If the failing transaction had earlier removed the last index, rule, or
|
||||||
|
trigger from the table, the table would be left in a corrupted state
|
||||||
|
with the relevant <structname>pg_class</> flags not set though they
|
||||||
|
should be.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix use-of-already-freed-memory problem in EvalPlanQual processing
|
||||||
|
(Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
In <literal>READ COMMITTED</> mode, queries that lock or update
|
||||||
|
recently-updated rows could crash as a result of this bug.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix planning of <command>SELECT FOR UPDATE</> when using a partial
|
||||||
|
index on a child table (Kyotaro Horiguchi)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
In <literal>READ COMMITTED</> mode, <command>SELECT FOR UPDATE</> must
|
||||||
|
also recheck the partial index's <literal>WHERE</> condition when
|
||||||
|
rechecking a recently-updated row to see if it still satisfies the
|
||||||
|
query's <literal>WHERE</> condition. This requirement was missed if the
|
||||||
|
index belonged to an inheritance child table, so that it was possible
|
||||||
|
to incorrectly return rows that no longer satisfy the query condition.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix corner case wherein <command>SELECT FOR UPDATE</> could return a row
|
||||||
|
twice, and possibly miss returning other rows (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
In <literal>READ COMMITTED</> mode, a <command>SELECT FOR UPDATE</>
|
||||||
|
that is scanning an inheritance tree could incorrectly return a row
|
||||||
|
from a prior child table instead of the one it should return from a
|
||||||
|
later child table.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Reject duplicate column names in the referenced-columns list of
|
||||||
|
a <literal>FOREIGN KEY</> declaration (David Rowley)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This restriction is per SQL standard. Previously we did not reject
|
||||||
|
the case explicitly, but later on the code would fail with
|
||||||
|
bizarre-looking errors.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix bugs in raising a <type>numeric</> value to a large integral power
|
||||||
|
(Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The previous code could get a wrong answer, or consume excessive
|
||||||
|
amounts of time and memory before realizing that the answer must
|
||||||
|
overflow.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
In <function>numeric_recv()</>, truncate away any fractional digits
|
||||||
|
that would be hidden according to the value's <literal>dscale</> field
|
||||||
|
(Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
A <type>numeric</> value's display scale (<literal>dscale</>) should
|
||||||
|
never be less than the number of nonzero fractional digits; but
|
||||||
|
apparently there's at least one broken client application that
|
||||||
|
transmits binary <type>numeric</> values in which that's true.
|
||||||
|
This leads to strange behavior since the extra digits are taken into
|
||||||
|
account by arithmetic operations even though they aren't printed.
|
||||||
|
The least risky fix seems to be to truncate away such <quote>hidden</>
|
||||||
|
digits on receipt, so that the value is indeed what it prints as.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Reject out-of-range numeric timezone specifications (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Simple numeric timezone specifications exceeding +/- 168 hours (one
|
||||||
|
week) would be accepted, but could then cause null-pointer dereference
|
||||||
|
crashes in certain operations. There's no use-case for such large UTC
|
||||||
|
offsets, so reject them.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix bugs in <type>tsquery</> <literal>@></> <type>tsquery</>
|
||||||
|
operator (Heikki Linnakangas)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Two different terms would be considered to match if they had the same
|
||||||
|
CRC. Also, if the second operand had more terms than the first, it
|
||||||
|
would be assumed not to be contained in the first; which is wrong
|
||||||
|
since it might contain duplicate terms.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Improve ispell dictionary's defenses against bad affix files (Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Allow more than 64K phrases in a thesaurus dictionary (David Boutin)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The previous coding could crash on an oversize dictionary, so this was
|
||||||
|
deemed a back-patchable bug fix rather than a feature addition.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix namespace handling in <function>xpath()</> (Ali Akbar)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Previously, the <type>xml</> value resulting from
|
||||||
|
an <function>xpath()</> call would not have namespace declarations if
|
||||||
|
the namespace declarations were attached to an ancestor element in the
|
||||||
|
input <type>xml</> value, rather than to the specific element being
|
||||||
|
returned. Propagate the ancestral declaration so that the result is
|
||||||
|
correct when considered in isolation.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix planner problems with nested append relations, such as inherited
|
||||||
|
tables within <literal>UNION ALL</> subqueries (Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fail cleanly when a GiST index tuple doesn't fit on a page, rather
|
||||||
|
than going into infinite recursion (Andrew Gierth)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Exempt tables that have per-table <varname>cost_limit</>
|
||||||
|
and/or <varname>cost_delay</> settings from autovacuum's global cost
|
||||||
|
balancing rules (Álvaro Herrera)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The previous behavior resulted in basically ignoring these per-table
|
||||||
|
settings, which was unintended. Now, a table having such settings
|
||||||
|
will be vacuumed using those settings, independently of what is going
|
||||||
|
on in other autovacuum workers. This may result in heavier total I/O
|
||||||
|
load than before, so such settings should be re-examined for sanity.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Avoid wholesale autovacuuming when autovacuum is nominally off
|
||||||
|
(Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Even when autovacuum is nominally off, we will still launch autovacuum
|
||||||
|
worker processes to vacuum tables that are at risk of XID wraparound.
|
||||||
|
However, such a worker process then proceeded to vacuum all tables in
|
||||||
|
the target database, if they met the usual thresholds for
|
||||||
|
autovacuuming. This is at best pretty unexpected; at worst it delays
|
||||||
|
response to the wraparound threat. Fix it so that if autovacuum is
|
||||||
|
turned off, workers <emphasis>only</> do anti-wraparound vacuums and
|
||||||
|
not any other work.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix race condition between hot standby queries and replaying a
|
||||||
|
full-page image (Heikki Linnakangas)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This mistake could result in transient errors in queries being
|
||||||
|
executed in hot standby.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix several cases where recovery logic improperly ignored WAL records
|
||||||
|
for <literal>COMMIT/ABORT PREPARED</> (Heikki Linnakangas)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The most notable oversight was
|
||||||
|
that <varname>recovery_min_apply_delay</> failed to delay application
|
||||||
|
of a two-phase commit.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Avoid creating unnecessary <filename>.ready</> marker files for
|
||||||
|
timeline history files (Fujii Masao)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix possible null pointer dereference when an empty prepared statement
|
||||||
|
is used and the <varname>log_statement</> setting is <literal>mod</>
|
||||||
|
or <literal>ddl</> (Fujii Masao)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Change <quote>pgstat wait timeout</> warning message to be LOG level,
|
||||||
|
and rephrase it to be more understandable (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This message was originally thought to be essentially a can't-happen
|
||||||
|
case, but it occurs often enough on our slower buildfarm members to be
|
||||||
|
a nuisance. Reduce it to LOG level, and expend a bit more effort on
|
||||||
|
the wording: it now reads <quote>using stale statistics instead of
|
||||||
|
current ones because stats collector is not responding</>.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix SPARC spinlock implementation to ensure correctness if the CPU is
|
||||||
|
being run in a non-TSO coherency mode, as some non-Solaris kernels do
|
||||||
|
(Andres Freund)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Warn if OS X's <function>setlocale()</> starts an unwanted extra
|
||||||
|
thread inside the postmaster (Noah Misch)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix processing of repeated <literal>dbname</> parameters
|
||||||
|
in <function>PQconnectdbParams()</> (Alex Shulgin)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Unexpected behavior ensued if the first occurrence
|
||||||
|
of <literal>dbname</> contained a connection string or URI to be
|
||||||
|
expanded.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Ensure that <application>libpq</> reports a suitable error message on
|
||||||
|
unexpected socket EOF (Marko Tiikkaja, Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Depending on kernel behavior, <application>libpq</> might return an
|
||||||
|
empty error string rather than something useful when the server
|
||||||
|
unexpectedly closed the socket.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Clear any old error message during <function>PQreset()</>
|
||||||
|
(Heikki Linnakangas)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
If <function>PQreset()</> is called repeatedly, and the connection
|
||||||
|
cannot be re-established, error messages from the failed connection
|
||||||
|
attempts kept accumulating in the <structname>PGconn</>'s error
|
||||||
|
string.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Properly handle out-of-memory conditions while parsing connection
|
||||||
|
options in <application>libpq</> (Alex Shulgin, Heikki Linnakangas)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix array overrun in <application>ecpg</>'s version
|
||||||
|
of <function>ParseDateTime()</> (Michael Paquier)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
In <application>initdb</>, give a clearer error message if a password
|
||||||
|
file is specified but is empty (Mats Erik Andersson)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <application>psql</>'s <command>\s</> command to work nicely with
|
||||||
|
libedit, and add pager support (Stepan Rutz, Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
When using libedit rather than readline, <command>\s</> printed the
|
||||||
|
command history in a fairly unreadable encoded format, and on recent
|
||||||
|
libedit versions might fail altogether. Fix that by printing the
|
||||||
|
history ourselves rather than having the library do it. A pleasant
|
||||||
|
side-effect is that the pager is used if appropriate.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This patch also fixes a bug that caused newline encoding to be applied
|
||||||
|
inconsistently when saving the command history with libedit.
|
||||||
|
Multiline history entries written by older <application>psql</>
|
||||||
|
versions will be read cleanly with this patch, but perhaps not
|
||||||
|
vice versa, depending on the exact libedit versions involved.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Improve consistency of parsing of <application>psql</>'s special
|
||||||
|
variables (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Allow variant spellings of <literal>on</> and <literal>off</> (such
|
||||||
|
as <literal>1</>/<literal>0</>) for <literal>ECHO_HIDDEN</>
|
||||||
|
and <literal>ON_ERROR_ROLLBACK</>. Report a warning for unrecognized
|
||||||
|
values for <literal>COMP_KEYWORD_CASE</>, <literal>ECHO</>,
|
||||||
|
<literal>ECHO_HIDDEN</>, <literal>HISTCONTROL</>,
|
||||||
|
<literal>ON_ERROR_ROLLBACK</>, and <literal>VERBOSITY</>. Recognize
|
||||||
|
all values for all these variables case-insensitively; previously
|
||||||
|
there was a mishmash of case-sensitive and case-insensitive behaviors.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <application>psql</>'s expanded-mode display to work
|
||||||
|
consistently when using <literal>border</> = 3
|
||||||
|
and <literal>linestyle</> = <literal>ascii</> or <literal>unicode</>
|
||||||
|
(Stephen Frost)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix possible deadlock during parallel restore of a schema-only dump
|
||||||
|
(Robert Haas, Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix core dump in <literal>pg_dump --binary-upgrade</> on zero-column
|
||||||
|
composite type (Rushabh Lathia)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix block number checking
|
||||||
|
in <filename>contrib/pageinspect</>'s <function>get_raw_page()</>
|
||||||
|
(Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The incorrect checking logic could prevent access to some pages in
|
||||||
|
non-main relation forks.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <filename>contrib/pgcrypto</>'s <function>pgp_sym_decrypt()</>
|
||||||
|
to not fail on messages whose length is 6 less than a power of 2
|
||||||
|
(Marko Tiikkaja)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Handle unexpected query results, especially NULLs, safely in
|
||||||
|
<filename>contrib/tablefunc</>'s <function>connectby()</>
|
||||||
|
(Michael Paquier)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
<function>connectby()</> previously crashed if it encountered a NULL
|
||||||
|
key value. It now prints that row but doesn't recurse further.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Avoid a possible crash in <filename>contrib/xml2</>'s
|
||||||
|
<function>xslt_process()</> (Mark Simonetti)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
<application>libxslt</> seems to have an undocumented dependency on
|
||||||
|
the order in which resources are freed; reorder our calls to avoid a
|
||||||
|
crash.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Numerous cleanups of warnings from Coverity static code analyzer
|
||||||
|
(Andres Freund, Tatsuo Ishii, Marko Kreen, Tom Lane, Michael Paquier)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
These changes are mostly cosmetic but in some cases fix corner-case
|
||||||
|
bugs, for example a crash rather than a proper error report after an
|
||||||
|
out-of-memory failure. None are believed to represent security
|
||||||
|
issues.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Detect incompatible OpenLDAP versions during build (Noah Misch)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
With OpenLDAP versions 2.4.24 through 2.4.31,
|
||||||
|
inclusive, <productname>PostgreSQL</> backends can crash at exit.
|
||||||
|
Raise a warning during <application>configure</> based on the
|
||||||
|
compile-time OpenLDAP version number, and test the crashing scenario
|
||||||
|
in the <filename>contrib/dblink</> regression test.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
In non-MSVC Windows builds, ensure <filename>libpq.dll</> is installed
|
||||||
|
with execute permissions (Noah Misch)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Make <application>pg_regress</> remove any temporary installation it
|
||||||
|
created upon successful exit (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This results in a very substantial reduction in disk space usage
|
||||||
|
during <literal>make check-world</>, since that sequence involves
|
||||||
|
creation of numerous temporary installations.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Support time zone abbreviations that change UTC offset from time to
|
||||||
|
time (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Previously, <productname>PostgreSQL</> assumed that the UTC offset
|
||||||
|
associated with a time zone abbreviation (such as <literal>EST</>)
|
||||||
|
never changes in the usage of any particular locale. However this
|
||||||
|
assumption fails in the real world, so introduce the ability for a
|
||||||
|
zone abbreviation to represent a UTC offset that sometimes changes.
|
||||||
|
Update the zone abbreviation definition files to make use of this
|
||||||
|
feature in timezone locales that have changed the UTC offset of their
|
||||||
|
abbreviations since 1970 (according to the IANA timezone database).
|
||||||
|
In such timezones, <productname>PostgreSQL</> will now associate the
|
||||||
|
correct UTC offset with the abbreviation depending on the given date.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Update time zone abbreviations lists (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Add CST (China Standard Time) to our lists.
|
||||||
|
Remove references to ADT as <quote>Arabia Daylight Time</>, an
|
||||||
|
abbreviation that's been out of use since 2007; therefore, claiming
|
||||||
|
there is a conflict with <quote>Atlantic Daylight Time</> doesn't seem
|
||||||
|
especially helpful.
|
||||||
|
Fix entirely incorrect GMT offsets for CKT (Cook Islands), FJT, and FJST
|
||||||
|
(Fiji); we didn't even have them on the proper side of the date line.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Update time zone data files to <application>tzdata</> release 2015a.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The IANA timezone database has adopted abbreviations of the form
|
||||||
|
<literal>A<replaceable>x</>ST</literal>/<literal>A<replaceable>x</>DT</literal>
|
||||||
|
for all Australian time zones, reflecting what they believe to be
|
||||||
|
current majority practice Down Under. These names do not conflict
|
||||||
|
with usage elsewhere (other than ACST for Acre Summer Time, which has
|
||||||
|
been in disuse since 1994). Accordingly, adopt these names into
|
||||||
|
our <quote>Default</> timezone abbreviation set.
|
||||||
|
The <quote>Australia</> abbreviation set now contains only CST, EAST,
|
||||||
|
EST, SAST, SAT, and WST, all of which are thought to be mostly
|
||||||
|
historical usage. Note that SAST has also been changed to be South
|
||||||
|
Africa Standard Time in the <quote>Default</> abbreviation set.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Also, add zone abbreviations SRET (Asia/Srednekolymsk) and XJT
|
||||||
|
(Asia/Urumqi), and use WSST/WSDT for western Samoa. Also, there were
|
||||||
|
DST law changes in Chile, Mexico, the Turks & Caicos Islands
|
||||||
|
(America/Grand_Turk), and Fiji. There is a new zone
|
||||||
|
Pacific/Bougainville for portions of Papua New Guinea. Also, numerous
|
||||||
|
corrections for historical (pre-1970) time zone data.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
</itemizedlist>
|
||||||
|
|
||||||
|
</sect2>
|
||||||
|
</sect1>
|
||||||
|
|
||||||
<sect1 id="release-9-0-18">
|
<sect1 id="release-9-0-18">
|
||||||
<title>Release 9.0.18</title>
|
<title>Release 9.0.18</title>
|
||||||
|
|
||||||
|
@ -1,6 +1,731 @@
|
|||||||
<!-- 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-15">
|
||||||
|
<title>Release 9.1.15</title>
|
||||||
|
|
||||||
|
<note>
|
||||||
|
<title>Release Date</title>
|
||||||
|
<simpara>2015-02-05</simpara>
|
||||||
|
</note>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This release contains a variety of fixes from 9.1.14.
|
||||||
|
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.15</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.14,
|
||||||
|
see <xref linkend="release-9-1-14">.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
</sect2>
|
||||||
|
|
||||||
|
<sect2>
|
||||||
|
<title>Changes</title>
|
||||||
|
|
||||||
|
<itemizedlist>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix information leak via constraint-violation error messages
|
||||||
|
(Stephen Frost)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Some server error messages show the values of columns that violate
|
||||||
|
a constraint, such as a unique constraint. If the user does not have
|
||||||
|
<literal>SELECT</> privilege on all columns of the table, this could
|
||||||
|
mean exposing values that the user should not be able to see. Adjust
|
||||||
|
the code so that values are displayed only when they came from the SQL
|
||||||
|
command or could be selected by the user.
|
||||||
|
(CVE-2014-8161)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Lock down regression testing's temporary installations on Windows
|
||||||
|
(Noah Misch)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Use SSPI authentication to allow connections only from the OS user
|
||||||
|
who launched the test suite. This closes on Windows the same
|
||||||
|
vulnerability previously closed on other platforms, namely that other
|
||||||
|
users might be able to connect to the test postmaster.
|
||||||
|
(CVE-2014-0067)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Avoid possible data corruption if <command>ALTER DATABASE SET
|
||||||
|
TABLESPACE</> is used to move a database to a new tablespace and then
|
||||||
|
shortly later move it back to its original tablespace (Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Avoid corrupting tables when <command>ANALYZE</> inside a transaction
|
||||||
|
is rolled back (Andres Freund, Tom Lane, Michael Paquier)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
If the failing transaction had earlier removed the last index, rule, or
|
||||||
|
trigger from the table, the table would be left in a corrupted state
|
||||||
|
with the relevant <structname>pg_class</> flags not set though they
|
||||||
|
should be.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Ensure that unlogged tables are copied correctly
|
||||||
|
during <command>CREATE DATABASE</> or <command>ALTER DATABASE SET
|
||||||
|
TABLESPACE</> (Pavan Deolasee, Andres Freund)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <command>DROP</>'s dependency searching to correctly handle the
|
||||||
|
case where a table column is recursively visited before its table
|
||||||
|
(Petr Jelinek, Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This case is only known to arise when an extension creates both a
|
||||||
|
datatype and a table using that datatype. The faulty code might
|
||||||
|
refuse a <command>DROP EXTENSION</> unless <literal>CASCADE</> is
|
||||||
|
specified, which should not be required.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix use-of-already-freed-memory problem in EvalPlanQual processing
|
||||||
|
(Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
In <literal>READ COMMITTED</> mode, queries that lock or update
|
||||||
|
recently-updated rows could crash as a result of this bug.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix planning of <command>SELECT FOR UPDATE</> when using a partial
|
||||||
|
index on a child table (Kyotaro Horiguchi)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
In <literal>READ COMMITTED</> mode, <command>SELECT FOR UPDATE</> must
|
||||||
|
also recheck the partial index's <literal>WHERE</> condition when
|
||||||
|
rechecking a recently-updated row to see if it still satisfies the
|
||||||
|
query's <literal>WHERE</> condition. This requirement was missed if the
|
||||||
|
index belonged to an inheritance child table, so that it was possible
|
||||||
|
to incorrectly return rows that no longer satisfy the query condition.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix corner case wherein <command>SELECT FOR UPDATE</> could return a row
|
||||||
|
twice, and possibly miss returning other rows (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
In <literal>READ COMMITTED</> mode, a <command>SELECT FOR UPDATE</>
|
||||||
|
that is scanning an inheritance tree could incorrectly return a row
|
||||||
|
from a prior child table instead of the one it should return from a
|
||||||
|
later child table.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Reject duplicate column names in the referenced-columns list of
|
||||||
|
a <literal>FOREIGN KEY</> declaration (David Rowley)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This restriction is per SQL standard. Previously we did not reject
|
||||||
|
the case explicitly, but later on the code would fail with
|
||||||
|
bizarre-looking errors.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix bugs in raising a <type>numeric</> value to a large integral power
|
||||||
|
(Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The previous code could get a wrong answer, or consume excessive
|
||||||
|
amounts of time and memory before realizing that the answer must
|
||||||
|
overflow.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
In <function>numeric_recv()</>, truncate away any fractional digits
|
||||||
|
that would be hidden according to the value's <literal>dscale</> field
|
||||||
|
(Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
A <type>numeric</> value's display scale (<literal>dscale</>) should
|
||||||
|
never be less than the number of nonzero fractional digits; but
|
||||||
|
apparently there's at least one broken client application that
|
||||||
|
transmits binary <type>numeric</> values in which that's true.
|
||||||
|
This leads to strange behavior since the extra digits are taken into
|
||||||
|
account by arithmetic operations even though they aren't printed.
|
||||||
|
The least risky fix seems to be to truncate away such <quote>hidden</>
|
||||||
|
digits on receipt, so that the value is indeed what it prints as.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Reject out-of-range numeric timezone specifications (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Simple numeric timezone specifications exceeding +/- 168 hours (one
|
||||||
|
week) would be accepted, but could then cause null-pointer dereference
|
||||||
|
crashes in certain operations. There's no use-case for such large UTC
|
||||||
|
offsets, so reject them.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix bugs in <type>tsquery</> <literal>@></> <type>tsquery</>
|
||||||
|
operator (Heikki Linnakangas)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Two different terms would be considered to match if they had the same
|
||||||
|
CRC. Also, if the second operand had more terms than the first, it
|
||||||
|
would be assumed not to be contained in the first; which is wrong
|
||||||
|
since it might contain duplicate terms.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Improve ispell dictionary's defenses against bad affix files (Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Allow more than 64K phrases in a thesaurus dictionary (David Boutin)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The previous coding could crash on an oversize dictionary, so this was
|
||||||
|
deemed a back-patchable bug fix rather than a feature addition.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix namespace handling in <function>xpath()</> (Ali Akbar)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Previously, the <type>xml</> value resulting from
|
||||||
|
an <function>xpath()</> call would not have namespace declarations if
|
||||||
|
the namespace declarations were attached to an ancestor element in the
|
||||||
|
input <type>xml</> value, rather than to the specific element being
|
||||||
|
returned. Propagate the ancestral declaration so that the result is
|
||||||
|
correct when considered in isolation.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix planner problems with nested append relations, such as inherited
|
||||||
|
tables within <literal>UNION ALL</> subqueries (Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fail cleanly when a GiST index tuple doesn't fit on a page, rather
|
||||||
|
than going into infinite recursion (Andrew Gierth)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Exempt tables that have per-table <varname>cost_limit</>
|
||||||
|
and/or <varname>cost_delay</> settings from autovacuum's global cost
|
||||||
|
balancing rules (Álvaro Herrera)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The previous behavior resulted in basically ignoring these per-table
|
||||||
|
settings, which was unintended. Now, a table having such settings
|
||||||
|
will be vacuumed using those settings, independently of what is going
|
||||||
|
on in other autovacuum workers. This may result in heavier total I/O
|
||||||
|
load than before, so such settings should be re-examined for sanity.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Avoid wholesale autovacuuming when autovacuum is nominally off
|
||||||
|
(Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Even when autovacuum is nominally off, we will still launch autovacuum
|
||||||
|
worker processes to vacuum tables that are at risk of XID wraparound.
|
||||||
|
However, such a worker process then proceeded to vacuum all tables in
|
||||||
|
the target database, if they met the usual thresholds for
|
||||||
|
autovacuuming. This is at best pretty unexpected; at worst it delays
|
||||||
|
response to the wraparound threat. Fix it so that if autovacuum is
|
||||||
|
turned off, workers <emphasis>only</> do anti-wraparound vacuums and
|
||||||
|
not any other work.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
During crash recovery, ensure that unlogged relations are rewritten as
|
||||||
|
empty and are synced to disk before recovery is considered complete
|
||||||
|
(Abhijit Menon-Sen, Andres Freund)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This prevents scenarios in which unlogged relations might contain
|
||||||
|
garbage data following database crash recovery.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix race condition between hot standby queries and replaying a
|
||||||
|
full-page image (Heikki Linnakangas)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This mistake could result in transient errors in queries being
|
||||||
|
executed in hot standby.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix several cases where recovery logic improperly ignored WAL records
|
||||||
|
for <literal>COMMIT/ABORT PREPARED</> (Heikki Linnakangas)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The most notable oversight was
|
||||||
|
that <varname>recovery_min_apply_delay</> failed to delay application
|
||||||
|
of a two-phase commit.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Avoid creating unnecessary <filename>.ready</> marker files for
|
||||||
|
timeline history files (Fujii Masao)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix possible null pointer dereference when an empty prepared statement
|
||||||
|
is used and the <varname>log_statement</> setting is <literal>mod</>
|
||||||
|
or <literal>ddl</> (Fujii Masao)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Change <quote>pgstat wait timeout</> warning message to be LOG level,
|
||||||
|
and rephrase it to be more understandable (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This message was originally thought to be essentially a can't-happen
|
||||||
|
case, but it occurs often enough on our slower buildfarm members to be
|
||||||
|
a nuisance. Reduce it to LOG level, and expend a bit more effort on
|
||||||
|
the wording: it now reads <quote>using stale statistics instead of
|
||||||
|
current ones because stats collector is not responding</>.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix SPARC spinlock implementation to ensure correctness if the CPU is
|
||||||
|
being run in a non-TSO coherency mode, as some non-Solaris kernels do
|
||||||
|
(Andres Freund)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Warn if OS X's <function>setlocale()</> starts an unwanted extra
|
||||||
|
thread inside the postmaster (Noah Misch)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix processing of repeated <literal>dbname</> parameters
|
||||||
|
in <function>PQconnectdbParams()</> (Alex Shulgin)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Unexpected behavior ensued if the first occurrence
|
||||||
|
of <literal>dbname</> contained a connection string or URI to be
|
||||||
|
expanded.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Ensure that <application>libpq</> reports a suitable error message on
|
||||||
|
unexpected socket EOF (Marko Tiikkaja, Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Depending on kernel behavior, <application>libpq</> might return an
|
||||||
|
empty error string rather than something useful when the server
|
||||||
|
unexpectedly closed the socket.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Clear any old error message during <function>PQreset()</>
|
||||||
|
(Heikki Linnakangas)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
If <function>PQreset()</> is called repeatedly, and the connection
|
||||||
|
cannot be re-established, error messages from the failed connection
|
||||||
|
attempts kept accumulating in the <structname>PGconn</>'s error
|
||||||
|
string.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Properly handle out-of-memory conditions while parsing connection
|
||||||
|
options in <application>libpq</> (Alex Shulgin, Heikki Linnakangas)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix array overrun in <application>ecpg</>'s version
|
||||||
|
of <function>ParseDateTime()</> (Michael Paquier)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
In <application>initdb</>, give a clearer error message if a password
|
||||||
|
file is specified but is empty (Mats Erik Andersson)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <application>psql</>'s <command>\s</> command to work nicely with
|
||||||
|
libedit, and add pager support (Stepan Rutz, Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
When using libedit rather than readline, <command>\s</> printed the
|
||||||
|
command history in a fairly unreadable encoded format, and on recent
|
||||||
|
libedit versions might fail altogether. Fix that by printing the
|
||||||
|
history ourselves rather than having the library do it. A pleasant
|
||||||
|
side-effect is that the pager is used if appropriate.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This patch also fixes a bug that caused newline encoding to be applied
|
||||||
|
inconsistently when saving the command history with libedit.
|
||||||
|
Multiline history entries written by older <application>psql</>
|
||||||
|
versions will be read cleanly with this patch, but perhaps not
|
||||||
|
vice versa, depending on the exact libedit versions involved.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Improve consistency of parsing of <application>psql</>'s special
|
||||||
|
variables (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Allow variant spellings of <literal>on</> and <literal>off</> (such
|
||||||
|
as <literal>1</>/<literal>0</>) for <literal>ECHO_HIDDEN</>
|
||||||
|
and <literal>ON_ERROR_ROLLBACK</>. Report a warning for unrecognized
|
||||||
|
values for <literal>COMP_KEYWORD_CASE</>, <literal>ECHO</>,
|
||||||
|
<literal>ECHO_HIDDEN</>, <literal>HISTCONTROL</>,
|
||||||
|
<literal>ON_ERROR_ROLLBACK</>, and <literal>VERBOSITY</>. Recognize
|
||||||
|
all values for all these variables case-insensitively; previously
|
||||||
|
there was a mishmash of case-sensitive and case-insensitive behaviors.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <application>psql</>'s expanded-mode display to work
|
||||||
|
consistently when using <literal>border</> = 3
|
||||||
|
and <literal>linestyle</> = <literal>ascii</> or <literal>unicode</>
|
||||||
|
(Stephen Frost)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Improve performance of <application>pg_dump</> when the database
|
||||||
|
contains many instances of multiple dependency paths between the same
|
||||||
|
two objects (Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix possible deadlock during parallel restore of a schema-only dump
|
||||||
|
(Robert Haas, Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix core dump in <literal>pg_dump --binary-upgrade</> on zero-column
|
||||||
|
composite type (Rushabh Lathia)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Prevent WAL files created by <literal>pg_basebackup -x/-X</> from
|
||||||
|
being archived again when the standby is promoted (Andres Freund)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix upgrade-from-unpackaged script for <filename>contrib/citext</>
|
||||||
|
(Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix block number checking
|
||||||
|
in <filename>contrib/pageinspect</>'s <function>get_raw_page()</>
|
||||||
|
(Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The incorrect checking logic could prevent access to some pages in
|
||||||
|
non-main relation forks.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <filename>contrib/pgcrypto</>'s <function>pgp_sym_decrypt()</>
|
||||||
|
to not fail on messages whose length is 6 less than a power of 2
|
||||||
|
(Marko Tiikkaja)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix file descriptor leak in <filename>contrib/pg_test_fsync</>
|
||||||
|
(Jeff Janes)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This could cause failure to remove temporary files on Windows.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Handle unexpected query results, especially NULLs, safely in
|
||||||
|
<filename>contrib/tablefunc</>'s <function>connectby()</>
|
||||||
|
(Michael Paquier)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
<function>connectby()</> previously crashed if it encountered a NULL
|
||||||
|
key value. It now prints that row but doesn't recurse further.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Avoid a possible crash in <filename>contrib/xml2</>'s
|
||||||
|
<function>xslt_process()</> (Mark Simonetti)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
<application>libxslt</> seems to have an undocumented dependency on
|
||||||
|
the order in which resources are freed; reorder our calls to avoid a
|
||||||
|
crash.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Mark some <filename>contrib</> I/O functions with correct volatility
|
||||||
|
properties (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The previous over-conservative marking was immaterial in normal use,
|
||||||
|
but could cause optimization problems or rejection of valid index
|
||||||
|
expression definitions. Since the consequences are not large, we've
|
||||||
|
just adjusted the function definitions in the extension modules'
|
||||||
|
scripts, without changing version numbers.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Numerous cleanups of warnings from Coverity static code analyzer
|
||||||
|
(Andres Freund, Tatsuo Ishii, Marko Kreen, Tom Lane, Michael Paquier)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
These changes are mostly cosmetic but in some cases fix corner-case
|
||||||
|
bugs, for example a crash rather than a proper error report after an
|
||||||
|
out-of-memory failure. None are believed to represent security
|
||||||
|
issues.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Detect incompatible OpenLDAP versions during build (Noah Misch)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
With OpenLDAP versions 2.4.24 through 2.4.31,
|
||||||
|
inclusive, <productname>PostgreSQL</> backends can crash at exit.
|
||||||
|
Raise a warning during <application>configure</> based on the
|
||||||
|
compile-time OpenLDAP version number, and test the crashing scenario
|
||||||
|
in the <filename>contrib/dblink</> regression test.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
In non-MSVC Windows builds, ensure <filename>libpq.dll</> is installed
|
||||||
|
with execute permissions (Noah Misch)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Make <application>pg_regress</> remove any temporary installation it
|
||||||
|
created upon successful exit (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This results in a very substantial reduction in disk space usage
|
||||||
|
during <literal>make check-world</>, since that sequence involves
|
||||||
|
creation of numerous temporary installations.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Support time zone abbreviations that change UTC offset from time to
|
||||||
|
time (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Previously, <productname>PostgreSQL</> assumed that the UTC offset
|
||||||
|
associated with a time zone abbreviation (such as <literal>EST</>)
|
||||||
|
never changes in the usage of any particular locale. However this
|
||||||
|
assumption fails in the real world, so introduce the ability for a
|
||||||
|
zone abbreviation to represent a UTC offset that sometimes changes.
|
||||||
|
Update the zone abbreviation definition files to make use of this
|
||||||
|
feature in timezone locales that have changed the UTC offset of their
|
||||||
|
abbreviations since 1970 (according to the IANA timezone database).
|
||||||
|
In such timezones, <productname>PostgreSQL</> will now associate the
|
||||||
|
correct UTC offset with the abbreviation depending on the given date.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Update time zone abbreviations lists (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Add CST (China Standard Time) to our lists.
|
||||||
|
Remove references to ADT as <quote>Arabia Daylight Time</>, an
|
||||||
|
abbreviation that's been out of use since 2007; therefore, claiming
|
||||||
|
there is a conflict with <quote>Atlantic Daylight Time</> doesn't seem
|
||||||
|
especially helpful.
|
||||||
|
Fix entirely incorrect GMT offsets for CKT (Cook Islands), FJT, and FJST
|
||||||
|
(Fiji); we didn't even have them on the proper side of the date line.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Update time zone data files to <application>tzdata</> release 2015a.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The IANA timezone database has adopted abbreviations of the form
|
||||||
|
<literal>A<replaceable>x</>ST</literal>/<literal>A<replaceable>x</>DT</literal>
|
||||||
|
for all Australian time zones, reflecting what they believe to be
|
||||||
|
current majority practice Down Under. These names do not conflict
|
||||||
|
with usage elsewhere (other than ACST for Acre Summer Time, which has
|
||||||
|
been in disuse since 1994). Accordingly, adopt these names into
|
||||||
|
our <quote>Default</> timezone abbreviation set.
|
||||||
|
The <quote>Australia</> abbreviation set now contains only CST, EAST,
|
||||||
|
EST, SAST, SAT, and WST, all of which are thought to be mostly
|
||||||
|
historical usage. Note that SAST has also been changed to be South
|
||||||
|
Africa Standard Time in the <quote>Default</> abbreviation set.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Also, add zone abbreviations SRET (Asia/Srednekolymsk) and XJT
|
||||||
|
(Asia/Urumqi), and use WSST/WSDT for western Samoa. Also, there were
|
||||||
|
DST law changes in Chile, Mexico, the Turks & Caicos Islands
|
||||||
|
(America/Grand_Turk), and Fiji. There is a new zone
|
||||||
|
Pacific/Bougainville for portions of Papua New Guinea. Also, numerous
|
||||||
|
corrections for historical (pre-1970) time zone data.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
</itemizedlist>
|
||||||
|
|
||||||
|
</sect2>
|
||||||
|
</sect1>
|
||||||
|
|
||||||
<sect1 id="release-9-1-14">
|
<sect1 id="release-9-1-14">
|
||||||
<title>Release 9.1.14</title>
|
<title>Release 9.1.14</title>
|
||||||
|
|
||||||
@ -8062,7 +8787,7 @@ SELECT * FROM places ORDER BY location <-> point '(101,456)' LIMIT 10;
|
|||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Add <link linkend="dummy-seclabel"><filename>dummy_seclabel</></link>
|
Add <filename>dummy_seclabel</>
|
||||||
contrib module (KaiGai Kohei)
|
contrib module (KaiGai Kohei)
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
|
@ -1,6 +1,838 @@
|
|||||||
<!-- 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-10">
|
||||||
|
<title>Release 9.2.10</title>
|
||||||
|
|
||||||
|
<note>
|
||||||
|
<title>Release Date</title>
|
||||||
|
<simpara>2015-02-05</simpara>
|
||||||
|
</note>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This release contains a variety of fixes from 9.2.9.
|
||||||
|
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.10</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
A dump/restore is not required for those running 9.2.X.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
However, if you are a Windows user and are using the <quote>Norwegian
|
||||||
|
(Bokmål)</> locale, manual action is needed after the upgrade to
|
||||||
|
replace any <quote>Norwegian (Bokmål)_Norway</> locale names stored
|
||||||
|
in <productname>PostgreSQL</> system catalogs with the plain-ASCII
|
||||||
|
alias <quote>Norwegian_Norway</>. For details see
|
||||||
|
<ulink url="http://wiki.postgresql.org/wiki/Changes_To_Norwegian_Locale"></>
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Also, if you are upgrading from a version earlier than 9.2.9,
|
||||||
|
see <xref linkend="release-9-2-9">.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
</sect2>
|
||||||
|
|
||||||
|
<sect2>
|
||||||
|
<title>Changes</title>
|
||||||
|
|
||||||
|
<itemizedlist>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix information leak via constraint-violation error messages
|
||||||
|
(Stephen Frost)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Some server error messages show the values of columns that violate
|
||||||
|
a constraint, such as a unique constraint. If the user does not have
|
||||||
|
<literal>SELECT</> privilege on all columns of the table, this could
|
||||||
|
mean exposing values that the user should not be able to see. Adjust
|
||||||
|
the code so that values are displayed only when they came from the SQL
|
||||||
|
command or could be selected by the user.
|
||||||
|
(CVE-2014-8161)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Lock down regression testing's temporary installations on Windows
|
||||||
|
(Noah Misch)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Use SSPI authentication to allow connections only from the OS user
|
||||||
|
who launched the test suite. This closes on Windows the same
|
||||||
|
vulnerability previously closed on other platforms, namely that other
|
||||||
|
users might be able to connect to the test postmaster.
|
||||||
|
(CVE-2014-0067)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Cope with the Windows locale named <quote>Norwegian (Bokmål)</>
|
||||||
|
(Heikki Linnakangas)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Non-ASCII locale names are problematic since it's not clear what
|
||||||
|
encoding they should be represented in. Map the troublesome locale
|
||||||
|
name to a plain-ASCII alias, <quote>Norwegian_Norway</>.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Avoid possible data corruption if <command>ALTER DATABASE SET
|
||||||
|
TABLESPACE</> is used to move a database to a new tablespace and then
|
||||||
|
shortly later move it back to its original tablespace (Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Avoid corrupting tables when <command>ANALYZE</> inside a transaction
|
||||||
|
is rolled back (Andres Freund, Tom Lane, Michael Paquier)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
If the failing transaction had earlier removed the last index, rule, or
|
||||||
|
trigger from the table, the table would be left in a corrupted state
|
||||||
|
with the relevant <structname>pg_class</> flags not set though they
|
||||||
|
should be.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Ensure that unlogged tables are copied correctly
|
||||||
|
during <command>CREATE DATABASE</> or <command>ALTER DATABASE SET
|
||||||
|
TABLESPACE</> (Pavan Deolasee, Andres Freund)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <command>DROP</>'s dependency searching to correctly handle the
|
||||||
|
case where a table column is recursively visited before its table
|
||||||
|
(Petr Jelinek, Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This case is only known to arise when an extension creates both a
|
||||||
|
datatype and a table using that datatype. The faulty code might
|
||||||
|
refuse a <command>DROP EXTENSION</> unless <literal>CASCADE</> is
|
||||||
|
specified, which should not be required.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix use-of-already-freed-memory problem in EvalPlanQual processing
|
||||||
|
(Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
In <literal>READ COMMITTED</> mode, queries that lock or update
|
||||||
|
recently-updated rows could crash as a result of this bug.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix planning of <command>SELECT FOR UPDATE</> when using a partial
|
||||||
|
index on a child table (Kyotaro Horiguchi)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
In <literal>READ COMMITTED</> mode, <command>SELECT FOR UPDATE</> must
|
||||||
|
also recheck the partial index's <literal>WHERE</> condition when
|
||||||
|
rechecking a recently-updated row to see if it still satisfies the
|
||||||
|
query's <literal>WHERE</> condition. This requirement was missed if the
|
||||||
|
index belonged to an inheritance child table, so that it was possible
|
||||||
|
to incorrectly return rows that no longer satisfy the query condition.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix corner case wherein <command>SELECT FOR UPDATE</> could return a row
|
||||||
|
twice, and possibly miss returning other rows (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
In <literal>READ COMMITTED</> mode, a <command>SELECT FOR UPDATE</>
|
||||||
|
that is scanning an inheritance tree could incorrectly return a row
|
||||||
|
from a prior child table instead of the one it should return from a
|
||||||
|
later child table.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Reject duplicate column names in the referenced-columns list of
|
||||||
|
a <literal>FOREIGN KEY</> declaration (David Rowley)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This restriction is per SQL standard. Previously we did not reject
|
||||||
|
the case explicitly, but later on the code would fail with
|
||||||
|
bizarre-looking errors.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Restore previous behavior of conversion of domains to JSON
|
||||||
|
(Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This change causes domains over numeric and boolean to be treated
|
||||||
|
like their base types for purposes of conversion to JSON. It worked
|
||||||
|
like that before 9.3.5 and 9.2.9, but was unintentionally changed
|
||||||
|
while fixing a related problem.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix bugs in raising a <type>numeric</> value to a large integral power
|
||||||
|
(Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The previous code could get a wrong answer, or consume excessive
|
||||||
|
amounts of time and memory before realizing that the answer must
|
||||||
|
overflow.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
In <function>numeric_recv()</>, truncate away any fractional digits
|
||||||
|
that would be hidden according to the value's <literal>dscale</> field
|
||||||
|
(Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
A <type>numeric</> value's display scale (<literal>dscale</>) should
|
||||||
|
never be less than the number of nonzero fractional digits; but
|
||||||
|
apparently there's at least one broken client application that
|
||||||
|
transmits binary <type>numeric</> values in which that's true.
|
||||||
|
This leads to strange behavior since the extra digits are taken into
|
||||||
|
account by arithmetic operations even though they aren't printed.
|
||||||
|
The least risky fix seems to be to truncate away such <quote>hidden</>
|
||||||
|
digits on receipt, so that the value is indeed what it prints as.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix incorrect search for shortest-first regular expression matches
|
||||||
|
(Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Matching would often fail when the number of allowed iterations is
|
||||||
|
limited by a <literal>?</> quantifier or a bound expression.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Reject out-of-range numeric timezone specifications (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Simple numeric timezone specifications exceeding +/- 168 hours (one
|
||||||
|
week) would be accepted, but could then cause null-pointer dereference
|
||||||
|
crashes in certain operations. There's no use-case for such large UTC
|
||||||
|
offsets, so reject them.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix bugs in <type>tsquery</> <literal>@></> <type>tsquery</>
|
||||||
|
operator (Heikki Linnakangas)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Two different terms would be considered to match if they had the same
|
||||||
|
CRC. Also, if the second operand had more terms than the first, it
|
||||||
|
would be assumed not to be contained in the first; which is wrong
|
||||||
|
since it might contain duplicate terms.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Improve ispell dictionary's defenses against bad affix files (Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Allow more than 64K phrases in a thesaurus dictionary (David Boutin)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The previous coding could crash on an oversize dictionary, so this was
|
||||||
|
deemed a back-patchable bug fix rather than a feature addition.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix namespace handling in <function>xpath()</> (Ali Akbar)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Previously, the <type>xml</> value resulting from
|
||||||
|
an <function>xpath()</> call would not have namespace declarations if
|
||||||
|
the namespace declarations were attached to an ancestor element in the
|
||||||
|
input <type>xml</> value, rather than to the specific element being
|
||||||
|
returned. Propagate the ancestral declaration so that the result is
|
||||||
|
correct when considered in isolation.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Ensure that whole-row variables expose nonempty column names
|
||||||
|
to functions that pay attention to column names within composite
|
||||||
|
arguments (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
In some contexts, constructs like <literal>row_to_json(tab.*)</> may
|
||||||
|
not produce the expected column names. This is fixed properly as of
|
||||||
|
9.4; in older branches, just ensure that we produce some nonempty
|
||||||
|
name. (In some cases this will be the underlying table's column name
|
||||||
|
rather than the query-assigned alias that should theoretically be
|
||||||
|
visible.)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix mishandling of system columns,
|
||||||
|
particularly <structfield>tableoid</>, in FDW queries (Etsuro Fujita)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Avoid doing <literal><replaceable>indexed_column</> = ANY
|
||||||
|
(<replaceable>array</>)</literal> as an index qualifier if that leads
|
||||||
|
to an inferior plan (Andrew Gierth)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
In some cases, <literal>= ANY</> conditions applied to non-first index
|
||||||
|
columns would be done as index conditions even though it would be
|
||||||
|
better to use them as simple filter conditions.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix planner problems with nested append relations, such as inherited
|
||||||
|
tables within <literal>UNION ALL</> subqueries (Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fail cleanly when a GiST index tuple doesn't fit on a page, rather
|
||||||
|
than going into infinite recursion (Andrew Gierth)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Exempt tables that have per-table <varname>cost_limit</>
|
||||||
|
and/or <varname>cost_delay</> settings from autovacuum's global cost
|
||||||
|
balancing rules (Álvaro Herrera)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The previous behavior resulted in basically ignoring these per-table
|
||||||
|
settings, which was unintended. Now, a table having such settings
|
||||||
|
will be vacuumed using those settings, independently of what is going
|
||||||
|
on in other autovacuum workers. This may result in heavier total I/O
|
||||||
|
load than before, so such settings should be re-examined for sanity.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Avoid wholesale autovacuuming when autovacuum is nominally off
|
||||||
|
(Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Even when autovacuum is nominally off, we will still launch autovacuum
|
||||||
|
worker processes to vacuum tables that are at risk of XID wraparound.
|
||||||
|
However, such a worker process then proceeded to vacuum all tables in
|
||||||
|
the target database, if they met the usual thresholds for
|
||||||
|
autovacuuming. This is at best pretty unexpected; at worst it delays
|
||||||
|
response to the wraparound threat. Fix it so that if autovacuum is
|
||||||
|
turned off, workers <emphasis>only</> do anti-wraparound vacuums and
|
||||||
|
not any other work.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
During crash recovery, ensure that unlogged relations are rewritten as
|
||||||
|
empty and are synced to disk before recovery is considered complete
|
||||||
|
(Abhijit Menon-Sen, Andres Freund)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This prevents scenarios in which unlogged relations might contain
|
||||||
|
garbage data following database crash recovery.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix race condition between hot standby queries and replaying a
|
||||||
|
full-page image (Heikki Linnakangas)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This mistake could result in transient errors in queries being
|
||||||
|
executed in hot standby.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix several cases where recovery logic improperly ignored WAL records
|
||||||
|
for <literal>COMMIT/ABORT PREPARED</> (Heikki Linnakangas)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The most notable oversight was
|
||||||
|
that <varname>recovery_min_apply_delay</> failed to delay application
|
||||||
|
of a two-phase commit.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Prevent latest WAL file from being archived a second time at completion
|
||||||
|
of crash recovery (Fujii Masao)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Avoid creating unnecessary <filename>.ready</> marker files for
|
||||||
|
timeline history files (Fujii Masao)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix possible null pointer dereference when an empty prepared statement
|
||||||
|
is used and the <varname>log_statement</> setting is <literal>mod</>
|
||||||
|
or <literal>ddl</> (Fujii Masao)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Change <quote>pgstat wait timeout</> warning message to be LOG level,
|
||||||
|
and rephrase it to be more understandable (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This message was originally thought to be essentially a can't-happen
|
||||||
|
case, but it occurs often enough on our slower buildfarm members to be
|
||||||
|
a nuisance. Reduce it to LOG level, and expend a bit more effort on
|
||||||
|
the wording: it now reads <quote>using stale statistics instead of
|
||||||
|
current ones because stats collector is not responding</>.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix SPARC spinlock implementation to ensure correctness if the CPU is
|
||||||
|
being run in a non-TSO coherency mode, as some non-Solaris kernels do
|
||||||
|
(Andres Freund)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Warn if OS X's <function>setlocale()</> starts an unwanted extra
|
||||||
|
thread inside the postmaster (Noah Misch)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix processing of repeated <literal>dbname</> parameters
|
||||||
|
in <function>PQconnectdbParams()</> (Alex Shulgin)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Unexpected behavior ensued if the first occurrence
|
||||||
|
of <literal>dbname</> contained a connection string or URI to be
|
||||||
|
expanded.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Ensure that <application>libpq</> reports a suitable error message on
|
||||||
|
unexpected socket EOF (Marko Tiikkaja, Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Depending on kernel behavior, <application>libpq</> might return an
|
||||||
|
empty error string rather than something useful when the server
|
||||||
|
unexpectedly closed the socket.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Clear any old error message during <function>PQreset()</>
|
||||||
|
(Heikki Linnakangas)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
If <function>PQreset()</> is called repeatedly, and the connection
|
||||||
|
cannot be re-established, error messages from the failed connection
|
||||||
|
attempts kept accumulating in the <structname>PGconn</>'s error
|
||||||
|
string.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Properly handle out-of-memory conditions while parsing connection
|
||||||
|
options in <application>libpq</> (Alex Shulgin, Heikki Linnakangas)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix array overrun in <application>ecpg</>'s version
|
||||||
|
of <function>ParseDateTime()</> (Michael Paquier)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
In <application>initdb</>, give a clearer error message if a password
|
||||||
|
file is specified but is empty (Mats Erik Andersson)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <application>psql</>'s <command>\s</> command to work nicely with
|
||||||
|
libedit, and add pager support (Stepan Rutz, Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
When using libedit rather than readline, <command>\s</> printed the
|
||||||
|
command history in a fairly unreadable encoded format, and on recent
|
||||||
|
libedit versions might fail altogether. Fix that by printing the
|
||||||
|
history ourselves rather than having the library do it. A pleasant
|
||||||
|
side-effect is that the pager is used if appropriate.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This patch also fixes a bug that caused newline encoding to be applied
|
||||||
|
inconsistently when saving the command history with libedit.
|
||||||
|
Multiline history entries written by older <application>psql</>
|
||||||
|
versions will be read cleanly with this patch, but perhaps not
|
||||||
|
vice versa, depending on the exact libedit versions involved.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Improve consistency of parsing of <application>psql</>'s special
|
||||||
|
variables (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Allow variant spellings of <literal>on</> and <literal>off</> (such
|
||||||
|
as <literal>1</>/<literal>0</>) for <literal>ECHO_HIDDEN</>
|
||||||
|
and <literal>ON_ERROR_ROLLBACK</>. Report a warning for unrecognized
|
||||||
|
values for <literal>COMP_KEYWORD_CASE</>, <literal>ECHO</>,
|
||||||
|
<literal>ECHO_HIDDEN</>, <literal>HISTCONTROL</>,
|
||||||
|
<literal>ON_ERROR_ROLLBACK</>, and <literal>VERBOSITY</>. Recognize
|
||||||
|
all values for all these variables case-insensitively; previously
|
||||||
|
there was a mishmash of case-sensitive and case-insensitive behaviors.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <application>psql</>'s expanded-mode display to work
|
||||||
|
consistently when using <literal>border</> = 3
|
||||||
|
and <literal>linestyle</> = <literal>ascii</> or <literal>unicode</>
|
||||||
|
(Stephen Frost)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Improve performance of <application>pg_dump</> when the database
|
||||||
|
contains many instances of multiple dependency paths between the same
|
||||||
|
two objects (Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <application>pg_dumpall</> to restore its ability to dump from
|
||||||
|
pre-8.1 servers (Gilles Darold)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix possible deadlock during parallel restore of a schema-only dump
|
||||||
|
(Robert Haas, Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix core dump in <literal>pg_dump --binary-upgrade</> on zero-column
|
||||||
|
composite type (Rushabh Lathia)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Prevent WAL files created by <literal>pg_basebackup -x/-X</> from
|
||||||
|
being archived again when the standby is promoted (Andres Freund)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix failure of <filename>contrib/auto_explain</> to print per-node
|
||||||
|
timing information when doing <command>EXPLAIN ANALYZE</> (Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix upgrade-from-unpackaged script for <filename>contrib/citext</>
|
||||||
|
(Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix block number checking
|
||||||
|
in <filename>contrib/pageinspect</>'s <function>get_raw_page()</>
|
||||||
|
(Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The incorrect checking logic could prevent access to some pages in
|
||||||
|
non-main relation forks.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <filename>contrib/pgcrypto</>'s <function>pgp_sym_decrypt()</>
|
||||||
|
to not fail on messages whose length is 6 less than a power of 2
|
||||||
|
(Marko Tiikkaja)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix file descriptor leak in <filename>contrib/pg_test_fsync</>
|
||||||
|
(Jeff Janes)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This could cause failure to remove temporary files on Windows.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Handle unexpected query results, especially NULLs, safely in
|
||||||
|
<filename>contrib/tablefunc</>'s <function>connectby()</>
|
||||||
|
(Michael Paquier)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
<function>connectby()</> previously crashed if it encountered a NULL
|
||||||
|
key value. It now prints that row but doesn't recurse further.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Avoid a possible crash in <filename>contrib/xml2</>'s
|
||||||
|
<function>xslt_process()</> (Mark Simonetti)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
<application>libxslt</> seems to have an undocumented dependency on
|
||||||
|
the order in which resources are freed; reorder our calls to avoid a
|
||||||
|
crash.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Mark some <filename>contrib</> I/O functions with correct volatility
|
||||||
|
properties (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The previous over-conservative marking was immaterial in normal use,
|
||||||
|
but could cause optimization problems or rejection of valid index
|
||||||
|
expression definitions. Since the consequences are not large, we've
|
||||||
|
just adjusted the function definitions in the extension modules'
|
||||||
|
scripts, without changing version numbers.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Numerous cleanups of warnings from Coverity static code analyzer
|
||||||
|
(Andres Freund, Tatsuo Ishii, Marko Kreen, Tom Lane, Michael Paquier)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
These changes are mostly cosmetic but in some cases fix corner-case
|
||||||
|
bugs, for example a crash rather than a proper error report after an
|
||||||
|
out-of-memory failure. None are believed to represent security
|
||||||
|
issues.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Detect incompatible OpenLDAP versions during build (Noah Misch)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
With OpenLDAP versions 2.4.24 through 2.4.31,
|
||||||
|
inclusive, <productname>PostgreSQL</> backends can crash at exit.
|
||||||
|
Raise a warning during <application>configure</> based on the
|
||||||
|
compile-time OpenLDAP version number, and test the crashing scenario
|
||||||
|
in the <filename>contrib/dblink</> regression test.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
In non-MSVC Windows builds, ensure <filename>libpq.dll</> is installed
|
||||||
|
with execute permissions (Noah Misch)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Make <application>pg_regress</> remove any temporary installation it
|
||||||
|
created upon successful exit (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This results in a very substantial reduction in disk space usage
|
||||||
|
during <literal>make check-world</>, since that sequence involves
|
||||||
|
creation of numerous temporary installations.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Support time zone abbreviations that change UTC offset from time to
|
||||||
|
time (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Previously, <productname>PostgreSQL</> assumed that the UTC offset
|
||||||
|
associated with a time zone abbreviation (such as <literal>EST</>)
|
||||||
|
never changes in the usage of any particular locale. However this
|
||||||
|
assumption fails in the real world, so introduce the ability for a
|
||||||
|
zone abbreviation to represent a UTC offset that sometimes changes.
|
||||||
|
Update the zone abbreviation definition files to make use of this
|
||||||
|
feature in timezone locales that have changed the UTC offset of their
|
||||||
|
abbreviations since 1970 (according to the IANA timezone database).
|
||||||
|
In such timezones, <productname>PostgreSQL</> will now associate the
|
||||||
|
correct UTC offset with the abbreviation depending on the given date.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Update time zone abbreviations lists (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Add CST (China Standard Time) to our lists.
|
||||||
|
Remove references to ADT as <quote>Arabia Daylight Time</>, an
|
||||||
|
abbreviation that's been out of use since 2007; therefore, claiming
|
||||||
|
there is a conflict with <quote>Atlantic Daylight Time</> doesn't seem
|
||||||
|
especially helpful.
|
||||||
|
Fix entirely incorrect GMT offsets for CKT (Cook Islands), FJT, and FJST
|
||||||
|
(Fiji); we didn't even have them on the proper side of the date line.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Update time zone data files to <application>tzdata</> release 2015a.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The IANA timezone database has adopted abbreviations of the form
|
||||||
|
<literal>A<replaceable>x</>ST</literal>/<literal>A<replaceable>x</>DT</literal>
|
||||||
|
for all Australian time zones, reflecting what they believe to be
|
||||||
|
current majority practice Down Under. These names do not conflict
|
||||||
|
with usage elsewhere (other than ACST for Acre Summer Time, which has
|
||||||
|
been in disuse since 1994). Accordingly, adopt these names into
|
||||||
|
our <quote>Default</> timezone abbreviation set.
|
||||||
|
The <quote>Australia</> abbreviation set now contains only CST, EAST,
|
||||||
|
EST, SAST, SAT, and WST, all of which are thought to be mostly
|
||||||
|
historical usage. Note that SAST has also been changed to be South
|
||||||
|
Africa Standard Time in the <quote>Default</> abbreviation set.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Also, add zone abbreviations SRET (Asia/Srednekolymsk) and XJT
|
||||||
|
(Asia/Urumqi), and use WSST/WSDT for western Samoa. Also, there were
|
||||||
|
DST law changes in Chile, Mexico, the Turks & Caicos Islands
|
||||||
|
(America/Grand_Turk), and Fiji. There is a new zone
|
||||||
|
Pacific/Bougainville for portions of Papua New Guinea. Also, numerous
|
||||||
|
corrections for historical (pre-1970) time zone data.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
</itemizedlist>
|
||||||
|
|
||||||
|
</sect2>
|
||||||
|
</sect1>
|
||||||
|
|
||||||
<sect1 id="release-9-2-9">
|
<sect1 id="release-9-2-9">
|
||||||
<title>Release 9.2.9</title>
|
<title>Release 9.2.9</title>
|
||||||
|
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -1,6 +1,680 @@
|
|||||||
<!-- doc/src/sgml/release-9.4.sgml -->
|
<!-- doc/src/sgml/release-9.4.sgml -->
|
||||||
<!-- See header comment in release.sgml about typical markup -->
|
<!-- See header comment in release.sgml about typical markup -->
|
||||||
|
|
||||||
|
<sect1 id="release-9-4-1">
|
||||||
|
<title>Release 9.4.1</title>
|
||||||
|
|
||||||
|
<note>
|
||||||
|
<title>Release Date</title>
|
||||||
|
<simpara>2015-02-05</simpara>
|
||||||
|
</note>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This release contains a variety of fixes from 9.4.0.
|
||||||
|
For information about new features in the 9.4 major release, see
|
||||||
|
<xref linkend="release-9-4">.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<sect2>
|
||||||
|
<title>Migration to Version 9.4.1</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
A dump/restore is not required for those running 9.4.X.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
However, if you are a Windows user and are using the <quote>Norwegian
|
||||||
|
(Bokmål)</> locale, manual action is needed after the upgrade to
|
||||||
|
replace any <quote>Norwegian (Bokmål)_Norway</>
|
||||||
|
or <quote>norwegian-bokmal</> locale names stored
|
||||||
|
in <productname>PostgreSQL</> system catalogs with the plain-ASCII
|
||||||
|
alias <quote>Norwegian_Norway</>. For details see
|
||||||
|
<ulink url="http://wiki.postgresql.org/wiki/Changes_To_Norwegian_Locale"></>
|
||||||
|
</para>
|
||||||
|
</sect2>
|
||||||
|
|
||||||
|
<sect2>
|
||||||
|
<title>Changes</title>
|
||||||
|
|
||||||
|
<itemizedlist>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Author: Stephen Frost <sfrost@snowman.net>
|
||||||
|
Branch: master [804b6b6db] 2015-01-28 12:31:30 -0500
|
||||||
|
Branch: REL9_4_STABLE [3cc74a3d6] 2015-01-28 12:32:06 -0500
|
||||||
|
Branch: REL9_3_STABLE [4b9874216] 2015-01-28 12:32:39 -0500
|
||||||
|
Branch: REL9_2_STABLE [d49f84b08] 2015-01-28 12:32:56 -0500
|
||||||
|
Branch: REL9_1_STABLE [9406884af] 2015-01-28 12:33:15 -0500
|
||||||
|
Branch: REL9_0_STABLE [3a2063369] 2015-01-28 12:33:29 -0500
|
||||||
|
-->
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix information leak via constraint-violation error messages
|
||||||
|
(Stephen Frost)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Some server error messages show the values of columns that violate
|
||||||
|
a constraint, such as a unique constraint. If the user does not have
|
||||||
|
<literal>SELECT</> privilege on all columns of the table, this could
|
||||||
|
mean exposing values that the user should not be able to see. Adjust
|
||||||
|
the code so that values are displayed only when they came from the SQL
|
||||||
|
command or could be selected by the user.
|
||||||
|
(CVE-2014-8161)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Author: Noah Misch <noah@leadboat.com>
|
||||||
|
Branch: master [f6dc6dd5b] 2014-12-17 22:48:40 -0500
|
||||||
|
Branch: REL9_4_STABLE [6b87d423d] 2014-12-17 22:48:45 -0500
|
||||||
|
Branch: REL9_3_STABLE [442dc2c35] 2014-12-17 22:48:46 -0500
|
||||||
|
Branch: REL9_2_STABLE [0046f651d] 2014-12-17 22:48:47 -0500
|
||||||
|
Branch: REL9_1_STABLE [6aa98e957] 2014-12-17 22:48:47 -0500
|
||||||
|
Branch: REL9_0_STABLE [6d45ee572] 2014-12-17 22:48:48 -0500
|
||||||
|
-->
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Lock down regression testing's temporary installations on Windows
|
||||||
|
(Noah Misch)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Use SSPI authentication to allow connections only from the OS user
|
||||||
|
who launched the test suite. This closes on Windows the same
|
||||||
|
vulnerability previously closed on other platforms, namely that other
|
||||||
|
users might be able to connect to the test postmaster.
|
||||||
|
(CVE-2014-0067)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
|
||||||
|
Branch: REL9_3_STABLE [8f80dcf3c] 2014-10-24 19:59:49 +0300
|
||||||
|
Branch: REL9_2_STABLE [d440c4b55] 2014-10-24 19:59:52 +0300
|
||||||
|
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
|
||||||
|
Branch: REL9_3_STABLE [2a1b34959] 2014-10-24 19:36:28 +0300
|
||||||
|
Branch: REL9_2_STABLE [737ae3fc7] 2014-10-24 19:53:27 +0300
|
||||||
|
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
|
||||||
|
Branch: master [aa1d2fc5e] 2015-01-16 13:28:19 +0200
|
||||||
|
Branch: REL9_4_STABLE [2049a7d82] 2015-01-16 13:10:06 +0200
|
||||||
|
Branch: REL9_3_STABLE [1619442a1] 2015-01-16 13:10:15 +0200
|
||||||
|
Branch: REL9_2_STABLE [6bf343c6e] 2015-01-16 13:10:23 +0200
|
||||||
|
-->
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Cope with the Windows locale named <quote>Norwegian (Bokmål)</>
|
||||||
|
(Heikki Linnakangas)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Non-ASCII locale names are problematic since it's not clear what
|
||||||
|
encoding they should be represented in. Map the troublesome locale
|
||||||
|
name to a plain-ASCII alias, <quote>Norwegian_Norway</>.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
9.4.0 mapped the troublesome name to <quote>norwegian-bokmal</>,
|
||||||
|
but that turns out not to work on all Windows configurations.
|
||||||
|
<quote>Norwegian_Norway</> is now recommended instead.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
||||||
|
Branch: master [c480cb9d2] 2015-01-15 18:52:58 -0500
|
||||||
|
Branch: REL9_4_STABLE [b75d18bd4] 2015-01-15 18:53:05 -0500
|
||||||
|
Branch: REL9_3_STABLE [34668c8ec] 2015-01-15 18:52:28 -0500
|
||||||
|
Branch: REL9_2_STABLE [0acb32efb] 2015-01-15 18:52:31 -0500
|
||||||
|
Branch: REL9_1_STABLE [450530fce] 2015-01-15 18:52:34 -0500
|
||||||
|
Branch: REL9_0_STABLE [5308e085b] 2015-01-15 18:52:38 -0500
|
||||||
|
-->
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix use-of-already-freed-memory problem in EvalPlanQual processing
|
||||||
|
(Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
In <literal>READ COMMITTED</> mode, queries that lock or update
|
||||||
|
recently-updated rows could crash as a result of this bug.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
|
||||||
|
Branch: master [0e5680f47] 2014-12-26 13:52:27 -0300
|
||||||
|
Branch: REL9_4_STABLE [0e3a1f71d] 2014-12-26 13:52:27 -0300
|
||||||
|
Branch: REL9_3_STABLE [048912386] 2014-12-26 13:52:27 -0300
|
||||||
|
-->
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Avoid possible deadlock while trying to acquire tuple locks
|
||||||
|
in EvalPlanQual processing (Álvaro Herrera, Mark Kirkwood)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
|
||||||
|
Branch: master [d5e3d1e96] 2015-01-04 15:48:29 -0300
|
||||||
|
Branch: REL9_4_STABLE [51742063b] 2015-01-04 15:48:29 -0300
|
||||||
|
Branch: REL9_3_STABLE [54a8abc2b] 2015-01-04 15:48:29 -0300
|
||||||
|
-->
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix failure to wait when a transaction tries to acquire a <literal>FOR
|
||||||
|
NO KEY EXCLUSIVE</> tuple lock, while multiple other transactions
|
||||||
|
currently hold <literal>FOR SHARE</> locks (Álvaro Herrera)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
||||||
|
Branch: master [a5cd70dcb] 2015-01-15 13:18:12 -0500
|
||||||
|
Branch: REL9_4_STABLE [d25192892] 2015-01-15 13:18:16 -0500
|
||||||
|
Branch: REL9_3_STABLE [939f0fb67] 2015-01-15 13:18:19 -0500
|
||||||
|
-->
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Improve performance of <command>EXPLAIN</> with large range tables
|
||||||
|
(Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
||||||
|
Branch: master [451d28081] 2015-01-30 14:44:56 -0500
|
||||||
|
Branch: REL9_4_STABLE [4cbf390d5] 2015-01-30 14:44:49 -0500
|
||||||
|
-->
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <type>jsonb</> Unicode escape processing, and in consequence
|
||||||
|
disallow <literal>\u0000</> (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Previously, the JSON Unicode escape <literal>\u0000</> was accepted
|
||||||
|
and was stored as those six characters; but that is indistinguishable
|
||||||
|
from what is stored for the input <literal>\\u0000</>, resulting in
|
||||||
|
ambiguity. Moreover, in cases where de-escaped textual output is
|
||||||
|
expected, such as the <literal>->></> operator, the sequence was
|
||||||
|
printed as <literal>\u0000</>, which does not meet the expectation
|
||||||
|
that JSON escaping would be removed. (Consistent behavior would
|
||||||
|
require emitting a zero byte, but <productname>PostgreSQL</> does not
|
||||||
|
support zero bytes embedded in text strings.) 9.4.0 included an
|
||||||
|
ill-advised attempt to improve this situation by adjusting JSON output
|
||||||
|
conversion rules; but of course that could not fix the fundamental
|
||||||
|
ambiguity, and it turned out to break other usages of Unicode escape
|
||||||
|
sequences. Revert that, and to avoid the core problem,
|
||||||
|
reject <literal>\u0000</> in <type>jsonb</> input.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
If a <type>jsonb</> column contains a <literal>\u0000</> value stored
|
||||||
|
with 9.4.0, it will henceforth read out as though it
|
||||||
|
were <literal>\\u0000</>, which is the other valid interpretation of
|
||||||
|
the data stored by 9.4.0 for this case.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The <type>json</> type did not have the storage-ambiguity problem, but
|
||||||
|
it did have the problem of inconsistent de-escaped textual output.
|
||||||
|
Therefore <literal>\u0000</> will now also be rejected
|
||||||
|
in <type>json</> values when conversion to de-escaped form is
|
||||||
|
required. This change does not break the ability to
|
||||||
|
store <literal>\u0000</> in <type>json</> columns so long as no
|
||||||
|
processing is done on the values. This is exactly parallel to the
|
||||||
|
cases in which non-ASCII Unicode escapes are allowed when the database
|
||||||
|
encoding is not UTF8.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Author: Peter Eisentraut <peter_e@gmx.net>
|
||||||
|
Branch: master [79af9a1d2] 2015-01-06 23:06:13 -0500
|
||||||
|
Branch: REL9_4_STABLE [6bbf75192] 2015-01-17 22:11:20 -0500
|
||||||
|
Branch: REL9_3_STABLE [e32cb8d0e] 2015-01-17 22:13:27 -0500
|
||||||
|
Branch: REL9_2_STABLE [c8ef5b1ac] 2015-01-17 22:14:21 -0500
|
||||||
|
Branch: REL9_1_STABLE [c975fa471] 2015-01-17 22:37:07 -0500
|
||||||
|
Branch: REL9_0_STABLE [cebb3f032] 2015-01-17 22:37:32 -0500
|
||||||
|
-->
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix namespace handling in <function>xpath()</> (Ali Akbar)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Previously, the <type>xml</> value resulting from
|
||||||
|
an <function>xpath()</> call would not have namespace declarations if
|
||||||
|
the namespace declarations were attached to an ancestor element in the
|
||||||
|
input <type>xml</> value, rather than to the specific element being
|
||||||
|
returned. Propagate the ancestral declaration so that the result is
|
||||||
|
correct when considered in isolation.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
||||||
|
Branch: master [3d660d33a] 2015-01-30 12:30:59 -0500
|
||||||
|
Branch: REL9_4_STABLE [b6a164e5c] 2015-01-30 12:31:08 -0500
|
||||||
|
Branch: REL9_3_STABLE [527ff8baf] 2015-01-30 12:30:43 -0500
|
||||||
|
-->
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix assorted oversights in range-operator selectivity estimation
|
||||||
|
(Emre Hasegeli)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This patch fixes corner-case <quote>unexpected operator NNNN</> planner
|
||||||
|
errors, and improves the selectivity estimates for some other cases.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
|
||||||
|
Branch: master [930fd6845] 2014-12-30 14:53:11 +0200
|
||||||
|
Branch: REL9_4_STABLE [4e241f7cd] 2014-12-30 14:53:03 +0200
|
||||||
|
-->
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Revert unintended reduction in maximum size of a GIN index item
|
||||||
|
(Heikki Linnakangas)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
9.4.0 could fail with <quote>index row size exceeds maximum</> errors
|
||||||
|
for data that previous versions would accept.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
|
||||||
|
Branch: master [68fa75f31] 2015-01-30 17:58:23 +0100
|
||||||
|
Branch: REL9_4_STABLE [dc40ca696] 2015-01-30 17:59:17 +0100
|
||||||
|
-->
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix query-duration memory leak during repeated GIN index rescans
|
||||||
|
(Heikki Linnakangas)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
|
||||||
|
Branch: master [31ed42b9a] 2015-01-29 19:35:55 +0200
|
||||||
|
Branch: REL9_4_STABLE [28a37deab] 2015-01-29 19:37:29 +0200
|
||||||
|
Branch: REL9_3_STABLE [1c2774f37] 2015-01-29 19:37:27 +0200
|
||||||
|
Branch: REL9_2_STABLE [61729e99d] 2015-01-29 19:37:25 +0200
|
||||||
|
Branch: REL9_1_STABLE [37e0f13f2] 2015-01-29 19:37:22 +0200
|
||||||
|
-->
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix possible crash when using
|
||||||
|
nonzero <varname>gin_fuzzy_search_limit</> (Heikki Linnakangas)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Author: Andres Freund <andres@anarazel.de>
|
||||||
|
Branch: master [3fabed070] 2015-01-07 00:19:37 +0100
|
||||||
|
Branch: REL9_4_STABLE [7da102154] 2015-01-07 00:24:58 +0100
|
||||||
|
Author: Andres Freund <andres@anarazel.de>
|
||||||
|
Branch: master [31912d01d] 2015-01-07 00:18:00 +0100
|
||||||
|
Branch: REL9_4_STABLE [84911ff51] 2015-01-07 00:24:47 +0100
|
||||||
|
-->
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Assorted fixes for logical decoding (Andres Freund)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
|
||||||
|
Branch: master [49b04188f] 2015-01-15 20:52:41 +0200
|
||||||
|
Branch: REL9_4_STABLE [b337d9657] 2015-01-15 20:52:18 +0200
|
||||||
|
-->
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix incorrect replay of WAL parameter change records that report
|
||||||
|
changes in the <varname>wal_log_hints</> setting (Petr Jalinek)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
||||||
|
Branch: master [75b48e1ff] 2015-01-19 23:01:33 -0500
|
||||||
|
Branch: REL9_4_STABLE [3387cbbcb] 2015-01-19 23:01:36 -0500
|
||||||
|
Branch: REL9_3_STABLE [19794e997] 2015-01-19 23:01:39 -0500
|
||||||
|
Branch: REL9_2_STABLE [33b723538] 2015-01-19 23:01:41 -0500
|
||||||
|
Branch: REL9_1_STABLE [b87c1dcef] 2015-01-19 23:01:44 -0500
|
||||||
|
Branch: REL9_0_STABLE [a1a8d0249] 2015-01-19 23:01:46 -0500
|
||||||
|
-->
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Change <quote>pgstat wait timeout</> warning message to be LOG level,
|
||||||
|
and rephrase it to be more understandable (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This message was originally thought to be essentially a can't-happen
|
||||||
|
case, but it occurs often enough on our slower buildfarm members to be
|
||||||
|
a nuisance. Reduce it to LOG level, and expend a bit more effort on
|
||||||
|
the wording: it now reads <quote>using stale statistics instead of
|
||||||
|
current ones because stats collector is not responding</>.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Author: Noah Misch <noah@leadboat.com>
|
||||||
|
Branch: master [894459e59] 2015-01-07 22:35:44 -0500
|
||||||
|
Branch: REL9_4_STABLE [83fb1ca5c] 2015-01-07 22:36:35 -0500
|
||||||
|
Branch: REL9_3_STABLE [1a366d51e] 2015-01-07 22:40:40 -0500
|
||||||
|
Branch: REL9_2_STABLE [5ca4e444c] 2015-01-07 22:41:49 -0500
|
||||||
|
Branch: REL9_1_STABLE [8dc83104e] 2015-01-07 22:42:42 -0500
|
||||||
|
Branch: REL9_0_STABLE [2e4946169] 2015-01-07 22:46:20 -0500
|
||||||
|
-->
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Warn if OS X's <function>setlocale()</> starts an unwanted extra
|
||||||
|
thread inside the postmaster (Noah Misch)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
||||||
|
Branch: master [080eabe2e] 2015-01-11 12:35:44 -0500
|
||||||
|
Branch: REL9_4_STABLE [733728ff3] 2015-01-11 12:35:47 -0500
|
||||||
|
-->
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <application>libpq</>'s behavior when <filename>/etc/passwd</>
|
||||||
|
isn't readable (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
While doing <function>PQsetdbLogin()</>, <application>libpq</>
|
||||||
|
attempts to ascertain the user's operating system name, which on most
|
||||||
|
Unix platforms involves reading <filename>/etc/passwd</>. As of 9.4,
|
||||||
|
failure to do that was treated as a hard error. Restore the previous
|
||||||
|
behavior, which was to fail only if the application does not provide a
|
||||||
|
database role name to connect as. This supports operation in chroot
|
||||||
|
environments that lack an <filename>/etc/passwd</> file.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
||||||
|
Branch: master [28551797a] 2014-12-31 12:18:50 -0500
|
||||||
|
Branch: REL9_4_STABLE [c35249939] 2014-12-31 12:16:57 -0500
|
||||||
|
Branch: REL9_3_STABLE [7582cce56] 2014-12-31 12:17:00 -0500
|
||||||
|
Branch: REL9_2_STABLE [64c506535] 2014-12-31 12:17:04 -0500
|
||||||
|
Branch: REL9_1_STABLE [1773e0702] 2014-12-31 12:17:08 -0500
|
||||||
|
Branch: REL9_0_STABLE [2600e4436] 2014-12-31 12:17:12 -0500
|
||||||
|
-->
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Improve consistency of parsing of <application>psql</>'s special
|
||||||
|
variables (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Allow variant spellings of <literal>on</> and <literal>off</> (such
|
||||||
|
as <literal>1</>/<literal>0</>) for <literal>ECHO_HIDDEN</>
|
||||||
|
and <literal>ON_ERROR_ROLLBACK</>. Report a warning for unrecognized
|
||||||
|
values for <literal>COMP_KEYWORD_CASE</>, <literal>ECHO</>,
|
||||||
|
<literal>ECHO_HIDDEN</>, <literal>HISTCONTROL</>,
|
||||||
|
<literal>ON_ERROR_ROLLBACK</>, and <literal>VERBOSITY</>. Recognize
|
||||||
|
all values for all these variables case-insensitively; previously
|
||||||
|
there was a mishmash of case-sensitive and case-insensitive behaviors.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
||||||
|
Branch: master [adfc157dd] 2015-01-05 19:27:04 -0500
|
||||||
|
Branch: REL9_4_STABLE [c99e41f68] 2015-01-05 19:27:06 -0500
|
||||||
|
Branch: REL9_3_STABLE [bb1e2426b] 2015-01-05 19:27:09 -0500
|
||||||
|
-->
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <application>pg_dump</> to handle comments on event triggers
|
||||||
|
without failing (Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Author: Kevin Grittner <kgrittn@postgresql.org>
|
||||||
|
Branch: master [cff1bd2a3] 2015-01-30 08:57:24 -0600
|
||||||
|
Branch: REL9_4_STABLE [cb0168528] 2015-01-30 08:57:53 -0600
|
||||||
|
Branch: REL9_3_STABLE [cc609c46f] 2015-01-30 09:01:36 -0600
|
||||||
|
-->
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Allow parallel <application>pg_dump</> to
|
||||||
|
use <option>--serializable-deferrable</> (Kevin Grittner)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Author: Andres Freund <andres@anarazel.de>
|
||||||
|
Branch: master [2c0a48589] 2015-01-03 20:54:12 +0100
|
||||||
|
Branch: REL9_4_STABLE [90e4a2bf9] 2015-01-03 20:54:13 +0100
|
||||||
|
Branch: REL9_3_STABLE [f6cea4502] 2015-01-03 20:54:13 +0100
|
||||||
|
Branch: REL9_2_STABLE [f961ad479] 2015-01-03 20:54:13 +0100
|
||||||
|
Branch: REL9_1_STABLE [2a0bfa4d6] 2015-01-03 20:54:13 +0100
|
||||||
|
-->
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Prevent WAL files created by <literal>pg_basebackup -x/-X</> from
|
||||||
|
being archived again when the standby is promoted (Andres Freund)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
||||||
|
Branch: master [37507962c] 2015-01-29 20:18:33 -0500
|
||||||
|
Branch: REL9_4_STABLE [202621d04] 2015-01-29 20:18:37 -0500
|
||||||
|
Branch: REL9_3_STABLE [53ae24692] 2015-01-29 20:18:40 -0500
|
||||||
|
Branch: REL9_2_STABLE [66cc74680] 2015-01-29 20:18:42 -0500
|
||||||
|
Branch: REL9_1_STABLE [290c2daad] 2015-01-29 20:18:44 -0500
|
||||||
|
Branch: REL9_0_STABLE [dc9a506e6] 2015-01-29 20:18:46 -0500
|
||||||
|
-->
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Handle unexpected query results, especially NULLs, safely in
|
||||||
|
<filename>contrib/tablefunc</>'s <function>connectby()</>
|
||||||
|
(Michael Paquier)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
<function>connectby()</> previously crashed if it encountered a NULL
|
||||||
|
key value. It now prints that row but doesn't recurse further.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
||||||
|
Branch: master [a59ee8819] 2015-01-30 13:05:30 -0500
|
||||||
|
Branch: REL9_4_STABLE [70da7aeba] 2015-01-30 13:04:59 -0500
|
||||||
|
Branch: REL9_3_STABLE [f08cf8ad9] 2015-01-30 13:05:01 -0500
|
||||||
|
Branch: REL9_2_STABLE [a97dfdfd9] 2015-01-30 13:05:04 -0500
|
||||||
|
Branch: REL9_1_STABLE [8f51c432c] 2015-01-30 13:05:07 -0500
|
||||||
|
Branch: REL9_0_STABLE [7c41a32b3] 2015-01-30 13:05:09 -0500
|
||||||
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
||||||
|
Branch: REL9_3_STABLE [8824bae87] 2014-11-18 13:28:13 -0500
|
||||||
|
Author: Robert Haas <rhaas@postgresql.org>
|
||||||
|
Branch: master [0b49642b9] 2015-01-15 09:26:03 -0500
|
||||||
|
Branch: REL9_4_STABLE [7b65f194e] 2015-01-15 09:29:41 -0500
|
||||||
|
Branch: REL9_3_STABLE [ebbef4f39] 2015-01-15 09:29:55 -0500
|
||||||
|
Branch: REL9_2_STABLE [d452bfd1b] 2015-01-15 09:42:21 -0500
|
||||||
|
Branch: REL9_1_STABLE [151fb75b0] 2015-01-15 09:42:33 -0500
|
||||||
|
Branch: REL9_0_STABLE [0a67c0018] 2015-01-15 09:42:47 -0500
|
||||||
|
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
|
||||||
|
Branch: master [e37d474f9] 2015-01-13 14:33:05 +0200
|
||||||
|
Branch: REL9_4_STABLE [4ebb3494e] 2015-01-13 16:01:04 +0200
|
||||||
|
Author: Andres Freund <andres@anarazel.de>
|
||||||
|
Branch: master [8cadeb792] 2015-01-04 15:44:49 +0100
|
||||||
|
Branch: REL9_4_STABLE [7ced1b6c5] 2015-01-04 15:52:52 +0100
|
||||||
|
Branch: REL9_3_STABLE [a68b8aec7] 2015-01-04 15:53:08 +0100
|
||||||
|
Branch: REL9_2_STABLE [6f9b84a40] 2015-01-04 15:55:00 +0100
|
||||||
|
Author: Andres Freund <andres@anarazel.de>
|
||||||
|
Branch: master [58bc4747b] 2015-01-04 15:35:46 +0100
|
||||||
|
Branch: REL9_4_STABLE [2d8411a0a] 2015-01-04 15:35:46 +0100
|
||||||
|
Branch: REL9_3_STABLE [d33f36f16] 2015-01-04 15:35:47 +0100
|
||||||
|
Branch: REL9_2_STABLE [029e41afd] 2015-01-04 15:35:47 +0100
|
||||||
|
Branch: REL9_1_STABLE [39cdf365a] 2015-01-04 15:35:47 +0100
|
||||||
|
Branch: REL9_0_STABLE [17797e18d] 2015-01-04 15:35:48 +0100
|
||||||
|
Author: Andres Freund <andres@anarazel.de>
|
||||||
|
Branch: master [0398ece4c] 2015-01-04 14:36:21 +0100
|
||||||
|
Branch: REL9_4_STABLE [ff7d46b85] 2015-01-04 14:36:21 +0100
|
||||||
|
Branch: REL9_3_STABLE [ec14f1601] 2015-01-04 14:36:22 +0100
|
||||||
|
Branch: REL9_2_STABLE [f4060db11] 2015-01-04 14:36:22 +0100
|
||||||
|
Author: Tatsuo Ishii <ishii@postgresql.org>
|
||||||
|
Branch: master [3b5a89c48] 2014-12-30 20:33:01 +0900
|
||||||
|
Branch: REL9_4_STABLE [458e8bc65] 2014-12-30 20:27:26 +0900
|
||||||
|
Branch: REL9_3_STABLE [ed0e03283] 2014-12-30 20:20:56 +0900
|
||||||
|
Branch: REL9_2_STABLE [4db7eaae0] 2014-12-30 19:59:26 +0900
|
||||||
|
Branch: REL9_1_STABLE [4c136b0b6] 2014-12-30 19:48:53 +0900
|
||||||
|
Branch: REL9_0_STABLE [9b74f3574] 2014-12-30 19:37:55 +0900
|
||||||
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
||||||
|
Branch: master [66709133c] 2014-12-16 15:35:33 -0500
|
||||||
|
Branch: REL9_4_STABLE [383d224a0] 2014-12-16 15:35:36 -0500
|
||||||
|
Branch: REL9_3_STABLE [53960e7eb] 2014-12-16 15:35:40 -0500
|
||||||
|
Branch: REL9_2_STABLE [e92c67ddc] 2014-12-16 15:35:43 -0500
|
||||||
|
Branch: REL9_1_STABLE [5c784d96a] 2014-12-16 15:35:46 -0500
|
||||||
|
Branch: REL9_0_STABLE [a2969bd72] 2014-12-16 15:35:49 -0500
|
||||||
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
||||||
|
Branch: master [d38e8d30c] 2014-12-16 13:31:42 -0500
|
||||||
|
Branch: REL9_4_STABLE [6c75384ee] 2014-12-16 13:31:57 -0500
|
||||||
|
Branch: REL9_3_STABLE [3b750ec15] 2014-12-16 13:32:02 -0500
|
||||||
|
Branch: REL9_2_STABLE [5b2c8f04a] 2014-12-16 13:32:15 -0500
|
||||||
|
Branch: REL9_1_STABLE [926da211a] 2014-12-16 13:32:25 -0500
|
||||||
|
Branch: REL9_0_STABLE [961df1853] 2014-12-16 13:32:38 -0500
|
||||||
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
||||||
|
Branch: master [586dd5d6a] 2015-01-24 13:05:42 -0500
|
||||||
|
Branch: REL9_4_STABLE [d51d4ff31] 2015-01-24 13:05:45 -0500
|
||||||
|
Branch: REL9_3_STABLE [7240f9200] 2015-01-24 13:05:49 -0500
|
||||||
|
Branch: REL9_2_STABLE [502e5f9c3] 2015-01-24 13:05:53 -0500
|
||||||
|
Branch: REL9_1_STABLE [b00a08859] 2015-01-24 13:05:56 -0500
|
||||||
|
Branch: REL9_0_STABLE [3a3ee655c] 2015-01-24 13:05:58 -0500
|
||||||
|
-->
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Numerous cleanups of warnings from Coverity static code analyzer
|
||||||
|
(Andres Freund, Tatsuo Ishii, Marko Kreen, Tom Lane, Michael Paquier)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
These changes are mostly cosmetic but in some cases fix corner-case
|
||||||
|
bugs, for example a crash rather than a proper error report after an
|
||||||
|
out-of-memory failure. None are believed to represent security
|
||||||
|
issues.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
||||||
|
Branch: master [85a2a8903] 2015-01-14 11:08:13 -0500
|
||||||
|
Branch: REL9_4_STABLE [adb355106] 2015-01-14 11:08:17 -0500
|
||||||
|
-->
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Allow <varname>CFLAGS</> from <application>configure</>'s environment
|
||||||
|
to override automatically-supplied <varname>CFLAGS</> (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Previously, <application>configure</> would add any switches that it
|
||||||
|
chose of its own accord to the end of the
|
||||||
|
user-specified <varname>CFLAGS</> string. Since most compilers
|
||||||
|
process switches left-to-right, this meant that configure's choices
|
||||||
|
would override the user-specified flags in case of conflicts. That
|
||||||
|
should work the other way around, so adjust the logic to put the
|
||||||
|
user's string at the end not the beginning.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
||||||
|
Branch: master [aa719391d] 2015-01-19 23:44:19 -0500
|
||||||
|
Branch: REL9_4_STABLE [3de9f22ac] 2015-01-19 23:44:22 -0500
|
||||||
|
Branch: REL9_3_STABLE [1681e2f74] 2015-01-19 23:44:24 -0500
|
||||||
|
Branch: REL9_2_STABLE [89b6a19e1] 2015-01-19 23:44:28 -0500
|
||||||
|
Branch: REL9_1_STABLE [f4f522deb] 2015-01-19 23:44:30 -0500
|
||||||
|
Branch: REL9_0_STABLE [338ff75fc] 2015-01-19 23:44:33 -0500
|
||||||
|
-->
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Make <application>pg_regress</> remove any temporary installation it
|
||||||
|
created upon successful exit (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This results in a very substantial reduction in disk space usage
|
||||||
|
during <literal>make check-world</>, since that sequence involves
|
||||||
|
creation of numerous temporary installations.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
||||||
|
Branch: master [5b89473d8] 2014-12-24 16:35:23 -0500
|
||||||
|
Branch: REL9_4_STABLE [068024719] 2014-12-24 16:35:34 -0500
|
||||||
|
-->
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Add CST (China Standard Time) to our lists of timezone abbreviations
|
||||||
|
(Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
||||||
|
Branch: master [08bd0c581] 2015-01-30 22:45:44 -0500
|
||||||
|
Branch: REL9_4_STABLE [c2b06ab17] 2015-01-30 22:45:58 -0500
|
||||||
|
-->
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Update time zone data files to <application>tzdata</> release 2015a
|
||||||
|
for DST law changes in Chile and Mexico, plus historical changes in
|
||||||
|
Iceland.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
</itemizedlist>
|
||||||
|
|
||||||
|
</sect2>
|
||||||
|
</sect1>
|
||||||
|
|
||||||
<sect1 id="release-9-4">
|
<sect1 id="release-9-4">
|
||||||
<title>Release 9.4</title>
|
<title>Release 9.4</title>
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user