mirror of
https://github.com/postgres/postgres.git
synced 2025-05-05 09:19:17 +03:00
Release notes for 9.6.2, 9.5.6, 9.4.11, 9.3.16, 9.2.20.
This commit is contained in:
parent
7fcddbdd03
commit
a822971173
@ -1,6 +1,418 @@
|
|||||||
<!-- 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-20">
|
||||||
|
<title>Release 9.2.20</title>
|
||||||
|
|
||||||
|
<note>
|
||||||
|
<title>Release Date</title>
|
||||||
|
<simpara>2017-02-09</simpara>
|
||||||
|
</note>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This release contains a variety of fixes from 9.2.19.
|
||||||
|
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.20</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
A dump/restore is not required for those running 9.2.X.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
However, if your installation has been affected by the bug described in
|
||||||
|
the first changelog entry below, then after updating you may need
|
||||||
|
to take action to repair corrupted indexes.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Also, if you are upgrading from a version earlier than 9.2.11,
|
||||||
|
see <xref linkend="release-9-2-11">.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
</sect2>
|
||||||
|
|
||||||
|
<sect2>
|
||||||
|
<title>Changes</title>
|
||||||
|
|
||||||
|
<itemizedlist>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix a race condition that could cause indexes built
|
||||||
|
with <command>CREATE INDEX CONCURRENTLY</> to be corrupt
|
||||||
|
(Pavan Deolasee, Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
If <command>CREATE INDEX CONCURRENTLY</> was used to build an index
|
||||||
|
that depends on a column not previously indexed, then rows inserted
|
||||||
|
or updated by transactions that ran concurrently with
|
||||||
|
the <command>CREATE INDEX</> command could have received incorrect
|
||||||
|
index entries. If you suspect this may have happened, the most
|
||||||
|
reliable solution is to rebuild affected indexes after installing
|
||||||
|
this update.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Unconditionally WAL-log creation of the <quote>init fork</> for an
|
||||||
|
unlogged table (Michael Paquier)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Previously, this was skipped when <xref linkend="guc-wal-level">
|
||||||
|
= <literal>minimal</>, but actually it's necessary even in that case
|
||||||
|
to ensure that the unlogged table is properly reset to empty after a
|
||||||
|
crash.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<!--
|
||||||
|
Author: Fujii Masao <fujii@postgresql.org>
|
||||||
|
Branch: REL9_2_STABLE [38bec1805] 2017-01-25 07:02:25 +0900
|
||||||
|
-->
|
||||||
|
<para>
|
||||||
|
Fix WAL page header validation when re-reading segments (Takayuki
|
||||||
|
Tsunakawa, Amit Kapila)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
In corner cases, a spurious <quote>out-of-sequence TLI</> error
|
||||||
|
could be reported during recovery.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
If the stats collector dies during hot standby, restart it (Takayuki
|
||||||
|
Tsunakawa)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Check for interrupts while hot standby is waiting for a conflicting
|
||||||
|
query (Simon Riggs)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Avoid constantly respawning the autovacuum launcher in a corner case
|
||||||
|
(Amit Khandekar)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This fix avoids problems when autovacuum is nominally off and there
|
||||||
|
are some tables that require freezing, but all such tables are
|
||||||
|
already being processed by autovacuum workers.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix check for when an extension member object can be dropped (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Extension upgrade scripts should be able to drop member objects,
|
||||||
|
but this was disallowed for serial-column sequences, and possibly
|
||||||
|
other cases.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Make sure <command>ALTER TABLE</> preserves index tablespace
|
||||||
|
assignments when rebuilding indexes (Tom Lane, Michael Paquier)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Previously, non-default settings
|
||||||
|
of <xref linkend="guc-default-tablespace"> could result in broken
|
||||||
|
indexes.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Prevent dropping a foreign-key constraint if there are pending
|
||||||
|
trigger events for the referenced relation (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This avoids <quote>could not find trigger <replaceable>NNN</></quote>
|
||||||
|
or <quote>relation <replaceable>NNN</> has no triggers</quote> errors.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix processing of OID column when a table with OIDs is associated to
|
||||||
|
a parent with OIDs via <command>ALTER TABLE ... INHERIT</> (Amit
|
||||||
|
Langote)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The OID column should be treated the same as regular user columns in
|
||||||
|
this case, but it wasn't, leading to odd behavior in later
|
||||||
|
inheritance changes.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Check for serializability conflicts before reporting
|
||||||
|
constraint-violation failures (Thomas Munro)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
When using serializable transaction isolation, it is desirable
|
||||||
|
that any error due to concurrent transactions should manifest
|
||||||
|
as a serialization failure, thereby cueing the application that
|
||||||
|
a retry might succeed. Unfortunately, this does not reliably
|
||||||
|
happen for duplicate-key failures caused by concurrent insertions.
|
||||||
|
This change ensures that such an error will be reported as a
|
||||||
|
serialization error if the application explicitly checked for
|
||||||
|
the presence of a conflicting key (and did not find it) earlier
|
||||||
|
in the transaction.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Ensure that column typmods are determined accurately for
|
||||||
|
multi-row <literal>VALUES</> constructs (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This fixes problems occurring when the first value in a column has a
|
||||||
|
determinable typmod (e.g., length for a <type>varchar</> value) but
|
||||||
|
later values don't share the same limit.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Throw error for an unfinished Unicode surrogate pair at the end of a
|
||||||
|
Unicode string (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Normally, a Unicode surrogate leading character must be followed by a
|
||||||
|
Unicode surrogate trailing character, but the check for this was
|
||||||
|
missed if the leading character was the last character in a Unicode
|
||||||
|
string literal (<literal>U&'...'</>) or Unicode identifier
|
||||||
|
(<literal>U&"..."</>).
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Ensure that a purely negative text search query, such
|
||||||
|
as <literal>!foo</>, matches empty <type>tsvector</>s (Tom Dunstan)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Such matches were found by GIN index searches, but not by sequential
|
||||||
|
scans or GiST index searches.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Prevent crash when <function>ts_rewrite()</> replaces a non-top-level
|
||||||
|
subtree with an empty query (Artur Zakirov)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix performance problems in <function>ts_rewrite()</> (Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <function>ts_rewrite()</>'s handling of nested NOT operators
|
||||||
|
(Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <function>array_fill()</> to handle empty arrays properly (Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix one-byte buffer overrun in <function>quote_literal_cstr()</>
|
||||||
|
(Heikki Linnakangas)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The overrun occurred only if the input consisted entirely of single
|
||||||
|
quotes and/or backslashes.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Prevent multiple calls of <function>pg_start_backup()</>
|
||||||
|
and <function>pg_stop_backup()</> from running concurrently (Michael
|
||||||
|
Paquier)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This avoids an assertion failure, and possibly worse things, if
|
||||||
|
someone tries to run these functions in parallel.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Avoid discarding <type>interval</>-to-<type>interval</> casts
|
||||||
|
that aren't really no-ops (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
In some cases, a cast that should result in zeroing out
|
||||||
|
low-order <type>interval</> fields was mistakenly deemed to be a
|
||||||
|
no-op and discarded. An example is that casting from <type>INTERVAL
|
||||||
|
MONTH</> to <type>INTERVAL YEAR</> failed to clear the months field.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <application>pg_dump</> to dump user-defined casts and transforms
|
||||||
|
that use built-in functions (Stephen Frost)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix possible <application>pg_basebackup</> failure on standby
|
||||||
|
server when including WAL files (Amit Kapila, Robert Haas)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Ensure that the Python exception objects we create for PL/Python are
|
||||||
|
properly reference-counted (Rafa de la Torre, Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This avoids failures if the objects are used after a Python garbage
|
||||||
|
collection cycle has occurred.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix PL/Tcl to support triggers on tables that have <literal>.tupno</>
|
||||||
|
as a column name (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This matches the (previously undocumented) behavior of
|
||||||
|
PL/Tcl's <command>spi_exec</> and <command>spi_execp</> commands,
|
||||||
|
namely that a magic <literal>.tupno</> column is inserted only if
|
||||||
|
there isn't a real column named that.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Allow DOS-style line endings in <filename>~/.pgpass</> files,
|
||||||
|
even on Unix (Vik Fearing)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This change simplifies use of the same password file across Unix and
|
||||||
|
Windows machines.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix one-byte buffer overrun if <application>ecpg</> is given a file
|
||||||
|
name that ends with a dot (Takayuki Tsunakawa)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <application>psql</>'s tab completion for <command>ALTER DEFAULT
|
||||||
|
PRIVILEGES</> (Gilles Darold, Stephen Frost)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
In <application>psql</>, treat an empty or all-blank setting of
|
||||||
|
the <envar>PAGER</> environment variable as meaning <quote>no
|
||||||
|
pager</> (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Previously, such a setting caused output intended for the pager to
|
||||||
|
vanish entirely.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Improve <filename>contrib/dblink</>'s reporting of
|
||||||
|
low-level <application>libpq</> errors, such as out-of-memory
|
||||||
|
(Joe Conway)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
On Windows, ensure that environment variable changes are propagated
|
||||||
|
to DLLs built with debug options (Christian Ullrich)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Sync our copy of the timezone library with IANA release tzcode2016j
|
||||||
|
(Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This fixes various issues, most notably that timezone data
|
||||||
|
installation failed if the target directory didn't support hard
|
||||||
|
links.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Update time zone data files to <application>tzdata</> release 2016j
|
||||||
|
for DST law changes in northern Cyprus (adding a new zone
|
||||||
|
Asia/Famagusta), Russia (adding a new zone Europe/Saratov), Tonga,
|
||||||
|
and Antarctica/Casey.
|
||||||
|
Historical corrections for Italy, Kazakhstan, Malta, and Palestine.
|
||||||
|
Switch to preferring numeric zone abbreviations for Tonga.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
</itemizedlist>
|
||||||
|
|
||||||
|
</sect2>
|
||||||
|
</sect1>
|
||||||
|
|
||||||
<sect1 id="release-9-2-19">
|
<sect1 id="release-9-2-19">
|
||||||
<title>Release 9.2.19</title>
|
<title>Release 9.2.19</title>
|
||||||
|
|
||||||
|
@ -1,6 +1,454 @@
|
|||||||
<!-- doc/src/sgml/release-9.3.sgml -->
|
<!-- doc/src/sgml/release-9.3.sgml -->
|
||||||
<!-- See header comment in release.sgml about typical markup -->
|
<!-- See header comment in release.sgml about typical markup -->
|
||||||
|
|
||||||
|
<sect1 id="release-9-3-16">
|
||||||
|
<title>Release 9.3.16</title>
|
||||||
|
|
||||||
|
<note>
|
||||||
|
<title>Release Date</title>
|
||||||
|
<simpara>2017-02-09</simpara>
|
||||||
|
</note>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This release contains a variety of fixes from 9.3.15.
|
||||||
|
For information about new features in the 9.3 major release, see
|
||||||
|
<xref linkend="release-9-3">.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<sect2>
|
||||||
|
<title>Migration to Version 9.3.16</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
A dump/restore is not required for those running 9.3.X.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
However, if your installation has been affected by the bug described in
|
||||||
|
the first changelog entry below, then after updating you may need
|
||||||
|
to take action to repair corrupted indexes.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Also, if you are upgrading from a version earlier than 9.3.15,
|
||||||
|
see <xref linkend="release-9-3-15">.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
</sect2>
|
||||||
|
|
||||||
|
<sect2>
|
||||||
|
<title>Changes</title>
|
||||||
|
|
||||||
|
<itemizedlist>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix a race condition that could cause indexes built
|
||||||
|
with <command>CREATE INDEX CONCURRENTLY</> to be corrupt
|
||||||
|
(Pavan Deolasee, Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
If <command>CREATE INDEX CONCURRENTLY</> was used to build an index
|
||||||
|
that depends on a column not previously indexed, then rows inserted
|
||||||
|
or updated by transactions that ran concurrently with
|
||||||
|
the <command>CREATE INDEX</> command could have received incorrect
|
||||||
|
index entries. If you suspect this may have happened, the most
|
||||||
|
reliable solution is to rebuild affected indexes after installing
|
||||||
|
this update.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Unconditionally WAL-log creation of the <quote>init fork</> for an
|
||||||
|
unlogged table (Michael Paquier)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Previously, this was skipped when <xref linkend="guc-wal-level">
|
||||||
|
= <literal>minimal</>, but actually it's necessary even in that case
|
||||||
|
to ensure that the unlogged table is properly reset to empty after a
|
||||||
|
crash.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
If the stats collector dies during hot standby, restart it (Takayuki
|
||||||
|
Tsunakawa)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Ensure that hot standby feedback works correctly when it's enabled at
|
||||||
|
standby server start (Ants Aasma, Craig Ringer)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Check for interrupts while hot standby is waiting for a conflicting
|
||||||
|
query (Simon Riggs)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Avoid constantly respawning the autovacuum launcher in a corner case
|
||||||
|
(Amit Khandekar)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This fix avoids problems when autovacuum is nominally off and there
|
||||||
|
are some tables that require freezing, but all such tables are
|
||||||
|
already being processed by autovacuum workers.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix check for when an extension member object can be dropped (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Extension upgrade scripts should be able to drop member objects,
|
||||||
|
but this was disallowed for serial-column sequences, and possibly
|
||||||
|
other cases.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Make sure <command>ALTER TABLE</> preserves index tablespace
|
||||||
|
assignments when rebuilding indexes (Tom Lane, Michael Paquier)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Previously, non-default settings
|
||||||
|
of <xref linkend="guc-default-tablespace"> could result in broken
|
||||||
|
indexes.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Prevent dropping a foreign-key constraint if there are pending
|
||||||
|
trigger events for the referenced relation (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This avoids <quote>could not find trigger <replaceable>NNN</></quote>
|
||||||
|
or <quote>relation <replaceable>NNN</> has no triggers</quote> errors.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix processing of OID column when a table with OIDs is associated to
|
||||||
|
a parent with OIDs via <command>ALTER TABLE ... INHERIT</> (Amit
|
||||||
|
Langote)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The OID column should be treated the same as regular user columns in
|
||||||
|
this case, but it wasn't, leading to odd behavior in later
|
||||||
|
inheritance changes.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Report correct object identity during <command>ALTER TEXT SEARCH
|
||||||
|
CONFIGURATION</> (Artur Zakirov)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The wrong catalog OID was reported to extensions such as logical
|
||||||
|
decoding.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Check for serializability conflicts before reporting
|
||||||
|
constraint-violation failures (Thomas Munro)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
When using serializable transaction isolation, it is desirable
|
||||||
|
that any error due to concurrent transactions should manifest
|
||||||
|
as a serialization failure, thereby cueing the application that
|
||||||
|
a retry might succeed. Unfortunately, this does not reliably
|
||||||
|
happen for duplicate-key failures caused by concurrent insertions.
|
||||||
|
This change ensures that such an error will be reported as a
|
||||||
|
serialization error if the application explicitly checked for
|
||||||
|
the presence of a conflicting key (and did not find it) earlier
|
||||||
|
in the transaction.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Prevent multicolumn expansion of <replaceable>foo</><literal>.*</> in
|
||||||
|
an <command>UPDATE</> source expression (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This led to <quote>UPDATE target count mismatch --- internal
|
||||||
|
error</>. Now the syntax is understood as a whole-row variable,
|
||||||
|
as it would be in other contexts.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Ensure that column typmods are determined accurately for
|
||||||
|
multi-row <literal>VALUES</> constructs (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This fixes problems occurring when the first value in a column has a
|
||||||
|
determinable typmod (e.g., length for a <type>varchar</> value) but
|
||||||
|
later values don't share the same limit.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Throw error for an unfinished Unicode surrogate pair at the end of a
|
||||||
|
Unicode string (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Normally, a Unicode surrogate leading character must be followed by a
|
||||||
|
Unicode surrogate trailing character, but the check for this was
|
||||||
|
missed if the leading character was the last character in a Unicode
|
||||||
|
string literal (<literal>U&'...'</>) or Unicode identifier
|
||||||
|
(<literal>U&"..."</>).
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Ensure that a purely negative text search query, such
|
||||||
|
as <literal>!foo</>, matches empty <type>tsvector</>s (Tom Dunstan)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Such matches were found by GIN index searches, but not by sequential
|
||||||
|
scans or GiST index searches.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Prevent crash when <function>ts_rewrite()</> replaces a non-top-level
|
||||||
|
subtree with an empty query (Artur Zakirov)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix performance problems in <function>ts_rewrite()</> (Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <function>ts_rewrite()</>'s handling of nested NOT operators
|
||||||
|
(Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <function>array_fill()</> to handle empty arrays properly (Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix one-byte buffer overrun in <function>quote_literal_cstr()</>
|
||||||
|
(Heikki Linnakangas)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The overrun occurred only if the input consisted entirely of single
|
||||||
|
quotes and/or backslashes.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Prevent multiple calls of <function>pg_start_backup()</>
|
||||||
|
and <function>pg_stop_backup()</> from running concurrently (Michael
|
||||||
|
Paquier)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This avoids an assertion failure, and possibly worse things, if
|
||||||
|
someone tries to run these functions in parallel.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Avoid discarding <type>interval</>-to-<type>interval</> casts
|
||||||
|
that aren't really no-ops (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
In some cases, a cast that should result in zeroing out
|
||||||
|
low-order <type>interval</> fields was mistakenly deemed to be a
|
||||||
|
no-op and discarded. An example is that casting from <type>INTERVAL
|
||||||
|
MONTH</> to <type>INTERVAL YEAR</> failed to clear the months field.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Ensure that cached plans are invalidated by changes in foreign-table
|
||||||
|
options (Amit Langote, Etsuro Fujita, Ashutosh Bapat)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <application>pg_dump</> to dump user-defined casts and transforms
|
||||||
|
that use built-in functions (Stephen Frost)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix possible <application>pg_basebackup</> failure on standby
|
||||||
|
server when including WAL files (Amit Kapila, Robert Haas)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Ensure that the Python exception objects we create for PL/Python are
|
||||||
|
properly reference-counted (Rafa de la Torre, Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This avoids failures if the objects are used after a Python garbage
|
||||||
|
collection cycle has occurred.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix PL/Tcl to support triggers on tables that have <literal>.tupno</>
|
||||||
|
as a column name (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This matches the (previously undocumented) behavior of
|
||||||
|
PL/Tcl's <command>spi_exec</> and <command>spi_execp</> commands,
|
||||||
|
namely that a magic <literal>.tupno</> column is inserted only if
|
||||||
|
there isn't a real column named that.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Allow DOS-style line endings in <filename>~/.pgpass</> files,
|
||||||
|
even on Unix (Vik Fearing)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This change simplifies use of the same password file across Unix and
|
||||||
|
Windows machines.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix one-byte buffer overrun if <application>ecpg</> is given a file
|
||||||
|
name that ends with a dot (Takayuki Tsunakawa)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <application>psql</>'s tab completion for <command>ALTER DEFAULT
|
||||||
|
PRIVILEGES</> (Gilles Darold, Stephen Frost)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
In <application>psql</>, treat an empty or all-blank setting of
|
||||||
|
the <envar>PAGER</> environment variable as meaning <quote>no
|
||||||
|
pager</> (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Previously, such a setting caused output intended for the pager to
|
||||||
|
vanish entirely.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Improve <filename>contrib/dblink</>'s reporting of
|
||||||
|
low-level <application>libpq</> errors, such as out-of-memory
|
||||||
|
(Joe Conway)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Teach <filename>contrib/dblink</> to ignore irrelevant server options
|
||||||
|
when it uses a <filename>contrib/postgres_fdw</> foreign server as
|
||||||
|
the source of connection options (Corey Huinker)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Previously, if the foreign server object had options that were not
|
||||||
|
also <application>libpq</> connection options, an error occurred.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
On Windows, ensure that environment variable changes are propagated
|
||||||
|
to DLLs built with debug options (Christian Ullrich)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Sync our copy of the timezone library with IANA release tzcode2016j
|
||||||
|
(Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This fixes various issues, most notably that timezone data
|
||||||
|
installation failed if the target directory didn't support hard
|
||||||
|
links.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Update time zone data files to <application>tzdata</> release 2016j
|
||||||
|
for DST law changes in northern Cyprus (adding a new zone
|
||||||
|
Asia/Famagusta), Russia (adding a new zone Europe/Saratov), Tonga,
|
||||||
|
and Antarctica/Casey.
|
||||||
|
Historical corrections for Italy, Kazakhstan, Malta, and Palestine.
|
||||||
|
Switch to preferring numeric zone abbreviations for Tonga.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
</itemizedlist>
|
||||||
|
|
||||||
|
</sect2>
|
||||||
|
</sect1>
|
||||||
|
|
||||||
<sect1 id="release-9-3-15">
|
<sect1 id="release-9-3-15">
|
||||||
<title>Release 9.3.15</title>
|
<title>Release 9.3.15</title>
|
||||||
|
|
||||||
|
@ -1,6 +1,539 @@
|
|||||||
<!-- 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-11">
|
||||||
|
<title>Release 9.4.11</title>
|
||||||
|
|
||||||
|
<note>
|
||||||
|
<title>Release Date</title>
|
||||||
|
<simpara>2017-02-09</simpara>
|
||||||
|
</note>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This release contains a variety of fixes from 9.4.10.
|
||||||
|
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.11</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
A dump/restore is not required for those running 9.4.X.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
However, if your installation has been affected by the bug described in
|
||||||
|
the first changelog entry below, then after updating you may need
|
||||||
|
to take action to repair corrupted indexes.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Also, if you are upgrading from a version earlier than 9.4.10,
|
||||||
|
see <xref linkend="release-9-4-10">.
|
||||||
|
</para>
|
||||||
|
</sect2>
|
||||||
|
|
||||||
|
<sect2>
|
||||||
|
<title>Changes</title>
|
||||||
|
|
||||||
|
<itemizedlist>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix a race condition that could cause indexes built
|
||||||
|
with <command>CREATE INDEX CONCURRENTLY</> to be corrupt
|
||||||
|
(Pavan Deolasee, Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
If <command>CREATE INDEX CONCURRENTLY</> was used to build an index
|
||||||
|
that depends on a column not previously indexed, then rows inserted
|
||||||
|
or updated by transactions that ran concurrently with
|
||||||
|
the <command>CREATE INDEX</> command could have received incorrect
|
||||||
|
index entries. If you suspect this may have happened, the most
|
||||||
|
reliable solution is to rebuild affected indexes after installing
|
||||||
|
this update.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Ensure that the special snapshot used for catalog scans is not
|
||||||
|
invalidated by premature data pruning (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Backends failed to account for this snapshot when advertising their
|
||||||
|
oldest xmin, potentially allowing concurrent vacuuming operations to
|
||||||
|
remove data that was still needed. This led to transient failures
|
||||||
|
along the lines of <quote>cache lookup failed for relation 1255</>.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Unconditionally WAL-log creation of the <quote>init fork</> for an
|
||||||
|
unlogged table (Michael Paquier)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Previously, this was skipped when <xref linkend="guc-wal-level">
|
||||||
|
= <literal>minimal</>, but actually it's necessary even in that case
|
||||||
|
to ensure that the unlogged table is properly reset to empty after a
|
||||||
|
crash.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Reduce interlocking on standby servers during the replay of btree
|
||||||
|
index vacuuming operations (Simon Riggs)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This change avoids substantial replication delays that sometimes
|
||||||
|
occurred while replaying such operations.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
If the stats collector dies during hot standby, restart it (Takayuki
|
||||||
|
Tsunakawa)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Ensure that hot standby feedback works correctly when it's enabled at
|
||||||
|
standby server start (Ants Aasma, Craig Ringer)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Check for interrupts while hot standby is waiting for a conflicting
|
||||||
|
query (Simon Riggs)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Avoid constantly respawning the autovacuum launcher in a corner case
|
||||||
|
(Amit Khandekar)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This fix avoids problems when autovacuum is nominally off and there
|
||||||
|
are some tables that require freezing, but all such tables are
|
||||||
|
already being processed by autovacuum workers.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix check for when an extension member object can be dropped (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Extension upgrade scripts should be able to drop member objects,
|
||||||
|
but this was disallowed for serial-column sequences, and possibly
|
||||||
|
other cases.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Make sure <command>ALTER TABLE</> preserves index tablespace
|
||||||
|
assignments when rebuilding indexes (Tom Lane, Michael Paquier)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Previously, non-default settings
|
||||||
|
of <xref linkend="guc-default-tablespace"> could result in broken
|
||||||
|
indexes.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix incorrect updating of trigger function properties when changing a
|
||||||
|
foreign-key constraint's deferrability properties with <command>ALTER
|
||||||
|
TABLE ... ALTER CONSTRAINT</> (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This led to odd failures during subsequent exercise of the foreign
|
||||||
|
key, as the triggers were fired at the wrong times.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Prevent dropping a foreign-key constraint if there are pending
|
||||||
|
trigger events for the referenced relation (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This avoids <quote>could not find trigger <replaceable>NNN</></quote>
|
||||||
|
or <quote>relation <replaceable>NNN</> has no triggers</quote> errors.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix processing of OID column when a table with OIDs is associated to
|
||||||
|
a parent with OIDs via <command>ALTER TABLE ... INHERIT</> (Amit
|
||||||
|
Langote)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The OID column should be treated the same as regular user columns in
|
||||||
|
this case, but it wasn't, leading to odd behavior in later
|
||||||
|
inheritance changes.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <command>CREATE OR REPLACE VIEW</> to update the view query
|
||||||
|
before attempting to apply the new view options (Dean Rasheed)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Previously the command would fail if the new options were
|
||||||
|
inconsistent with the old view definition.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Report correct object identity during <command>ALTER TEXT SEARCH
|
||||||
|
CONFIGURATION</> (Artur Zakirov)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The wrong catalog OID was reported to extensions such as logical
|
||||||
|
decoding.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Check for serializability conflicts before reporting
|
||||||
|
constraint-violation failures (Thomas Munro)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
When using serializable transaction isolation, it is desirable
|
||||||
|
that any error due to concurrent transactions should manifest
|
||||||
|
as a serialization failure, thereby cueing the application that
|
||||||
|
a retry might succeed. Unfortunately, this does not reliably
|
||||||
|
happen for duplicate-key failures caused by concurrent insertions.
|
||||||
|
This change ensures that such an error will be reported as a
|
||||||
|
serialization error if the application explicitly checked for
|
||||||
|
the presence of a conflicting key (and did not find it) earlier
|
||||||
|
in the transaction.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Prevent multicolumn expansion of <replaceable>foo</><literal>.*</> in
|
||||||
|
an <command>UPDATE</> source expression (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This led to <quote>UPDATE target count mismatch --- internal
|
||||||
|
error</>. Now the syntax is understood as a whole-row variable,
|
||||||
|
as it would be in other contexts.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Ensure that column typmods are determined accurately for
|
||||||
|
multi-row <literal>VALUES</> constructs (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This fixes problems occurring when the first value in a column has a
|
||||||
|
determinable typmod (e.g., length for a <type>varchar</> value) but
|
||||||
|
later values don't share the same limit.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Throw error for an unfinished Unicode surrogate pair at the end of a
|
||||||
|
Unicode string (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Normally, a Unicode surrogate leading character must be followed by a
|
||||||
|
Unicode surrogate trailing character, but the check for this was
|
||||||
|
missed if the leading character was the last character in a Unicode
|
||||||
|
string literal (<literal>U&'...'</>) or Unicode identifier
|
||||||
|
(<literal>U&"..."</>).
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Ensure that a purely negative text search query, such
|
||||||
|
as <literal>!foo</>, matches empty <type>tsvector</>s (Tom Dunstan)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Such matches were found by GIN index searches, but not by sequential
|
||||||
|
scans or GiST index searches.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Prevent crash when <function>ts_rewrite()</> replaces a non-top-level
|
||||||
|
subtree with an empty query (Artur Zakirov)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix performance problems in <function>ts_rewrite()</> (Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <function>ts_rewrite()</>'s handling of nested NOT operators
|
||||||
|
(Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <function>array_fill()</> to handle empty arrays properly (Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix one-byte buffer overrun in <function>quote_literal_cstr()</>
|
||||||
|
(Heikki Linnakangas)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The overrun occurred only if the input consisted entirely of single
|
||||||
|
quotes and/or backslashes.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Prevent multiple calls of <function>pg_start_backup()</>
|
||||||
|
and <function>pg_stop_backup()</> from running concurrently (Michael
|
||||||
|
Paquier)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This avoids an assertion failure, and possibly worse things, if
|
||||||
|
someone tries to run these functions in parallel.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Avoid discarding <type>interval</>-to-<type>interval</> casts
|
||||||
|
that aren't really no-ops (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
In some cases, a cast that should result in zeroing out
|
||||||
|
low-order <type>interval</> fields was mistakenly deemed to be a
|
||||||
|
no-op and discarded. An example is that casting from <type>INTERVAL
|
||||||
|
MONTH</> to <type>INTERVAL YEAR</> failed to clear the months field.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Ensure that cached plans are invalidated by changes in foreign-table
|
||||||
|
options (Amit Langote, Etsuro Fujita, Ashutosh Bapat)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <application>pg_dump</> to dump user-defined casts and transforms
|
||||||
|
that use built-in functions (Stephen Frost)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <application>pg_restore</> with <option>--create --if-exists</>
|
||||||
|
to behave more sanely if an archive contains
|
||||||
|
unrecognized <command>DROP</> commands (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This doesn't fix any live bug, but it may improve the behavior in
|
||||||
|
future if <application>pg_restore</> is used with an archive
|
||||||
|
generated by a later <application>pg_dump</> version.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <application>pg_basebackup</>'s rate limiting in the presence of
|
||||||
|
slow I/O (Antonin Houska)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
If disk I/O was transiently much slower than the specified rate
|
||||||
|
limit, the calculation overflowed, effectively disabling the rate
|
||||||
|
limit for the rest of the run.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <application>pg_basebackup</>'s handling of
|
||||||
|
symlinked <filename>pg_stat_tmp</> and <filename>pg_replslot</>
|
||||||
|
subdirectories (Magnus Hagander, Michael Paquier)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix possible <application>pg_basebackup</> failure on standby
|
||||||
|
server when including WAL files (Amit Kapila, Robert Haas)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Ensure that the Python exception objects we create for PL/Python are
|
||||||
|
properly reference-counted (Rafa de la Torre, Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This avoids failures if the objects are used after a Python garbage
|
||||||
|
collection cycle has occurred.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix PL/Tcl to support triggers on tables that have <literal>.tupno</>
|
||||||
|
as a column name (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This matches the (previously undocumented) behavior of
|
||||||
|
PL/Tcl's <command>spi_exec</> and <command>spi_execp</> commands,
|
||||||
|
namely that a magic <literal>.tupno</> column is inserted only if
|
||||||
|
there isn't a real column named that.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Allow DOS-style line endings in <filename>~/.pgpass</> files,
|
||||||
|
even on Unix (Vik Fearing)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This change simplifies use of the same password file across Unix and
|
||||||
|
Windows machines.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix one-byte buffer overrun if <application>ecpg</> is given a file
|
||||||
|
name that ends with a dot (Takayuki Tsunakawa)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <application>psql</>'s tab completion for <command>ALTER DEFAULT
|
||||||
|
PRIVILEGES</> (Gilles Darold, Stephen Frost)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
In <application>psql</>, treat an empty or all-blank setting of
|
||||||
|
the <envar>PAGER</> environment variable as meaning <quote>no
|
||||||
|
pager</> (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Previously, such a setting caused output intended for the pager to
|
||||||
|
vanish entirely.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Improve <filename>contrib/dblink</>'s reporting of
|
||||||
|
low-level <application>libpq</> errors, such as out-of-memory
|
||||||
|
(Joe Conway)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Teach <filename>contrib/dblink</> to ignore irrelevant server options
|
||||||
|
when it uses a <filename>contrib/postgres_fdw</> foreign server as
|
||||||
|
the source of connection options (Corey Huinker)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Previously, if the foreign server object had options that were not
|
||||||
|
also <application>libpq</> connection options, an error occurred.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
On Windows, ensure that environment variable changes are propagated
|
||||||
|
to DLLs built with debug options (Christian Ullrich)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Sync our copy of the timezone library with IANA release tzcode2016j
|
||||||
|
(Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This fixes various issues, most notably that timezone data
|
||||||
|
installation failed if the target directory didn't support hard
|
||||||
|
links.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Update time zone data files to <application>tzdata</> release 2016j
|
||||||
|
for DST law changes in northern Cyprus (adding a new zone
|
||||||
|
Asia/Famagusta), Russia (adding a new zone Europe/Saratov), Tonga,
|
||||||
|
and Antarctica/Casey.
|
||||||
|
Historical corrections for Italy, Kazakhstan, Malta, and Palestine.
|
||||||
|
Switch to preferring numeric zone abbreviations for Tonga.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
</itemizedlist>
|
||||||
|
|
||||||
|
</sect2>
|
||||||
|
</sect1>
|
||||||
|
|
||||||
<sect1 id="release-9-4-10">
|
<sect1 id="release-9-4-10">
|
||||||
<title>Release 9.4.10</title>
|
<title>Release 9.4.10</title>
|
||||||
|
|
||||||
|
@ -1,6 +1,668 @@
|
|||||||
<!-- doc/src/sgml/release-9.5.sgml -->
|
<!-- doc/src/sgml/release-9.5.sgml -->
|
||||||
<!-- See header comment in release.sgml about typical markup -->
|
<!-- See header comment in release.sgml about typical markup -->
|
||||||
|
|
||||||
|
<sect1 id="release-9-5-6">
|
||||||
|
<title>Release 9.5.6</title>
|
||||||
|
|
||||||
|
<note>
|
||||||
|
<title>Release Date</title>
|
||||||
|
<simpara>2017-02-09</simpara>
|
||||||
|
</note>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This release contains a variety of fixes from 9.5.5.
|
||||||
|
For information about new features in the 9.5 major release, see
|
||||||
|
<xref linkend="release-9-5">.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<sect2>
|
||||||
|
<title>Migration to Version 9.5.6</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
A dump/restore is not required for those running 9.5.X.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
However, if your installation has been affected by the bug described in
|
||||||
|
the first changelog entry below, then after updating you may need
|
||||||
|
to take action to repair corrupted indexes.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Also, if you are upgrading from a version earlier than 9.5.5,
|
||||||
|
see <xref linkend="release-9-5-5">.
|
||||||
|
</para>
|
||||||
|
</sect2>
|
||||||
|
|
||||||
|
<sect2>
|
||||||
|
<title>Changes</title>
|
||||||
|
|
||||||
|
<itemizedlist>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix a race condition that could cause indexes built
|
||||||
|
with <command>CREATE INDEX CONCURRENTLY</> to be corrupt
|
||||||
|
(Pavan Deolasee, Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
If <command>CREATE INDEX CONCURRENTLY</> was used to build an index
|
||||||
|
that depends on a column not previously indexed, then rows inserted
|
||||||
|
or updated by transactions that ran concurrently with
|
||||||
|
the <command>CREATE INDEX</> command could have received incorrect
|
||||||
|
index entries. If you suspect this may have happened, the most
|
||||||
|
reliable solution is to rebuild affected indexes after installing
|
||||||
|
this update.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Ensure that the special snapshot used for catalog scans is not
|
||||||
|
invalidated by premature data pruning (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Backends failed to account for this snapshot when advertising their
|
||||||
|
oldest xmin, potentially allowing concurrent vacuuming operations to
|
||||||
|
remove data that was still needed. This led to transient failures
|
||||||
|
along the lines of <quote>cache lookup failed for relation 1255</>.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix incorrect WAL logging for BRIN indexes (Kuntal Ghosh)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The WAL record emitted for a BRIN <quote>revmap</> page when moving an
|
||||||
|
index tuple to a different page was incorrect. Replay would make the
|
||||||
|
related portion of the index useless, forcing it to be recomputed.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Unconditionally WAL-log creation of the <quote>init fork</> for an
|
||||||
|
unlogged table (Michael Paquier)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Previously, this was skipped when <xref linkend="guc-wal-level">
|
||||||
|
= <literal>minimal</>, but actually it's necessary even in that case
|
||||||
|
to ensure that the unlogged table is properly reset to empty after a
|
||||||
|
crash.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<!--
|
||||||
|
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
|
||||||
|
Branch: REL9_5_STABLE [c0db1ec26] 2016-11-17 13:31:30 -0300
|
||||||
|
Branch: REL9_4_STABLE [30e3cb307] 2016-11-17 13:31:30 -0300
|
||||||
|
-->
|
||||||
|
<para>
|
||||||
|
Reduce interlocking on standby servers during the replay of btree
|
||||||
|
index vacuuming operations (Simon Riggs)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This change avoids substantial replication delays that sometimes
|
||||||
|
occurred while replaying such operations.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
If the stats collector dies during hot standby, restart it (Takayuki
|
||||||
|
Tsunakawa)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Ensure that hot standby feedback works correctly when it's enabled at
|
||||||
|
standby server start (Ants Aasma, Craig Ringer)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Check for interrupts while hot standby is waiting for a conflicting
|
||||||
|
query (Simon Riggs)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Avoid constantly respawning the autovacuum launcher in a corner case
|
||||||
|
(Amit Khandekar)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This fix avoids problems when autovacuum is nominally off and there
|
||||||
|
are some tables that require freezing, but all such tables are
|
||||||
|
already being processed by autovacuum workers.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix check for when an extension member object can be dropped (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Extension upgrade scripts should be able to drop member objects,
|
||||||
|
but this was disallowed for serial-column sequences, and possibly
|
||||||
|
other cases.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Make sure <command>ALTER TABLE</> preserves index tablespace
|
||||||
|
assignments when rebuilding indexes (Tom Lane, Michael Paquier)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Previously, non-default settings
|
||||||
|
of <xref linkend="guc-default-tablespace"> could result in broken
|
||||||
|
indexes.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix incorrect updating of trigger function properties when changing a
|
||||||
|
foreign-key constraint's deferrability properties with <command>ALTER
|
||||||
|
TABLE ... ALTER CONSTRAINT</> (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This led to odd failures during subsequent exercise of the foreign
|
||||||
|
key, as the triggers were fired at the wrong times.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Prevent dropping a foreign-key constraint if there are pending
|
||||||
|
trigger events for the referenced relation (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This avoids <quote>could not find trigger <replaceable>NNN</></quote>
|
||||||
|
or <quote>relation <replaceable>NNN</> has no triggers</quote> errors.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <command>ALTER TABLE ... SET DATA TYPE ... USING</> when child
|
||||||
|
table has different column ordering than the parent
|
||||||
|
(Álvaro Herrera)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Failure to adjust the column numbering in the <literal>USING</>
|
||||||
|
expression led to errors,
|
||||||
|
typically <quote>attribute <replaceable>N</> has wrong type</quote>.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix processing of OID column when a table with OIDs is associated to
|
||||||
|
a parent with OIDs via <command>ALTER TABLE ... INHERIT</> (Amit
|
||||||
|
Langote)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The OID column should be treated the same as regular user columns in
|
||||||
|
this case, but it wasn't, leading to odd behavior in later
|
||||||
|
inheritance changes.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <command>CREATE OR REPLACE VIEW</> to update the view query
|
||||||
|
before attempting to apply the new view options (Dean Rasheed)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Previously the command would fail if the new options were
|
||||||
|
inconsistent with the old view definition.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Report correct object identity during <command>ALTER TEXT SEARCH
|
||||||
|
CONFIGURATION</> (Artur Zakirov)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The wrong catalog OID was reported to extensions such as logical
|
||||||
|
decoding.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix commit timestamp mechanism to not fail when queried about
|
||||||
|
the special XIDs <literal>FrozenTransactionId</>
|
||||||
|
and <literal>BootstrapTransactionId</> (Craig Ringer)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<!--
|
||||||
|
Author: Kevin Grittner <kgrittn@postgresql.org>
|
||||||
|
Branch: REL9_5_STABLE [bed2a0b06] 2016-12-13 19:14:42 -0600
|
||||||
|
Branch: REL9_4_STABLE [4b9d466c1] 2016-12-13 19:05:12 -0600
|
||||||
|
Branch: REL9_3_STABLE [5d80171ad] 2016-12-13 19:05:35 -0600
|
||||||
|
Branch: REL9_2_STABLE [60314e28e] 2016-12-13 19:08:09 -0600
|
||||||
|
-->
|
||||||
|
<para>
|
||||||
|
Check for serializability conflicts before reporting
|
||||||
|
constraint-violation failures (Thomas Munro)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
When using serializable transaction isolation, it is desirable
|
||||||
|
that any error due to concurrent transactions should manifest
|
||||||
|
as a serialization failure, thereby cueing the application that
|
||||||
|
a retry might succeed. Unfortunately, this does not reliably
|
||||||
|
happen for duplicate-key failures caused by concurrent insertions.
|
||||||
|
This change ensures that such an error will be reported as a
|
||||||
|
serialization error if the application explicitly checked for
|
||||||
|
the presence of a conflicting key (and did not find it) earlier
|
||||||
|
in the transaction.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix incorrect use of view reloptions as regular table reloptions (Tom
|
||||||
|
Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The symptom was spurious <quote>ON CONFLICT is not supported on table
|
||||||
|
... used as a catalog table</> errors when the target
|
||||||
|
of <command>INSERT ... ON CONFLICT</> is a view with cascade option.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix incorrect <quote>target lists can have at most <replaceable>N</>
|
||||||
|
entries</quote> complaint when using <literal>ON CONFLICT</> with
|
||||||
|
wide tables (Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Prevent multicolumn expansion of <replaceable>foo</><literal>.*</> in
|
||||||
|
an <command>UPDATE</> source expression (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This led to <quote>UPDATE target count mismatch --- internal
|
||||||
|
error</>. Now the syntax is understood as a whole-row variable,
|
||||||
|
as it would be in other contexts.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Ensure that column typmods are determined accurately for
|
||||||
|
multi-row <literal>VALUES</> constructs (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This fixes problems occurring when the first value in a column has a
|
||||||
|
determinable typmod (e.g., length for a <type>varchar</> value) but
|
||||||
|
later values don't share the same limit.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Throw error for an unfinished Unicode surrogate pair at the end of a
|
||||||
|
Unicode string (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Normally, a Unicode surrogate leading character must be followed by a
|
||||||
|
Unicode surrogate trailing character, but the check for this was
|
||||||
|
missed if the leading character was the last character in a Unicode
|
||||||
|
string literal (<literal>U&'...'</>) or Unicode identifier
|
||||||
|
(<literal>U&"..."</>).
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Ensure that a purely negative text search query, such
|
||||||
|
as <literal>!foo</>, matches empty <type>tsvector</>s (Tom Dunstan)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Such matches were found by GIN index searches, but not by sequential
|
||||||
|
scans or GiST index searches.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Prevent crash when <function>ts_rewrite()</> replaces a non-top-level
|
||||||
|
subtree with an empty query (Artur Zakirov)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix performance problems in <function>ts_rewrite()</> (Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <function>ts_rewrite()</>'s handling of nested NOT operators
|
||||||
|
(Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Improve speed of user-defined aggregates that
|
||||||
|
use <function>array_append()</> as transition function (Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <function>array_fill()</> to handle empty arrays properly (Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix possible crash in <function>array_position()</>
|
||||||
|
or <function>array_positions()</> when processing arrays of records
|
||||||
|
(Junseok Yang)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix one-byte buffer overrun in <function>quote_literal_cstr()</>
|
||||||
|
(Heikki Linnakangas)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The overrun occurred only if the input consisted entirely of single
|
||||||
|
quotes and/or backslashes.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Prevent multiple calls of <function>pg_start_backup()</>
|
||||||
|
and <function>pg_stop_backup()</> from running concurrently (Michael
|
||||||
|
Paquier)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This avoids an assertion failure, and possibly worse things, if
|
||||||
|
someone tries to run these functions in parallel.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Disable transform that attempted to remove no-op <literal>AT TIME
|
||||||
|
ZONE</> conversions (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This resulted in wrong answers when the simplified expression was
|
||||||
|
used in an index condition.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Avoid discarding <type>interval</>-to-<type>interval</> casts
|
||||||
|
that aren't really no-ops (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
In some cases, a cast that should result in zeroing out
|
||||||
|
low-order <type>interval</> fields was mistakenly deemed to be a
|
||||||
|
no-op and discarded. An example is that casting from <type>INTERVAL
|
||||||
|
MONTH</> to <type>INTERVAL YEAR</> failed to clear the months field.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix bugs in transmitting GUC parameter values to parallel workers
|
||||||
|
(Michael Paquier, Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Ensure that cached plans are invalidated by changes in foreign-table
|
||||||
|
options (Amit Langote, Etsuro Fujita, Ashutosh Bapat)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <application>pg_dump</> to dump user-defined casts and transforms
|
||||||
|
that use built-in functions (Stephen Frost)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <application>pg_restore</> with <option>--create --if-exists</>
|
||||||
|
to behave more sanely if an archive contains
|
||||||
|
unrecognized <command>DROP</> commands (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This doesn't fix any live bug, but it may improve the behavior in
|
||||||
|
future if <application>pg_restore</> is used with an archive
|
||||||
|
generated by a later <application>pg_dump</> version.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <application>pg_basebackup</>'s rate limiting in the presence of
|
||||||
|
slow I/O (Antonin Houska)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
If disk I/O was transiently much slower than the specified rate
|
||||||
|
limit, the calculation overflowed, effectively disabling the rate
|
||||||
|
limit for the rest of the run.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <application>pg_basebackup</>'s handling of
|
||||||
|
symlinked <filename>pg_stat_tmp</> and <filename>pg_replslot</>
|
||||||
|
subdirectories (Magnus Hagander, Michael Paquier)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix possible <application>pg_basebackup</> failure on standby
|
||||||
|
server when including WAL files (Amit Kapila, Robert Haas)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix possible mishandling of expanded arrays in domain check
|
||||||
|
constraints and <literal>CASE</> execution (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
It was possible for a PL/pgSQL function invoked in these contexts to
|
||||||
|
modify or even delete an array value that needs to be preserved for
|
||||||
|
additional operations.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix nested uses of PL/pgSQL functions in contexts such as domain
|
||||||
|
check constraints evaluated during assignment to a PL/pgSQL variable
|
||||||
|
(Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Ensure that the Python exception objects we create for PL/Python are
|
||||||
|
properly reference-counted (Rafa de la Torre, Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This avoids failures if the objects are used after a Python garbage
|
||||||
|
collection cycle has occurred.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix PL/Tcl to support triggers on tables that have <literal>.tupno</>
|
||||||
|
as a column name (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This matches the (previously undocumented) behavior of
|
||||||
|
PL/Tcl's <command>spi_exec</> and <command>spi_execp</> commands,
|
||||||
|
namely that a magic <literal>.tupno</> column is inserted only if
|
||||||
|
there isn't a real column named that.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Allow DOS-style line endings in <filename>~/.pgpass</> files,
|
||||||
|
even on Unix (Vik Fearing)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This change simplifies use of the same password file across Unix and
|
||||||
|
Windows machines.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix one-byte buffer overrun if <application>ecpg</> is given a file
|
||||||
|
name that ends with a dot (Takayuki Tsunakawa)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix <application>psql</>'s tab completion for <command>ALTER DEFAULT
|
||||||
|
PRIVILEGES</> (Gilles Darold, Stephen Frost)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
In <application>psql</>, treat an empty or all-blank setting of
|
||||||
|
the <envar>PAGER</> environment variable as meaning <quote>no
|
||||||
|
pager</> (Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Previously, such a setting caused output intended for the pager to
|
||||||
|
vanish entirely.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Improve <filename>contrib/dblink</>'s reporting of
|
||||||
|
low-level <application>libpq</> errors, such as out-of-memory
|
||||||
|
(Joe Conway)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Teach <filename>contrib/dblink</> to ignore irrelevant server options
|
||||||
|
when it uses a <filename>contrib/postgres_fdw</> foreign server as
|
||||||
|
the source of connection options (Corey Huinker)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Previously, if the foreign server object had options that were not
|
||||||
|
also <application>libpq</> connection options, an error occurred.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fix portability problems in <filename>contrib/pageinspect</>'s
|
||||||
|
functions for GIN indexes (Peter Eisentraut, Tom Lane)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
On Windows, ensure that environment variable changes are propagated
|
||||||
|
to DLLs built with debug options (Christian Ullrich)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Sync our copy of the timezone library with IANA release tzcode2016j
|
||||||
|
(Tom Lane)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This fixes various issues, most notably that timezone data
|
||||||
|
installation failed if the target directory didn't support hard
|
||||||
|
links.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Update time zone data files to <application>tzdata</> release 2016j
|
||||||
|
for DST law changes in northern Cyprus (adding a new zone
|
||||||
|
Asia/Famagusta), Russia (adding a new zone Europe/Saratov), Tonga,
|
||||||
|
and Antarctica/Casey.
|
||||||
|
Historical corrections for Italy, Kazakhstan, Malta, and Palestine.
|
||||||
|
Switch to preferring numeric zone abbreviations for Tonga.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
</itemizedlist>
|
||||||
|
|
||||||
|
</sect2>
|
||||||
|
</sect1>
|
||||||
|
|
||||||
<sect1 id="release-9-5-5">
|
<sect1 id="release-9-5-5">
|
||||||
<title>Release 9.5.5</title>
|
<title>Release 9.5.5</title>
|
||||||
|
|
||||||
@ -64,7 +726,7 @@
|
|||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<!--
|
<!--
|
||||||
zAuthor: Tom Lane <tgl@sss.pgh.pa.us>
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
||||||
Branch: master [60893786d] 2016-09-03 13:28:53 -0400
|
Branch: master [60893786d] 2016-09-03 13:28:53 -0400
|
||||||
Branch: REL9_6_STABLE Release: REL9_6_0 [36646d3af] 2016-09-03 13:28:53 -0400
|
Branch: REL9_6_STABLE Release: REL9_6_0 [36646d3af] 2016-09-03 13:28:53 -0400
|
||||||
Branch: REL9_5_STABLE [08a72872f] 2016-09-03 13:28:53 -0400
|
Branch: REL9_5_STABLE [08a72872f] 2016-09-03 13:28:53 -0400
|
||||||
|
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user