10244 lines
324 KiB
Plaintext
10244 lines
324 KiB
Plaintext
<!-- doc/src/sgml/release-9.4.sgml -->
|
|
<!-- See header comment in release.sgml about typical markup -->
|
|
|
|
<sect1 id="release-9-4-12">
|
|
<title>Release 9.4.12</title>
|
|
|
|
<formalpara>
|
|
<title>Release date:</title>
|
|
<para>2017-05-11</para>
|
|
</formalpara>
|
|
|
|
<para>
|
|
This release contains a variety of fixes from 9.4.11.
|
|
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.12</title>
|
|
|
|
<para>
|
|
A dump/restore is not required for those running 9.4.X.
|
|
</para>
|
|
|
|
<para>
|
|
However, if you use foreign data servers that make use of user
|
|
passwords for authentication, see the first changelog entry below.
|
|
</para>
|
|
|
|
<para>
|
|
Also, if you are using third-party replication tools that depend
|
|
on <quote>logical decoding</>, see the fourth changelog entry below.
|
|
</para>
|
|
|
|
<para>
|
|
Also, if you are upgrading from a version earlier than 9.4.11,
|
|
see <xref linkend="release-9-4-11">.
|
|
</para>
|
|
</sect2>
|
|
|
|
<sect2>
|
|
<title>Changes</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<para>
|
|
Restrict visibility
|
|
of <structname>pg_user_mappings</>.<structfield>umoptions</>, to
|
|
protect passwords stored as user mapping options
|
|
(Michael Paquier, Feike Steenbergen)
|
|
</para>
|
|
|
|
<para>
|
|
The previous coding allowed the owner of a foreign server object,
|
|
or anyone he has granted server <literal>USAGE</> permission to,
|
|
to see the options for all user mappings associated with that server.
|
|
This might well include passwords for other users.
|
|
Adjust the view definition to match the behavior of
|
|
<structname>information_schema.user_mapping_options</>, namely that
|
|
these options are visible to the user being mapped, or if the mapping
|
|
is for <literal>PUBLIC</literal> and the current user is the server
|
|
owner, or if the current user is a superuser.
|
|
(CVE-2017-7486)
|
|
</para>
|
|
|
|
<para>
|
|
By itself, this patch will only fix the behavior in newly initdb'd
|
|
databases. If you wish to apply this change in an existing database,
|
|
you will need to do the following:
|
|
</para>
|
|
|
|
<procedure>
|
|
<step>
|
|
<para>
|
|
Restart the postmaster after adding <literal>allow_system_table_mods
|
|
= true</> to <filename>postgresql.conf</>. (In versions
|
|
supporting <command>ALTER SYSTEM</>, you can use that to make the
|
|
configuration change, but you'll still need a restart.)
|
|
</para>
|
|
</step>
|
|
|
|
<step>
|
|
<para>
|
|
In <emphasis>each</> database of the cluster,
|
|
run the following commands as superuser:
|
|
<programlisting>
|
|
SET search_path = pg_catalog;
|
|
CREATE OR REPLACE VIEW pg_user_mappings AS
|
|
SELECT
|
|
U.oid AS umid,
|
|
S.oid AS srvid,
|
|
S.srvname AS srvname,
|
|
U.umuser AS umuser,
|
|
CASE WHEN U.umuser = 0 THEN
|
|
'public'
|
|
ELSE
|
|
A.rolname
|
|
END AS usename,
|
|
CASE WHEN (U.umuser <> 0 AND A.rolname = current_user)
|
|
OR (U.umuser = 0 AND pg_has_role(S.srvowner, 'USAGE'))
|
|
OR (SELECT rolsuper FROM pg_authid WHERE rolname = current_user)
|
|
THEN U.umoptions
|
|
ELSE NULL END AS umoptions
|
|
FROM pg_user_mapping U
|
|
LEFT JOIN pg_authid A ON (A.oid = U.umuser) JOIN
|
|
pg_foreign_server S ON (U.umserver = S.oid);
|
|
</programlisting>
|
|
</para>
|
|
</step>
|
|
|
|
<step>
|
|
<para>
|
|
Do not forget to include the <literal>template0</>
|
|
and <literal>template1</> databases, or the vulnerability will still
|
|
exist in databases you create later. To fix <literal>template0</>,
|
|
you'll need to temporarily make it accept connections.
|
|
In <productname>PostgreSQL</> 9.5 and later, you can use
|
|
<programlisting>
|
|
ALTER DATABASE template0 WITH ALLOW_CONNECTIONS true;
|
|
</programlisting>
|
|
and then after fixing <literal>template0</>, undo that with
|
|
<programlisting>
|
|
ALTER DATABASE template0 WITH ALLOW_CONNECTIONS false;
|
|
</programlisting>
|
|
In prior versions, instead use
|
|
<programlisting>
|
|
UPDATE pg_database SET datallowconn = true WHERE datname = 'template0';
|
|
UPDATE pg_database SET datallowconn = false WHERE datname = 'template0';
|
|
</programlisting>
|
|
</para>
|
|
</step>
|
|
|
|
<step>
|
|
<para>
|
|
Finally, remove the <literal>allow_system_table_mods</> configuration
|
|
setting, and again restart the postmaster.
|
|
</para>
|
|
</step>
|
|
</procedure>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Prevent exposure of statistical information via leaky operators
|
|
(Peter Eisentraut)
|
|
</para>
|
|
|
|
<para>
|
|
Some selectivity estimation functions in the planner will apply
|
|
user-defined operators to values obtained
|
|
from <structname>pg_statistic</>, such as most common values and
|
|
histogram entries. This occurs before table permissions are checked,
|
|
so a nefarious user could exploit the behavior to obtain these values
|
|
for table columns he does not have permission to read. To fix,
|
|
fall back to a default estimate if the operator's implementation
|
|
function is not certified leak-proof and the calling user does not have
|
|
permission to read the table column whose statistics are needed.
|
|
At least one of these criteria is satisfied in most cases in practice.
|
|
(CVE-2017-7484)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Restore <application>libpq</>'s recognition of
|
|
the <envar>PGREQUIRESSL</> environment variable (Daniel Gustafsson)
|
|
</para>
|
|
|
|
<para>
|
|
Processing of this environment variable was unintentionally dropped
|
|
in <productname>PostgreSQL</> 9.3, but its documentation remained.
|
|
This creates a security hazard, since users might be relying on the
|
|
environment variable to force SSL-encrypted connections, but that
|
|
would no longer be guaranteed. Restore handling of the variable,
|
|
but give it lower priority than <envar>PGSSLMODE</>, to avoid
|
|
breaking configurations that work correctly with post-9.3 code.
|
|
(CVE-2017-7485)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix possibly-invalid initial snapshot during logical decoding
|
|
(Petr Jelinek, Andres Freund)
|
|
</para>
|
|
|
|
<para>
|
|
The initial snapshot created for a logical decoding replication slot
|
|
was potentially incorrect. This could cause third-party tools that
|
|
use logical decoding to copy incomplete/inconsistent initial data.
|
|
This was more likely to happen if the source server was busy at the
|
|
time of slot creation, or if another logical slot already existed.
|
|
</para>
|
|
|
|
<para>
|
|
If you are using a replication tool that depends on logical decoding,
|
|
and it should have copied a nonempty data set at the start of
|
|
replication, it is advisable to recreate the replica after
|
|
installing this update, or to verify its contents against the source
|
|
server.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix possible corruption of <quote>init forks</> of unlogged indexes
|
|
(Robert Haas, Michael Paquier)
|
|
</para>
|
|
|
|
<para>
|
|
This could result in an unlogged index being set to an invalid state
|
|
after a crash and restart. Such a problem would persist until the
|
|
index was dropped and rebuilt.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix incorrect reconstruction of <structname>pg_subtrans</> entries
|
|
when a standby server replays a prepared but uncommitted two-phase
|
|
transaction (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
In most cases this turned out to have no visible ill effects, but in
|
|
corner cases it could result in circular references
|
|
in <structname>pg_subtrans</>, potentially causing infinite loops
|
|
in queries that examine rows modified by the two-phase transaction.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Avoid possible crash in <application>walsender</> due to failure
|
|
to initialize a string buffer (Stas Kelvich, Fujii Masao)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix postmaster's handling of <function>fork()</> failure for a
|
|
background worker process (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, the postmaster updated portions of its state as though
|
|
the process had been launched successfully, resulting in subsequent
|
|
confusion.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Ensure parsing of queries in extension scripts sees the results of
|
|
immediately-preceding DDL (Julien Rouhaud, Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Due to lack of a cache flush step between commands in an extension
|
|
script file, non-utility queries might not see the effects of an
|
|
immediately preceding catalog change, such as <command>ALTER TABLE
|
|
... RENAME</>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Skip tablespace privilege checks when <command>ALTER TABLE ... ALTER
|
|
COLUMN TYPE</> rebuilds an existing index (Noah Misch)
|
|
</para>
|
|
|
|
<para>
|
|
The command failed if the calling user did not currently have
|
|
<literal>CREATE</> privilege for the tablespace containing the index.
|
|
That behavior seems unhelpful, so skip the check, allowing the
|
|
index to be rebuilt where it is.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <command>ALTER TABLE ... VALIDATE CONSTRAINT</> to not recurse
|
|
to child tables when the constraint is marked <literal>NO INHERIT</>
|
|
(Amit Langote)
|
|
</para>
|
|
|
|
<para>
|
|
This fix prevents unwanted <quote>constraint does not exist</> failures
|
|
when no matching constraint is present in the child tables.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <command>VACUUM</> to account properly for pages that could not
|
|
be scanned due to conflicting page pins (Andrew Gierth)
|
|
</para>
|
|
|
|
<para>
|
|
This tended to lead to underestimation of the number of tuples in
|
|
the table. In the worst case of a small heavily-contended
|
|
table, <command>VACUUM</> could incorrectly report that the table
|
|
contained no tuples, leading to very bad planning choices.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Ensure that bulk-tuple-transfer loops within a hash join are
|
|
interruptible by query cancel requests (Tom Lane, Thomas Munro)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix integer-overflow problems in <type>interval</> comparison (Kyotaro
|
|
Horiguchi, Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
The comparison operators for type <type>interval</> could yield wrong
|
|
answers for intervals larger than about 296000 years. Indexes on
|
|
columns containing such large values should be reindexed, since they
|
|
may be corrupt.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <function>cursor_to_xml()</> to produce valid output
|
|
with <replaceable>tableforest</> = false
|
|
(Thomas Munro, Peter Eisentraut)
|
|
</para>
|
|
|
|
<para>
|
|
Previously it failed to produce a wrapping <literal><table></>
|
|
element.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix roundoff problems in <function>float8_timestamptz()</>
|
|
and <function>make_interval()</> (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
These functions truncated, rather than rounded, when converting a
|
|
floating-point value to integer microseconds; that could cause
|
|
unexpectedly off-by-one results.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve performance of <structname>pg_timezone_names</> view
|
|
(Tom Lane, David Rowley)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Reduce memory management overhead for contexts containing many large
|
|
blocks (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix sloppy handling of corner-case errors from <function>lseek()</>
|
|
and <function>close()</> (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Neither of these system calls are likely to fail in typical situations,
|
|
but if they did, <filename>fd.c</> could get quite confused.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix incorrect check for whether postmaster is running as a Windows
|
|
service (Michael Paquier)
|
|
</para>
|
|
|
|
<para>
|
|
This could result in attempting to write to the event log when that
|
|
isn't accessible, so that no logging happens at all.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <application>ecpg</> to support <command>COMMIT PREPARED</>
|
|
and <command>ROLLBACK PREPARED</> (Masahiko Sawada)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix a double-free error when processing dollar-quoted string literals
|
|
in <application>ecpg</> (Michael Meskes)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
In <application>pg_dump</>, fix incorrect schema and owner marking for
|
|
comments and security labels of some types of database objects
|
|
(Giuseppe Broccolo, Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
In simple cases this caused no ill effects; but for example, a
|
|
schema-selective restore might omit comments it should include, because
|
|
they were not marked as belonging to the schema of their associated
|
|
object.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Avoid emitting an invalid list file in <literal>pg_restore -l</>
|
|
when SQL object names contain newlines (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Replace newlines by spaces, which is sufficient to make the output
|
|
valid for <literal>pg_restore -L</>'s purposes.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <application>pg_upgrade</> to transfer comments and security labels
|
|
attached to <quote>large objects</> (blobs) (Stephen Frost)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, blobs were correctly transferred to the new database, but
|
|
any comments or security labels attached to them were lost.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve error handling
|
|
in <filename>contrib/adminpack</>'s <function>pg_file_write()</>
|
|
function (Noah Misch)
|
|
</para>
|
|
|
|
<para>
|
|
Notably, it failed to detect errors reported
|
|
by <function>fclose()</>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
In <filename>contrib/dblink</>, avoid leaking the previous unnamed
|
|
connection when establishing a new unnamed connection (Joe Conway)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <filename>contrib/pg_trgm</>'s extraction of trigrams from regular
|
|
expressions (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
In some cases it would produce a broken data structure that could never
|
|
match anything, leading to GIN or GiST indexscans that use a trigram
|
|
index not finding any matches to the regular expression.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
In <filename>contrib/postgres_fdw</>,
|
|
transmit query cancellation requests to the remote server
|
|
(Michael Paquier, Etsuro Fujita)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, a local query cancellation request did not cause an
|
|
already-sent remote query to terminate early. This is a back-patch
|
|
of work originally done for 9.6.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: REL9_4_STABLE [bb132cddf] 2017-04-15 20:16:03 -0400
|
|
Branch: REL9_3_STABLE [fbfeceb25] 2017-04-17 12:51:40 -0400
|
|
Branch: REL9_2_STABLE [58384149b] 2017-04-17 12:51:40 -0400
|
|
Branch: REL9_3_STABLE [4e91330da] 2017-04-17 13:52:42 -0400
|
|
Branch: REL9_2_STABLE [fb50c38e9] 2017-04-17 13:52:42 -0400
|
|
-->
|
|
<para>
|
|
Support OpenSSL 1.1.0 (Heikki Linnakangas, Andreas Karlsson, Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This is a back-patch of work previously done in newer branches;
|
|
it's needed since many platforms are adopting newer OpenSSL versions.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Support Tcl 8.6 in MSVC builds (Álvaro Herrera)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Sync our copy of the timezone library with IANA release tzcode2017b
|
|
(Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This fixes a bug affecting some DST transitions in January 2038.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Update time zone data files to <application>tzdata</> release 2017b
|
|
for DST law changes in Chile, Haiti, and Mongolia, plus historical
|
|
corrections for Ecuador, Kazakhstan, Liberia, and Spain.
|
|
Switch to numeric abbreviations for numerous time zones in South
|
|
America, the Pacific and Indian oceans, and some Asian and Middle
|
|
Eastern countries.
|
|
</para>
|
|
|
|
<para>
|
|
The IANA time zone database previously provided textual abbreviations
|
|
for all time zones, sometimes making up abbreviations that have little
|
|
or no currency among the local population. They are in process of
|
|
reversing that policy in favor of using numeric UTC offsets in zones
|
|
where there is no evidence of real-world use of an English
|
|
abbreviation. At least for the time being, <productname>PostgreSQL</>
|
|
will continue to accept such removed abbreviations for timestamp input.
|
|
But they will not be shown in the <structname>pg_timezone_names</>
|
|
view nor used for output.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Use correct daylight-savings rules for POSIX-style time zone names
|
|
in MSVC builds (David Rowley)
|
|
</para>
|
|
|
|
<para>
|
|
The Microsoft MSVC build scripts neglected to install
|
|
the <filename>posixrules</> file in the timezone directory tree.
|
|
This resulted in the timezone code falling back to its built-in
|
|
rule about what DST behavior to assume for a POSIX-style time zone
|
|
name. For historical reasons that still corresponds to the DST rules
|
|
the USA was using before 2007 (i.e., change on first Sunday in April
|
|
and last Sunday in October). With this fix, a POSIX-style zone name
|
|
will use the current and historical DST transition dates of
|
|
the <literal>US/Eastern</> zone. If you don't want that, remove
|
|
the <filename>posixrules</> file, or replace it with a copy of some
|
|
other zone file (see <xref linkend="datatype-timezones">). Note that
|
|
due to caching, you may need to restart the server to get such changes
|
|
to take effect.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect2>
|
|
</sect1>
|
|
|
|
<sect1 id="release-9-4-11">
|
|
<title>Release 9.4.11</title>
|
|
|
|
<formalpara>
|
|
<title>Release date:</title>
|
|
<para>2017-02-09</para>
|
|
</formalpara>
|
|
|
|
<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
|
|
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">
|
|
<title>Release 9.4.10</title>
|
|
|
|
<formalpara>
|
|
<title>Release date:</title>
|
|
<para>2016-10-27</para>
|
|
</formalpara>
|
|
|
|
<para>
|
|
This release contains a variety of fixes from 9.4.9.
|
|
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.10</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 free space maps.
|
|
</para>
|
|
|
|
<para>
|
|
Also, if you are upgrading from a version earlier than 9.4.6,
|
|
see <xref linkend="release-9-4-6">.
|
|
</para>
|
|
</sect2>
|
|
|
|
<sect2>
|
|
<title>Changes</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix WAL-logging of truncation of relation free space maps and
|
|
visibility maps (Pavan Deolasee, Heikki Linnakangas)
|
|
</para>
|
|
|
|
<para>
|
|
It was possible for these files to not be correctly restored during
|
|
crash recovery, or to be written incorrectly on a standby server.
|
|
Bogus entries in a free space map could lead to attempts to access
|
|
pages that have been truncated away from the relation itself, typically
|
|
producing errors like <quote>could not read block <replaceable>XXX</>:
|
|
read only 0 of 8192 bytes</quote>. Checksum failures in the
|
|
visibility map are also possible, if checksumming is enabled.
|
|
</para>
|
|
|
|
<para>
|
|
Procedures for determining whether there is a problem and repairing it
|
|
if so are discussed at
|
|
<ulink url="https://wiki.postgresql.org/wiki/Free_Space_Map_Problems"></>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix incorrect creation of GIN index WAL records on big-endian machines
|
|
(Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
The typical symptom was <quote>unexpected GIN leaf action</> errors
|
|
during WAL replay.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <command>SELECT FOR UPDATE/SHARE</> to correctly lock tuples that
|
|
have been updated by a subsequently-aborted transaction
|
|
(Álvaro Herrera)
|
|
</para>
|
|
|
|
<para>
|
|
In 9.5 and later, the <command>SELECT</> would sometimes fail to
|
|
return such tuples at all. A failure has not been proven to occur in
|
|
earlier releases, but might be possible with concurrent updates.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix EvalPlanQual rechecks involving CTE scans (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
The recheck would always see the CTE as returning no rows, typically
|
|
leading to failure to update rows that were recently updated.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix improper repetition of previous results from hashed aggregation in
|
|
a subquery (Andrew Gierth)
|
|
</para>
|
|
|
|
<para>
|
|
The test to see if we can reuse a previously-computed hash table of
|
|
the aggregate state values neglected the possibility of an outer query
|
|
reference appearing in an aggregate argument expression. A change in
|
|
the value of such a reference should lead to recalculating the hash
|
|
table, but did not.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix query-lifespan memory leak in a bulk <command>UPDATE</> on a table
|
|
with a <literal>PRIMARY KEY</> or <literal>REPLICA IDENTITY</> index
|
|
(Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <command>EXPLAIN</> to emit valid XML when
|
|
<xref linkend="guc-track-io-timing"> is on (Markus Winand)
|
|
</para>
|
|
|
|
<para>
|
|
Previously the XML output-format option produced syntactically invalid
|
|
tags such as <literal><I/O-Read-Time></>. That is now
|
|
rendered as <literal><I-O-Read-Time></>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Suppress printing of zeroes for unmeasured times
|
|
in <command>EXPLAIN</> (Maksim Milyutin)
|
|
</para>
|
|
|
|
<para>
|
|
Certain option combinations resulted in printing zero values for times
|
|
that actually aren't ever measured in that combination. Our general
|
|
policy in <command>EXPLAIN</> is not to print such fields at all, so
|
|
do that consistently in all cases.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix timeout length when <command>VACUUM</> is waiting for exclusive
|
|
table lock so that it can truncate the table (Simon Riggs)
|
|
</para>
|
|
|
|
<para>
|
|
The timeout was meant to be 50 milliseconds, but it was actually only
|
|
50 microseconds, causing <command>VACUUM</> to give up on truncation
|
|
much more easily than intended. Set it to the intended value.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix bugs in merging inherited <literal>CHECK</> constraints while
|
|
creating or altering a table (Tom Lane, Amit Langote)
|
|
</para>
|
|
|
|
<para>
|
|
Allow identical <literal>CHECK</> constraints to be added to a parent
|
|
and child table in either order. Prevent merging of a valid
|
|
constraint from the parent table with a <literal>NOT VALID</>
|
|
constraint on the child. Likewise, prevent merging of a <literal>NO
|
|
INHERIT</> child constraint with an inherited constraint.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Remove artificial restrictions on the values accepted
|
|
by <function>numeric_in()</> and <function>numeric_recv()</>
|
|
(Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
We allow numeric values up to the limit of the storage format (more
|
|
than <literal>1e100000</>), so it seems fairly pointless
|
|
that <function>numeric_in()</> rejected scientific-notation exponents
|
|
above 1000. Likewise, it was silly for <function>numeric_recv()</> to
|
|
reject more than 1000 digits in an input value.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Avoid very-low-probability data corruption due to testing tuple
|
|
visibility without holding buffer lock (Thomas Munro, Peter Geoghegan,
|
|
Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix logical WAL decoding to work properly when a subtransaction's WAL
|
|
output is large enough to spill to disk (Andres Freund)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: REL9_4_STABLE [10ad15f48] 2016-09-01 11:45:16 -0400
|
|
-->
|
|
<para>
|
|
Fix buffer overread in logical WAL decoding (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Logical decoding of a tuple update record read 23 bytes too many,
|
|
which was usually harmless but with very bad luck could result in a
|
|
crash.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix file descriptor leakage when truncating a temporary relation of
|
|
more than 1GB (Andres Freund)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Disallow starting a standalone backend with <literal>standby_mode</>
|
|
turned on (Michael Paquier)
|
|
</para>
|
|
|
|
<para>
|
|
This can't do anything useful, since there will be no WAL receiver
|
|
process to fetch more WAL data; and it could result in misbehavior
|
|
in code that wasn't designed with this situation in mind.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Properly initialize replication slot state when recycling a
|
|
previously-used slot (Michael Paquier)
|
|
</para>
|
|
|
|
<para>
|
|
This failure to reset all of the fields of the slot could
|
|
prevent <command>VACUUM</> from removing dead tuples.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Round shared-memory allocation request to a multiple of the actual
|
|
huge page size when attempting to use huge pages on Linux (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This avoids possible failures during <function>munmap()</> on systems
|
|
with atypical default huge page sizes. Except in crash-recovery
|
|
cases, there were no ill effects other than a log message.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Use a more random value for the dynamic shared memory control
|
|
segment's ID (Robert Haas, Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, the same value would be chosen every time, because it was
|
|
derived from <function>random()</> but <function>srandom()</> had not
|
|
yet been called. While relatively harmless, this was not the intended
|
|
behavior.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
On Windows, retry creation of the dynamic shared memory control
|
|
segment after an access-denied error (Kyotaro Horiguchi, Amit Kapila)
|
|
</para>
|
|
|
|
<para>
|
|
Windows sometimes returns <literal>ERROR_ACCESS_DENIED</> rather
|
|
than <literal>ERROR_ALREADY_EXISTS</> when there is an existing
|
|
segment. This led to postmaster startup failure due to believing that
|
|
the former was an unrecoverable error.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Don't try to share SSL contexts across multiple connections
|
|
in <application>libpq</> (Heikki Linnakangas)
|
|
</para>
|
|
|
|
<para>
|
|
This led to assorted corner-case bugs, particularly when trying to use
|
|
different SSL parameters for different connections.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Avoid corner-case memory leak in <application>libpq</> (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
The reported problem involved leaking an error report
|
|
during <function>PQreset()</>, but there might be related cases.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Make <application>ecpg</>'s <option>--help</> and <option>--version</>
|
|
options work consistently with our other executables (Haribabu Kommi)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <application>pgbench</>'s calculation of average latency
|
|
(Fabien Coelho)
|
|
</para>
|
|
|
|
<para>
|
|
The calculation was incorrect when there were <literal>\sleep</>
|
|
commands in the script, or when the test duration was specified in
|
|
number of transactions rather than total time.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
In <application>pg_dump</>, never dump range constructor functions
|
|
(Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This oversight led to <application>pg_upgrade</> failures with
|
|
extensions containing range types, due to duplicate creation of the
|
|
constructor functions.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
In <application>pg_xlogdump</>, retry opening new WAL segments when
|
|
using <option>--follow</> option (Magnus Hagander)
|
|
</para>
|
|
|
|
<para>
|
|
This allows for a possible delay in the server's creation of the next
|
|
segment.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <application>pg_xlogdump</> to cope with a WAL file that begins
|
|
with a continuation record spanning more than one page (Pavan
|
|
Deolasee)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <filename>contrib/pg_buffercache</> to work
|
|
when <varname>shared_buffers</> exceeds 256GB (KaiGai Kohei)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <filename>contrib/intarray/bench/bench.pl</> to print the results
|
|
of the <command>EXPLAIN</> it does when given the <option>-e</> option
|
|
(Daniel Gustafsson)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Install TAP test infrastructure so that it's available for extension
|
|
testing (Craig Ringer)
|
|
</para>
|
|
|
|
<para>
|
|
When <productname>PostgreSQL</> has been configured
|
|
with <option>--enable-tap-tests</>, <quote>make install</> will now
|
|
install the Perl support files for TAP testing where PGXS can find
|
|
them. This allows non-core extensions to
|
|
use <literal>$(prove_check)</> without extra tests.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
In MSVC builds, include <application>pg_recvlogical</> in a
|
|
client-only installation (MauMau)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Update Windows time zone mapping to recognize some time zone names
|
|
added in recent Windows versions (Michael Paquier)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Prevent failure of obsolete dynamic time zone abbreviations (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
If a dynamic time zone abbreviation does not match any entry in the
|
|
referenced time zone, treat it as equivalent to the time zone name.
|
|
This avoids unexpected failures when IANA removes abbreviations from
|
|
their time zone database, as they did in <application>tzdata</>
|
|
release 2016f and seem likely to do again in the future. The
|
|
consequences were not limited to not recognizing the individual
|
|
abbreviation; any mismatch caused
|
|
the <structname>pg_timezone_abbrevs</> view to fail altogether.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Update time zone data files to <application>tzdata</> release 2016h
|
|
for DST law changes in Palestine and Turkey, plus historical
|
|
corrections for Turkey and some regions of Russia.
|
|
Switch to numeric abbreviations for some time zones in Antarctica,
|
|
the former Soviet Union, and Sri Lanka.
|
|
</para>
|
|
|
|
<para>
|
|
The IANA time zone database previously provided textual abbreviations
|
|
for all time zones, sometimes making up abbreviations that have little
|
|
or no currency among the local population. They are in process of
|
|
reversing that policy in favor of using numeric UTC offsets in zones
|
|
where there is no evidence of real-world use of an English
|
|
abbreviation. At least for the time being, <productname>PostgreSQL</>
|
|
will continue to accept such removed abbreviations for timestamp input.
|
|
But they will not be shown in the <structname>pg_timezone_names</>
|
|
view nor used for output.
|
|
</para>
|
|
|
|
<para>
|
|
In this update, <literal>AMT</> is no longer shown as being in use to
|
|
mean Armenia Time. Therefore, we have changed the <literal>Default</>
|
|
abbreviation set to interpret it as Amazon Time, thus UTC-4 not UTC+4.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect2>
|
|
</sect1>
|
|
|
|
<sect1 id="release-9-4-9">
|
|
<title>Release 9.4.9</title>
|
|
|
|
<formalpara>
|
|
<title>Release date:</title>
|
|
<para>2016-08-11</para>
|
|
</formalpara>
|
|
|
|
<para>
|
|
This release contains a variety of fixes from 9.4.8.
|
|
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.9</title>
|
|
|
|
<para>
|
|
A dump/restore is not required for those running 9.4.X.
|
|
</para>
|
|
|
|
<para>
|
|
However, if you are upgrading from a version earlier than 9.4.6,
|
|
see <xref linkend="release-9-4-6">.
|
|
</para>
|
|
</sect2>
|
|
|
|
<sect2>
|
|
<title>Changes</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix possible mis-evaluation of
|
|
nested <literal>CASE</>-<literal>WHEN</> expressions (Heikki
|
|
Linnakangas, Michael Paquier, Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
A <literal>CASE</> expression appearing within the test value
|
|
subexpression of another <literal>CASE</> could become confused about
|
|
whether its own test value was null or not. Also, inlining of a SQL
|
|
function implementing the equality operator used by
|
|
a <literal>CASE</> expression could result in passing the wrong test
|
|
value to functions called within a <literal>CASE</> expression in the
|
|
SQL function's body. If the test values were of different data
|
|
types, a crash might result; moreover such situations could be abused
|
|
to allow disclosure of portions of server memory. (CVE-2016-5423)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix client programs' handling of special characters in database and
|
|
role names (Noah Misch, Nathan Bossart, Michael Paquier)
|
|
</para>
|
|
|
|
<para>
|
|
Numerous places in <application>vacuumdb</> and other client programs
|
|
could become confused by database and role names containing double
|
|
quotes or backslashes. Tighten up quoting rules to make that safe.
|
|
Also, ensure that when a conninfo string is used as a database name
|
|
parameter to these programs, it is correctly treated as such throughout.
|
|
</para>
|
|
|
|
<para>
|
|
Fix handling of paired double quotes
|
|
in <application>psql</>'s <command>\connect</>
|
|
and <command>\password</> commands to match the documentation.
|
|
</para>
|
|
|
|
<para>
|
|
Introduce a new <option>-reuse-previous</> option
|
|
in <application>psql</>'s <command>\connect</> command to allow
|
|
explicit control of whether to re-use connection parameters from a
|
|
previous connection. (Without this, the choice is based on whether
|
|
the database name looks like a conninfo string, as before.) This
|
|
allows secure handling of database names containing special
|
|
characters in <application>pg_dumpall</> scripts.
|
|
</para>
|
|
|
|
<para>
|
|
<application>pg_dumpall</> now refuses to deal with database and role
|
|
names containing carriage returns or newlines, as it seems impractical
|
|
to quote those characters safely on Windows. In future we may reject
|
|
such names on the server side, but that step has not been taken yet.
|
|
</para>
|
|
|
|
<para>
|
|
These are considered security fixes because crafted object names
|
|
containing special characters could have been used to execute
|
|
commands with superuser privileges the next time a superuser
|
|
executes <application>pg_dumpall</> or other routine maintenance
|
|
operations. (CVE-2016-5424)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix corner-case misbehaviors for <literal>IS NULL</>/<literal>IS NOT
|
|
NULL</> applied to nested composite values (Andrew Gierth, Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
The SQL standard specifies that <literal>IS NULL</> should return
|
|
TRUE for a row of all null values (thus <literal>ROW(NULL,NULL) IS
|
|
NULL</> yields TRUE), but this is not meant to apply recursively
|
|
(thus <literal>ROW(NULL, ROW(NULL,NULL)) IS NULL</> yields FALSE).
|
|
The core executor got this right, but certain planner optimizations
|
|
treated the test as recursive (thus producing TRUE in both cases),
|
|
and <filename>contrib/postgres_fdw</> could produce remote queries
|
|
that misbehaved similarly.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Make the <type>inet</> and <type>cidr</> data types properly reject
|
|
IPv6 addresses with too many colon-separated fields (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Prevent crash in <function>close_ps()</>
|
|
(the <type>point</> <literal>##</> <type>lseg</> operator)
|
|
for NaN input coordinates (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Make it return NULL instead of crashing.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Avoid possible crash in <function>pg_get_expr()</> when inconsistent
|
|
values are passed to it (Michael Paquier, Thomas Munro)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix several one-byte buffer over-reads in <function>to_number()</>
|
|
(Peter Eisentraut)
|
|
</para>
|
|
|
|
<para>
|
|
In several cases the <function>to_number()</> function would read one
|
|
more character than it should from the input string. There is a
|
|
small chance of a crash, if the input happens to be adjacent to the
|
|
end of memory.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Do not run the planner on the query contained in <literal>CREATE
|
|
MATERIALIZED VIEW</> or <literal>CREATE TABLE AS</>
|
|
when <literal>WITH NO DATA</> is specified (Michael Paquier,
|
|
Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This avoids some unnecessary failure conditions, for example if a
|
|
stable function invoked by the materialized view depends on a table
|
|
that doesn't exist yet.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Avoid unsafe intermediate state during expensive paths
|
|
through <function>heap_update()</> (Masahiko Sawada, Andres Freund)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, these cases locked the target tuple (by setting its XMAX)
|
|
but did not WAL-log that action, thus risking data integrity problems
|
|
if the page were spilled to disk and then a database crash occurred
|
|
before the tuple update could be completed.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix hint bit update during WAL replay of row locking operations
|
|
(Andres Freund)
|
|
</para>
|
|
|
|
<para>
|
|
The only known consequence of this problem is that row locks held by
|
|
a prepared, but uncommitted, transaction might fail to be enforced
|
|
after a crash and restart.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Avoid unnecessary <quote>could not serialize access</> errors when
|
|
acquiring <literal>FOR KEY SHARE</> row locks in serializable mode
|
|
(Álvaro Herrera)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Avoid crash in <literal>postgres -C</> when the specified variable
|
|
has a null string value (Michael Paquier)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix possible loss of large subtransactions in logical decoding
|
|
(Petru-Florin Mihancea)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix failure of logical decoding when a subtransaction contains no
|
|
actual changes (Marko Tiikkaja, Andrew Gierth)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Ensure that backends see up-to-date statistics for shared catalogs
|
|
(Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
The statistics collector failed to update the statistics file for
|
|
shared catalogs after a request from a regular backend. This problem
|
|
was partially masked because the autovacuum launcher regularly makes
|
|
requests that did cause such updates; however, it became obvious with
|
|
autovacuum disabled.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Avoid redundant writes of the statistics files when multiple
|
|
backends request updates close together (Tom Lane, Tomas Vondra)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Avoid consuming a transaction ID during <command>VACUUM</>
|
|
(Alexander Korotkov)
|
|
</para>
|
|
|
|
<para>
|
|
Some cases in <command>VACUUM</> unnecessarily caused an XID to be
|
|
assigned to the current transaction. Normally this is negligible,
|
|
but if one is up against the XID wraparound limit, consuming more
|
|
XIDs during anti-wraparound vacuums is a very bad thing.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
|
|
Branch: REL9_4_STABLE [7a0f09da7] 2016-05-25 19:39:49 -0400
|
|
Branch: REL9_3_STABLE [6537a48c5] 2016-05-25 19:39:49 -0400
|
|
Branch: REL9_2_STABLE [294509ea9] 2016-05-25 19:39:49 -0400
|
|
Branch: REL9_1_STABLE [de887cc8a] 2016-05-25 19:39:49 -0400
|
|
-->
|
|
<para>
|
|
Avoid canceling hot-standby queries during <command>VACUUM FREEZE</>
|
|
(Simon Riggs, Álvaro Herrera)
|
|
</para>
|
|
|
|
<para>
|
|
<command>VACUUM FREEZE</> on an otherwise-idle master server could
|
|
result in unnecessary cancellations of queries on its standby
|
|
servers.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Prevent possible failure when vacuuming multixact IDs in an
|
|
installation that has been pg_upgrade'd from pre-9.3 (Andrew Gierth,
|
|
Álvaro Herrera)
|
|
</para>
|
|
|
|
<para>
|
|
The usual symptom of this bug is errors
|
|
like <quote>MultiXactId <replaceable>NNN</> has not been created
|
|
yet -- apparent wraparound</quote>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
When a manual <command>ANALYZE</> specifies a column list, don't
|
|
reset the table's <literal>changes_since_analyze</> counter
|
|
(Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
If we're only analyzing some columns, we should not prevent routine
|
|
auto-analyze from happening for the other columns.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <command>ANALYZE</>'s overestimation of <literal>n_distinct</>
|
|
for a unique or nearly-unique column with many null entries (Tom
|
|
Lane)
|
|
</para>
|
|
|
|
<para>
|
|
The nulls could get counted as though they were themselves distinct
|
|
values, leading to serious planner misestimates in some types of
|
|
queries.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Prevent autovacuum from starting multiple workers for the same shared
|
|
catalog (Álvaro Herrera)
|
|
</para>
|
|
|
|
<para>
|
|
Normally this isn't much of a problem because the vacuum doesn't take
|
|
long anyway; but in the case of a severely bloated catalog, it could
|
|
result in all but one worker uselessly waiting instead of doing
|
|
useful work on other tables.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Avoid duplicate buffer lock release when abandoning a b-tree index
|
|
page deletion attempt (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This mistake prevented <command>VACUUM</> from completing in some
|
|
cases involving corrupt b-tree indexes.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Prevent infinite loop in GiST index build for geometric columns
|
|
containing NaN component values (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <filename>contrib/btree_gin</> to handle the smallest
|
|
possible <type>bigint</> value correctly (Peter Eisentraut)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Teach libpq to correctly decode server version from future servers
|
|
(Peter Eisentraut)
|
|
</para>
|
|
|
|
<para>
|
|
It's planned to switch to two-part instead of three-part server
|
|
version numbers for releases after 9.6. Make sure
|
|
that <function>PQserverVersion()</> returns the correct value for
|
|
such cases.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <application>ecpg</>'s code for <literal>unsigned long long</>
|
|
array elements (Michael Meskes)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
In <application>pg_dump</> with both <option>-c</> and <option>-C</>
|
|
options, avoid emitting an unwanted <literal>CREATE SCHEMA public</>
|
|
command (David Johnston, Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve handling of <systemitem>SIGTERM</>/control-C in
|
|
parallel <application>pg_dump</> and <application>pg_restore</> (Tom
|
|
Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Make sure that the worker processes will exit promptly, and also arrange
|
|
to send query-cancel requests to the connected backends, in case they
|
|
are doing something long-running such as a <command>CREATE INDEX</>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix error reporting in parallel <application>pg_dump</>
|
|
and <application>pg_restore</> (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, errors reported by <application>pg_dump</>
|
|
or <application>pg_restore</> worker processes might never make it to
|
|
the user's console, because the messages went through the master
|
|
process, and there were various deadlock scenarios that would prevent
|
|
the master process from passing on the messages. Instead, just print
|
|
everything to <literal>stderr</>. In some cases this will result in
|
|
duplicate messages (for instance, if all the workers report a server
|
|
shutdown), but that seems better than no message.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Ensure that parallel <application>pg_dump</>
|
|
or <application>pg_restore</> on Windows will shut down properly
|
|
after an error (Kyotaro Horiguchi)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, it would report the error, but then just sit until
|
|
manually stopped by the user.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Make <application>pg_dump</> behave better when built without zlib
|
|
support (Kyotaro Horiguchi)
|
|
</para>
|
|
|
|
<para>
|
|
It didn't work right for parallel dumps, and emitted some rather
|
|
pointless warnings in other cases.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Make <application>pg_basebackup</> accept <literal>-Z 0</> as
|
|
specifying no compression (Fujii Masao)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix makefiles' rule for building AIX shared libraries to be safe for
|
|
parallel make (Noah Misch)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix TAP tests and MSVC scripts to work when build directory's path
|
|
name contains spaces (Michael Paquier, Kyotaro Horiguchi)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Be more predictable about reporting <quote>statement timeout</>
|
|
versus <quote>lock timeout</> (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
On heavily loaded machines, the regression tests sometimes failed due
|
|
to reporting <quote>lock timeout</> even though the statement timeout
|
|
should have occurred first.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Make regression tests safe for Danish and Welsh locales (Jeff Janes,
|
|
Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Change some test data that triggered the unusual sorting rules of
|
|
these locales.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Update our copy of the timezone code to match
|
|
IANA's <application>tzcode</> release 2016c (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This is needed to cope with anticipated future changes in the time
|
|
zone data files. It also fixes some corner-case bugs in coping with
|
|
unusual time zones.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Update time zone data files to <application>tzdata</> release 2016f
|
|
for DST law changes in Kemerovo and Novosibirsk, plus historical
|
|
corrections for Azerbaijan, Belarus, and Morocco.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect2>
|
|
</sect1>
|
|
|
|
<sect1 id="release-9-4-8">
|
|
<title>Release 9.4.8</title>
|
|
|
|
<formalpara>
|
|
<title>Release date:</title>
|
|
<para>2016-05-12</para>
|
|
</formalpara>
|
|
|
|
<para>
|
|
This release contains a variety of fixes from 9.4.7.
|
|
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.8</title>
|
|
|
|
<para>
|
|
A dump/restore is not required for those running 9.4.X.
|
|
</para>
|
|
|
|
<para>
|
|
However, if you are upgrading from a version earlier than 9.4.6,
|
|
see <xref linkend="release-9-4-6">.
|
|
</para>
|
|
</sect2>
|
|
|
|
<sect2>
|
|
<title>Changes</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<para>
|
|
Clear the OpenSSL error queue before OpenSSL calls, rather than
|
|
assuming it's clear already; and make sure we leave it clear
|
|
afterwards (Peter Geoghegan, Dave Vitek, Peter Eisentraut)
|
|
</para>
|
|
|
|
<para>
|
|
This change prevents problems when there are multiple connections
|
|
using OpenSSL within a single process and not all the code involved
|
|
follows the same rules for when to clear the error queue.
|
|
Failures have been reported specifically when a client application
|
|
uses SSL connections in <application>libpq</> concurrently with
|
|
SSL connections using the PHP, Python, or Ruby wrappers for OpenSSL.
|
|
It's possible for similar problems to arise within the server as well,
|
|
if an extension module establishes an outgoing SSL connection.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <quote>failed to build any <replaceable>N</>-way joins</quote>
|
|
planner error with a full join enclosed in the right-hand side of a
|
|
left join (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix incorrect handling of equivalence-class tests in multilevel
|
|
nestloop plans (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Given a three-or-more-way equivalence class of variables, such
|
|
as <literal>X.X = Y.Y = Z.Z</>, it was possible for the planner to omit
|
|
some of the tests needed to enforce that all the variables are actually
|
|
equal, leading to join rows being output that didn't satisfy
|
|
the <literal>WHERE</> clauses. For various reasons, erroneous plans
|
|
were seldom selected in practice, so that this bug has gone undetected
|
|
for a long time.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix query-lifespan memory leak in GIN index scans (Julien Rouhaud)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix query-lifespan memory leak and potential index corruption hazard in
|
|
GIN index insertion (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
The memory leak would typically not amount to much in simple queries,
|
|
but it could be very substantial during a large GIN index build with
|
|
high <varname>maintenance_work_mem</>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix possible misbehavior of <literal>TH</>, <literal>th</>,
|
|
and <literal>Y,YYY</> format codes in <function>to_timestamp()</>
|
|
(Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
These could advance off the end of the input string, causing subsequent
|
|
format codes to read garbage.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix dumping of rules and views in which the <replaceable>array</>
|
|
argument of a <literal><replaceable>value</> <replaceable>operator</>
|
|
ANY (<replaceable>array</>)</literal> construct is a sub-SELECT
|
|
(Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Disallow newlines in <command>ALTER SYSTEM</> parameter values
|
|
(Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
The configuration-file parser doesn't support embedded newlines in
|
|
string literals, so we mustn't allow them in values to be inserted
|
|
by <command>ALTER SYSTEM</>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <command>ALTER TABLE ... REPLICA IDENTITY USING INDEX</> to
|
|
work properly if an index on OID is selected (David Rowley)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix crash in logical decoding on alignment-picky platforms (Tom Lane,
|
|
Andres Freund)
|
|
</para>
|
|
|
|
<para>
|
|
The failure occurred only with a transaction large enough to spill to
|
|
disk and a primary-key change within that transaction.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Avoid repeated requests for feedback from receiver while shutting down
|
|
walsender (Nick Cleaton)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Make <application>pg_regress</> use a startup timeout from the
|
|
<envar>PGCTLTIMEOUT</> environment variable, if that's set (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This is for consistency with a behavior recently added
|
|
to <application>pg_ctl</>; it eases automated testing on slow machines.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <application>pg_upgrade</> to correctly restore extension
|
|
membership for operator families containing only one operator class
|
|
(Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
In such a case, the operator family was restored into the new database,
|
|
but it was no longer marked as part of the extension. This had no
|
|
immediate ill effects, but would cause later <application>pg_dump</>
|
|
runs to emit output that would cause (harmless) errors on restore.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <application>pg_upgrade</> to not fail when new-cluster TOAST rules
|
|
differ from old (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
<application>pg_upgrade</> had special-case code to handle the
|
|
situation where the new <productname>PostgreSQL</> version thinks that
|
|
a table should have a TOAST table while the old version did not. That
|
|
code was broken, so remove it, and instead do nothing in such cases;
|
|
there seems no reason to believe that we can't get along fine without
|
|
a TOAST table if that was okay according to the old version's rules.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Reduce the number of SysV semaphores used by a build configured with
|
|
<option>--disable-spinlocks</> (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Rename internal function <function>strtoi()</>
|
|
to <function>strtoint()</> to avoid conflict with a NetBSD library
|
|
function (Thomas Munro)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix reporting of errors from <function>bind()</>
|
|
and <function>listen()</> system calls on Windows (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Reduce verbosity of compiler output when building with Microsoft Visual
|
|
Studio (Christian Ullrich)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <function>putenv()</> to work properly with Visual Studio 2013
|
|
(Michael Paquier)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Avoid possibly-unsafe use of Windows' <function>FormatMessage()</>
|
|
function (Christian Ullrich)
|
|
</para>
|
|
|
|
<para>
|
|
Use the <literal>FORMAT_MESSAGE_IGNORE_INSERTS</> flag where
|
|
appropriate. No live bug is known to exist here, but it seems like a
|
|
good idea to be careful.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Update time zone data files to <application>tzdata</> release 2016d
|
|
for DST law changes in Russia and Venezuela. There are new zone
|
|
names <literal>Europe/Kirov</> and <literal>Asia/Tomsk</> to reflect
|
|
the fact that these regions now have different time zone histories from
|
|
adjacent regions.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect2>
|
|
</sect1>
|
|
|
|
<sect1 id="release-9-4-7">
|
|
<title>Release 9.4.7</title>
|
|
|
|
<formalpara>
|
|
<title>Release date:</title>
|
|
<para>2016-03-31</para>
|
|
</formalpara>
|
|
|
|
<para>
|
|
This release contains a variety of fixes from 9.4.6.
|
|
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.7</title>
|
|
|
|
<para>
|
|
A dump/restore is not required for those running 9.4.X.
|
|
</para>
|
|
|
|
<para>
|
|
However, if you are upgrading from a version earlier than 9.4.6,
|
|
see <xref linkend="release-9-4-6">.
|
|
</para>
|
|
</sect2>
|
|
|
|
<sect2>
|
|
<title>Changes</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix incorrect handling of NULL index entries in
|
|
indexed <literal>ROW()</> comparisons (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
An index search using a row comparison such as <literal>ROW(a, b) >
|
|
ROW('x', 'y')</> would stop upon reaching a NULL entry in
|
|
the <structfield>b</> column, ignoring the fact that there might be
|
|
non-NULL <structfield>b</> values associated with later values
|
|
of <structfield>a</>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Avoid unlikely data-loss scenarios due to renaming files without
|
|
adequate <function>fsync()</> calls before and after (Michael Paquier,
|
|
Tomas Vondra, Andres Freund)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix bug in <function>json_to_record()</> when a field of its input
|
|
object contains a sub-object with a field name matching one of the
|
|
requested output column names (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix misformatting of negative time zone offsets
|
|
by <function>to_char()</>'s <literal>OF</> format code
|
|
(Thomas Munro, Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Ignore <xref linkend="recovery-min-apply-delay"> parameter until
|
|
recovery has reached a consistent state (Michael Paquier)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, standby servers would delay application of WAL records in
|
|
response to <varname>recovery_min_apply_delay</> even while replaying
|
|
the initial portion of WAL needed to make their database state valid.
|
|
Since the standby is useless until it's reached a consistent database
|
|
state, this was deemed unhelpful.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Correctly handle cases where <literal>pg_subtrans</> is close to XID
|
|
wraparound during server startup (Jeff Janes)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix assorted bugs in logical decoding (Andres Freund)
|
|
</para>
|
|
|
|
<para>
|
|
Trouble cases included tuples larger than one page when replica
|
|
identity is <literal>FULL</>, <command>UPDATE</>s that change a
|
|
primary key within a transaction large enough to be spooled to disk,
|
|
incorrect reports of <quote>subxact logged without previous toplevel
|
|
record</>, and incorrect reporting of a transaction's commit time.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix planner error with nested security barrier views when the outer
|
|
view has a <literal>WHERE</> clause containing a correlated subquery
|
|
(Dean Rasheed)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix corner-case crash due to trying to free <function>localeconv()</>
|
|
output strings more than once (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix parsing of affix files for <literal>ispell</> dictionaries
|
|
(Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
The code could go wrong if the affix file contained any characters
|
|
whose byte length changes during case-folding, for
|
|
example <literal>I</> in Turkish UTF8 locales.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Avoid use of <function>sscanf()</> to parse <literal>ispell</>
|
|
dictionary files (Artur Zakirov)
|
|
</para>
|
|
|
|
<para>
|
|
This dodges a portability problem on FreeBSD-derived platforms
|
|
(including macOS).
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Avoid a crash on old Windows versions (before 7SP1/2008R2SP1) with an
|
|
AVX2-capable CPU and a Postgres build done with Visual Studio 2013
|
|
(Christian Ullrich)
|
|
</para>
|
|
|
|
<para>
|
|
This is a workaround for a bug in Visual Studio 2013's runtime
|
|
library, which Microsoft have stated they will not fix in that
|
|
version.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <application>psql</>'s tab completion logic to handle multibyte
|
|
characters properly (Kyotaro Horiguchi, Robert Haas)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <application>psql</>'s tab completion for
|
|
<literal>SECURITY LABEL</> (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Pressing TAB after <literal>SECURITY LABEL</> might cause a crash
|
|
or offering of inappropriate keywords.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Make <application>pg_ctl</> accept a wait timeout from the
|
|
<envar>PGCTLTIMEOUT</> environment variable, if none is specified on
|
|
the command line (Noah Misch)
|
|
</para>
|
|
|
|
<para>
|
|
This eases testing of slower buildfarm members by allowing them
|
|
to globally specify a longer-than-normal timeout for postmaster
|
|
startup and shutdown.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix incorrect test for Windows service status
|
|
in <application>pg_ctl</> (Manuel Mathar)
|
|
</para>
|
|
|
|
<para>
|
|
The previous set of minor releases attempted to
|
|
fix <application>pg_ctl</> to properly determine whether to send log
|
|
messages to Window's Event Log, but got the test backwards.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <application>pgbench</> to correctly handle the combination
|
|
of <literal>-C</> and <literal>-M prepared</> options (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
In <application>pg_upgrade</>, skip creating a deletion script when
|
|
the new data directory is inside the old data directory (Bruce
|
|
Momjian)
|
|
</para>
|
|
|
|
<para>
|
|
Blind application of the script in such cases would result in loss of
|
|
the new data directory.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
In PL/Perl, properly translate empty Postgres arrays into empty Perl
|
|
arrays (Alex Hunsaker)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Make PL/Python cope with function names that aren't valid Python
|
|
identifiers (Jim Nasby)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix multiple mistakes in the statistics returned
|
|
by <filename>contrib/pgstattuple</>'s <function>pgstatindex()</>
|
|
function (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Remove dependency on <literal>psed</> in MSVC builds, since it's no
|
|
longer provided by core Perl (Michael Paquier, Andrew Dunstan)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Update time zone data files to <application>tzdata</> release 2016c
|
|
for DST law changes in Azerbaijan, Chile, Haiti, Palestine, and Russia
|
|
(Altai, Astrakhan, Kirov, Sakhalin, Ulyanovsk regions), plus
|
|
historical corrections for Lithuania, Moldova, and Russia
|
|
(Kaliningrad, Samara, Volgograd).
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect2>
|
|
</sect1>
|
|
|
|
<sect1 id="release-9-4-6">
|
|
<title>Release 9.4.6</title>
|
|
|
|
<formalpara>
|
|
<title>Release date:</title>
|
|
<para>2016-02-11</para>
|
|
</formalpara>
|
|
|
|
<para>
|
|
This release contains a variety of fixes from 9.4.5.
|
|
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.6</title>
|
|
|
|
<para>
|
|
A dump/restore is not required for those running 9.4.X.
|
|
</para>
|
|
|
|
<para>
|
|
However, if you are upgrading an installation that contains any GIN
|
|
indexes that use the (non-default) <literal>jsonb_path_ops</> operator
|
|
class, see the first changelog entry below.
|
|
</para>
|
|
|
|
<para>
|
|
Also, if you are upgrading from a version earlier than 9.4.4,
|
|
see <xref linkend="release-9-4-4">.
|
|
</para>
|
|
</sect2>
|
|
|
|
<sect2>
|
|
<title>Changes</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [b23af4587] 2015-11-05 18:15:48 -0500
|
|
Branch: REL9_5_STABLE Release: REL9_5_0 [4d867458f] 2015-11-05 18:15:48 -0500
|
|
Branch: REL9_4_STABLE [788e35ac0] 2015-11-05 18:15:48 -0500
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix inconsistent hash calculations in <literal>jsonb_path_ops</> GIN
|
|
indexes (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
When processing <type>jsonb</> values that contain both scalars and
|
|
sub-objects at the same nesting level, for example an array containing
|
|
both scalars and sub-arrays, key hash values could be calculated
|
|
differently than they would be for the same key in a different context.
|
|
This could result in queries not finding entries that they should find.
|
|
Fixing this means that existing indexes may now be inconsistent with the
|
|
new hash calculation code. Users
|
|
should <command>REINDEX</> <literal>jsonb_path_ops</> GIN indexes after
|
|
installing this update to make sure that all searches work as expected.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix infinite loops and buffer-overrun problems in regular expressions
|
|
(Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Very large character ranges in bracket expressions could cause
|
|
infinite loops in some cases, and memory overwrites in other cases.
|
|
(CVE-2016-0773)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [7e2a18a91] 2015-10-06 17:15:52 -0400
|
|
Branch: REL9_5_STABLE Release: REL9_5_0 [02580df6c] 2015-10-06 17:15:27 -0400
|
|
Branch: REL9_4_STABLE [3d701277f] 2015-10-06 17:15:27 -0400
|
|
Branch: REL9_3_STABLE [31bc563b9] 2015-10-06 17:15:27 -0400
|
|
Branch: REL9_2_STABLE [3d10f3970] 2015-10-06 17:15:27 -0400
|
|
Branch: REL9_1_STABLE [dea6da132] 2015-10-06 17:15:27 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Perform an immediate shutdown if the <filename>postmaster.pid</> file
|
|
is removed (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
The postmaster now checks every minute or so
|
|
that <filename>postmaster.pid</> is still there and still contains its
|
|
own PID. If not, it performs an immediate shutdown, as though it had
|
|
received <systemitem>SIGQUIT</>. The main motivation for this change
|
|
is to ensure that failed buildfarm runs will get cleaned up without
|
|
manual intervention; but it also serves to limit the bad effects if a
|
|
DBA forcibly removes <filename>postmaster.pid</> and then starts a new
|
|
postmaster.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Kevin Grittner <kgrittn@postgresql.org>
|
|
Branch: master [585e2a3b1] 2015-10-31 14:43:34 -0500
|
|
Branch: REL9_5_STABLE Release: REL9_5_0 [50ca917d9] 2015-10-31 14:42:46 -0500
|
|
Branch: REL9_4_STABLE [1d95617f7] 2015-10-31 14:45:15 -0500
|
|
Branch: REL9_3_STABLE [18479293c] 2015-10-31 14:46:57 -0500
|
|
Branch: REL9_2_STABLE [caff7fc3f] 2015-10-31 14:36:37 -0500
|
|
Branch: REL9_1_STABLE [08322daed] 2015-10-31 14:36:58 -0500
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
In <literal>SERIALIZABLE</> transaction isolation mode, serialization
|
|
anomalies could be missed due to race conditions during insertions
|
|
(Kevin Grittner, Thomas Munro)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Andres Freund <andres@anarazel.de>
|
|
Branch: master [f54d0629e] 2015-12-12 14:17:39 +0100
|
|
Branch: REL9_5_STABLE Release: REL9_5_0 [ada9c09ae] 2015-12-12 14:19:19 +0100
|
|
Branch: REL9_4_STABLE [d638aeef6] 2015-12-12 14:19:23 +0100
|
|
Branch: REL9_3_STABLE [9037bdc88] 2015-12-12 14:19:25 +0100
|
|
Branch: REL9_2_STABLE [a15ad6708] 2015-12-12 14:19:51 +0100
|
|
Branch: REL9_1_STABLE [5f9a86b35] 2015-12-12 14:19:29 +0100
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix failure to emit appropriate WAL records when doing <literal>ALTER
|
|
TABLE ... SET TABLESPACE</> for unlogged relations (Michael Paquier,
|
|
Andres Freund)
|
|
</para>
|
|
|
|
<para>
|
|
Even though the relation's data is unlogged, the move must be logged or
|
|
the relation will be inaccessible after a standby is promoted to master.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Andres Freund <andres@anarazel.de>
|
|
Branch: master [e3f4cfc7a] 2015-12-10 16:29:26 +0100
|
|
Branch: REL9_5_STABLE Release: REL9_5_0 [5b51805fe] 2015-12-10 16:39:25 +0100
|
|
Branch: REL9_4_STABLE [c6a67bbc7] 2015-12-10 16:29:26 +0100
|
|
Branch: REL9_3_STABLE [b19405a44] 2015-12-10 16:29:27 +0100
|
|
Branch: REL9_2_STABLE [2de281da2] 2015-12-10 16:29:27 +0100
|
|
Branch: REL9_1_STABLE [3199c13fc] 2015-12-10 16:29:27 +0100
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix possible misinitialization of unlogged relations at the end of
|
|
crash recovery (Andres Freund, Michael Paquier)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Magnus Hagander <magnus@hagander.net>
|
|
Branch: master [263c19572] 2015-12-13 16:46:56 +0100
|
|
Branch: REL9_5_STABLE Release: REL9_5_0 [a9c56ff0e] 2015-12-13 16:43:35 +0100
|
|
Branch: REL9_4_STABLE [61c7bee21] 2015-12-13 16:43:52 +0100
|
|
Branch: REL9_3_STABLE [a1fb84990] 2015-12-13 16:44:04 +0100
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Ensure walsender slots are fully re-initialized when being re-used
|
|
(Magnus Hagander)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [074c5cfbf] 2015-11-20 14:55:47 -0500
|
|
Branch: REL9_5_STABLE Release: REL9_5_0 [a35c5b7c1] 2015-11-20 14:55:28 -0500
|
|
Branch: REL9_4_STABLE [47ea4614e] 2015-11-20 14:55:28 -0500
|
|
Branch: REL9_3_STABLE [64349f1d2] 2015-11-20 14:55:29 -0500
|
|
Branch: REL9_2_STABLE [c49279dfd] 2015-11-20 14:55:29 -0500
|
|
Branch: REL9_1_STABLE [60ba32cb5] 2015-11-20 14:55:29 -0500
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <command>ALTER COLUMN TYPE</> to reconstruct inherited check
|
|
constraints properly (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
|
|
Branch: REL9_4_STABLE [d07afa42d] 2015-12-21 19:49:15 -0300
|
|
Branch: REL9_3_STABLE [bc72c3b3f] 2015-12-21 19:49:15 -0300
|
|
Branch: REL9_2_STABLE [f9643d0d6] 2015-12-21 19:49:15 -0300
|
|
Branch: REL9_1_STABLE [7e29e7f55] 2015-12-21 19:49:15 -0300
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <command>REASSIGN OWNED</> to change ownership of composite types
|
|
properly (Álvaro Herrera)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
|
|
Branch: REL9_4_STABLE [2c8ae6442] 2015-12-21 19:16:15 -0300
|
|
Branch: REL9_3_STABLE [62e6eba8d] 2015-12-21 19:16:15 -0300
|
|
Branch: REL9_2_STABLE [7af3dd540] 2015-12-21 19:16:15 -0300
|
|
Branch: REL9_1_STABLE [ab14c1383] 2015-12-21 19:16:15 -0300
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <command>REASSIGN OWNED</> and <command>ALTER OWNER</> to correctly
|
|
update granted-permissions lists when changing owners of data types,
|
|
foreign data wrappers, or foreign servers (Bruce Momjian,
|
|
Álvaro Herrera)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
|
|
Branch: master [8c1615531] 2015-12-11 18:39:09 -0300
|
|
Branch: REL9_5_STABLE Release: REL9_5_0 [31f88a12a] 2015-12-11 18:39:09 -0300
|
|
Branch: REL9_4_STABLE [1f8757ad8] 2015-12-11 18:39:09 -0300
|
|
Branch: REL9_3_STABLE [4626245bc] 2015-12-11 18:39:09 -0300
|
|
Branch: REL9_2_STABLE [629842a8e] 2015-12-11 18:39:09 -0300
|
|
Branch: REL9_1_STABLE [f44c5203b] 2015-12-11 18:39:09 -0300
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <command>REASSIGN OWNED</> to ignore foreign user mappings,
|
|
rather than fail (Álvaro Herrera)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Stephen Frost <sfrost@snowman.net>
|
|
Branch: master [6f8cb1e23] 2015-12-21 10:34:14 -0500
|
|
Branch: REL9_5_STABLE Release: REL9_5_0 [496943ec2] 2015-12-21 10:34:20 -0500
|
|
Branch: REL9_4_STABLE [f02137da8] 2015-12-21 10:34:23 -0500
|
|
Branch: REL9_3_STABLE [4271ed386] 2015-12-21 10:34:28 -0500
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix possible crash after doing query rewrite for an updatable view
|
|
(Stephen Frost)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [acfcd45ca] 2015-12-11 14:22:20 -0500
|
|
Branch: REL9_5_STABLE Release: REL9_5_0 [564c19e86] 2015-12-11 14:22:20 -0500
|
|
Branch: REL9_4_STABLE [7ad696066] 2015-12-11 14:22:20 -0500
|
|
Branch: REL9_3_STABLE [260590e6b] 2015-12-11 14:22:20 -0500
|
|
Branch: master [7e19db0c0] 2015-12-07 17:42:11 -0500
|
|
Branch: REL9_5_STABLE Release: REL9_5_0 [25517ee14] 2015-12-07 17:41:45 -0500
|
|
Branch: REL9_4_STABLE [0901d68ba] 2015-12-07 17:41:45 -0500
|
|
Branch: REL9_3_STABLE [0a34ff7e9] 2015-12-07 17:41:45 -0500
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix planner's handling of <literal>LATERAL</> references (Tom
|
|
Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This fixes some corner cases that led to <quote>failed to build any
|
|
N-way joins</> or <quote>could not devise a query plan</> planner
|
|
failures.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [3c93a60f6] 2016-01-01 13:42:21 -0500
|
|
Branch: REL9_5_STABLE Release: REL9_5_0 [d932391fd] 2016-01-01 13:42:30 -0500
|
|
Branch: REL9_4_STABLE [76eccf07b] 2016-01-01 13:42:35 -0500
|
|
Branch: REL9_3_STABLE [94114469f] 2016-01-01 13:42:39 -0500
|
|
Branch: REL9_2_STABLE [8e79b24c5] 2016-01-01 13:42:43 -0500
|
|
Branch: REL9_1_STABLE [60f8cc91d] 2016-01-01 13:42:48 -0500
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add more defenses against bad planner cost estimates for GIN index
|
|
scans when the index's internal statistics are very out-of-date
|
|
(Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [7fb008c5e] 2015-12-01 16:24:34 -0500
|
|
Branch: REL9_5_STABLE Release: REL9_5_0 [e9986a811] 2015-12-01 16:24:34 -0500
|
|
Branch: REL9_4_STABLE [ab14e0e4c] 2015-12-01 16:24:34 -0500
|
|
Branch: REL9_3_STABLE [52774e52d] 2015-12-01 16:24:34 -0500
|
|
Branch: REL9_2_STABLE [3d4bdd2f9] 2015-12-01 16:24:35 -0500
|
|
Branch: REL9_1_STABLE [7882143dc] 2015-12-01 16:24:35 -0500
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Make planner cope with hypothetical GIN indexes suggested by an index
|
|
advisor plug-in (Julien Rouhaud)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [8004953b5] 2015-11-16 13:45:17 -0500
|
|
Branch: REL9_5_STABLE Release: REL9_5_0 [34d4f49bb] 2015-11-16 13:45:17 -0500
|
|
Branch: REL9_4_STABLE [a6c4c07fc] 2015-11-16 13:45:17 -0500
|
|
Branch: REL9_3_STABLE [faf18a905] 2015-11-16 13:45:17 -0500
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Speed up generation of unique table aliases in <command>EXPLAIN</> and
|
|
rule dumping, and ensure that generated aliases do not
|
|
exceed <literal>NAMEDATALEN</> (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [7745bc352] 2015-11-15 14:41:09 -0500
|
|
Branch: REL9_5_STABLE Release: REL9_5_0 [0489a048d] 2015-11-15 14:41:09 -0500
|
|
Branch: REL9_4_STABLE [d33ab56b0] 2015-11-15 14:41:09 -0500
|
|
Branch: REL9_3_STABLE [7d0e87208] 2015-11-15 14:41:09 -0500
|
|
Branch: REL9_2_STABLE [ed824cf80] 2015-11-15 14:41:09 -0500
|
|
Branch: REL9_1_STABLE [7b21d1bca] 2015-11-15 14:41:09 -0500
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix dumping of whole-row Vars in <literal>ROW()</>
|
|
and <literal>VALUES()</> lists (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [d43554258] 2015-10-20 11:07:04 -0700
|
|
Branch: REL9_5_STABLE Release: REL9_5_0 [5fb20a5ba] 2015-10-20 11:07:05 -0700
|
|
Branch: REL9_4_STABLE [4f33572ee] 2015-10-20 11:06:24 -0700
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Translation of minus-infinity dates and timestamps to <type>json</>
|
|
or <type>jsonb</> incorrectly rendered them as plus-infinity (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [5f10b7a60] 2015-11-17 15:46:47 -0500
|
|
Branch: REL9_5_STABLE Release: REL9_5_0 [80be41979] 2015-11-17 15:46:54 -0500
|
|
Branch: REL9_4_STABLE [cc95595e0] 2015-11-17 15:46:59 -0500
|
|
Branch: REL9_3_STABLE [7df6dc405] 2015-11-17 15:47:03 -0500
|
|
Branch: REL9_2_STABLE [c47bdb372] 2015-11-17 15:47:08 -0500
|
|
Branch: REL9_1_STABLE [728a2ac21] 2015-11-17 15:47:12 -0500
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix possible internal overflow in <type>numeric</> division
|
|
(Dean Rasheed)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [a43b4ab11] 2015-11-07 12:43:24 -0500
|
|
Branch: REL9_5_STABLE Release: REL9_5_0 [44fc25153] 2015-11-07 12:43:24 -0500
|
|
Branch: REL9_4_STABLE [f69c01f2c] 2015-11-07 12:43:24 -0500
|
|
Branch: REL9_3_STABLE [8db652359] 2015-11-07 12:43:24 -0500
|
|
Branch: REL9_2_STABLE [bfb10db81] 2015-11-07 12:43:24 -0500
|
|
Branch: REL9_1_STABLE [03ee6591d] 2015-11-07 12:43:24 -0500
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix enforcement of restrictions inside parentheses within regular
|
|
expression lookahead constraints (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Lookahead constraints aren't allowed to contain backrefs, and
|
|
parentheses within them are always considered non-capturing, according
|
|
to the manual. However, the code failed to handle these cases properly
|
|
inside a parenthesized subexpression, and would give unexpected
|
|
results.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [9f1e642d5] 2015-10-19 13:54:53 -0700
|
|
Branch: REL9_5_STABLE Release: REL9_5_0 [43e36f8dd] 2015-10-19 13:54:53 -0700
|
|
Branch: REL9_4_STABLE [52f21c588] 2015-10-19 13:54:53 -0700
|
|
Branch: REL9_3_STABLE [e69d4756e] 2015-10-19 13:54:54 -0700
|
|
Branch: REL9_2_STABLE [05e62ff59] 2015-10-19 13:54:54 -0700
|
|
Branch: REL9_1_STABLE [0ce829caf] 2015-10-19 13:54:54 -0700
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Conversion of regular expressions to indexscan bounds could produce
|
|
incorrect bounds from regexps containing lookahead constraints
|
|
(Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [48789c5d2] 2015-10-16 15:55:58 -0400
|
|
Branch: REL9_5_STABLE Release: REL9_5_0 [0889e1857] 2015-10-16 15:56:00 -0400
|
|
Branch: REL9_4_STABLE [b6eb5fc40] 2015-10-16 14:14:41 -0400
|
|
Branch: REL9_3_STABLE [6e4dda796] 2015-10-16 14:14:41 -0400
|
|
Branch: REL9_2_STABLE [83c34825e] 2015-10-16 14:14:41 -0400
|
|
Branch: REL9_1_STABLE [d394f12c0] 2015-10-16 14:14:41 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix regular-expression compiler to handle loops of constraint arcs
|
|
(Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
The code added for CVE-2007-4772 was both incomplete, in that it didn't
|
|
handle loops involving more than one state, and incorrect, in that it
|
|
could cause assertion failures (though there seem to be no bad
|
|
consequences of that in a non-assert build). Multi-state loops would
|
|
cause the compiler to run until the query was canceled or it reached
|
|
the too-many-states error condition.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [538b3b8b3] 2015-10-16 15:55:59 -0400
|
|
Branch: REL9_5_STABLE Release: REL9_5_0 [e91cfdead] 2015-10-16 15:56:00 -0400
|
|
Branch: REL9_4_STABLE [0ecf4a9e5] 2015-10-16 15:36:17 -0400
|
|
Branch: REL9_3_STABLE [ad5e5a62a] 2015-10-16 15:36:17 -0400
|
|
Branch: REL9_2_STABLE [4e4610a8a] 2015-10-16 15:36:17 -0400
|
|
Branch: REL9_1_STABLE [b94c2b6a6] 2015-10-16 15:36:17 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve memory-usage accounting in regular-expression compiler
|
|
(Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This causes the code to emit <quote>regular expression is too
|
|
complex</> errors in some cases that previously used unreasonable
|
|
amounts of time and memory.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [6a7153661] 2015-10-16 15:55:59 -0400
|
|
Branch: REL9_5_STABLE Release: REL9_5_0 [1bb0fbca3] 2015-10-16 15:56:00 -0400
|
|
Branch: REL9_4_STABLE [9774fda86] 2015-10-16 15:11:49 -0400
|
|
Branch: REL9_3_STABLE [2a8d6e4d0] 2015-10-16 15:11:49 -0400
|
|
Branch: REL9_2_STABLE [a257b808a] 2015-10-16 15:11:49 -0400
|
|
Branch: REL9_1_STABLE [067f96fe3] 2015-10-16 15:11:49 -0400
|
|
Branch: master [f5b7d103b] 2015-10-16 15:55:59 -0400
|
|
Branch: REL9_5_STABLE Release: REL9_5_0 [e9cf3dc30] 2015-10-16 15:56:00 -0400
|
|
Branch: REL9_4_STABLE [8cf4eed0b] 2015-10-16 14:58:11 -0400
|
|
Branch: REL9_3_STABLE [677e64cb8] 2015-10-16 14:58:11 -0400
|
|
Branch: REL9_2_STABLE [18b032f8f] 2015-10-16 14:58:11 -0400
|
|
Branch: REL9_1_STABLE [5503e6e0f] 2015-10-16 14:58:11 -0400
|
|
Branch: master [579840ca0] 2015-10-16 15:55:59 -0400
|
|
Branch: REL9_5_STABLE Release: REL9_5_0 [cff9e0659] 2015-10-16 15:56:00 -0400
|
|
Branch: REL9_4_STABLE [bdde29e1c] 2015-10-16 14:43:18 -0400
|
|
Branch: REL9_3_STABLE [296241635] 2015-10-16 14:43:18 -0400
|
|
Branch: REL9_2_STABLE [a2ad467ae] 2015-10-16 14:43:18 -0400
|
|
Branch: REL9_1_STABLE [b00c79b5b] 2015-10-16 14:43:18 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve performance of regular-expression compiler (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Make <literal>%h</> and <literal>%r</> escapes
|
|
in <varname>log_line_prefix</> work for messages emitted due
|
|
to <varname>log_connections</> (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, <literal>%h</>/<literal>%r</> started to work just after a
|
|
new session had emitted the <quote>connection received</> log message;
|
|
now they work for that message too.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [869f693a3] 2015-10-13 11:21:33 -0400
|
|
Branch: REL9_5_STABLE Release: REL9_5_0 [39ac29394] 2015-10-13 11:21:33 -0400
|
|
Branch: REL9_4_STABLE [44a6e24fb] 2015-10-13 11:21:33 -0400
|
|
Branch: REL9_3_STABLE [bc6b03bb8] 2015-10-13 11:21:33 -0400
|
|
Branch: REL9_2_STABLE [39cd1bdb8] 2015-10-13 11:21:33 -0400
|
|
Branch: REL9_1_STABLE [b0d858359] 2015-10-13 11:21:33 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
On Windows, ensure the shared-memory mapping handle gets closed in
|
|
child processes that don't need it (Tom Lane, Amit Kapila)
|
|
</para>
|
|
|
|
<para>
|
|
This oversight resulted in failure to recover from crashes
|
|
whenever <varname>logging_collector</> is turned on.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: REL9_4_STABLE [add6d821b] 2016-01-04 17:41:33 -0500
|
|
Branch: REL9_3_STABLE [0f527f73b] 2016-01-04 17:41:33 -0500
|
|
Branch: REL9_2_STABLE [9b2eacba7] 2016-01-04 17:41:33 -0500
|
|
Branch: REL9_1_STABLE [d05103b77] 2016-01-04 17:41:33 -0500
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix possible failure to detect socket EOF in non-blocking mode on
|
|
Windows (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
It's not entirely clear whether this problem can happen in pre-9.5
|
|
branches, but if it did, the symptom would be that a walsender process
|
|
would wait indefinitely rather than noticing a loss of connection.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Avoid leaking a token handle during SSPI authentication
|
|
(Christian Ullrich)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [2ec477dc8] 2015-12-16 16:59:35 -0500
|
|
Branch: REL9_5_STABLE Release: REL9_5_0 [f1c152866] 2015-12-16 16:58:55 -0500
|
|
Branch: REL9_4_STABLE [e168dfef6] 2015-12-16 16:58:55 -0500
|
|
Branch: REL9_3_STABLE [9afe392dc] 2015-12-16 16:58:56 -0500
|
|
Branch: REL9_2_STABLE [bcce4a5e3] 2015-12-16 16:58:56 -0500
|
|
Branch: REL9_1_STABLE [03b138e90] 2015-12-16 16:58:56 -0500
|
|
Branch: master [aee7705be] 2015-12-17 16:55:23 -0500
|
|
Branch: REL9_5_STABLE Release: REL9_5_0 [5ec0aad01] 2015-12-17 16:55:33 -0500
|
|
Branch: REL9_4_STABLE [acb6c64f4] 2015-12-17 16:55:39 -0500
|
|
Branch: REL9_3_STABLE [09b7abc27] 2015-12-17 16:55:43 -0500
|
|
Branch: REL9_2_STABLE [b41777988] 2015-12-17 16:55:47 -0500
|
|
Branch: REL9_1_STABLE [db462a44e] 2015-12-17 16:55:51 -0500
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
In <application>psql</>, ensure that <application>libreadline</>'s idea
|
|
of the screen size is updated when the terminal window size changes
|
|
(Merlin Moncure)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, <application>libreadline</> did not notice if the window
|
|
was resized during query output, leading to strange behavior during
|
|
later input of multiline queries.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <application>psql</>'s <literal>\det</> command to interpret its
|
|
pattern argument the same way as other <literal>\d</> commands with
|
|
potentially schema-qualified patterns do (Reece Hart)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [c5ef8ce53] 2015-11-25 17:31:53 -0500
|
|
Branch: REL9_5_STABLE Release: REL9_5_0 [55a2cc844] 2015-11-25 17:31:53 -0500
|
|
Branch: REL9_4_STABLE [3d357b48f] 2015-11-25 17:31:53 -0500
|
|
Branch: REL9_3_STABLE [64b7079e5] 2015-11-25 17:31:53 -0500
|
|
Branch: REL9_2_STABLE [d44b4deaa] 2015-11-25 17:31:54 -0500
|
|
Branch: REL9_1_STABLE [6430a11fa] 2015-11-25 17:31:54 -0500
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Avoid possible crash in <application>psql</>'s <literal>\c</> command
|
|
when previous connection was via Unix socket and command specifies a
|
|
new hostname and same username (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [6bcce2580] 2015-10-12 18:30:36 -0400
|
|
Branch: REL9_5_STABLE Release: REL9_5_0 [a151a5c38] 2015-10-12 18:30:36 -0400
|
|
Branch: REL9_4_STABLE [57f54b5e4] 2015-10-12 18:30:36 -0400
|
|
Branch: REL9_3_STABLE [dfe572de0] 2015-10-12 18:30:37 -0400
|
|
Branch: REL9_2_STABLE [250108b6f] 2015-10-12 18:30:37 -0400
|
|
Branch: REL9_1_STABLE [c869a7d5b] 2015-10-12 18:30:37 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
In <literal>pg_ctl start -w</>, test child process status directly
|
|
rather than relying on heuristics (Tom Lane, Michael Paquier)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, <application>pg_ctl</> relied on an assumption that the new
|
|
postmaster would always create <filename>postmaster.pid</> within five
|
|
seconds. But that can fail on heavily-loaded systems,
|
|
causing <application>pg_ctl</> to report incorrectly that the
|
|
postmaster failed to start.
|
|
</para>
|
|
|
|
<para>
|
|
Except on Windows, this change also means that a <literal>pg_ctl start
|
|
-w</> done immediately after another such command will now reliably
|
|
fail, whereas previously it would report success if done within two
|
|
seconds of the first command.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Noah Misch <noah@leadboat.com>
|
|
Branch: master [fed19f312] 2015-11-08 17:28:53 -0500
|
|
Branch: REL9_5_STABLE Release: REL9_5_0 [bdb42bac3] 2015-11-08 17:29:47 -0500
|
|
Branch: REL9_4_STABLE [24379a45c] 2015-11-08 17:31:21 -0500
|
|
Branch: REL9_3_STABLE [34725292d] 2015-11-08 17:31:22 -0500
|
|
Branch: REL9_2_STABLE [99027350e] 2015-11-08 17:31:23 -0500
|
|
Branch: REL9_1_STABLE [87deb55a4] 2015-11-08 17:31:24 -0500
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
In <literal>pg_ctl start -w</>, don't attempt to use a wildcard listen
|
|
address to connect to the postmaster (Kondo Yuta)
|
|
</para>
|
|
|
|
<para>
|
|
On Windows, <application>pg_ctl</> would fail to detect postmaster
|
|
startup if <varname>listen_addresses</> is set to <literal>0.0.0.0</>
|
|
or <literal>::</>, because it would try to use that value verbatim as
|
|
the address to connect to, which doesn't work. Instead assume
|
|
that <literal>127.0.0.1</> or <literal>::1</>, respectively, is the
|
|
right thing to use.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
In <application>pg_ctl</> on Windows, check service status to decide
|
|
where to send output, rather than checking if standard output is a
|
|
terminal (Michael Paquier)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [00cdd8352] 2015-11-21 20:21:31 -0500
|
|
Branch: REL9_5_STABLE Release: REL9_5_0 [5f5e68b08] 2015-11-21 20:21:32 -0500
|
|
Branch: REL9_4_STABLE [7acad9546] 2015-11-21 20:22:39 -0500
|
|
Branch: REL9_3_STABLE [0e6185283] 2015-11-21 20:21:32 -0500
|
|
Branch: REL9_2_STABLE [b054ca031] 2015-11-21 20:21:32 -0500
|
|
Branch: REL9_1_STABLE [8f1559aa5] 2015-11-21 20:21:32 -0500
|
|
Branch: REL9_2_STABLE [05c9bc063] 2015-11-23 00:32:01 -0500
|
|
Branch: REL9_1_STABLE [6df62ef43] 2015-11-23 00:32:01 -0500
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
In <application>pg_dump</> and <application>pg_basebackup</>, adopt
|
|
the GNU convention for handling tar-archive members exceeding 8GB
|
|
(Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
The POSIX standard for <literal>tar</> file format does not allow
|
|
archive member files to exceed 8GB, but most modern implementations
|
|
of <application>tar</> support an extension that fixes that. Adopt
|
|
this extension so that <application>pg_dump</> with <option>-Ft</> no
|
|
longer fails on tables with more than 8GB of data, and so
|
|
that <application>pg_basebackup</> can handle files larger than 8GB.
|
|
In addition, fix some portability issues that could cause failures for
|
|
members between 4GB and 8GB on some platforms. Potentially these
|
|
problems could cause unrecoverable data loss due to unreadable backup
|
|
files.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix assorted corner-case bugs in <application>pg_dump</>'s processing
|
|
of extension member objects (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Make <application>pg_dump</> mark a view's triggers as needing to be
|
|
processed after its rule, to prevent possible failure during
|
|
parallel <application>pg_restore</> (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [c7e27becd] 2016-01-01 15:27:53 -0500
|
|
Branch: REL9_5_STABLE Release: REL9_5_0 [404c45bac] 2016-01-01 15:27:53 -0500
|
|
Branch: REL9_4_STABLE [f9b3b3fec] 2016-01-01 15:27:53 -0500
|
|
Branch: REL9_3_STABLE [babf38e88] 2016-01-01 15:27:53 -0500
|
|
Branch: REL9_2_STABLE [69cfe15b5] 2016-01-01 15:27:53 -0500
|
|
Branch: REL9_1_STABLE [85dbc46bd] 2016-01-01 15:27:53 -0500
|
|
Branch: master [b416c0bb6] 2016-01-02 19:04:45 -0500
|
|
Branch: REL9_5_STABLE Release: REL9_5_0 [b01828e97] 2016-01-02 19:04:45 -0500
|
|
Branch: REL9_4_STABLE [aab4b73bd] 2016-01-02 19:04:45 -0500
|
|
Branch: REL9_3_STABLE [6a0d63d35] 2016-01-02 19:04:45 -0500
|
|
Branch: REL9_2_STABLE [1eb515ad7] 2016-01-02 19:04:45 -0500
|
|
Branch: REL9_1_STABLE [e4959fb5c] 2016-01-02 19:04:45 -0500
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Ensure that relation option values are properly quoted
|
|
in <application>pg_dump</> (Kouhei Sutou, Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
A reloption value that isn't a simple identifier or number could lead
|
|
to dump/reload failures due to syntax errors in CREATE statements
|
|
issued by <application>pg_dump</>. This is not an issue with any
|
|
reloption currently supported by core <productname>PostgreSQL</>, but
|
|
extensions could allow reloptions that cause the problem.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [1aa41e3ea] 2015-12-23 14:25:53 -0500
|
|
Branch: REL9_5_STABLE Release: REL9_5_0 [a21994c1b] 2015-12-23 14:25:31 -0500
|
|
Branch: REL9_4_STABLE [f56802a2d] 2015-12-23 14:25:31 -0500
|
|
Branch: REL9_3_STABLE [534a4159c] 2015-12-23 14:25:31 -0500
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Avoid repeated password prompts during parallel <application>pg_dump</>
|
|
(Zeus Kronion)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Bruce Momjian <bruce@momjian.us>
|
|
Branch: master [025106e31] 2015-11-14 11:47:12 -0500
|
|
Branch: REL9_5_STABLE Release: REL9_5_0 [fae58d5be] 2015-11-14 11:47:11 -0500
|
|
Branch: REL9_4_STABLE [87cdfeb18] 2015-11-14 11:47:11 -0500
|
|
Branch: REL9_3_STABLE [a75efb483] 2015-11-14 11:47:11 -0500
|
|
Branch: REL9_2_STABLE [b4c4220ed] 2015-11-14 11:47:11 -0500
|
|
Branch: REL9_1_STABLE [bdcbc2b47] 2015-11-14 11:47:11 -0500
|
|
Branch: master [13b30c16f] 2015-11-24 17:18:28 -0500
|
|
Branch: REL9_5_STABLE Release: REL9_5_0 [b17dbf262] 2015-11-24 17:18:28 -0500
|
|
Branch: REL9_4_STABLE [f91c4e326] 2015-11-24 17:18:28 -0500
|
|
Branch: REL9_3_STABLE [6638c9aaf] 2015-11-24 17:18:27 -0500
|
|
Branch: REL9_2_STABLE [0ca3c51e5] 2015-11-24 17:18:27 -0500
|
|
Branch: REL9_1_STABLE [c36064e43] 2015-11-24 17:18:27 -0500
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <application>pg_upgrade</>'s file-copying code to handle errors
|
|
properly on Windows (Bruce Momjian)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Install guards in <application>pgbench</> against corner-case overflow
|
|
conditions during evaluation of script-specified division or modulo
|
|
operators (Fabien Coelho, Michael Paquier)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
|
|
Branch: master [fc995bfdb] 2015-12-28 10:50:35 -0300
|
|
Branch: REL9_5_STABLE Release: REL9_5_0 [c3e068b26] 2015-12-28 10:50:35 -0300
|
|
Branch: REL9_4_STABLE [f98bc20dd] 2015-12-28 10:50:35 -0300
|
|
Branch: REL9_3_STABLE [7533d5d35] 2015-12-28 10:50:35 -0300
|
|
Branch: REL9_2_STABLE [4fb9e6109] 2015-12-28 10:50:35 -0300
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix failure to localize messages emitted
|
|
by <application>pg_receivexlog</> and <application>pg_recvlogical</>
|
|
(Ioseph Kim)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Avoid dump/reload problems when using both <application>plpython2</>
|
|
and <application>plpython3</> (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
In principle, both versions of <application>PL/Python</> can be used in
|
|
the same database, though not in the same session (because the two
|
|
versions of <application>libpython</> cannot safely be used concurrently).
|
|
However, <application>pg_restore</> and <application>pg_upgrade</> both
|
|
do things that can fall foul of the same-session restriction. Work
|
|
around that by changing the timing of the check.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <application>PL/Python</> regression tests to pass with Python 3.5
|
|
(Peter Eisentraut)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [c40591885] 2015-11-12 13:03:52 -0500
|
|
Branch: REL9_5_STABLE Release: REL9_5_0 [747854f01] 2015-11-12 13:03:52 -0500
|
|
Branch: REL9_4_STABLE [40879a92b] 2015-11-12 13:03:52 -0500
|
|
Branch: REL9_3_STABLE [db6e8e162] 2015-11-12 13:03:53 -0500
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix premature clearing of <application>libpq</>'s input buffer when
|
|
socket EOF is seen (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This mistake caused <application>libpq</> to sometimes not report the
|
|
backend's final error message before reporting <quote>server closed the
|
|
connection unexpectedly</>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Prevent certain <application>PL/Java</> parameters from being set by
|
|
non-superusers (Noah Misch)
|
|
</para>
|
|
|
|
<para>
|
|
This change mitigates a <application>PL/Java</> security bug
|
|
(CVE-2016-0766), which was fixed in <application>PL/Java</> by marking
|
|
these parameters as superuser-only. To fix the security hazard for
|
|
sites that update <productname>PostgreSQL</> more frequently
|
|
than <application>PL/Java</>, make the core code aware of them also.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
|
|
Branch: master [7b96bf445] 2015-12-14 18:19:10 +0200
|
|
Branch: REL9_5_STABLE Release: REL9_5_0 [34d136f92] 2015-12-14 18:24:58 +0200
|
|
Branch: REL9_4_STABLE [affae5e98] 2015-12-14 18:40:51 +0200
|
|
Branch: REL9_3_STABLE [dee1ed54f] 2015-12-14 18:52:29 +0200
|
|
Branch: REL9_2_STABLE [1e23caae3] 2015-12-14 18:41:11 +0200
|
|
Branch: REL9_1_STABLE [4b58ded74] 2015-12-14 18:48:49 +0200
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve <application>libpq</>'s handling of out-of-memory situations
|
|
(Michael Paquier, Amit Kapila, Heikki Linnakangas)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Meskes <meskes@postgresql.org>
|
|
Branch: REL9_5_STABLE Release: REL9_5_0 [937261454] 2015-10-18 10:15:18 +0200
|
|
Branch: REL9_4_STABLE [a850d7136] 2015-10-18 10:16:36 +0200
|
|
Branch: REL9_3_STABLE [defd2ecf4] 2015-10-18 10:16:49 +0200
|
|
Branch: REL9_2_STABLE [8f67643be] 2015-10-18 10:17:01 +0200
|
|
Branch: REL9_1_STABLE [a9bcd8370] 2015-10-18 10:17:12 +0200
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix order of arguments
|
|
in <application>ecpg</>-generated <literal>typedef</> statements
|
|
(Michael Meskes)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [db4a5cfc7] 2015-12-01 11:42:25 -0500
|
|
Branch: REL9_5_STABLE Release: REL9_5_0 [c79bdc990] 2015-12-01 11:42:35 -0500
|
|
Branch: REL9_4_STABLE [346cc2f01] 2015-12-01 11:42:39 -0500
|
|
Branch: REL9_3_STABLE [3e6e98c5a] 2015-12-01 11:42:43 -0500
|
|
Branch: REL9_2_STABLE [74cf6defa] 2015-12-01 11:42:47 -0500
|
|
Branch: REL9_1_STABLE [84387496f] 2015-12-01 11:42:52 -0500
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Use <literal>%g</> not <literal>%f</> format
|
|
in <application>ecpg</>'s <function>PGTYPESnumeric_from_double()</>
|
|
(Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <application>ecpg</>-supplied header files to not contain comments
|
|
continued from a preprocessor directive line onto the next line
|
|
(Michael Meskes)
|
|
</para>
|
|
|
|
<para>
|
|
Such a comment is rejected by <application>ecpg</>. It's not yet clear
|
|
whether <application>ecpg</> itself should be changed.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <function>hstore_to_json_loose()</>'s test for whether
|
|
an <type>hstore</> value can be converted to a JSON number (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Previously this function could be fooled by non-alphanumeric trailing
|
|
characters, leading to emitting syntactically-invalid JSON.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
|
|
Branch: master [743229a67] 2015-12-27 13:03:19 -0300
|
|
Branch: REL9_5_STABLE Release: REL9_5_0 [c886c30cc] 2015-12-27 13:03:19 -0300
|
|
Branch: REL9_4_STABLE [0a29cf693] 2015-12-27 13:03:19 -0300
|
|
Branch: REL9_3_STABLE [0244677cf] 2015-12-27 13:03:19 -0300
|
|
Branch: REL9_2_STABLE [51dd54ba7] 2015-12-27 13:03:19 -0300
|
|
Branch: REL9_1_STABLE [1b6102eb7] 2015-12-27 13:03:19 -0300
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Ensure that <filename>contrib/pgcrypto</>'s <function>crypt()</>
|
|
function can be interrupted by query cancel (Andreas Karlsson)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
In <filename>contrib/postgres_fdw</>, fix bugs triggered by use
|
|
of <literal>tableoid</> in data-modifying commands (Etsuro Fujita,
|
|
Robert Haas)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [32f15d05c] 2015-11-18 17:45:05 -0500
|
|
Branch: REL9_5_STABLE Release: REL9_5_0 [659d47292] 2015-11-18 17:45:05 -0500
|
|
Branch: REL9_4_STABLE [d5bb7c6f6] 2015-11-18 17:45:05 -0500
|
|
Branch: REL9_3_STABLE [ae81d4fb1] 2015-11-18 17:45:05 -0500
|
|
Branch: REL9_2_STABLE [6e1d26f1f] 2015-11-18 17:45:06 -0500
|
|
Branch: REL9_1_STABLE [b4afc39f7] 2015-11-18 17:45:06 -0500
|
|
Branch: master [9c779c49e] 2015-12-10 10:19:13 -0500
|
|
Branch: REL9_5_STABLE Release: REL9_5_0 [2355faae0] 2015-12-10 10:19:18 -0500
|
|
Branch: REL9_4_STABLE [ee0df4d77] 2015-12-10 10:19:22 -0500
|
|
Branch: REL9_3_STABLE [b3e377a00] 2015-12-10 10:19:27 -0500
|
|
Branch: REL9_2_STABLE [7f94a5c10] 2015-12-10 10:19:31 -0500
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Accept <application>flex</> versions later than 2.5.x
|
|
(Tom Lane, Michael Paquier)
|
|
</para>
|
|
|
|
<para>
|
|
Now that flex 2.6.0 has been released, the version checks in our build
|
|
scripts needed to be adjusted.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve reproducibility of build output by ensuring filenames are given
|
|
to the linker in a fixed order (Christoph Berg)
|
|
</para>
|
|
|
|
<para>
|
|
This avoids possible bitwise differences in the produced executable
|
|
files from one build to the next.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [dccf8e9e6] 2015-12-11 16:15:05 -0500
|
|
Branch: REL9_5_STABLE Release: REL9_5_0 [6061aa8ed] 2015-12-11 16:15:06 -0500
|
|
Branch: REL9_4_STABLE [423697e3d] 2015-12-11 16:14:36 -0500
|
|
Branch: REL9_3_STABLE [1ebe75a2c] 2015-12-11 16:14:40 -0500
|
|
Branch: REL9_2_STABLE [98467b35d] 2015-12-11 16:14:44 -0500
|
|
Branch: REL9_1_STABLE [2a37a103b] 2015-12-11 16:14:48 -0500
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Install our <filename>missing</> script where PGXS builds can find it
|
|
(Jim Nasby)
|
|
</para>
|
|
|
|
<para>
|
|
This allows sane behavior in a PGXS build done on a machine where build
|
|
tools such as <application>bison</> are missing.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Ensure that <filename>dynloader.h</> is included in the installed
|
|
header files in MSVC builds (Bruce Momjian, Michael Paquier)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [085423e3e] 2015-12-11 19:09:04 -0500
|
|
Branch: REL9_5_STABLE Release: REL9_5_0 [ea7f7d8b3] 2015-12-11 19:08:40 -0500
|
|
Branch: REL9_4_STABLE [09824cd99] 2015-12-11 19:08:40 -0500
|
|
Branch: REL9_3_STABLE [fee485815] 2015-12-11 19:08:40 -0500
|
|
Branch: REL9_2_STABLE [f5eebea8d] 2015-12-11 19:08:40 -0500
|
|
Branch: REL9_1_STABLE [386dcd539] 2015-12-11 19:08:40 -0500
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add variant regression test expected-output file to match behavior of
|
|
current <application>libxml2</> (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
The fix for <application>libxml2</>'s CVE-2015-7499 causes it not to
|
|
output error context reports in some cases where it used to do so.
|
|
This seems to be a bug, but we'll probably have to live with it for
|
|
some time, so work around it.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Update time zone data files to <application>tzdata</> release 2016a for
|
|
DST law changes in Cayman Islands, Metlakatla, and Trans-Baikal
|
|
Territory (Zabaykalsky Krai), plus historical corrections for Pakistan.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect2>
|
|
</sect1>
|
|
|
|
<sect1 id="release-9-4-5">
|
|
<title>Release 9.4.5</title>
|
|
|
|
<formalpara>
|
|
<title>Release date:</title>
|
|
<para>2015-10-08</para>
|
|
</formalpara>
|
|
|
|
<para>
|
|
This release contains a variety of fixes from 9.4.4.
|
|
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.5</title>
|
|
|
|
<para>
|
|
A dump/restore is not required for those running 9.4.X.
|
|
</para>
|
|
|
|
<para>
|
|
However, if you are upgrading from a version earlier than 9.4.4,
|
|
see <xref linkend="release-9-4-4">.
|
|
</para>
|
|
</sect2>
|
|
|
|
<sect2>
|
|
<title>Changes</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<!--
|
|
Author: Noah Misch <noah@leadboat.com>
|
|
Branch: master [08fa47c48] 2015-10-05 10:06:29 -0400
|
|
Branch: REL9_5_STABLE [98f30d2e5] 2015-10-05 10:06:33 -0400
|
|
Branch: REL9_4_STABLE [16d58b5b5] 2015-10-05 10:06:34 -0400
|
|
Branch: REL9_3_STABLE [f8862172e] 2015-10-05 10:06:34 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Guard against stack overflows in <type>json</> parsing
|
|
(Oskari Saarenmaa)
|
|
</para>
|
|
|
|
<para>
|
|
If an application constructs PostgreSQL <type>json</>
|
|
or <type>jsonb</> values from arbitrary user input, the application's
|
|
users can reliably crash the PostgreSQL server, causing momentary
|
|
denial of service. (CVE-2015-5289)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Noah Misch <noah@leadboat.com>
|
|
Branch: master [1d812c8b0] 2015-10-05 10:06:29 -0400
|
|
Branch: REL9_5_STABLE [4d6752277] 2015-10-05 10:06:33 -0400
|
|
Branch: REL9_4_STABLE [4d95419e8] 2015-10-05 10:06:34 -0400
|
|
Branch: REL9_3_STABLE [cc1210f0a] 2015-10-05 10:06:34 -0400
|
|
Branch: REL9_2_STABLE [56232f987] 2015-10-05 10:06:35 -0400
|
|
Branch: REL9_1_STABLE [48f6310bc] 2015-10-05 10:06:35 -0400
|
|
Branch: REL9_0_STABLE [188e081ef] 2015-10-05 10:06:36 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <filename>contrib/pgcrypto</> to detect and report
|
|
too-short <function>crypt()</> salts (Josh Kupershmidt)
|
|
</para>
|
|
|
|
<para>
|
|
Certain invalid salt arguments crashed the server or disclosed a few
|
|
bytes of server memory. We have not ruled out the viability of
|
|
attacks that arrange for presence of confidential information in the
|
|
disclosed bytes, but they seem unlikely. (CVE-2015-5288)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [c5454f99c] 2015-09-04 13:37:14 -0400
|
|
Branch: REL9_5_STABLE [a2538da89] 2015-09-04 13:37:16 -0400
|
|
Branch: REL9_4_STABLE [37d10c524] 2015-09-04 13:37:17 -0400
|
|
Branch: REL9_3_STABLE [9e9b310d8] 2015-09-04 13:36:50 -0400
|
|
Branch: REL9_2_STABLE [39ebb6466] 2015-09-04 13:36:50 -0400
|
|
Branch: REL9_1_STABLE [dae1c9480] 2015-09-04 13:36:50 -0400
|
|
Branch: REL9_0_STABLE [81ee435c4] 2015-09-04 13:36:50 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix subtransaction cleanup after a portal (cursor) belonging to an
|
|
outer subtransaction fails (Tom Lane, Michael Paquier)
|
|
</para>
|
|
|
|
<para>
|
|
A function executed in an outer-subtransaction cursor could cause an
|
|
assertion failure or crash by referencing a relation created within an
|
|
inner subtransaction.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
|
|
Branch: master [358cde320] 2015-08-02 20:08:10 +0300
|
|
Branch: REL9_5_STABLE [54f23a45f] 2015-08-02 20:08:50 +0300
|
|
Branch: REL9_4_STABLE [bab959906] 2015-08-02 20:09:05 +0300
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix possible deadlock during WAL insertion
|
|
when <varname>commit_delay</> is set (Heikki Linnakangas)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Stephen Frost <sfrost@snowman.net>
|
|
Branch: master [c3e0ddd40] 2015-09-08 17:02:49 -0400
|
|
Branch: REL9_5_STABLE [9801bae21] 2015-09-08 17:02:53 -0400
|
|
Branch: REL9_4_STABLE [83d004904] 2015-09-08 17:02:56 -0400
|
|
Branch: REL9_3_STABLE [cb1b9b959] 2015-09-08 17:02:59 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Ensure all relations referred to by an updatable view are properly
|
|
locked during an update statement (Dean Rasheed)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master Release: REL9_5_BR [5d1ff6bd5] 2015-06-25 14:39:05 -0400
|
|
Branch: REL9_4_STABLE [e118555cf] 2015-06-25 14:39:05 -0400
|
|
Branch: REL9_3_STABLE [834aa56ea] 2015-06-25 14:39:05 -0400
|
|
Branch: REL9_2_STABLE [88fab18a4] 2015-06-25 14:39:05 -0400
|
|
Branch: REL9_1_STABLE [a9b7bf82f] 2015-06-25 14:39:06 -0400
|
|
Branch: REL9_0_STABLE [45c69178b] 2015-06-25 14:39:06 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix insertion of relations into the relation cache <quote>init file</>
|
|
(Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
An oversight in a patch in the most recent minor releases
|
|
caused <structname>pg_trigger_tgrelid_tgname_index</> to be omitted
|
|
from the init file. Subsequent sessions detected this, then deemed the
|
|
init file to be broken and silently ignored it, resulting in a
|
|
significant degradation in session startup time. In addition to fixing
|
|
the bug, install some guards so that any similar future mistake will be
|
|
more obvious.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [6e5d9f278] 2015-08-21 20:32:11 -0400
|
|
Branch: REL9_5_STABLE [68a14ca74] 2015-08-21 20:32:17 -0400
|
|
Branch: REL9_4_STABLE [fe939d950] 2015-08-21 20:32:26 -0400
|
|
Branch: REL9_3_STABLE [ea9892444] 2015-08-21 20:32:29 -0400
|
|
Branch: REL9_2_STABLE [d951d6065] 2015-08-21 20:32:33 -0400
|
|
Branch: REL9_1_STABLE [87b8c9e12] 2015-08-21 20:32:37 -0400
|
|
Branch: REL9_0_STABLE [7c57449fc] 2015-08-21 20:32:41 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Avoid O(N^2) behavior when inserting many tuples into a SPI query
|
|
result (Neil Conway)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [07e4d03fb] 2015-09-30 23:32:43 -0400
|
|
Branch: REL9_5_STABLE [8c8a834b1] 2015-09-30 23:32:23 -0400
|
|
Branch: REL9_4_STABLE [03f9b63e2] 2015-09-30 23:32:23 -0400
|
|
Branch: REL9_3_STABLE [aad86c518] 2015-09-30 23:32:23 -0400
|
|
Branch: REL9_2_STABLE [e4c00750a] 2015-09-30 23:32:23 -0400
|
|
Branch: REL9_1_STABLE [2bbe8a684] 2015-09-30 23:32:23 -0400
|
|
Branch: REL9_0_STABLE [2d4336cf8] 2015-09-30 23:32:23 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve <command>LISTEN</> startup time when there are many unread
|
|
notifications (Matt Newell)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [2abfd9d5e] 2015-09-25 13:16:30 -0400
|
|
Branch: REL9_5_STABLE [c9645f757] 2015-09-25 13:16:30 -0400
|
|
Branch: REL9_4_STABLE [67d0f7a37] 2015-09-25 13:16:30 -0400
|
|
Branch: REL9_3_STABLE [1bcc9e60a] 2015-09-25 13:16:31 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix performance problem when a session alters large numbers of foreign
|
|
key constraints (Jan Wieck, Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This was seen primarily when restoring <application>pg_dump</> output
|
|
for databases with many thousands of tables.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Andres Freund <andres@anarazel.de>
|
|
Branch: REL9_4_STABLE [ab6084782] 2015-07-28 22:06:31 +0200
|
|
Branch: REL9_3_STABLE [48d23c72d] 2015-07-28 22:06:31 +0200
|
|
Branch: REL9_2_STABLE [2f91e7bb5] 2015-07-28 22:06:31 +0200
|
|
Branch: REL9_1_STABLE [624a3c9be] 2015-07-28 22:06:32 +0200
|
|
Branch: REL9_0_STABLE [444b2ebee] 2015-07-28 22:06:32 +0200
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Disable SSL renegotiation by default (Michael Paquier, Andres Freund)
|
|
</para>
|
|
|
|
<para>
|
|
While use of SSL renegotiation is a good idea in theory, we have seen
|
|
too many bugs in practice, both in the underlying OpenSSL library and
|
|
in our usage of it. Renegotiation will be removed entirely in 9.5 and
|
|
later. In the older branches, just change the default value
|
|
of <varname>ssl_renegotiation_limit</> to zero (disabled).
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Andres Freund <andres@anarazel.de>
|
|
Branch: master [020235a57] 2015-09-24 14:53:32 +0200
|
|
Branch: REL9_5_STABLE [ef4fccd2b] 2015-09-24 14:53:33 +0200
|
|
Branch: REL9_4_STABLE [4ff753c91] 2015-09-24 14:53:33 +0200
|
|
Branch: REL9_3_STABLE [fee2275ae] 2015-09-24 14:53:33 +0200
|
|
Branch: REL9_2_STABLE [f12932dd4] 2015-09-24 14:53:33 +0200
|
|
Branch: REL9_1_STABLE [ff090bbb7] 2015-09-24 14:53:33 +0200
|
|
Branch: REL9_0_STABLE [078d471a9] 2015-09-24 14:53:33 +0200
|
|
Branch: master [2596d705b] 2015-10-05 11:53:43 +0200
|
|
Branch: REL9_5_STABLE [0577821b5] 2015-10-05 11:56:58 +0200
|
|
Branch: REL9_4_STABLE [13ac4c035] 2015-10-05 11:57:07 +0200
|
|
Branch: REL9_3_STABLE [393341714] 2015-10-05 11:57:11 +0200
|
|
Branch: REL9_2_STABLE [e07cfef34] 2015-10-05 11:57:15 +0200
|
|
Branch: REL9_1_STABLE [7116a3e98] 2015-10-05 11:57:20 +0200
|
|
Branch: REL9_0_STABLE [eeb0b7830] 2015-10-05 11:57:25 +0200
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Lower the minimum values of the <literal>*_freeze_max_age</> parameters
|
|
(Andres Freund)
|
|
</para>
|
|
|
|
<para>
|
|
This is mainly to make tests of related behavior less time-consuming,
|
|
but it may also be of value for installations with limited disk space.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Robert Haas <rhaas@postgresql.org>
|
|
Branch: master [369342cf7] 2015-08-04 12:58:54 -0400
|
|
Branch: REL9_5_STABLE [cd52e4a2b] 2015-08-04 13:05:43 -0400
|
|
Branch: REL9_4_STABLE [3a35ca5ad] 2015-08-04 13:05:48 -0400
|
|
Branch: REL9_3_STABLE [11ed4bab5] 2015-08-04 13:05:52 -0400
|
|
Branch: REL9_2_STABLE [5ef8e1114] 2015-08-04 13:05:58 -0400
|
|
Branch: REL9_1_STABLE [4e51ea8fd] 2015-08-04 13:06:03 -0400
|
|
Branch: REL9_0_STABLE [b09446ed7] 2015-08-04 13:12:03 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Limit the maximum value of <varname>wal_buffers</> to 2GB to avoid
|
|
server crashes (Josh Berkus)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: REL9_4_STABLE [1afc1fe9c] 2015-06-28 18:38:06 -0400
|
|
Branch: REL9_3_STABLE [5a56c2545] 2015-06-28 18:38:06 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Avoid logging complaints when a parameter that can only be set at
|
|
server start appears multiple times in <filename>postgresql.conf</>,
|
|
and fix counting of line numbers after an <literal>include_dir</>
|
|
directive (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [246693e5a] 2015-09-21 12:11:32 -0400
|
|
Branch: REL9_5_STABLE [3dfffac70] 2015-09-21 12:11:45 -0400
|
|
Branch: REL9_4_STABLE [fa9fc3a1b] 2015-09-21 12:11:49 -0400
|
|
Branch: REL9_3_STABLE [8b75e489a] 2015-09-21 12:11:58 -0400
|
|
Branch: REL9_2_STABLE [844486216] 2015-09-21 12:12:04 -0400
|
|
Branch: REL9_1_STABLE [5f79730ec] 2015-09-21 12:12:10 -0400
|
|
Branch: REL9_0_STABLE [a89781e34] 2015-09-21 12:12:16 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix rare internal overflow in multiplication of <type>numeric</> values
|
|
(Dean Rasheed)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Noah Misch <noah@leadboat.com>
|
|
Branch: master [30cb12881] 2015-10-05 10:06:29 -0400
|
|
Branch: REL9_5_STABLE [acf0da1e6] 2015-10-05 10:06:33 -0400
|
|
Branch: REL9_4_STABLE [a0c02ed5b] 2015-10-05 10:06:34 -0400
|
|
Branch: REL9_3_STABLE [9286ff78f] 2015-10-05 10:06:34 -0400
|
|
Branch: REL9_2_STABLE [5e43130b5] 2015-10-05 10:06:35 -0400
|
|
Branch: REL9_1_STABLE [9581e2699] 2015-10-05 10:06:35 -0400
|
|
Branch: REL9_0_STABLE [0398e071a] 2015-10-05 10:06:36 -0400
|
|
Branch: master [5976097c0] 2015-10-05 10:06:30 -0400
|
|
Branch: REL9_5_STABLE [7bed97d48] 2015-10-05 10:06:33 -0400
|
|
Branch: REL9_4_STABLE [bed3f6d03] 2015-10-05 10:06:34 -0400
|
|
Branch: REL9_3_STABLE [28dea9485] 2015-10-05 10:06:34 -0400
|
|
Branch: REL9_2_STABLE [ea68c221f] 2015-10-05 10:06:35 -0400
|
|
Branch: REL9_1_STABLE [879877b00] 2015-10-05 10:06:35 -0400
|
|
Branch: REL9_0_STABLE [682a25d41] 2015-10-05 10:06:36 -0400
|
|
Branch: REL9_2_STABLE [8dacb29ca] 2015-10-05 10:06:35 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Guard against hard-to-reach stack overflows involving record types,
|
|
range types, <type>json</>, <type>jsonb</>, <type>tsquery</>,
|
|
<type>ltxtquery</> and <type>query_int</> (Noah Misch)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Greg Stark <stark@mit.edu>
|
|
Branch: master [258ee1b63] 2015-09-06 03:35:56 +0100
|
|
Branch: REL9_5_STABLE [c11100d0f] 2015-09-06 04:05:46 +0100
|
|
Branch: REL9_4_STABLE [b17ce6208] 2015-09-06 03:56:59 +0100
|
|
Branch: REL9_3_STABLE [dd04d43bf] 2015-09-06 03:58:27 +0100
|
|
Branch: REL9_2_STABLE [f4afbe065] 2015-09-06 03:58:32 +0100
|
|
Branch: REL9_1_STABLE [07cef3eb8] 2015-09-06 04:02:57 +0100
|
|
Branch: REL9_0_STABLE [530d0c504] 2015-09-06 04:05:20 +0100
|
|
Branch: master [37239ef8c] 2015-09-07 20:41:29 +0100
|
|
Branch: REL9_5_STABLE [a12424028] 2015-09-07 20:47:41 +0100
|
|
Branch: REL9_4_STABLE [0198a8d82] 2015-09-07 20:47:37 +0100
|
|
Branch: REL9_3_STABLE [fde40e53f] 2015-09-07 20:47:33 +0100
|
|
Branch: REL9_2_STABLE [af9d9e59c] 2015-09-07 20:47:29 +0100
|
|
Branch: REL9_1_STABLE [0252d7777] 2015-09-07 20:47:19 +0100
|
|
Branch: REL9_0_STABLE [92d956f51] 2015-09-07 20:47:06 +0100
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix handling of <literal>DOW</> and <literal>DOY</> in datetime input
|
|
(Greg Stark)
|
|
</para>
|
|
|
|
<para>
|
|
These tokens aren't meant to be used in datetime values, but previously
|
|
they resulted in opaque internal error messages rather
|
|
than <quote>invalid input syntax</>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [9fe8fe9c9] 2015-10-02 13:45:39 -0400
|
|
Branch: REL9_5_STABLE [bb704a781] 2015-10-02 13:45:39 -0400
|
|
Branch: REL9_4_STABLE [109def032] 2015-10-02 13:45:39 -0400
|
|
Branch: REL9_3_STABLE [384ce1b75] 2015-10-02 13:45:39 -0400
|
|
Branch: REL9_2_STABLE [2d51f55ff] 2015-10-02 13:45:39 -0400
|
|
Branch: REL9_1_STABLE [da8ff2920] 2015-10-02 13:45:39 -0400
|
|
Branch: REL9_0_STABLE [d4f6488ec] 2015-10-02 13:45:39 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add more query-cancel checks to regular expression matching (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [b63fc2877] 2015-10-02 14:51:58 -0400
|
|
Branch: REL9_5_STABLE [20c627707] 2015-10-02 14:51:58 -0400
|
|
Branch: REL9_4_STABLE [c5e38b93c] 2015-10-02 14:51:58 -0400
|
|
Branch: REL9_3_STABLE [9ed207ae9] 2015-10-02 14:51:58 -0400
|
|
Branch: REL9_2_STABLE [a0c089f33] 2015-10-02 14:51:58 -0400
|
|
Branch: REL9_1_STABLE [e7de1bc09] 2015-10-02 14:51:59 -0400
|
|
Branch: REL9_0_STABLE [54b116d83] 2015-10-02 14:51:59 -0400
|
|
Branch: master [2e8cfcf4e] 2015-10-02 15:00:51 -0400
|
|
Branch: REL9_5_STABLE [bdc5d95b6] 2015-10-02 15:00:52 -0400
|
|
Branch: REL9_4_STABLE [bb1d97961] 2015-10-02 15:00:52 -0400
|
|
Branch: REL9_3_STABLE [4175cc604] 2015-10-02 15:00:52 -0400
|
|
Branch: REL9_2_STABLE [57bf7b548] 2015-10-02 15:00:52 -0400
|
|
Branch: REL9_1_STABLE [f80af0117] 2015-10-02 15:00:52 -0400
|
|
Branch: REL9_0_STABLE [b875ca09f] 2015-10-02 15:00:52 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add recursion depth protections to regular expression, <literal>SIMILAR
|
|
TO</>, and <literal>LIKE</> matching (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Suitable search patterns and a low stack depth limit could lead to
|
|
stack-overrun crashes.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [f2c4ffc33] 2015-10-02 14:26:36 -0400
|
|
Branch: REL9_5_STABLE [51f235931] 2015-10-02 14:26:36 -0400
|
|
Branch: REL9_4_STABLE [c0215b2cf] 2015-10-02 14:26:36 -0400
|
|
Branch: REL9_3_STABLE [6b3810d0a] 2015-10-02 14:26:36 -0400
|
|
Branch: REL9_2_STABLE [483bbc9fe] 2015-10-02 14:26:36 -0400
|
|
Branch: REL9_1_STABLE [630154955] 2015-10-02 14:26:36 -0400
|
|
Branch: REL9_0_STABLE [2a8878289] 2015-10-02 14:26:36 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix potential infinite loop in regular expression execution (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
A search pattern that can apparently match a zero-length string, but
|
|
actually doesn't match because of a back reference, could lead to an
|
|
infinite loop.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [f2c4ffc33] 2015-10-02 14:26:36 -0400
|
|
Branch: REL9_5_STABLE [51f235931] 2015-10-02 14:26:36 -0400
|
|
Branch: REL9_4_STABLE [c0215b2cf] 2015-10-02 14:26:36 -0400
|
|
Branch: REL9_3_STABLE [6b3810d0a] 2015-10-02 14:26:36 -0400
|
|
Branch: REL9_2_STABLE [483bbc9fe] 2015-10-02 14:26:36 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
In regular expression execution, correctly record match data for
|
|
capturing parentheses within a quantifier even when the match is
|
|
zero-length (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [8a0258c31] 2015-08-12 00:48:11 -0400
|
|
Branch: REL9_5_STABLE [c5bfcc18a] 2015-08-12 00:48:28 -0400
|
|
Branch: REL9_4_STABLE [a35a527f2] 2015-08-12 00:48:34 -0400
|
|
Branch: REL9_3_STABLE [a54875602] 2015-08-12 00:48:39 -0400
|
|
Branch: REL9_2_STABLE [234205a2e] 2015-08-12 00:48:44 -0400
|
|
Branch: REL9_1_STABLE [7a801ba8c] 2015-08-12 00:48:48 -0400
|
|
Branch: REL9_0_STABLE [7e23b63bd] 2015-08-12 00:48:54 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix low-memory failures in regular expression compilation
|
|
(Andreas Seltenreich)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [d9c0c728a] 2015-09-18 13:55:17 -0400
|
|
Branch: REL9_5_STABLE [a39331fa5] 2015-09-18 13:55:17 -0400
|
|
Branch: REL9_4_STABLE [f7d896ab9] 2015-09-18 13:55:17 -0400
|
|
Branch: REL9_3_STABLE [b84310808] 2015-09-18 13:55:17 -0400
|
|
Branch: REL9_2_STABLE [dc4e8c101] 2015-09-18 13:55:17 -0400
|
|
Branch: REL9_1_STABLE [28c396134] 2015-09-18 13:55:17 -0400
|
|
Branch: REL9_0_STABLE [ba9eb293f] 2015-09-18 13:55:17 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix low-probability memory leak during regular expression execution
|
|
(Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [ba51774d8] 2015-09-20 16:48:44 -0400
|
|
Branch: REL9_5_STABLE [3d3bc2905] 2015-09-20 16:48:44 -0400
|
|
Branch: REL9_4_STABLE [e32c5f118] 2015-09-20 16:48:44 -0400
|
|
Branch: REL9_3_STABLE [7e6e3bdd3] 2015-09-20 16:48:44 -0400
|
|
Branch: REL9_2_STABLE [ac0c71228] 2015-09-20 16:48:44 -0400
|
|
Branch: REL9_1_STABLE [553ce7e9a] 2015-09-20 16:48:44 -0400
|
|
Branch: REL9_0_STABLE [eed5bbc48] 2015-09-20 16:48:44 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix rare low-memory failure in lock cleanup during transaction abort
|
|
(Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [8ea3e7a75] 2015-08-04 18:18:46 -0400
|
|
Branch: REL9_5_STABLE [e2035dc9a] 2015-08-04 18:18:46 -0400
|
|
Branch: REL9_4_STABLE [118c9bb8d] 2015-08-04 18:18:46 -0400
|
|
Branch: REL9_3_STABLE [8bd45a394] 2015-08-04 18:18:46 -0400
|
|
Branch: REL9_2_STABLE [b6659a3b9] 2015-08-04 18:18:46 -0400
|
|
Branch: REL9_1_STABLE [9965aff1c] 2015-08-04 18:18:47 -0400
|
|
Branch: REL9_0_STABLE [bd327627f] 2015-08-04 18:18:47 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <quote>unexpected out-of-memory situation during sort</> errors
|
|
when using tuplestores with small <varname>work_mem</> settings (Tom
|
|
Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [9d6077abf] 2015-07-16 22:57:46 -0400
|
|
Branch: REL9_5_STABLE [fd415ffc9] 2015-07-16 22:57:46 -0400
|
|
Branch: REL9_4_STABLE [b8f368276] 2015-07-16 22:57:46 -0400
|
|
Branch: REL9_3_STABLE [730089d87] 2015-07-16 22:57:46 -0400
|
|
Branch: REL9_2_STABLE [15ca2b6cd] 2015-07-16 22:57:46 -0400
|
|
Branch: REL9_1_STABLE [faef3dc28] 2015-07-16 22:57:46 -0400
|
|
Branch: REL9_0_STABLE [36522d627] 2015-07-16 22:57:46 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix very-low-probability stack overrun in <function>qsort</> (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: REL9_4_STABLE [ff4cbc1ff] 2015-10-04 14:16:59 -0400
|
|
Branch: REL9_3_STABLE [45dd7cdba] 2015-10-04 14:17:14 -0400
|
|
Branch: REL9_2_STABLE [fd3e3cf50] 2015-10-04 14:17:20 -0400
|
|
Branch: REL9_1_STABLE [a8168fbcb] 2015-10-04 14:17:24 -0400
|
|
Branch: REL9_0_STABLE [2647b245d] 2015-10-04 14:17:28 -0400
|
|
Branch: master [f2fc98fb8] 2015-10-04 15:55:07 -0400
|
|
Branch: REL9_5_STABLE [e5c94c7bb] 2015-10-04 15:55:07 -0400
|
|
Branch: REL9_4_STABLE [4075fc4b9] 2015-10-04 15:55:07 -0400
|
|
Branch: REL9_3_STABLE [0867e0ad5] 2015-10-04 15:55:07 -0400
|
|
Branch: REL9_2_STABLE [ebc7d928a] 2015-10-04 15:55:07 -0400
|
|
Branch: REL9_1_STABLE [d84cc40e4] 2015-10-04 15:55:07 -0400
|
|
Branch: REL9_0_STABLE [d637a899c] 2015-10-04 15:55:07 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <quote>invalid memory alloc request size</> failure in hash joins
|
|
with large <varname>work_mem</> settings (Tomas Vondra, Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [8693ebe37] 2015-07-30 12:11:23 -0400
|
|
Branch: REL9_5_STABLE [e91a1643a] 2015-07-30 12:11:23 -0400
|
|
Branch: REL9_4_STABLE [3b4a9dbfa] 2015-07-30 12:11:23 -0400
|
|
Branch: REL9_3_STABLE [caae9f764] 2015-07-30 12:11:23 -0400
|
|
Branch: REL9_2_STABLE [c7d171251] 2015-07-30 12:11:23 -0400
|
|
Branch: REL9_1_STABLE [ea6e28649] 2015-07-30 12:11:23 -0400
|
|
Branch: REL9_0_STABLE [54833c5e7] 2015-07-30 12:11:23 -0400
|
|
Branch: master [a6492ff89] 2015-07-31 19:26:33 -0400
|
|
Branch: REL9_5_STABLE [edf26ed03] 2015-07-31 19:26:33 -0400
|
|
Branch: REL9_4_STABLE [216977a7d] 2015-07-31 19:26:33 -0400
|
|
Branch: REL9_3_STABLE [a4df781c9] 2015-07-31 19:26:33 -0400
|
|
Branch: master [f69b4b949] 2015-08-01 20:57:41 -0400
|
|
Branch: REL9_5_STABLE [7968238eb] 2015-08-01 20:57:41 -0400
|
|
Branch: REL9_4_STABLE [e39a3b2ef] 2015-08-01 20:57:41 -0400
|
|
Branch: REL9_3_STABLE [1044541dc] 2015-08-01 20:57:41 -0400
|
|
Branch: REL9_2_STABLE [44618f92b] 2015-08-01 20:57:41 -0400
|
|
Branch: REL9_1_STABLE [b9dfa07e8] 2015-08-01 20:57:41 -0400
|
|
Branch: REL9_0_STABLE [44679965f] 2015-08-01 20:57:41 -0400
|
|
Branch: master [85e5e222b] 2015-08-04 14:55:50 -0400
|
|
Branch: REL9_5_STABLE [a6f43986b] 2015-08-04 14:55:52 -0400
|
|
Branch: REL9_4_STABLE [b58e8caf0] 2015-08-04 14:55:53 -0400
|
|
Branch: REL9_3_STABLE [33afbdd02] 2015-08-04 14:55:54 -0400
|
|
Branch: REL9_2_STABLE [359016d2e] 2015-08-04 14:55:55 -0400
|
|
Branch: master [6af9ee4c8] 2015-08-05 14:39:29 -0400
|
|
Branch: REL9_5_STABLE [06663971b] 2015-08-05 14:39:07 -0400
|
|
Branch: REL9_4_STABLE [4d94b5f1f] 2015-08-05 14:39:07 -0400
|
|
Branch: REL9_3_STABLE [9bc4d5927] 2015-08-05 14:39:07 -0400
|
|
Branch: REL9_2_STABLE [08dee567e] 2015-08-05 14:39:07 -0400
|
|
Branch: REL9_1_STABLE [48d4f1e39] 2015-08-05 14:39:07 -0400
|
|
Branch: REL9_0_STABLE [c084f613e] 2015-08-05 14:39:07 -0400
|
|
Branch: master [8703059c6] 2015-08-06 15:35:46 -0400
|
|
Branch: REL9_5_STABLE [df3b0f47b] 2015-08-06 15:35:47 -0400
|
|
Branch: REL9_4_STABLE [7ef507ad7] 2015-08-06 15:35:48 -0400
|
|
Branch: REL9_3_STABLE [3e79144a8] 2015-08-06 15:35:27 -0400
|
|
Branch: REL9_2_STABLE [754ece936] 2015-08-06 15:35:27 -0400
|
|
Branch: REL9_1_STABLE [656b1e8cf] 2015-08-06 15:35:27 -0400
|
|
Branch: REL9_0_STABLE [d860ba43f] 2015-08-06 15:35:28 -0400
|
|
Branch: master [cde35cf4a] 2015-08-06 20:14:53 -0400
|
|
Branch: REL9_5_STABLE [a8725c2ba] 2015-08-06 20:14:54 -0400
|
|
Branch: REL9_4_STABLE [d31e79415] 2015-08-06 20:14:37 -0400
|
|
Branch: REL9_3_STABLE [0d4913509] 2015-08-06 20:14:37 -0400
|
|
Branch: master [bab163e12] 2015-08-06 22:14:27 -0400
|
|
Branch: REL9_5_STABLE [de0227d8a] 2015-08-06 22:14:28 -0400
|
|
Branch: REL9_4_STABLE [8c7bb0240] 2015-08-06 22:14:07 -0400
|
|
Branch: REL9_3_STABLE [de5edc660] 2015-08-06 22:14:07 -0400
|
|
Branch: master [89db83922] 2015-08-07 14:13:50 -0400
|
|
Branch: REL9_5_STABLE [085338822] 2015-08-07 14:13:51 -0400
|
|
Branch: REL9_4_STABLE [30b4ccdab] 2015-08-07 14:13:52 -0400
|
|
Branch: REL9_3_STABLE [868bfd1f3] 2015-08-07 14:13:39 -0400
|
|
Branch: master [4200a9286] 2015-08-10 17:18:17 -0400
|
|
Branch: REL9_5_STABLE [fda25b220] 2015-08-10 17:18:17 -0400
|
|
Branch: REL9_4_STABLE [7371ab74f] 2015-08-10 17:18:17 -0400
|
|
Branch: REL9_3_STABLE [f6d7a79f4] 2015-08-10 17:18:17 -0400
|
|
Branch: REL9_2_STABLE [54cea765c] 2015-08-10 17:18:17 -0400
|
|
Branch: master [cfe30a72f] 2015-08-12 21:19:03 -0400
|
|
Branch: REL9_5_STABLE [ec94bc147] 2015-08-12 21:19:04 -0400
|
|
Branch: REL9_4_STABLE [8cd3a7ada] 2015-08-12 21:19:05 -0400
|
|
Branch: REL9_3_STABLE [7950657a9] 2015-08-12 21:19:06 -0400
|
|
Branch: REL9_2_STABLE [866197d82] 2015-08-12 21:19:07 -0400
|
|
Branch: REL9_1_STABLE [4390ba7bf] 2015-08-12 21:19:09 -0400
|
|
Branch: REL9_0_STABLE [7b4b57fc4] 2015-08-12 21:19:10 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix assorted planner bugs (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
These mistakes could lead to incorrect query plans that would give wrong
|
|
answers, or to assertion failures in assert-enabled builds, or to odd
|
|
planner errors such as <quote>could not devise a query plan for the
|
|
given query</>, <quote>could not find pathkey item to
|
|
sort</>, <quote>plan should not reference subplan's variable</>,
|
|
or <quote>failed to assign all NestLoopParams to plan nodes</>.
|
|
Thanks are due to Andreas Seltenreich and Piotr Stefaniak for fuzz
|
|
testing that exposed these problems.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master Release: REL9_5_BR [2cb9ec1bc] 2015-06-22 18:53:27 -0400
|
|
Branch: REL9_4_STABLE [d8f9ab776] 2015-06-22 18:53:27 -0400
|
|
Branch: REL9_3_STABLE [673068588] 2015-06-22 18:53:27 -0400
|
|
Branch: REL9_2_STABLE [e538e510e] 2015-06-22 18:53:27 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve planner's performance for <command>UPDATE</>/<command>DELETE</>
|
|
on large inheritance sets (Tom Lane, Dean Rasheed)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Fujii Masao <fujii@postgresql.org>
|
|
Branch: master [96f6a0cb4] 2015-09-09 22:51:44 +0900
|
|
Branch: REL9_5_STABLE [65f37b3e9] 2015-09-09 22:52:28 +0900
|
|
Branch: REL9_4_STABLE [2244c0652] 2015-09-09 22:52:35 +0900
|
|
Branch: REL9_3_STABLE [47387732b] 2015-09-09 22:52:40 +0900
|
|
Branch: REL9_2_STABLE [67518a141] 2015-09-09 23:01:10 +0900
|
|
Branch: REL9_1_STABLE [60fe73b79] 2015-09-09 23:03:17 +0900
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Ensure standby promotion trigger files are removed at postmaster
|
|
startup (Michael Paquier, Fujii Masao)
|
|
</para>
|
|
|
|
<para>
|
|
This prevents unwanted promotion from occurring if these files appear
|
|
in a database backup that is used to initialize a new standby server.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [d73d14c27] 2015-08-02 14:55:03 -0400
|
|
Branch: REL9_5_STABLE [72697d2ba] 2015-08-02 14:55:04 -0400
|
|
Branch: REL9_4_STABLE [c6d901292] 2015-08-02 14:55:05 -0400
|
|
Branch: REL9_3_STABLE [fad824a88] 2015-08-02 14:54:44 -0400
|
|
Branch: REL9_2_STABLE [20d1878b6] 2015-08-02 14:54:44 -0400
|
|
Branch: REL9_1_STABLE [f1e84d3eb] 2015-08-02 14:54:44 -0400
|
|
Branch: REL9_0_STABLE [8b53c087d] 2015-08-02 14:54:44 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
During postmaster shutdown, ensure that per-socket lock files are
|
|
removed and listen sockets are closed before we remove
|
|
the <filename>postmaster.pid</> file (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This avoids race-condition failures if an external script attempts to
|
|
start a new postmaster as soon as <literal>pg_ctl stop</> returns.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master Release: REL9_5_BR [48913db88] 2015-06-19 14:23:39 -0400
|
|
Branch: REL9_4_STABLE [29722d79b] 2015-06-19 14:23:39 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Ensure that the postmaster does not exit until all its child processes
|
|
are gone, even in an immediate shutdown (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Like the previous item, this avoids possible race conditions against a
|
|
subsequently-started postmaster.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [45811be94] 2015-07-09 13:22:22 -0400
|
|
Branch: REL9_5_STABLE [193e02707] 2015-07-09 13:22:23 -0400
|
|
Branch: REL9_4_STABLE [0d01c5b93] 2015-07-09 13:22:23 -0400
|
|
Branch: REL9_3_STABLE [9c39d7ae0] 2015-07-09 13:22:23 -0400
|
|
Branch: REL9_2_STABLE [97122b8a8] 2015-07-09 13:22:23 -0400
|
|
Branch: REL9_1_STABLE [da1e7eb72] 2015-07-09 13:22:23 -0400
|
|
Branch: REL9_0_STABLE [6718f07a0] 2015-07-09 13:22:23 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix postmaster's handling of a startup-process crash during crash
|
|
recovery (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
If, during a crash recovery cycle, the startup process crashes without
|
|
having restored database consistency, we'd try to launch a new startup
|
|
process, which typically would just crash again, leading to an infinite
|
|
loop.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Andres Freund <andres@anarazel.de>
|
|
Branch: master Release: REL9_5_BR [667912aee] 2015-06-21 18:57:28 +0200
|
|
Branch: REL9_4_STABLE [ec1408155] 2015-06-21 19:00:30 +0200
|
|
Branch: REL9_3_STABLE [203193144] 2015-06-21 19:00:40 +0200
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Make emergency autovacuuming for multixact wraparound more robust
|
|
(Andres Freund)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [d8f15c95b] 2015-07-28 17:34:23 -0400
|
|
Branch: REL9_5_STABLE [116be6c17] 2015-07-28 17:34:00 -0400
|
|
Branch: REL9_4_STABLE [082d4283b] 2015-07-28 17:34:00 -0400
|
|
Branch: REL9_3_STABLE [47ee27521] 2015-07-28 17:34:00 -0400
|
|
Branch: REL9_2_STABLE [1a2f95630] 2015-07-28 17:34:00 -0400
|
|
Branch: REL9_1_STABLE [3f12041e7] 2015-07-28 17:34:00 -0400
|
|
Branch: REL9_0_STABLE [f527c0a2a] 2015-07-28 17:34:00 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Do not print a <literal>WARNING</> when an autovacuum worker is already
|
|
gone when we attempt to signal it, and reduce log verbosity for such
|
|
signals (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
|
|
Branch: master Release: REL9_5_BR [da1a9d0f5] 2015-06-19 12:44:36 -0300
|
|
Branch: REL9_4_STABLE [cf733760e] 2015-06-19 12:44:35 -0300
|
|
Branch: REL9_3_STABLE [5ac77a276] 2015-06-19 12:44:34 -0300
|
|
Branch: REL9_2_STABLE [41acde2df] 2015-06-19 12:44:34 -0300
|
|
Branch: REL9_1_STABLE [2fed5731a] 2015-06-19 12:44:33 -0300
|
|
Branch: REL9_0_STABLE [d68df5e40] 2015-06-19 12:44:33 -0300
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Prevent autovacuum launcher from sleeping unduly long if the server
|
|
clock is moved backwards a large amount (Álvaro Herrera)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Teodor Sigaev <teodor@sigaev.ru>
|
|
Branch: master [e26692248] 2015-09-07 17:16:29 +0300
|
|
Branch: REL9_5_STABLE [d592a8745] 2015-09-07 17:17:15 +0300
|
|
Branch: REL9_4_STABLE [b6e367373] 2015-09-07 17:17:42 +0300
|
|
Branch: REL9_3_STABLE [cd6f4248f] 2015-09-07 17:18:10 +0300
|
|
Branch: REL9_2_STABLE [3ffbc4994] 2015-09-07 17:18:26 +0300
|
|
Branch: REL9_1_STABLE [364c02357] 2015-09-07 17:18:45 +0300
|
|
Branch: REL9_0_STABLE [a7496aee6] 2015-09-07 17:20:44 +0300
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Ensure that cleanup of a GIN index's pending-insertions list is
|
|
interruptable by cancel requests (Jeff Janes)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
|
|
Branch: master [334445179] 2015-07-27 12:30:26 +0300
|
|
Branch: REL9_5_STABLE [202aea62a] 2015-07-27 12:31:05 +0300
|
|
Branch: REL9_4_STABLE [746e7f1c1] 2015-07-27 12:32:08 +0300
|
|
Branch: REL9_3_STABLE [bafe3b007] 2015-07-27 12:32:30 +0300
|
|
Branch: REL9_2_STABLE [7658368cf] 2015-07-27 12:32:48 +0300
|
|
Branch: REL9_1_STABLE [a471700e3] 2015-07-27 12:33:13 +0300
|
|
Branch: REL9_0_STABLE [f87bf8480] 2015-07-27 12:33:18 +0300
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow all-zeroes pages in GIN indexes to be reused (Heikki Linnakangas)
|
|
</para>
|
|
|
|
<para>
|
|
Such a page might be left behind after a crash.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
|
|
Branch: master [023430abf] 2015-07-27 12:28:21 +0300
|
|
Branch: REL9_5_STABLE [2fa8ba348] 2015-07-27 12:31:05 +0300
|
|
Branch: REL9_4_STABLE [579b9f97c] 2015-07-27 12:32:08 +0300
|
|
Branch: REL9_3_STABLE [863af3a37] 2015-07-27 12:32:30 +0300
|
|
Branch: REL9_2_STABLE [f4297f8c5] 2015-07-27 12:32:48 +0300
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix handling of all-zeroes pages in SP-GiST indexes (Heikki
|
|
Linnakangas)
|
|
</para>
|
|
|
|
<para>
|
|
<command>VACUUM</> attempted to recycle such pages, but did so in a
|
|
way that wasn't crash-safe.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
|
|
Branch: master [766dcfb16] 2015-07-23 01:29:59 +0300
|
|
Branch: REL9_5_STABLE [a9b3a22aa] 2015-07-23 01:30:07 +0300
|
|
Branch: REL9_4_STABLE [b7551339d] 2015-07-23 01:30:09 +0300
|
|
Branch: REL9_3_STABLE [6ae9a0218] 2015-07-23 01:30:11 +0300
|
|
Branch: REL9_2_STABLE [84330d0c1] 2015-07-23 01:30:15 +0300
|
|
Branch: REL9_1_STABLE [e54e17aca] 2015-07-23 01:30:17 +0300
|
|
Branch: REL9_0_STABLE [40ad78220] 2015-07-23 01:30:19 +0300
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix off-by-one error that led to otherwise-harmless warnings
|
|
about <quote>apparent wraparound</> in subtrans/multixact truncation
|
|
(Thomas Munro)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [2edb94911] 2015-08-18 19:22:37 -0400
|
|
Branch: REL9_5_STABLE [4c3754ffe] 2015-08-18 19:22:37 -0400
|
|
Branch: REL9_4_STABLE [928d0226e] 2015-08-18 19:22:38 -0400
|
|
Branch: REL9_3_STABLE [8992e1acd] 2015-08-18 19:22:38 -0400
|
|
Branch: REL9_2_STABLE [fb41bf4b5] 2015-08-18 19:22:38 -0400
|
|
Branch: REL9_1_STABLE [17aa3c2d1] 2015-08-18 19:22:38 -0400
|
|
Branch: REL9_0_STABLE [e41718fa1] 2015-08-18 19:22:38 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix misreporting of <command>CONTINUE</> and <command>MOVE</> statement
|
|
types in <application>PL/pgSQL</>'s error context messages
|
|
(Pavel Stehule, Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [b631a46ed] 2015-09-29 10:52:22 -0400
|
|
Branch: REL9_5_STABLE [a16b9b193] 2015-09-29 10:52:22 -0400
|
|
Branch: REL9_4_STABLE [b62c870ff] 2015-09-29 10:52:22 -0400
|
|
Branch: REL9_3_STABLE [f60b2e2d4] 2015-09-29 10:52:22 -0400
|
|
Branch: REL9_2_STABLE [aae40cf13] 2015-09-29 10:52:22 -0400
|
|
Branch: REL9_1_STABLE [ca6c2f863] 2015-09-29 10:52:22 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <application>PL/Perl</> to handle non-<acronym>ASCII</> error
|
|
message texts correctly (Alex Hunsaker)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [09b3d2725] 2015-08-21 11:19:33 -0400
|
|
Branch: REL9_5_STABLE [20bef3fe2] 2015-08-21 11:19:40 -0400
|
|
Branch: REL9_4_STABLE [f7ed465e0] 2015-08-21 11:19:44 -0400
|
|
Branch: REL9_3_STABLE [461235bda] 2015-08-21 11:19:49 -0400
|
|
Branch: REL9_2_STABLE [2f1d558bc] 2015-08-21 11:19:54 -0400
|
|
Branch: REL9_1_STABLE [f2ae044ba] 2015-08-21 11:19:58 -0400
|
|
Branch: master [f469f634a] 2015-08-21 12:21:37 -0400
|
|
Branch: REL9_5_STABLE [19446280f] 2015-08-21 12:21:37 -0400
|
|
Branch: REL9_4_STABLE [22b9ce798] 2015-08-21 12:21:37 -0400
|
|
Branch: REL9_3_STABLE [59592efcf] 2015-08-21 12:21:37 -0400
|
|
Branch: REL9_2_STABLE [dadef8af2] 2015-08-21 12:21:37 -0400
|
|
Branch: REL9_1_STABLE [1d190d095] 2015-08-21 12:21:37 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <application>PL/Python</> crash when returning the string
|
|
representation of a <type>record</> result (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
|
|
Branch: master [f8d67ca8d] 2015-07-20 14:10:07 +0200
|
|
Branch: REL9_5_STABLE [b0b6f8d71] 2015-07-20 14:18:08 +0200
|
|
Branch: REL9_4_STABLE [49c300040] 2015-07-20 14:18:08 +0200
|
|
Branch: REL9_3_STABLE [b2efbb71d] 2015-07-20 14:18:08 +0200
|
|
Branch: REL9_2_STABLE [3cb6ef998] 2015-07-20 14:18:08 +0200
|
|
Branch: REL9_1_STABLE [14ade020f] 2015-07-20 14:18:08 +0200
|
|
Branch: REL9_0_STABLE [4c11967e7] 2015-07-20 14:18:08 +0200
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix some places in <application>PL/Tcl</> that neglected to check for
|
|
failure of <function>malloc()</> calls (Michael Paquier, Álvaro
|
|
Herrera)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
|
|
Branch: master [cb3384a0c] 2015-08-02 22:12:33 +0300
|
|
Branch: REL9_5_STABLE [ea8385df6] 2015-08-02 22:12:38 +0300
|
|
Branch: REL9_4_STABLE [d7d4bd2c3] 2015-08-02 22:12:41 +0300
|
|
Branch: REL9_3_STABLE [9d04a9824] 2015-08-02 22:12:45 +0300
|
|
Branch: REL9_2_STABLE [56187c6fb] 2015-08-02 22:12:48 +0300
|
|
Branch: REL9_1_STABLE [2d19a0e97] 2015-08-02 22:12:51 +0300
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
In <filename>contrib/isn</>, fix output of ISBN-13 numbers that begin
|
|
with 979 (Fabien Coelho)
|
|
</para>
|
|
|
|
<para>
|
|
EANs beginning with 979 (but not 9790) are considered ISBNs, but they
|
|
must be printed in the new 13-digit format, not the 10-digit format.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [8bbe4cbd9] 2015-10-04 17:58:42 -0400
|
|
Branch: REL9_5_STABLE [39a716d93] 2015-10-04 17:58:30 -0400
|
|
Branch: REL9_4_STABLE [93840f96c] 2015-10-04 17:58:30 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve <filename>contrib/pg_stat_statements</>' handling of
|
|
query-text garbage collection (Peter Geoghegan)
|
|
</para>
|
|
|
|
<para>
|
|
The external file containing query texts could bloat to very large
|
|
sizes; once it got past 1GB attempts to trim it would fail, soon
|
|
leading to situations where the file could not be read at all.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [76f965ff1] 2015-09-24 12:47:29 -0400
|
|
Branch: REL9_5_STABLE [59d765b65] 2015-09-24 12:47:30 -0400
|
|
Branch: REL9_4_STABLE [0da864c53] 2015-09-24 12:47:30 -0400
|
|
Branch: REL9_3_STABLE [b7dcb2dd4] 2015-09-24 12:47:30 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve <filename>contrib/postgres_fdw</>'s handling of
|
|
collation-related decisions (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
The main user-visible effect is expected to be that comparisons
|
|
involving <type>varchar</> columns will be sent to the remote server
|
|
for execution in more cases than before.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
|
|
Branch: master [414bef30b] 2015-07-07 18:44:59 +0300
|
|
Branch: REL9_5_STABLE [28c38396e] 2015-07-07 18:47:25 +0300
|
|
Branch: REL9_4_STABLE [992c6f0d2] 2015-07-07 18:45:17 +0300
|
|
Branch: REL9_3_STABLE [fcdac5614] 2015-07-07 18:45:22 +0300
|
|
Branch: REL9_2_STABLE [6d88c1fc5] 2015-07-07 18:45:24 +0300
|
|
Branch: REL9_1_STABLE [dcbaf4b37] 2015-07-07 18:45:28 +0300
|
|
Branch: REL9_0_STABLE [2b189c7ec] 2015-07-07 18:45:31 +0300
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve <application>libpq</>'s handling of out-of-memory conditions
|
|
(Michael Paquier, Heikki Linnakangas)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Meskes <meskes@postgresql.org>
|
|
Branch: master Release: REL9_5_BR [82be1bf50] 2015-06-12 14:50:47 +0200
|
|
Branch: REL9_4_STABLE [70767ac26] 2015-06-13 11:05:06 +0200
|
|
Branch: REL9_3_STABLE [d65e5f832] 2015-06-13 11:08:16 +0200
|
|
Branch: REL9_2_STABLE [1ea539ae3] 2015-06-13 11:13:59 +0200
|
|
Branch: REL9_1_STABLE [866e7f591] 2015-06-13 11:15:09 +0200
|
|
Branch: REL9_0_STABLE [4678be617] 2015-06-13 11:18:31 +0200
|
|
Branch: master Release: REL9_5_BR [96ad72d1c] 2015-06-12 14:52:55 +0200
|
|
Branch: REL9_4_STABLE [4f60d6658] 2015-06-13 11:04:58 +0200
|
|
Branch: REL9_3_STABLE [31c06d4b6] 2015-06-13 11:13:16 +0200
|
|
Branch: REL9_2_STABLE [ec311b1d8] 2015-06-13 11:14:07 +0200
|
|
Branch: REL9_1_STABLE [a5238ced6] 2015-06-13 11:17:42 +0200
|
|
Branch: REL9_0_STABLE [235bd4ccb] 2015-06-13 11:20:31 +0200
|
|
Branch: master Release: REL9_5_BR [af0b49fc9] 2015-06-15 14:20:09 +0200
|
|
Branch: REL9_4_STABLE [853222ce0] 2015-06-15 14:22:18 +0200
|
|
Branch: REL9_3_STABLE [3e2a17eec] 2015-06-15 14:22:50 +0200
|
|
Branch: REL9_2_STABLE [fd1ff4a13] 2015-06-15 14:23:04 +0200
|
|
Branch: REL9_1_STABLE [a38f08bb9] 2015-06-15 14:23:17 +0200
|
|
Branch: REL9_0_STABLE [abf92840a] 2015-06-15 14:23:30 +0200
|
|
Branch: master Release: REL9_5_BR [94a484222] 2015-06-15 14:21:03 +0200
|
|
Branch: REL9_4_STABLE [2a781b5bb] 2015-06-15 14:22:24 +0200
|
|
Branch: REL9_3_STABLE [4130b2c1f] 2015-06-15 14:22:54 +0200
|
|
Branch: REL9_2_STABLE [711cbaadd] 2015-06-15 14:23:07 +0200
|
|
Branch: REL9_1_STABLE [6ab1a53dd] 2015-06-15 14:23:21 +0200
|
|
Branch: REL9_0_STABLE [d278ff3b2] 2015-06-15 14:27:39 +0200
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix memory leaks and missing out-of-memory checks
|
|
in <application>ecpg</> (Michael Paquier)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [4778a0bda] 2015-09-24 23:01:04 -0400
|
|
Branch: REL9_5_STABLE [f1ee153dc] 2015-09-24 23:01:04 -0400
|
|
Branch: REL9_4_STABLE [348dd2847] 2015-09-24 23:01:04 -0400
|
|
Branch: REL9_3_STABLE [7e327ecd2] 2015-09-24 23:01:04 -0400
|
|
Branch: REL9_2_STABLE [596c9e9ef] 2015-09-24 23:01:04 -0400
|
|
Branch: REL9_1_STABLE [7ddadacec] 2015-09-24 23:01:04 -0400
|
|
Branch: REL9_0_STABLE [c2d6ef14e] 2015-09-24 23:01:04 -0400
|
|
Branch: master [6325527d8] 2015-09-25 00:00:33 -0400
|
|
Branch: REL9_5_STABLE [da4af91ce] 2015-09-25 00:00:43 -0400
|
|
Branch: REL9_4_STABLE [49917edad] 2015-09-25 00:00:51 -0400
|
|
Branch: REL9_3_STABLE [9c547c939] 2015-09-25 00:00:58 -0400
|
|
Branch: REL9_2_STABLE [60617d7d6] 2015-09-25 00:01:08 -0400
|
|
Branch: REL9_1_STABLE [c48623d8d] 2015-09-25 00:01:14 -0400
|
|
Branch: REL9_0_STABLE [71763ecff] 2015-09-25 00:01:20 -0400
|
|
Branch: master [77130fc14] 2015-09-25 12:20:45 -0400
|
|
Branch: REL9_5_STABLE [5eb702437] 2015-09-25 12:20:45 -0400
|
|
Branch: REL9_4_STABLE [c961f401b] 2015-09-25 12:20:45 -0400
|
|
Branch: REL9_3_STABLE [b7d17eca5] 2015-09-25 12:20:46 -0400
|
|
Branch: REL9_2_STABLE [80fa54210] 2015-09-25 12:20:46 -0400
|
|
Branch: REL9_1_STABLE [f88643476] 2015-09-25 12:20:46 -0400
|
|
Branch: REL9_0_STABLE [98d8c75f9] 2015-09-25 12:20:46 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <application>psql</>'s code for locale-aware formatting of numeric
|
|
output (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
The formatting code invoked by <literal>\pset numericlocale on</>
|
|
did the wrong thing for some uncommon cases such as numbers with an
|
|
exponent but no decimal point. It could also mangle already-localized
|
|
output from the <type>money</> data type.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Noah Misch <noah@leadboat.com>
|
|
Branch: master [e135c3d99] 2015-07-08 20:44:21 -0400
|
|
Branch: REL9_5_STABLE [fb990ce6c] 2015-07-08 20:44:25 -0400
|
|
Branch: REL9_4_STABLE [eb1525e89] 2015-07-08 20:44:26 -0400
|
|
Branch: REL9_3_STABLE [49008d645] 2015-07-08 20:44:26 -0400
|
|
Branch: REL9_2_STABLE [458ccbf2b] 2015-07-08 20:44:27 -0400
|
|
Branch: REL9_1_STABLE [5f173a9f2] 2015-07-08 20:44:27 -0400
|
|
Branch: REL9_0_STABLE [6087bf1a1] 2015-07-08 20:44:27 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Prevent crash in <application>psql</>'s <command>\c</> command when
|
|
there is no current connection (Noah Misch)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [8ab4a6bd3] 2015-10-01 16:20:13 -0400
|
|
Branch: REL9_5_STABLE [5ea47e8f2] 2015-10-01 16:20:15 -0400
|
|
Branch: REL9_4_STABLE [35435af38] 2015-10-01 16:19:49 -0400
|
|
Branch: REL9_3_STABLE [7e1e1c9d1] 2015-10-01 16:19:49 -0400
|
|
Branch: REL9_2_STABLE [3756c65a0] 2015-10-01 16:19:49 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Make <application>pg_dump</> handle inherited <literal>NOT VALID</>
|
|
check constraints correctly (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Andrew Dunstan <andrew@dunslane.net>
|
|
Branch: master [caef94d59] 2015-07-25 17:14:36 -0400
|
|
Branch: REL9_5_STABLE [08012455c] 2015-07-25 17:15:32 -0400
|
|
Branch: REL9_4_STABLE [41ed5bb9a] 2015-07-25 17:15:48 -0400
|
|
Branch: REL9_3_STABLE [84bf6ece1] 2015-07-25 17:16:03 -0400
|
|
Branch: REL9_2_STABLE [aa1266d5f] 2015-07-25 17:16:14 -0400
|
|
Branch: REL9_1_STABLE [af225551e] 2015-07-25 17:16:39 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix selection of default <application>zlib</> compression level
|
|
in <application>pg_dump</>'s directory output format (Andrew Dunstan)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Noah Misch <noah@leadboat.com>
|
|
Branch: master [8346218c0] 2015-09-20 20:42:27 -0400
|
|
Branch: REL9_5_STABLE [1be9d65e1] 2015-09-20 20:42:44 -0400
|
|
Branch: REL9_4_STABLE [7496aba80] 2015-09-20 20:42:50 -0400
|
|
Branch: REL9_3_STABLE [ea218a2ba] 2015-09-20 20:42:55 -0400
|
|
Branch: REL9_2_STABLE [c94b65f67] 2015-09-20 20:43:47 -0400
|
|
Branch: REL9_1_STABLE [5dc49efe9] 2015-09-20 20:44:23 -0400
|
|
Branch: REL9_0_STABLE [24aed2124] 2015-09-20 20:44:34 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Ensure that temporary files created during a <application>pg_dump</>
|
|
run with <acronym>tar</>-format output are not world-readable (Michael
|
|
Paquier)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Bruce Momjian <bruce@momjian.us>
|
|
Branch: master [7f8d090b8] 2015-09-11 15:51:11 -0400
|
|
Branch: REL9_5_STABLE [3243fce88] 2015-09-11 15:51:11 -0400
|
|
Branch: REL9_4_STABLE [35d2fc1f2] 2015-09-11 15:51:11 -0400
|
|
Branch: REL9_3_STABLE [ca445043e] 2015-09-11 15:51:10 -0400
|
|
Branch: REL9_2_STABLE [befc63e84] 2015-09-11 15:51:10 -0400
|
|
Branch: REL9_1_STABLE [c5391e933] 2015-09-11 15:51:10 -0400
|
|
Branch: REL9_0_STABLE [52b07779d] 2015-09-11 15:51:10 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <application>pg_dump</> and <application>pg_upgrade</> to support
|
|
cases where the <literal>postgres</> or <literal>template1</> database
|
|
is in a non-default tablespace (Marti Raudsepp, Bruce Momjian)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [b861678f5] 2015-08-10 20:10:15 -0400
|
|
Branch: REL9_5_STABLE [1cd468516] 2015-08-10 20:10:15 -0400
|
|
Branch: REL9_4_STABLE [3352c23a6] 2015-08-10 20:10:16 -0400
|
|
Branch: REL9_3_STABLE [75d02d787] 2015-08-10 20:10:16 -0400
|
|
Branch: REL9_2_STABLE [be9ef396c] 2015-08-10 20:10:16 -0400
|
|
Branch: REL9_1_STABLE [34f1a85e5] 2015-08-10 20:10:16 -0400
|
|
Branch: REL9_0_STABLE [298d1f808] 2015-08-10 20:10:16 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <application>pg_dump</> to handle object privileges sanely when
|
|
dumping from a server too old to have a particular privilege type
|
|
(Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
When dumping data types from pre-9.2 servers, and when dumping
|
|
functions or procedural languages from pre-7.3
|
|
servers, <application>pg_dump</> would
|
|
produce <command>GRANT</>/<command>REVOKE</> commands that revoked the
|
|
owner's grantable privileges and instead granted all privileges
|
|
to <literal>PUBLIC</>. Since the privileges involved are
|
|
just <literal>USAGE</> and <literal>EXECUTE</>, this isn't a security
|
|
problem, but it's certainly a surprising representation of the older
|
|
systems' behavior. Fix it to leave the default privilege state alone
|
|
in these cases.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [3bdd7f90f] 2015-08-04 19:34:12 -0400
|
|
Branch: REL9_5_STABLE [1f507c7e9] 2015-08-04 19:34:12 -0400
|
|
Branch: REL9_4_STABLE [fa6e785fd] 2015-08-04 19:34:12 -0400
|
|
Branch: REL9_3_STABLE [5da713f31] 2015-08-04 19:34:12 -0400
|
|
Branch: REL9_2_STABLE [dae6e4601] 2015-08-04 19:34:12 -0400
|
|
Branch: REL9_1_STABLE [270a877cc] 2015-08-04 19:34:12 -0400
|
|
Branch: REL9_0_STABLE [5d175be17] 2015-08-04 19:34:12 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <application>pg_dump</> to dump shell types (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Shell types (that is, not-yet-fully-defined types) aren't useful for
|
|
much, but nonetheless <application>pg_dump</> should dump them.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [bcc87b6b0] 2015-07-12 16:26:08 -0400
|
|
Branch: REL9_5_STABLE [0e78a610f] 2015-07-12 16:26:18 -0400
|
|
Branch: REL9_4_STABLE [1ed549387] 2015-07-12 16:25:51 -0400
|
|
Branch: REL9_3_STABLE [faf686b54] 2015-07-12 16:25:52 -0400
|
|
Branch: REL9_2_STABLE [a24ceea4b] 2015-07-12 16:25:52 -0400
|
|
Branch: REL9_1_STABLE [e9a859b54] 2015-07-12 16:25:52 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix assorted minor memory leaks in <application>pg_dump</> and other
|
|
client-side programs (Michael Paquier)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
|
|
Branch: master [9031ff91a] 2015-07-03 11:12:34 +0300
|
|
Branch: REL9_5_STABLE [5174ca17a] 2015-07-03 11:15:55 +0300
|
|
Branch: REL9_4_STABLE [9d6352aaa] 2015-07-03 11:15:27 +0300
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <application>pgbench</>'s progress-report behavior when a query,
|
|
or <application>pgbench</> itself, gets stuck (Fabien Coelho)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: REL9_4_STABLE [747ca6697] 2015-08-29 16:34:30 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix spinlock assembly code for Alpha hardware (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [c41a1215f] 2015-08-29 16:09:25 -0400
|
|
Branch: REL9_5_STABLE [ffbc387bf] 2015-08-29 16:09:25 -0400
|
|
Branch: REL9_4_STABLE [3da9c060f] 2015-08-29 16:09:25 -0400
|
|
Branch: REL9_3_STABLE [c355df54e] 2015-08-29 16:09:25 -0400
|
|
Branch: REL9_2_STABLE [472680c57] 2015-08-29 16:09:25 -0400
|
|
Branch: REL9_1_STABLE [14b497cfb] 2015-08-29 16:09:25 -0400
|
|
Branch: REL9_0_STABLE [b5a22d8bb] 2015-08-29 16:09:25 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix spinlock assembly code for PPC hardware to be compatible
|
|
with <acronym>AIX</>'s native assembler (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Building with <application>gcc</> didn't work if <application>gcc</>
|
|
had been configured to use the native assembler, which is becoming more
|
|
common.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Noah Misch <noah@leadboat.com>
|
|
Branch: master [43d89a23d] 2015-07-17 03:01:14 -0400
|
|
Branch: REL9_5_STABLE [eb3b93b53] 2015-07-17 03:01:29 -0400
|
|
Branch: REL9_4_STABLE [f3f037e18] 2015-07-17 03:01:35 -0400
|
|
Branch: REL9_3_STABLE [7319c0524] 2015-07-17 03:02:03 -0400
|
|
Branch: REL9_2_STABLE [12073b9aa] 2015-07-17 03:02:18 -0400
|
|
Branch: REL9_1_STABLE [76fa354c5] 2015-07-17 03:02:23 -0400
|
|
Branch: REL9_0_STABLE [cdf596b1c] 2015-07-17 03:02:46 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
On <acronym>AIX</>, test the <literal>-qlonglong</> compiler option
|
|
rather than just assuming it's safe to use (Noah Misch)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Noah Misch <noah@leadboat.com>
|
|
Branch: master [bcd7c4120] 2015-07-15 21:00:26 -0400
|
|
Branch: REL9_5_STABLE [c2b824e34] 2015-07-15 21:00:30 -0400
|
|
Branch: REL9_4_STABLE [2405107b4] 2015-07-15 21:00:30 -0400
|
|
Branch: REL9_3_STABLE [dc5075fed] 2015-07-15 21:00:30 -0400
|
|
Branch: REL9_2_STABLE [690bec26c] 2015-07-15 21:00:31 -0400
|
|
Branch: REL9_1_STABLE [1dd2b6b68] 2015-07-15 21:00:31 -0400
|
|
Branch: REL9_0_STABLE [7803d5720] 2015-07-15 21:00:31 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
On <acronym>AIX</>, use <literal>-Wl,-brtllib</> link option to allow
|
|
symbols to be resolved at runtime (Noah Misch)
|
|
</para>
|
|
|
|
<para>
|
|
Perl relies on this ability in 5.8.0 and later.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Noah Misch <noah@leadboat.com>
|
|
Branch: master [c53f73879] 2015-07-29 22:49:48 -0400
|
|
Branch: REL9_5_STABLE [a664d4790] 2015-07-29 22:52:43 -0400
|
|
Branch: REL9_4_STABLE [76cf5f195] 2015-07-29 22:53:09 -0400
|
|
Branch: REL9_3_STABLE [23e7ee962] 2015-07-29 22:53:40 -0400
|
|
Branch: REL9_2_STABLE [0a89f3bc6] 2015-07-29 22:53:58 -0400
|
|
Branch: REL9_1_STABLE [d20327a4f] 2015-07-29 22:54:03 -0400
|
|
Branch: REL9_0_STABLE [2d8c136e7] 2015-07-29 22:54:08 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Avoid use of inline functions when compiling with
|
|
32-bit <application>xlc</>, due to compiler bugs (Noah Misch)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
|
|
Branch: master Release: REL9_5_BR [ab93f90cd] 2015-06-30 14:20:38 -0300
|
|
Branch: REL9_4_STABLE [ef704ec06] 2015-06-30 14:20:38 -0300
|
|
Branch: REL9_3_STABLE [c085e072f] 2015-06-30 14:20:38 -0300
|
|
Branch: REL9_2_STABLE [c538d7363] 2015-06-30 14:20:38 -0300
|
|
Branch: REL9_1_STABLE [a9f886f41] 2015-06-30 14:20:38 -0300
|
|
Branch: REL9_0_STABLE [b185c42c1] 2015-06-30 14:20:37 -0300
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Use <filename>librt</> for <function>sched_yield()</> when necessary,
|
|
which it is on some Solaris versions (Oskari Saarenmaa)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Noah Misch <noah@leadboat.com>
|
|
Branch: master [ec79978dd] 2015-08-14 20:23:13 -0400
|
|
Branch: REL9_5_STABLE [f19ad6fbe] 2015-08-14 20:23:35 -0400
|
|
Branch: REL9_4_STABLE [a0104e080] 2015-08-14 20:23:42 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Translate encoding <literal>UHC</> as Windows code page 949
|
|
(Noah Misch)
|
|
</para>
|
|
|
|
<para>
|
|
This fixes presentation of non-ASCII log messages from processes that
|
|
are not attached to any particular database, such as the postmaster.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Noah Misch <noah@leadboat.com>
|
|
Branch: master [43adc7a71] 2015-08-14 20:23:09 -0400
|
|
Branch: REL9_5_STABLE [92516bf19] 2015-08-14 20:23:34 -0400
|
|
Branch: REL9_4_STABLE [f988da953] 2015-08-14 20:23:41 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
On Windows, avoid failure when doing encoding conversion to UTF16
|
|
outside a transaction, such as for log messages (Noah Misch)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Noah Misch <noah@leadboat.com>
|
|
Branch: master Release: REL9_5_BR [f0a264a36] 2015-06-20 12:09:29 -0400
|
|
Branch: REL9_4_STABLE [b2ed1682d] 2015-06-20 12:10:56 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix postmaster startup failure due to not
|
|
copying <function>setlocale()</>'s return value (Noah Misch)
|
|
</para>
|
|
|
|
<para>
|
|
This has been reported on Windows systems with the ANSI code page set
|
|
to CP936 (<quote>Chinese (Simplified, PRC)</>), and may occur with
|
|
other multibyte code pages.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
|
|
Branch: master [6c534fd68] 2015-07-06 22:18:26 +0300
|
|
Branch: REL9_5_STABLE [e5460aa02] 2015-07-07 16:33:10 +0300
|
|
Branch: REL9_4_STABLE [4dac5651b] 2015-07-07 16:31:52 +0300
|
|
Branch: REL9_3_STABLE [880365a3c] 2015-07-07 16:37:16 +0300
|
|
Branch: REL9_2_STABLE [a5273ef37] 2015-07-07 16:37:34 +0300
|
|
Branch: REL9_1_STABLE [3b7cf4367] 2015-07-07 16:38:24 +0300
|
|
Branch: REL9_0_STABLE [341b877d3] 2015-07-07 16:39:25 +0300
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix Windows <filename>install.bat</> script to handle target directory
|
|
names that contain spaces (Heikki Linnakangas)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [a5d489ccb] 2015-07-02 17:24:36 -0400
|
|
Branch: REL9_5_STABLE [d1fec374f] 2015-07-05 12:01:01 -0400
|
|
Branch: REL9_4_STABLE [60c38e62c] 2015-07-05 12:01:01 -0400
|
|
Branch: REL9_3_STABLE [544e75814] 2015-07-05 12:01:01 -0400
|
|
Branch: REL9_2_STABLE [89b8cf47b] 2015-07-05 12:01:01 -0400
|
|
Branch: REL9_1_STABLE [9b00885d0] 2015-07-05 12:01:01 -0400
|
|
Branch: REL9_0_STABLE [29ff43adf] 2015-07-05 12:01:02 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Make the numeric form of the <productname>PostgreSQL</> version number
|
|
(e.g., <literal>90405</>) readily available to extension Makefiles,
|
|
as a variable named <varname>VERSION_NUM</> (Michael Paquier)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [241e6844a] 2015-10-02 19:15:39 -0400
|
|
Branch: REL9_5_STABLE [19b06cc66] 2015-10-02 19:15:49 -0400
|
|
Branch: REL9_4_STABLE [8e45497a2] 2015-10-02 19:15:57 -0400
|
|
Branch: REL9_3_STABLE [0f6a046b6] 2015-10-02 19:16:06 -0400
|
|
Branch: REL9_2_STABLE [fd519c170] 2015-10-02 19:16:18 -0400
|
|
Branch: REL9_1_STABLE [3a68e0a10] 2015-10-02 19:16:29 -0400
|
|
Branch: REL9_0_STABLE [47ac95f37] 2015-10-02 19:16:37 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Update time zone data files to <application>tzdata</> release 2015g for
|
|
DST law changes in Cayman Islands, Fiji, Moldova, Morocco, Norfolk
|
|
Island, North Korea, Turkey, and Uruguay. There is a new zone name
|
|
<literal>America/Fort_Nelson</> for the Canadian Northern Rockies.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect2>
|
|
</sect1>
|
|
|
|
<sect1 id="release-9-4-4">
|
|
<title>Release 9.4.4</title>
|
|
|
|
<formalpara>
|
|
<title>Release date:</title>
|
|
<para>2015-06-12</para>
|
|
</formalpara>
|
|
|
|
<para>
|
|
This release contains a small number of fixes from 9.4.3.
|
|
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.4</title>
|
|
|
|
<para>
|
|
A dump/restore is not required for those running 9.4.X.
|
|
</para>
|
|
|
|
<para>
|
|
However, if you are upgrading an installation that was previously
|
|
upgraded using a <application>pg_upgrade</> version between 9.3.0 and
|
|
9.3.4 inclusive, see the first changelog entry below.
|
|
</para>
|
|
|
|
<para>
|
|
Also, if you are upgrading from a version earlier than 9.4.2,
|
|
see <xref linkend="release-9-4-2">.
|
|
</para>
|
|
</sect2>
|
|
|
|
<sect2>
|
|
<title>Changes</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<!--
|
|
Author: Robert Haas <rhaas@postgresql.org>
|
|
Branch: master [068cfadf9] 2015-06-05 09:31:57 -0400
|
|
Branch: REL9_4_STABLE [b6a3444fa] 2015-06-05 09:33:52 -0400
|
|
Branch: REL9_3_STABLE [2a9b01928] 2015-06-05 09:34:15 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix possible failure to recover from an inconsistent database state
|
|
(Robert Haas)
|
|
</para>
|
|
|
|
<para>
|
|
Recent <productname>PostgreSQL</> releases introduced mechanisms to
|
|
protect against multixact wraparound, but some of that code did not
|
|
account for the possibility that it would need to run during crash
|
|
recovery, when the database may not be in a consistent state. This
|
|
could result in failure to restart after a crash, or failure to start
|
|
up a secondary server. The lingering effects of a previously-fixed
|
|
bug in <application>pg_upgrade</> could also cause such a failure, in
|
|
installations that had used <application>pg_upgrade</> versions
|
|
between 9.3.0 and 9.3.4.
|
|
</para>
|
|
|
|
<para>
|
|
The <application>pg_upgrade</> bug in question was that it would
|
|
set <literal>oldestMultiXid</> to 1 in <filename>pg_control</> even
|
|
if the true value should be higher. With the fixes introduced in
|
|
this release, such a situation will result in immediate emergency
|
|
autovacuuming until a correct <literal>oldestMultiXid</> value can
|
|
be determined. If that would pose a hardship, users can avoid it by
|
|
doing manual vacuuming <emphasis>before</> upgrading to this release.
|
|
In detail:
|
|
|
|
<orderedlist>
|
|
<listitem>
|
|
<para>
|
|
Check whether <application>pg_controldata</> reports <quote>Latest
|
|
checkpoint's oldestMultiXid</> to be 1. If not, there's nothing
|
|
to do.
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
Look in <filename>PGDATA/pg_multixact/offsets</> to see if there's a
|
|
file named <filename>0000</>. If there is, there's nothing to do.
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
Otherwise, for each table that has
|
|
<structname>pg_class</>.<structfield>relminmxid</> equal to 1,
|
|
<command>VACUUM</> that table with
|
|
both <xref linkend="guc-vacuum-multixact-freeze-min-age">
|
|
and <xref linkend="guc-vacuum-multixact-freeze-table-age"> set to
|
|
zero. (You can use the vacuum cost delay parameters described
|
|
in <xref linkend="runtime-config-resource-vacuum-cost"> to reduce
|
|
the performance consequences for concurrent sessions.)
|
|
</para>
|
|
</listitem>
|
|
</orderedlist>
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [f3b5565dd] 2015-06-07 15:32:09 -0400
|
|
Branch: REL9_4_STABLE [be25a08a9] 2015-06-07 15:32:09 -0400
|
|
Branch: REL9_3_STABLE [4f2458dd7] 2015-06-07 15:32:09 -0400
|
|
Branch: REL9_2_STABLE [3e69a73b9] 2015-06-07 15:32:09 -0400
|
|
Branch: REL9_1_STABLE [e06e56212] 2015-06-07 15:32:09 -0400
|
|
Branch: REL9_0_STABLE [2fe1939b0] 2015-06-07 15:32:09 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix rare failure to invalidate relation cache init file (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
With just the wrong timing of concurrent activity, a <command>VACUUM
|
|
FULL</> on a system catalog might fail to update the <quote>init file</>
|
|
that's used to avoid cache-loading work for new sessions. This would
|
|
result in later sessions being unable to access that catalog at all.
|
|
This is a very ancient bug, but it's so hard to trigger that no
|
|
reproducible case had been seen until recently.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [ac23b711d] 2015-06-05 13:22:27 -0400
|
|
Branch: REL9_4_STABLE [247263dc3] 2015-06-05 13:22:27 -0400
|
|
Branch: REL9_3_STABLE [ac86eda63] 2015-06-05 13:22:27 -0400
|
|
Branch: REL9_2_STABLE [04358dab2] 2015-06-05 13:22:27 -0400
|
|
Branch: REL9_1_STABLE [002e7d144] 2015-06-05 13:22:27 -0400
|
|
Branch: REL9_0_STABLE [dbd99c7f0] 2015-06-05 13:22:27 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Avoid deadlock between incoming sessions and <literal>CREATE/DROP
|
|
DATABASE</> (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
A new session starting in a database that is the target of
|
|
a <command>DROP DATABASE</> command, or is the template for
|
|
a <command>CREATE DATABASE</> command, could cause the command to wait
|
|
for five seconds and then fail, even if the new session would have
|
|
exited before that.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [3f59be836] 2015-06-03 11:59:10 -0400
|
|
Branch: REL9_4_STABLE [f0a8515c4] 2015-06-03 11:58:47 -0400
|
|
Branch: REL9_3_STABLE [d3fdec6ae] 2015-06-03 11:58:47 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve planner's cost estimates for semi-joins and anti-joins with
|
|
inner indexscans (Tom Lane, Tomas Vondra)
|
|
</para>
|
|
|
|
<para>
|
|
This type of plan is quite cheap when all the join clauses are used
|
|
as index scan conditions, even if the inner scan would nominally
|
|
fetch many rows, because the executor will stop after obtaining one
|
|
row. The planner only partially accounted for that effect, and would
|
|
therefore overestimate the cost, leading it to possibly choose some
|
|
other much less efficient plan type.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect2>
|
|
</sect1>
|
|
|
|
<sect1 id="release-9-4-3">
|
|
<title>Release 9.4.3</title>
|
|
|
|
<formalpara>
|
|
<title>Release date:</title>
|
|
<para>2015-06-04</para>
|
|
</formalpara>
|
|
|
|
<para>
|
|
This release contains a small number of fixes from 9.4.2.
|
|
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.3</title>
|
|
|
|
<para>
|
|
A dump/restore is not required for those running 9.4.X.
|
|
</para>
|
|
|
|
<para>
|
|
However, if you are upgrading from a version earlier than 9.4.2,
|
|
see <xref linkend="release-9-4-2">.
|
|
</para>
|
|
</sect2>
|
|
|
|
<sect2>
|
|
<title>Changes</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [d8179b001] 2015-05-28 17:33:03 -0400
|
|
Branch: REL9_4_STABLE [a3ae3db43] 2015-05-28 17:33:03 -0400
|
|
Branch: REL9_3_STABLE [81f3d3b7c] 2015-05-28 17:33:03 -0400
|
|
Branch: REL9_2_STABLE [aa8377e64] 2015-05-28 17:33:03 -0400
|
|
Branch: REL9_1_STABLE [cb867853a] 2015-05-28 17:33:03 -0400
|
|
Branch: REL9_0_STABLE [e4a04e5a4] 2015-05-28 17:33:03 -0400
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [c07d8c963] 2015-05-29 13:05:16 -0400
|
|
Branch: REL9_4_STABLE [dbde225b1] 2015-05-29 13:05:16 -0400
|
|
Branch: REL9_3_STABLE [52fc94844] 2015-05-29 13:05:16 -0400
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [57e1138bc] 2015-05-29 15:11:36 -0400
|
|
Branch: REL9_4_STABLE [70a4519b8] 2015-05-29 15:11:36 -0400
|
|
Branch: REL9_3_STABLE [35dd1b51f] 2015-05-29 15:11:36 -0400
|
|
Branch: REL9_2_STABLE [77642a819] 2015-05-29 15:11:36 -0400
|
|
Branch: REL9_1_STABLE [9e79ca326] 2015-05-29 15:11:36 -0400
|
|
Branch: REL9_0_STABLE [bf2f20c08] 2015-05-29 15:11:36 -0400
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [1943c000b] 2015-05-29 17:02:58 -0400
|
|
Branch: REL9_4_STABLE [99f50dd72] 2015-05-29 17:02:58 -0400
|
|
Branch: REL9_3_STABLE [c2b68b1f7] 2015-05-29 17:02:58 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Avoid failures while <function>fsync</>'ing data directory during
|
|
crash restart (Abhijit Menon-Sen, Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
In the previous minor releases we added a patch to <function>fsync</>
|
|
everything in the data directory after a crash. Unfortunately its
|
|
response to any error condition was to fail, thereby preventing the
|
|
server from starting up, even when the problem was quite harmless.
|
|
An example is that an unwritable file in the data directory would
|
|
prevent restart on some platforms; but it is common to make SSL
|
|
certificate files unwritable by the server. Revise this behavior so
|
|
that permissions failures are ignored altogether, and other types of
|
|
failures are logged but do not prevent continuing.
|
|
</para>
|
|
|
|
<para>
|
|
Also apply the same rules in <literal>initdb --sync-only</>.
|
|
This case is less critical but it should act similarly.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [f46edf479] 2015-05-28 11:24:37 -0400
|
|
Branch: REL9_4_STABLE [d4a9f5519] 2015-05-28 11:24:37 -0400
|
|
Branch: REL9_3_STABLE [27bae8d96] 2015-05-28 11:24:37 -0400
|
|
Branch: REL9_2_STABLE [f3c67aad4] 2015-05-28 11:24:37 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <function>pg_get_functiondef()</> to show
|
|
functions' <literal>LEAKPROOF</> property, if set (Jeevan Chalke)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Andrew Dunstan <andrew@dunslane.net>
|
|
Branch: master [5302760a5] 2015-05-22 10:21:41 -0400
|
|
Branch: REL9_4_STABLE [9b74f32cd] 2015-05-22 10:31:29 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <function>pushJsonbValue()</> to unpack <type>jbvBinary</>
|
|
objects (Andrew Dunstan)
|
|
</para>
|
|
|
|
<para>
|
|
This change does not affect any behavior in the core code as of 9.4,
|
|
but it avoids a corner case for possible third-party callers.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [86832eb89] 2015-05-26 22:14:59 -0400
|
|
Branch: REL9_4_STABLE [79f0f7cab] 2015-05-26 22:14:59 -0400
|
|
Branch: REL9_3_STABLE [9e980e7d0] 2015-05-26 22:14:59 -0400
|
|
Branch: REL9_2_STABLE [1b1457120] 2015-05-26 22:14:59 -0400
|
|
Branch: REL9_1_STABLE [5585cc707] 2015-05-26 22:14:59 -0400
|
|
Branch: REL9_0_STABLE [b06649b7f] 2015-05-26 22:15:00 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Remove <application>configure</>'s check prohibiting linking to a
|
|
threaded <application>libpython</>
|
|
on <systemitem class="osname">OpenBSD</> (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
The failure this restriction was meant to prevent seems to not be a
|
|
problem anymore on current <systemitem class="osname">OpenBSD</>
|
|
versions.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect2>
|
|
</sect1>
|
|
|
|
<sect1 id="release-9-4-2">
|
|
<title>Release 9.4.2</title>
|
|
|
|
<formalpara>
|
|
<title>Release date:</title>
|
|
<para>2015-05-22</para>
|
|
</formalpara>
|
|
|
|
<para>
|
|
This release contains a variety of fixes from 9.4.1.
|
|
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.2</title>
|
|
|
|
<para>
|
|
A dump/restore is not required for those running 9.4.X.
|
|
</para>
|
|
|
|
<para>
|
|
However, if you use <filename>contrib/citext</>'s
|
|
<function>regexp_matches()</> functions, see the changelog entry below
|
|
about that.
|
|
</para>
|
|
|
|
<para>
|
|
Also, if you are upgrading from a version earlier than 9.4.1,
|
|
see <xref linkend="release-9-4-1">.
|
|
</para>
|
|
</sect2>
|
|
|
|
<sect2>
|
|
<title>Changes</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<!--
|
|
Author: Noah Misch <noah@leadboat.com>
|
|
Branch: master [b0ce38503] 2015-05-18 10:02:31 -0400
|
|
Branch: REL9_4_STABLE [7a0d48ac7] 2015-05-18 10:02:35 -0400
|
|
Branch: REL9_3_STABLE [f4c12b415] 2015-05-18 10:02:36 -0400
|
|
Branch: REL9_2_STABLE [439ff9b6b] 2015-05-18 10:02:37 -0400
|
|
Branch: REL9_1_STABLE [6675ab595] 2015-05-18 10:02:38 -0400
|
|
Branch: REL9_0_STABLE [648e41a6e] 2015-05-18 10:02:38 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Avoid possible crash when client disconnects just before the
|
|
authentication timeout expires (Benkocs Norbert Attila)
|
|
</para>
|
|
|
|
<para>
|
|
If the timeout interrupt fired partway through the session shutdown
|
|
sequence, SSL-related state would be freed twice, typically causing a
|
|
crash and hence denial of service to other sessions. Experimentation
|
|
shows that an unauthenticated remote attacker could trigger the bug
|
|
somewhat consistently, hence treat as security issue.
|
|
(CVE-2015-3165)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Noah Misch <noah@leadboat.com>
|
|
Branch: master [cac18a76b] 2015-05-18 10:02:31 -0400
|
|
Branch: REL9_4_STABLE [f7c4fe7d9] 2015-05-18 10:02:35 -0400
|
|
Branch: REL9_3_STABLE [d5abbd114] 2015-05-18 10:02:36 -0400
|
|
Branch: REL9_2_STABLE [1e6652aea] 2015-05-18 10:02:37 -0400
|
|
Branch: REL9_1_STABLE [b544dcdad] 2015-05-18 10:02:38 -0400
|
|
Branch: REL9_0_STABLE [19f7adc01] 2015-05-18 10:02:38 -0400
|
|
Author: Noah Misch <noah@leadboat.com>
|
|
Branch: master [16304a013] 2015-05-18 10:02:31 -0400
|
|
Branch: REL9_4_STABLE [2e3bd0665] 2015-05-18 10:02:35 -0400
|
|
Branch: REL9_3_STABLE [34d21e770] 2015-05-18 10:02:36 -0400
|
|
Branch: REL9_2_STABLE [82b7393eb] 2015-05-18 10:02:37 -0400
|
|
Branch: REL9_1_STABLE [e58f042d9] 2015-05-18 10:02:38 -0400
|
|
Branch: REL9_0_STABLE [b08c7aff7] 2015-05-18 10:02:38 -0400
|
|
Author: Noah Misch <noah@leadboat.com>
|
|
Branch: master [fd97bd411] 2015-05-18 10:02:31 -0400
|
|
Branch: REL9_4_STABLE [ca325941d] 2015-05-18 10:02:35 -0400
|
|
Branch: REL9_3_STABLE [c669915fd] 2015-05-18 10:02:37 -0400
|
|
Branch: REL9_2_STABLE [01272d95a] 2015-05-18 10:02:37 -0400
|
|
Branch: REL9_1_STABLE [2cb9f2cab] 2015-05-18 10:02:38 -0400
|
|
Branch: REL9_0_STABLE [9b5e831e3] 2015-05-18 10:02:38 -0400
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [0c071936e] 2015-05-19 18:19:38 -0400
|
|
Branch: REL9_4_STABLE [2eb2fcd56] 2015-05-19 18:16:19 -0400
|
|
Branch: REL9_3_STABLE [13341276e] 2015-05-19 18:16:58 -0400
|
|
Branch: REL9_2_STABLE [221f7a949] 2015-05-19 18:17:42 -0400
|
|
Branch: REL9_1_STABLE [0510cff6e] 2015-05-19 18:18:16 -0400
|
|
Branch: REL9_0_STABLE [cf893530a] 2015-05-19 18:18:56 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve detection of system-call failures (Noah Misch)
|
|
</para>
|
|
|
|
<para>
|
|
Our replacement implementation of <function>snprintf()</> failed to
|
|
check for errors reported by the underlying system library calls;
|
|
the main case that might be missed is out-of-memory situations.
|
|
In the worst case this might lead to information exposure, due to our
|
|
code assuming that a buffer had been overwritten when it hadn't been.
|
|
Also, there were a few places in which security-relevant calls of other
|
|
system library functions did not check for failure.
|
|
</para>
|
|
|
|
<para>
|
|
It remains possible that some calls of the <function>*printf()</>
|
|
family of functions are vulnerable to information disclosure if an
|
|
out-of-memory error occurs at just the wrong time. We judge the risk
|
|
to not be large, but will continue analysis in this area.
|
|
(CVE-2015-3166)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Noah Misch <noah@leadboat.com>
|
|
Branch: master [85270ac7a] 2015-05-18 10:02:31 -0400
|
|
Branch: REL9_4_STABLE [fba1fb4ef] 2015-05-18 10:02:35 -0400
|
|
Branch: REL9_3_STABLE [7b758b7d6] 2015-05-18 10:02:37 -0400
|
|
Branch: REL9_2_STABLE [0ba200431] 2015-05-18 10:02:37 -0400
|
|
Branch: REL9_1_STABLE [e5981aebd] 2015-05-18 10:02:38 -0400
|
|
Branch: REL9_0_STABLE [b84e5c017] 2015-05-18 10:02:39 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
In <filename>contrib/pgcrypto</>, uniformly report decryption failures
|
|
as <quote>Wrong key or corrupt data</> (Noah Misch)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, some cases of decryption with an incorrect key could report
|
|
other error message texts. It has been shown that such variance in
|
|
error reports can aid attackers in recovering keys from other systems.
|
|
While it's unknown whether <filename>pgcrypto</>'s specific behaviors
|
|
are likewise exploitable, it seems better to avoid the risk by using a
|
|
one-size-fits-all message.
|
|
(CVE-2015-3167)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
|
|
Branch: master [b69bf30b9] 2015-04-28 11:32:53 -0300
|
|
Branch: REL9_4_STABLE [942542cbb] 2015-04-28 11:32:53 -0300
|
|
Branch: REL9_3_STABLE [e2eda4b11] 2015-04-28 11:32:53 -0300
|
|
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
|
|
Branch: master [669c7d20e] 2015-04-30 13:55:06 -0300
|
|
Branch: REL9_4_STABLE [7140e11d8] 2015-04-30 13:55:06 -0300
|
|
Branch: REL9_3_STABLE [e60581fdf] 2015-04-30 13:55:06 -0300
|
|
Author: Robert Haas <rhaas@postgresql.org>
|
|
Branch: master [7be47c56a] 2015-05-07 11:19:31 -0400
|
|
Branch: REL9_4_STABLE [32c50af4c] 2015-05-07 11:13:55 -0400
|
|
Branch: REL9_3_STABLE [83fbd9b59] 2015-05-07 11:16:41 -0400
|
|
Author: Robert Haas <rhaas@postgresql.org>
|
|
Branch: master [312747c22] 2015-05-10 21:34:26 -0400
|
|
Branch: REL9_4_STABLE [7b3f0f8b8] 2015-05-10 21:47:28 -0400
|
|
Branch: REL9_3_STABLE [24aa77ec9] 2015-05-10 21:47:41 -0400
|
|
Author: Robert Haas <rhaas@postgresql.org>
|
|
Branch: master [f6a6c46d7] 2015-05-10 22:21:20 -0400
|
|
Branch: REL9_4_STABLE [ded891916] 2015-05-10 22:45:27 -0400
|
|
Branch: REL9_3_STABLE [5bbac7ec1] 2015-05-10 22:45:42 -0400
|
|
Author: Robert Haas <rhaas@postgresql.org>
|
|
Branch: master [53bb309d2] 2015-05-08 12:53:00 -0400
|
|
Branch: REL9_4_STABLE [3ecab37d9] 2015-05-08 12:53:30 -0400
|
|
Branch: REL9_3_STABLE [596fb5aa7] 2015-05-08 12:55:14 -0400
|
|
Author: Robert Haas <rhaas@postgresql.org>
|
|
Branch: master [04e6d3b87] 2015-05-11 10:51:14 -0400
|
|
Branch: REL9_4_STABLE [8ec1a3a54] 2015-05-11 10:56:19 -0400
|
|
Branch: REL9_3_STABLE [543fbecee] 2015-05-11 10:56:32 -0400
|
|
Author: Robert Haas <rhaas@postgresql.org>
|
|
Branch: master [b4d4ce1d5] 2015-05-11 12:15:50 -0400
|
|
Branch: REL9_4_STABLE [ea70595a3] 2015-05-11 12:16:35 -0400
|
|
Branch: REL9_3_STABLE [ddebd2119] 2015-05-11 12:16:51 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Protect against wraparound of multixact member IDs
|
|
(Álvaro Herrera, Robert Haas, Thomas Munro)
|
|
</para>
|
|
|
|
<para>
|
|
Under certain usage patterns, the existing defenses against this might
|
|
be insufficient, allowing <filename>pg_multixact/members</> files to be
|
|
removed too early, resulting in data loss.
|
|
The fix for this includes modifying the server to fail transactions
|
|
that would result in overwriting old multixact member ID data, and
|
|
improving autovacuum to ensure it will act proactively to prevent
|
|
multixact member ID wraparound, as it does for transaction ID
|
|
wraparound.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [b22527f29] 2015-05-05 15:51:22 -0400
|
|
Branch: REL9_4_STABLE [b1ec45994] 2015-05-05 15:50:53 -0400
|
|
Branch: REL9_3_STABLE [ffac9f65d] 2015-05-05 15:50:53 -0400
|
|
Branch: REL9_2_STABLE [d4070d10c] 2015-05-05 15:50:53 -0400
|
|
Branch: REL9_1_STABLE [801e250a8] 2015-05-05 15:50:53 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix incorrect declaration of <filename>contrib/citext</>'s
|
|
<function>regexp_matches()</> functions (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
These functions should return <type>setof text[]</>, like the core
|
|
functions they are wrappers for; but they were incorrectly declared as
|
|
returning just <type>text[]</>. This mistake had two results: first,
|
|
if there was no match you got a scalar null result, whereas what you
|
|
should get is an empty set (zero rows). Second, the <literal>g</> flag
|
|
was effectively ignored, since you would get only one result array even
|
|
if there were multiple matches.
|
|
</para>
|
|
|
|
<para>
|
|
While the latter behavior is clearly a bug, there might be applications
|
|
depending on the former behavior; therefore the function declarations
|
|
will not be changed by default until <productname>PostgreSQL</> 9.5.
|
|
In pre-9.5 branches, the old behavior exists in version 1.0 of
|
|
the <literal>citext</> extension, while we have provided corrected
|
|
declarations in version 1.1 (which is <emphasis>not</> installed by
|
|
default). To adopt the fix in pre-9.5 branches, execute
|
|
<literal>ALTER EXTENSION citext UPDATE TO '1.1'</> in each database in
|
|
which <literal>citext</> is installed. (You can also <quote>update</>
|
|
back to 1.0 if you need to undo that.) Be aware that either update
|
|
direction will require dropping and recreating any views or rules that
|
|
use <filename>citext</>'s <function>regexp_matches()</> functions.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Andrew Dunstan <andrew@dunslane.net>
|
|
Branch: master [bda76c1c8] 2015-02-26 12:25:21 -0500
|
|
Branch: REL9_4_STABLE [79afe6e66] 2015-02-26 12:34:43 -0500
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Render infinite dates and timestamps as <literal>infinity</> when
|
|
converting to <type>json</>, rather than throwing an error
|
|
(Andrew Dunstan)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Andrew Dunstan <andrew@dunslane.net>
|
|
Branch: master [3c000fd9a] 2015-05-04 12:38:58 -0400
|
|
Branch: REL9_4_STABLE [997066f44] 2015-05-04 12:43:16 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <type>json</>/<type>jsonb</>'s <function>populate_record()</>
|
|
and <function>to_record()</> functions to handle empty input properly
|
|
(Andrew Dunstan)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [20781765f] 2015-05-11 12:25:43 -0400
|
|
Branch: REL9_4_STABLE [4d3d9719d] 2015-05-11 12:25:44 -0400
|
|
Branch: REL9_3_STABLE [7d09fdf82] 2015-05-11 12:25:45 -0400
|
|
Branch: REL9_2_STABLE [46f9acd3e] 2015-05-11 12:25:28 -0400
|
|
Branch: REL9_1_STABLE [dd75518d5] 2015-05-11 12:25:28 -0400
|
|
Branch: REL9_0_STABLE [b93c8eaf8] 2015-05-11 12:25:28 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix incorrect checking of deferred exclusion constraints after a HOT
|
|
update (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
If a new row that potentially violates a deferred exclusion constraint
|
|
is HOT-updated (that is, no indexed columns change and the row can be
|
|
stored back onto the same table page) later in the same transaction,
|
|
the exclusion constraint would be reported as violated when the check
|
|
finally occurred, even if the row(s) the new row originally conflicted
|
|
with had been deleted.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [a4820434c] 2015-05-03 11:30:24 -0400
|
|
Branch: REL9_4_STABLE [79edb2981] 2015-05-03 11:30:24 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix behavior when changing foreign key constraint deferrability status
|
|
with <literal>ALTER TABLE ... ALTER CONSTRAINT</> (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Operations later in the same session or concurrent sessions might not
|
|
honor the status change promptly.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [b514a7460] 2015-02-28 12:43:04 -0500
|
|
Branch: REL9_4_STABLE [fdacbf9e8] 2015-02-28 12:43:04 -0500
|
|
Branch: REL9_3_STABLE [1b558782b] 2015-02-28 12:43:04 -0500
|
|
Branch: REL9_2_STABLE [6f419958a] 2015-02-28 12:43:04 -0500
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix planning of star-schema-style queries (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Sometimes, efficient scanning of a large table requires that index
|
|
parameters be provided from more than one other table (commonly,
|
|
dimension tables whose keys are needed to index a large fact table).
|
|
The planner should be able to find such plans, but an overly
|
|
restrictive search heuristic prevented it.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [3cf868601] 2015-04-25 16:44:27 -0400
|
|
Branch: REL9_4_STABLE [5f3d1909c] 2015-04-25 16:44:27 -0400
|
|
Branch: REL9_3_STABLE [3e47d0b2a] 2015-04-25 16:44:27 -0400
|
|
Branch: REL9_2_STABLE [950f80dd5] 2015-04-25 16:44:27 -0400
|
|
Branch: REL9_1_STABLE [2e38198f6] 2015-04-25 16:44:27 -0400
|
|
Branch: REL9_0_STABLE [985da346e] 2015-04-25 16:44:27 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Prevent improper reordering of antijoins (NOT EXISTS joins) versus
|
|
other outer joins (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This oversight in the planner has been observed to cause <quote>could
|
|
not find RelOptInfo for given relids</> errors, but it seems possible
|
|
that sometimes an incorrect query plan might get past that consistency
|
|
check and result in silently-wrong query output.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [ca6805338] 2015-04-04 19:55:15 -0400
|
|
Branch: REL9_4_STABLE [1d71d36ff] 2015-04-04 19:55:15 -0400
|
|
Branch: REL9_3_STABLE [e105df208] 2015-04-04 19:55:15 -0400
|
|
Branch: REL9_2_STABLE [b7d493bf7] 2015-04-04 19:55:15 -0400
|
|
Branch: REL9_1_STABLE [3b5d67102] 2015-04-04 19:55:15 -0400
|
|
Branch: REL9_0_STABLE [da8819194] 2015-04-04 19:55:15 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix incorrect matching of subexpressions in outer-join plan nodes
|
|
(Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, if textually identical non-strict subexpressions were used
|
|
both above and below an outer join, the planner might try to re-use
|
|
the value computed below the join, which would be incorrect because the
|
|
executor would force the value to NULL in case of an unmatched outer row.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [1a179f36f] 2015-02-10 20:37:19 -0500
|
|
Branch: REL9_4_STABLE [433c79d2c] 2015-02-10 20:37:22 -0500
|
|
Branch: REL9_3_STABLE [672abc402] 2015-02-10 20:37:24 -0500
|
|
Branch: REL9_2_STABLE [0d083103f] 2015-02-10 20:37:26 -0500
|
|
Branch: REL9_1_STABLE [52579d507] 2015-02-10 20:37:29 -0500
|
|
Branch: REL9_0_STABLE [72bbca27e] 2015-02-10 20:37:31 -0500
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix GEQO planner to cope with failure of its join order heuristic
|
|
(Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This oversight has been seen to lead to <quote>failed to join all
|
|
relations together</> errors in queries involving <literal>LATERAL</>,
|
|
and that might happen in other cases as well.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Stephen Frost <sfrost@snowman.net>
|
|
Branch: master [6f9bd50ea] 2015-02-25 21:36:29 -0500
|
|
Branch: REL9_4_STABLE [f16270ade] 2015-02-25 21:36:40 -0500
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Ensure that row locking occurs properly when the target of
|
|
an <command>UPDATE</> or <command>DELETE</> is a security-barrier view
|
|
(Stephen Frost)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Andres Freund <andres@anarazel.de>
|
|
Branch: master [dfbaed459] 2015-04-28 00:17:43 +0200
|
|
Branch: REL9_4_STABLE [fd3dfc236] 2015-04-28 00:18:04 +0200
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Use a file opened for read/write when syncing replication slot data
|
|
during database startup (Andres Freund)
|
|
</para>
|
|
|
|
<para>
|
|
On some platforms, the previous coding could result in errors like
|
|
<quote>could not fsync file "pg_replslot/...": Bad file descriptor</>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
|
|
Branch: master [2c47fe16a] 2015-04-23 21:39:35 +0300
|
|
Branch: REL9_4_STABLE [438a062d5] 2015-04-23 21:35:10 +0300
|
|
Branch: REL9_3_STABLE [f73ebd766] 2015-04-23 21:36:24 +0300
|
|
Branch: REL9_2_STABLE [d3f5d2892] 2015-04-23 21:36:50 +0300
|
|
Branch: REL9_1_STABLE [e8528a8f5] 2015-04-23 21:36:59 +0300
|
|
Branch: REL9_0_STABLE [223a94680] 2015-04-23 21:37:09 +0300
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix possible deadlock at startup
|
|
when <literal>max_prepared_transactions</> is too small
|
|
(Heikki Linnakangas)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
|
|
Branch: master [b2a5545bd] 2015-04-13 16:53:49 +0300
|
|
Branch: REL9_4_STABLE [d72792d02] 2015-04-13 17:22:21 +0300
|
|
Branch: REL9_3_STABLE [a800267e4] 2015-04-13 17:22:35 +0300
|
|
Branch: REL9_2_STABLE [cc2939f44] 2015-04-13 17:26:59 +0300
|
|
Branch: REL9_1_STABLE [ad2925e20] 2015-04-13 17:26:49 +0300
|
|
Branch: REL9_0_STABLE [5b6938186] 2015-04-13 17:26:35 +0300
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Don't archive useless preallocated WAL files after a timeline switch
|
|
(Heikki Linnakangas)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Robert Haas <rhaas@postgresql.org>
|
|
Branch: master [2ce439f33] 2015-05-04 14:13:53 -0400
|
|
Branch: REL9_4_STABLE [d8ac77ab1] 2015-05-04 14:19:32 -0400
|
|
Branch: REL9_3_STABLE [14de825de] 2015-05-04 12:27:55 -0400
|
|
Branch: REL9_2_STABLE [2bc339716] 2015-05-04 12:41:53 -0400
|
|
Branch: REL9_1_STABLE [4b71d28d5] 2015-05-04 12:47:11 -0400
|
|
Branch: REL9_0_STABLE [30ba0d0c2] 2015-05-04 14:04:53 -0400
|
|
Author: Robert Haas <rhaas@postgresql.org>
|
|
Branch: master [456ff0863] 2015-05-05 09:29:49 -0400
|
|
Branch: REL9_4_STABLE [603fe0181] 2015-05-05 09:16:39 -0400
|
|
Branch: REL9_3_STABLE [6fd666954] 2015-05-05 09:19:39 -0400
|
|
Branch: REL9_2_STABLE [53e1498c6] 2015-05-05 09:22:51 -0400
|
|
Branch: REL9_1_STABLE [6ee1a7738] 2015-05-05 09:25:51 -0400
|
|
Branch: REL9_0_STABLE [262fbcb9d] 2015-05-05 09:30:07 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Recursively <function>fsync()</> the data directory after a crash
|
|
(Abhijit Menon-Sen, Robert Haas)
|
|
</para>
|
|
|
|
<para>
|
|
This ensures consistency if another crash occurs shortly later. (The
|
|
second crash would have to be a system-level crash, not just a database
|
|
crash, for there to be a problem.)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
|
|
Branch: master [5df64f298] 2015-04-08 13:19:49 -0300
|
|
Branch: REL9_4_STABLE [ec01c1c0a] 2015-04-08 13:19:49 -0300
|
|
Branch: REL9_3_STABLE [0d6c9e061] 2015-04-08 13:19:49 -0300
|
|
Branch: REL9_2_STABLE [37dc228e8] 2015-04-08 13:19:49 -0300
|
|
Branch: REL9_1_STABLE [cf5d3f274] 2015-04-08 13:19:49 -0300
|
|
Branch: REL9_0_STABLE [595bc97b5] 2015-04-08 13:19:49 -0300
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix autovacuum launcher's possible failure to shut down, if an error
|
|
occurs after it receives SIGTERM (Álvaro Herrera)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [bc49d9324] 2015-04-03 00:07:29 -0400
|
|
Branch: REL9_4_STABLE [ee0d06c0b] 2015-04-03 00:07:29 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix failure to handle invalidation messages for system catalogs
|
|
early in session startup (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This oversight could result in failures in sessions that start
|
|
concurrently with a <command>VACUUM FULL</> on a system catalog.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [701dcc983] 2015-03-30 13:05:27 -0400
|
|
Branch: REL9_4_STABLE [2897e069c] 2015-03-30 13:05:35 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix crash in <function>BackendIdGetTransactionIds()</> when trying
|
|
to get status for a backend process that just exited (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Andres Freund <andres@anarazel.de>
|
|
Branch: master [bc208a5a2] 2015-02-23 16:14:14 +0100
|
|
Branch: REL9_4_STABLE [89629f289] 2015-02-23 16:14:14 +0100
|
|
Branch: REL9_3_STABLE [a6ddff812] 2015-02-23 16:14:15 +0100
|
|
Branch: REL9_2_STABLE [c76e6dd7a] 2015-02-23 16:14:15 +0100
|
|
Branch: REL9_1_STABLE [25576bee2] 2015-02-23 16:14:15 +0100
|
|
Branch: REL9_0_STABLE [87b7fcc87] 2015-02-23 16:14:16 +0100
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Cope with unexpected signals in <function>LockBufferForCleanup()</>
|
|
(Andres Freund)
|
|
</para>
|
|
|
|
<para>
|
|
This oversight could result in spurious errors about <quote>multiple
|
|
backends attempting to wait for pincount 1</>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [08361cea2] 2015-02-15 23:26:45 -0500
|
|
Branch: REL9_4_STABLE [1bf32972e] 2015-02-15 23:26:45 -0500
|
|
Branch: REL9_3_STABLE [4662ba5a2] 2015-02-15 23:26:46 -0500
|
|
Branch: REL9_2_STABLE [effcaa4c2] 2015-02-15 23:26:46 -0500
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix crash when doing <literal>COPY IN</> to a table with check
|
|
constraints that contain whole-row references (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
The known failure case only crashes in 9.4 and up, but there is very
|
|
similar code in 9.3 and 9.2, so back-patch those branches as well.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Andres Freund <andres@anarazel.de>
|
|
Branch: master [fd6a3f3ad] 2015-02-26 12:50:07 +0100
|
|
Branch: REL9_4_STABLE [d72115112] 2015-02-26 12:50:07 +0100
|
|
Branch: REL9_3_STABLE [abce8dc7d] 2015-02-26 12:50:07 +0100
|
|
Branch: REL9_2_STABLE [d67076529] 2015-02-26 12:50:07 +0100
|
|
Branch: REL9_1_STABLE [5c8dabecd] 2015-02-26 12:50:08 +0100
|
|
Branch: REL9_0_STABLE [82e0d6eb5] 2015-02-26 12:50:08 +0100
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Avoid waiting for WAL flush or synchronous replication during commit of
|
|
a transaction that was read-only so far as the user is concerned
|
|
(Andres Freund)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, a delay could occur at commit in transactions that had
|
|
written WAL due to HOT page pruning, leading to undesirable effects
|
|
such as sessions getting stuck at startup if all synchronous replicas
|
|
are down. Sessions have also been observed to get stuck in catchup
|
|
interrupt processing when using synchronous replication; this will fix
|
|
that problem as well.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Andres Freund <andres@anarazel.de>
|
|
Branch: master [87cec51d3] 2015-03-23 16:51:11 +0100
|
|
Branch: REL9_4_STABLE [16be9737c] 2015-03-23 16:52:17 +0100
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Avoid busy-waiting with short <literal>recovery_min_apply_delay</>
|
|
values (Andres Freund)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
|
|
Branch: REL9_4_STABLE [462a2f1f0] 2015-05-13 09:53:50 +0300
|
|
Branch: REL9_3_STABLE [96b676cc6] 2015-05-13 09:54:06 +0300
|
|
Branch: REL9_2_STABLE [1a99d392c] 2015-05-13 10:06:52 +0300
|
|
Branch: REL9_1_STABLE [f6c4a8690] 2015-05-13 10:06:47 +0300
|
|
Branch: REL9_0_STABLE [bd1cfde70] 2015-05-13 10:06:38 +0300
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix crash when manipulating hash indexes on temporary tables
|
|
(Heikki Linnakangas)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [ed9cc2b5d] 2015-03-30 16:40:05 -0400
|
|
Branch: REL9_4_STABLE [a6a8bf5cd] 2015-03-30 16:40:05 -0400
|
|
Branch: REL9_3_STABLE [246bbf65c] 2015-03-30 16:40:05 -0400
|
|
Branch: REL9_2_STABLE [f155466fe] 2015-03-30 16:40:05 -0400
|
|
Branch: REL9_1_STABLE [46bfe44e8] 2015-03-30 16:40:05 -0400
|
|
Branch: REL9_0_STABLE [8f3c57721] 2015-03-30 16:40:05 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix possible failure during hash index bucket split, if other processes
|
|
are modifying the index concurrently (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
|
|
Branch: master [26d2c5dc8] 2015-03-12 15:34:32 +0100
|
|
Branch: REL9_4_STABLE [d81072026] 2015-03-12 15:40:07 +0100
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix memory leaks in GIN index vacuum (Heikki Linnakangas)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [e4cbfd673] 2015-03-29 15:04:09 -0400
|
|
Branch: REL9_4_STABLE [f444de5e3] 2015-03-29 15:04:18 -0400
|
|
Branch: REL9_3_STABLE [995a664c8] 2015-03-29 15:04:24 -0400
|
|
Branch: REL9_2_STABLE [d12afe114] 2015-03-29 15:04:28 -0400
|
|
Branch: REL9_1_STABLE [ab02d35e0] 2015-03-29 15:04:33 -0400
|
|
Branch: REL9_0_STABLE [152c94632] 2015-03-29 15:04:38 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Check for interrupts while analyzing index expressions (Jeff Janes)
|
|
</para>
|
|
|
|
<para>
|
|
<command>ANALYZE</> executes index expressions many times; if there are
|
|
slow functions in such an expression, it's desirable to be able to
|
|
cancel the <command>ANALYZE</> before that loop finishes.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [443fd0540] 2015-03-12 13:39:09 -0400
|
|
Branch: REL9_4_STABLE [32269be59] 2015-03-12 13:39:10 -0400
|
|
Branch: REL9_3_STABLE [5bdf3cf5a] 2015-03-12 13:38:49 -0400
|
|
Branch: REL9_2_STABLE [590fc5d96] 2015-03-12 13:38:49 -0400
|
|
Branch: REL9_1_STABLE [4a4fd2b0c] 2015-03-12 13:38:49 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Ensure <structfield>tableoid</> of a foreign table is reported
|
|
correctly when a <literal>READ COMMITTED</> recheck occurs after
|
|
locking rows in <command>SELECT FOR UPDATE</>, <command>UPDATE</>,
|
|
or <command>DELETE</> (Etsuro Fujita)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
|
|
Branch: master [cf34e373f] 2015-03-05 18:03:16 -0300
|
|
Branch: REL9_4_STABLE [749977634] 2015-03-05 18:03:16 -0300
|
|
Branch: REL9_3_STABLE [5cf400003] 2015-03-05 18:03:16 -0300
|
|
Branch: REL9_2_STABLE [e166e6441] 2015-03-05 18:03:16 -0300
|
|
Branch: REL9_1_STABLE [8167ef8e2] 2015-03-05 18:03:16 -0300
|
|
Branch: REL9_0_STABLE [71b8e8e6c] 2015-03-05 18:03:16 -0300
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Add the name of the target server to object description strings for
|
|
foreign-server user mappings (Álvaro Herrera)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
|
|
Branch: master [0d906798f] 2015-02-18 14:28:11 -0300
|
|
Branch: REL9_4_STABLE [66463a3cf] 2015-02-18 14:28:12 -0300
|
|
Branch: REL9_3_STABLE [a196e67f9] 2015-02-18 14:28:12 -0300
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Include the schema name in object identity strings for conversions
|
|
(Álvaro Herrera)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Stephen Frost <sfrost@snowman.net>
|
|
Branch: REL9_4_STABLE [c106f397d] 2015-05-08 19:39:52 -0400
|
|
Branch: REL9_3_STABLE [3de791ee7] 2015-05-08 19:40:06 -0400
|
|
Branch: REL9_2_STABLE [21cb21de2] 2015-05-08 19:40:09 -0400
|
|
Branch: REL9_1_STABLE [edfef090a] 2015-05-08 19:40:11 -0400
|
|
Branch: REL9_0_STABLE [c981e5999] 2015-05-08 19:40:15 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Recommend setting <literal>include_realm</> to 1 when using
|
|
Kerberos/GSSAPI/SSPI authentication (Stephen Frost)
|
|
</para>
|
|
|
|
<para>
|
|
Without this, identically-named users from different realms cannot be
|
|
distinguished. For the moment this is only a documentation change, but
|
|
it will become the default setting in <productname>PostgreSQL</> 9.5.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [cb66f495f] 2015-02-16 16:18:31 -0500
|
|
Branch: REL9_4_STABLE [23291a796] 2015-02-16 16:17:59 -0500
|
|
Branch: REL9_3_STABLE [7bc6e5954] 2015-02-16 16:18:04 -0500
|
|
Branch: REL9_2_STABLE [3913b897d] 2015-02-16 16:18:08 -0500
|
|
Branch: REL9_1_STABLE [2df854f84] 2015-02-16 16:18:12 -0500
|
|
Branch: REL9_0_STABLE [c99ef9aff] 2015-02-16 16:18:17 -0500
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [2e105def0] 2015-02-17 12:49:18 -0500
|
|
Branch: REL9_4_STABLE [a271c9260] 2015-02-17 12:49:18 -0500
|
|
Branch: REL9_3_STABLE [4ea2d2ddb] 2015-02-17 12:49:18 -0500
|
|
Branch: REL9_2_STABLE [d068609b9] 2015-02-17 12:49:44 -0500
|
|
Branch: REL9_1_STABLE [64e045838] 2015-02-17 12:49:46 -0500
|
|
Branch: REL9_0_STABLE [e48ce4f33] 2015-02-17 12:49:18 -0500
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Remove code for matching IPv4 <filename>pg_hba.conf</> entries to
|
|
IPv4-in-IPv6 addresses (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This hack was added in 2003 in response to a report that some Linux
|
|
kernels of the time would report IPv4 connections as having
|
|
IPv4-in-IPv6 addresses. However, the logic was accidentally broken in
|
|
9.0. The lack of any field complaints since then shows that it's not
|
|
needed anymore. Now we have reports that the broken code causes
|
|
crashes on some systems, so let's just remove it rather than fix it.
|
|
(Had we chosen to fix it, that would make for a subtle and potentially
|
|
security-sensitive change in the effective meaning of
|
|
IPv4 <filename>pg_hba.conf</> entries, which does not seem like a good
|
|
thing to do in minor releases.)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Robert Haas <rhaas@postgresql.org>
|
|
Branch: master [bf740ce9e] 2015-03-19 11:04:09 -0400
|
|
Branch: REL9_4_STABLE [76d07a2a0] 2015-03-19 11:08:54 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix status reporting for terminated background workers that were never
|
|
actually started (Robert Haas)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Robert Haas <rhaas@postgresql.org>
|
|
Branch: master [b3a5e76e1] 2015-04-02 14:38:06 -0400
|
|
Branch: REL9_4_STABLE [a1f4ade01] 2015-04-02 14:39:18 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
After a database crash, don't restart background workers that are
|
|
marked <literal>BGW_NEVER_RESTART</> (Amit Khandekar)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
|
|
Branch: master [ff16b40f8] 2015-02-06 11:26:50 +0200
|
|
Branch: REL9_4_STABLE [3bc4c6942] 2015-02-06 11:27:12 +0200
|
|
Branch: REL9_3_STABLE [5f0ba4abb] 2015-02-06 11:32:16 +0200
|
|
Branch: REL9_2_STABLE [2af568c6b] 2015-02-06 11:32:37 +0200
|
|
Branch: REL9_1_STABLE [0d36d9f2b] 2015-02-06 11:32:42 +0200
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Report WAL flush, not insert, position in <literal>IDENTIFY_SYSTEM</>
|
|
replication command (Heikki Linnakangas)
|
|
</para>
|
|
|
|
<para>
|
|
This avoids a possible startup failure
|
|
in <application>pg_receivexlog</>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Magnus Hagander <magnus@hagander.net>
|
|
Branch: master [1a241d22a] 2015-05-07 15:04:13 +0200
|
|
Branch: REL9_4_STABLE [43ed06816] 2015-05-07 15:09:21 +0200
|
|
Branch: REL9_3_STABLE [ba3caee84] 2015-05-07 15:09:32 +0200
|
|
Branch: REL9_2_STABLE [447e16581] 2015-05-07 15:09:42 +0200
|
|
Branch: REL9_1_STABLE [b9ded1529] 2015-05-07 15:09:53 +0200
|
|
Branch: REL9_0_STABLE [78ce2dc8e] 2015-05-07 15:10:01 +0200
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
While shutting down service on Windows, periodically send status
|
|
updates to the Service Control Manager to prevent it from killing the
|
|
service too soon; and ensure that <application>pg_ctl</> will wait for
|
|
shutdown (Krystian Bigaj)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
|
|
Branch: master [2a3f6e368] 2015-02-23 13:34:21 +0200
|
|
Branch: REL9_4_STABLE [0214a61e0] 2015-02-23 13:32:39 +0200
|
|
Branch: REL9_3_STABLE [cdf813c59] 2015-02-23 13:32:42 +0200
|
|
Branch: REL9_2_STABLE [22c9c8a7e] 2015-02-23 13:32:46 +0200
|
|
Branch: REL9_1_STABLE [7052abbb6] 2015-02-23 13:32:50 +0200
|
|
Branch: REL9_0_STABLE [8878eaaa8] 2015-02-23 13:32:53 +0200
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Reduce risk of network deadlock when using <application>libpq</>'s
|
|
non-blocking mode (Heikki Linnakangas)
|
|
</para>
|
|
|
|
<para>
|
|
When sending large volumes of data, it's important to drain the input
|
|
buffer every so often, in case the server has sent enough response data
|
|
to cause it to block on output. (A typical scenario is that the server
|
|
is sending a stream of NOTICE messages during <literal>COPY FROM
|
|
STDIN</>.) This worked properly in the normal blocking mode, but not
|
|
so much in non-blocking mode. We've modified <application>libpq</>
|
|
to opportunistically drain input when it can, but a full defense
|
|
against this problem requires application cooperation: the application
|
|
should watch for socket read-ready as well as write-ready conditions,
|
|
and be sure to call <function>PQconsumeInput()</> upon read-ready.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [b26e20814] 2015-02-21 12:59:54 -0500
|
|
Branch: REL9_4_STABLE [9c15a778a] 2015-02-21 12:59:35 -0500
|
|
Branch: REL9_3_STABLE [f389b6e0a] 2015-02-21 12:59:39 -0500
|
|
Branch: REL9_2_STABLE [83c3115dd] 2015-02-21 12:59:43 -0500
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
In <application>libpq</>, fix misparsing of empty values in URI
|
|
connection strings (Thomas Fanghaenel)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Michael Meskes <meskes@postgresql.org>
|
|
Branch: master [1f393fc92] 2015-02-10 12:04:10 +0100
|
|
Branch: REL9_4_STABLE [66c4ea8cb] 2015-02-11 10:57:02 +0100
|
|
Branch: REL9_3_STABLE [1a321fea7] 2015-02-11 11:13:11 +0100
|
|
Branch: REL9_2_STABLE [9be9ac425] 2015-02-11 11:14:14 +0100
|
|
Branch: REL9_1_STABLE [32e633195] 2015-02-11 11:27:21 +0100
|
|
Branch: REL9_0_STABLE [ce2fcc58e] 2015-02-11 11:30:11 +0100
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix array handling in <application>ecpg</> (Michael Meskes)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
|
|
Branch: master [fcef16172] 2015-04-01 20:00:07 -0300
|
|
Branch: REL9_4_STABLE [a44e54cf4] 2015-04-01 20:00:07 -0300
|
|
Branch: REL9_3_STABLE [f4540cae1] 2015-04-01 20:00:07 -0300
|
|
Branch: REL9_2_STABLE [d4bacdcb9] 2015-04-01 20:00:07 -0300
|
|
Branch: REL9_1_STABLE [276591bc4] 2015-04-01 20:00:07 -0300
|
|
Branch: REL9_0_STABLE [557fcfae3] 2015-04-01 20:00:07 -0300
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <application>psql</> to sanely handle URIs and conninfo strings as
|
|
the first parameter to <command>\connect</>
|
|
(David Fetter, Andrew Dunstan, Álvaro Herrera)
|
|
</para>
|
|
|
|
<para>
|
|
This syntax has been accepted (but undocumented) for a long time, but
|
|
previously some parameters might be taken from the old connection
|
|
instead of the given string, which was agreed to be undesirable.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [df9ebf1ee] 2015-03-14 13:43:00 -0400
|
|
Branch: REL9_4_STABLE [f50b5c7d0] 2015-03-14 13:43:08 -0400
|
|
Branch: REL9_3_STABLE [2cb76fa6f] 2015-03-14 13:43:13 -0400
|
|
Branch: REL9_2_STABLE [309ff2ad0] 2015-03-14 13:43:17 -0400
|
|
Branch: REL9_1_STABLE [043fe5c5a] 2015-03-14 13:43:21 -0400
|
|
Branch: REL9_0_STABLE [396ef6fd8] 2015-03-14 13:43:26 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Suppress incorrect complaints from <application>psql</> on some
|
|
platforms that it failed to write <filename>~/.psql_history</> at exit
|
|
(Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This misbehavior was caused by a workaround for a bug in very old
|
|
(pre-2006) versions of <application>libedit</>. We fixed it by
|
|
removing the workaround, which will cause a similar failure to appear
|
|
for anyone still using such versions of <application>libedit</>.
|
|
Recommendation: upgrade that library, or use <application>libreadline</>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [9feefedf9] 2015-02-10 22:38:15 -0500
|
|
Branch: REL9_4_STABLE [a592e5883] 2015-02-10 22:38:17 -0500
|
|
Branch: REL9_3_STABLE [a4e871caa] 2015-02-10 22:38:20 -0500
|
|
Branch: REL9_2_STABLE [2593c7039] 2015-02-10 22:38:22 -0500
|
|
Branch: REL9_1_STABLE [14794f9b8] 2015-02-10 22:38:26 -0500
|
|
Branch: REL9_0_STABLE [8e70f3c40] 2015-02-10 22:38:29 -0500
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <application>pg_dump</>'s rule for deciding which casts are
|
|
system-provided casts that should not be dumped (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [0e7e355f2] 2015-02-18 11:43:00 -0500
|
|
Branch: REL9_4_STABLE [a75dfb73e] 2015-02-18 11:43:00 -0500
|
|
Branch: REL9_3_STABLE [a7ad5cf0c] 2015-02-18 11:43:00 -0500
|
|
Branch: REL9_2_STABLE [c86f8f361] 2015-02-18 11:43:00 -0500
|
|
Branch: REL9_1_STABLE [b0d53b2e3] 2015-02-18 11:43:00 -0500
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
In <application>pg_dump</>, fix failure to honor <literal>-Z</>
|
|
compression level option together with <literal>-Fd</>
|
|
(Michael Paquier)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Stephen Frost <sfrost@snowman.net>
|
|
Branch: master [ebd092bc2] 2015-03-02 14:12:21 -0500
|
|
Branch: REL9_4_STABLE [c05fa3433] 2015-03-02 14:12:28 -0500
|
|
Branch: REL9_3_STABLE [43d81f16a] 2015-03-02 14:12:33 -0500
|
|
Branch: REL9_2_STABLE [d13bbfabb] 2015-03-02 14:12:38 -0500
|
|
Branch: REL9_1_STABLE [dcb467b8e] 2015-03-02 14:12:43 -0500
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Make <application>pg_dump</> consider foreign key relationships
|
|
between extension configuration tables while choosing dump order
|
|
(Gilles Darold, Michael Paquier, Stephen Frost)
|
|
</para>
|
|
|
|
<para>
|
|
This oversight could result in producing dumps that fail to reload
|
|
because foreign key constraints are transiently violated.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [e3bfe6d84] 2015-03-06 13:27:46 -0500
|
|
Branch: REL9_4_STABLE [629f8613f] 2015-03-06 13:27:46 -0500
|
|
Branch: REL9_3_STABLE [d645273cf] 2015-03-06 13:27:46 -0500
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Avoid possible <application>pg_dump</> failure when concurrent sessions
|
|
are creating and dropping temporary functions (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [e9f1c01b7] 2015-02-25 12:01:12 -0500
|
|
Branch: REL9_4_STABLE [2164a0de2] 2015-02-25 12:01:12 -0500
|
|
Branch: REL9_3_STABLE [f864fe074] 2015-02-25 12:01:12 -0500
|
|
Branch: REL9_2_STABLE [be8801e9c] 2015-02-25 12:01:12 -0500
|
|
Branch: REL9_1_STABLE [f7b41902a] 2015-02-25 12:01:12 -0500
|
|
Branch: REL9_0_STABLE [7a501bcbf] 2015-02-25 12:01:12 -0500
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix dumping of views that are just <literal>VALUES(...)</> but have
|
|
column aliases (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Bruce Momjian <bruce@momjian.us>
|
|
Branch: master [b2f95c34f] 2015-05-01 13:03:23 -0400
|
|
Branch: REL9_4_STABLE [70fac4844] 2015-05-01 13:03:23 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Ensure that a view's replication identity is correctly set
|
|
to <literal>nothing</> during dump/restore (Marko Tiikkaja)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, if the view was involved in a circular dependency,
|
|
it might wind up with an incorrect replication identity property.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Bruce Momjian <bruce@momjian.us>
|
|
Branch: master [4c5e06004] 2015-05-16 00:40:18 -0400
|
|
Branch: REL9_4_STABLE [387a3e46c] 2015-05-16 00:40:18 -0400
|
|
Branch: REL9_3_STABLE [bffbeec0c] 2015-05-16 00:40:18 -0400
|
|
Branch: REL9_2_STABLE [affc04d16] 2015-05-16 00:40:18 -0400
|
|
Branch: REL9_1_STABLE [acd75b264] 2015-05-16 00:40:18 -0400
|
|
Branch: REL9_0_STABLE [df161c94e] 2015-05-16 00:40:18 -0400
|
|
Author: Bruce Momjian <bruce@momjian.us>
|
|
Branch: REL9_4_STABLE [5f6539635] 2015-05-16 15:16:28 -0400
|
|
Branch: REL9_3_STABLE [4e9935979] 2015-05-16 15:16:28 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
In <application>pg_upgrade</>, force timeline 1 in the new cluster
|
|
(Bruce Momjian)
|
|
</para>
|
|
|
|
<para>
|
|
This change prevents upgrade failures caused by bogus complaints about
|
|
missing WAL history files.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Bruce Momjian <bruce@momjian.us>
|
|
Branch: master [fb694d959] 2015-05-16 00:10:03 -0400
|
|
Branch: REL9_4_STABLE [31f5d3f35] 2015-05-16 00:10:03 -0400
|
|
Branch: REL9_3_STABLE [4cfba5369] 2015-05-16 00:10:03 -0400
|
|
Branch: REL9_2_STABLE [2a55e7134] 2015-05-16 00:10:03 -0400
|
|
Branch: REL9_1_STABLE [321db7123] 2015-05-16 00:10:03 -0400
|
|
Branch: REL9_0_STABLE [2194aa92b] 2015-05-16 00:10:03 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
In <application>pg_upgrade</>, check for improperly non-connectable
|
|
databases before proceeding
|
|
(Bruce Momjian)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Bruce Momjian <bruce@momjian.us>
|
|
Branch: master [056764b10] 2015-02-11 22:06:04 -0500
|
|
Branch: REL9_4_STABLE [5eef3c61e] 2015-02-11 22:06:04 -0500
|
|
Branch: REL9_3_STABLE [9ecd51da7] 2015-02-11 22:06:04 -0500
|
|
Branch: REL9_2_STABLE [66f5217f5] 2015-02-11 22:06:04 -0500
|
|
Branch: REL9_1_STABLE [08aaae40e] 2015-02-11 22:06:04 -0500
|
|
Branch: REL9_0_STABLE [4ae178f60] 2015-02-11 22:06:04 -0500
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
In <application>pg_upgrade</>, quote directory paths
|
|
properly in the generated <literal>delete_old_cluster</> script
|
|
(Bruce Momjian)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Bruce Momjian <bruce@momjian.us>
|
|
Branch: master [866f3017a] 2015-02-11 21:02:44 -0500
|
|
Branch: REL9_4_STABLE [c7bc5be11] 2015-02-11 21:02:36 -0500
|
|
Branch: REL9_3_STABLE [e20523f8f] 2015-02-11 21:02:28 -0500
|
|
Branch: REL9_2_STABLE [d99cf27b7] 2015-02-11 21:02:12 -0500
|
|
Branch: REL9_1_STABLE [55179b03e] 2015-02-11 21:02:07 -0500
|
|
Branch: REL9_0_STABLE [85dac37ee] 2015-02-11 21:02:06 -0500
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
In <application>pg_upgrade</>, preserve database-level freezing info
|
|
properly
|
|
(Bruce Momjian)
|
|
</para>
|
|
|
|
<para>
|
|
This oversight could cause missing-clog-file errors for tables within
|
|
the <literal>postgres</> and <literal>template1</> databases.
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Andrew Dunstan <andrew@dunslane.net>
|
|
Branch: master [fa1e5afa8] 2015-03-30 17:07:52 -0400
|
|
Branch: REL9_4_STABLE [2366761bf] 2015-03-30 17:16:57 -0400
|
|
Branch: REL9_3_STABLE [0904eb3e1] 2015-03-30 17:17:17 -0400
|
|
Branch: REL9_2_STABLE [948566313] 2015-03-30 17:17:39 -0400
|
|
Branch: REL9_1_STABLE [22b3f5b26] 2015-03-30 17:17:54 -0400
|
|
Branch: REL9_0_STABLE [bf22a8e58] 2015-03-30 17:18:10 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Run <application>pg_upgrade</> and <application>pg_resetxlog</> with
|
|
restricted privileges on Windows, so that they don't fail when run by
|
|
an administrator (Muhammad Asif Naeem)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Robert Haas <rhaas@postgresql.org>
|
|
Branch: master [5d6c2405f] 2015-02-17 10:19:30 -0500
|
|
Branch: REL9_4_STABLE [5e49c98e0] 2015-02-17 10:50:49 -0500
|
|
Branch: REL9_3_STABLE [9a90ec9cf] 2015-02-17 10:54:29 -0500
|
|
Author: Robert Haas <rhaas@postgresql.org>
|
|
Branch: REL9_2_STABLE [319406c2a] 2015-02-17 11:02:46 -0500
|
|
Branch: REL9_1_STABLE [d7d294f59] 2015-02-17 11:08:40 -0500
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve handling of <function>readdir()</> failures when scanning
|
|
directories in <application>initdb</> and <application>pg_basebackup</>
|
|
(Marco Nenciarini)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [8d1f23900] 2015-03-15 23:22:03 -0400
|
|
Branch: REL9_4_STABLE [904e8b627] 2015-03-15 23:22:03 -0400
|
|
Branch: REL9_3_STABLE [83587a075] 2015-03-15 23:22:03 -0400
|
|
Branch: REL9_2_STABLE [8582ae7aa] 2015-03-15 23:22:03 -0400
|
|
Branch: REL9_1_STABLE [9288645b5] 2015-03-15 23:22:03 -0400
|
|
Branch: REL9_0_STABLE [40b0c10b7] 2015-03-15 23:22:03 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix slow sorting algorithm in <filename>contrib/intarray</> (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
|
|
Branch: master [33e879c4e] 2015-02-13 23:56:25 +0200
|
|
Branch: REL9_4_STABLE [56a23a83f] 2015-02-13 23:56:57 +0200
|
|
Branch: REL9_3_STABLE [6ef5d894a] 2015-02-13 23:57:05 +0200
|
|
Branch: REL9_2_STABLE [a0d84da1d] 2015-02-13 23:57:25 +0200
|
|
Branch: REL9_1_STABLE [ebdc2e1e2] 2015-02-13 23:57:28 +0200
|
|
Branch: REL9_0_STABLE [61165fae0] 2015-02-13 23:57:35 +0200
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix compile failure on Sparc V8 machines (Rob Rowan)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [91f4a5a97] 2015-03-14 14:08:45 -0400
|
|
Branch: REL9_4_STABLE [c415c13b7] 2015-03-14 14:08:45 -0400
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [73b416b2e] 2015-04-05 13:01:59 -0400
|
|
Branch: REL9_4_STABLE [8972a152c] 2015-04-05 13:01:55 -0400
|
|
Branch: REL9_3_STABLE [6347bdb31] 2015-04-05 13:01:55 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Silence some build warnings on macOS (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Tom Lane <tgl@sss.pgh.pa.us>
|
|
Branch: master [9d366c1f3] 2015-05-15 19:35:29 -0400
|
|
Branch: REL9_4_STABLE [d0ddcf62e] 2015-05-15 19:35:51 -0400
|
|
Branch: REL9_3_STABLE [4fd69e412] 2015-05-15 19:35:58 -0400
|
|
Branch: REL9_2_STABLE [2a63434f0] 2015-05-15 19:36:06 -0400
|
|
Branch: REL9_1_STABLE [436f35609] 2015-05-15 19:36:13 -0400
|
|
Branch: REL9_0_STABLE [3c3749a3b] 2015-05-15 19:36:20 -0400
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Update time zone data files to <application>tzdata</> release 2015d
|
|
for DST law changes in Egypt, Mongolia, and Palestine, plus historical
|
|
changes in Canada and Chile. Also adopt revised zone abbreviations for
|
|
the America/Adak zone (HST/HDT not HAST/HADT).
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect2>
|
|
</sect1>
|
|
|
|
<sect1 id="release-9-4-1">
|
|
<title>Release 9.4.1</title>
|
|
|
|
<formalpara>
|
|
<title>Release date:</title>
|
|
<para>2015-02-05</para>
|
|
</formalpara>
|
|
|
|
<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: Bruce Momjian <bruce@momjian.us>
|
|
Branch: master [0150ab567] 2015-02-02 10:00:44 -0500
|
|
Branch: REL9_4_STABLE [1628a0bbf] 2015-02-02 10:00:49 -0500
|
|
Branch: REL9_3_STABLE [b8b580147] 2015-02-02 10:00:50 -0500
|
|
Branch: REL9_2_STABLE [5ae3bf1af] 2015-02-02 10:00:50 -0500
|
|
Branch: REL9_1_STABLE [037529a11] 2015-02-02 10:00:51 -0500
|
|
Branch: REL9_0_STABLE [611e110aa] 2015-02-02 10:00:52 -0500
|
|
Author: Bruce Momjian <bruce@momjian.us>
|
|
Branch: master [9241c84cb] 2015-02-02 10:00:45 -0500
|
|
Branch: REL9_4_STABLE [56d2bee9d] 2015-02-02 10:00:49 -0500
|
|
Branch: REL9_3_STABLE [fe2526990] 2015-02-02 10:00:50 -0500
|
|
Branch: REL9_2_STABLE [e09651e9d] 2015-02-02 10:00:50 -0500
|
|
Branch: REL9_1_STABLE [2ceb63deb] 2015-02-02 10:00:51 -0500
|
|
Branch: REL9_0_STABLE [56b970f2e] 2015-02-02 10:00:52 -0500
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix buffer overruns in <function>to_char()</>
|
|
(Bruce Momjian)
|
|
</para>
|
|
|
|
<para>
|
|
When <function>to_char()</> processes a numeric formatting template
|
|
calling for a large number of digits, <productname>PostgreSQL</>
|
|
would read past the end of a buffer. When processing a crafted
|
|
timestamp formatting template, <productname>PostgreSQL</> would write
|
|
past the end of a buffer. Either case could crash the server.
|
|
We have not ruled out the possibility of attacks that lead to
|
|
privilege escalation, though they seem unlikely.
|
|
(CVE-2015-0241)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Bruce Momjian <bruce@momjian.us>
|
|
Branch: master [29725b3db] 2015-02-02 10:00:45 -0500
|
|
Branch: REL9_4_STABLE [2ac95c83c] 2015-02-02 10:00:49 -0500
|
|
Branch: REL9_3_STABLE [bc4d5f2e5] 2015-02-02 10:00:50 -0500
|
|
Branch: REL9_2_STABLE [c6c6aa288] 2015-02-02 10:00:51 -0500
|
|
Branch: REL9_1_STABLE [98f2479d8] 2015-02-02 10:00:51 -0500
|
|
Branch: REL9_0_STABLE [9e05c5063] 2015-02-02 10:00:52 -0500
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix buffer overrun in replacement <function>*printf()</> functions
|
|
(Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
<productname>PostgreSQL</> includes a replacement implementation
|
|
of <function>printf</> and related functions. This code will overrun
|
|
a stack buffer when formatting a floating point number (conversion
|
|
specifiers <literal>e</>, <literal>E</>, <literal>f</>, <literal>F</>,
|
|
<literal>g</> or <literal>G</>) with requested precision greater than
|
|
about 500. This will crash the server, and we have not ruled out the
|
|
possibility of attacks that lead to privilege escalation.
|
|
A database user can trigger such a buffer overrun through
|
|
the <function>to_char()</> SQL function. While that is the only
|
|
affected core <productname>PostgreSQL</> functionality, extension
|
|
modules that use printf-family functions may be at risk as well.
|
|
</para>
|
|
|
|
<para>
|
|
This issue primarily affects <productname>PostgreSQL</> on Windows.
|
|
<productname>PostgreSQL</> uses the system implementation of these
|
|
functions where adequate, which it is on other modern platforms.
|
|
(CVE-2015-0242)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Noah Misch <noah@leadboat.com>
|
|
Branch: master [1dc755158] 2015-02-02 10:00:45 -0500
|
|
Branch: REL9_4_STABLE [82806cf4e] 2015-02-02 10:00:49 -0500
|
|
Branch: REL9_3_STABLE [6994f0790] 2015-02-02 10:00:50 -0500
|
|
Branch: REL9_2_STABLE [d95ebe0ac] 2015-02-02 10:00:51 -0500
|
|
Branch: REL9_1_STABLE [11f738a8a] 2015-02-02 10:00:51 -0500
|
|
Branch: REL9_0_STABLE [ce6f261cd] 2015-02-02 10:00:52 -0500
|
|
Author: Noah Misch <noah@leadboat.com>
|
|
Branch: master [8b59672d8] 2015-02-02 10:00:45 -0500
|
|
Branch: REL9_4_STABLE [258e294db] 2015-02-02 10:00:49 -0500
|
|
Branch: REL9_3_STABLE [a558ad3a7] 2015-02-02 10:00:50 -0500
|
|
Branch: REL9_2_STABLE [d1972da8c] 2015-02-02 10:00:51 -0500
|
|
Branch: REL9_1_STABLE [8d412e02e] 2015-02-02 10:00:52 -0500
|
|
Branch: REL9_0_STABLE [0a3ee8a5f] 2015-02-02 10:00:52 -0500
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix buffer overruns in <filename>contrib/pgcrypto</>
|
|
(Marko Tiikkaja, Noah Misch)
|
|
</para>
|
|
|
|
<para>
|
|
Errors in memory size tracking within the <filename>pgcrypto</>
|
|
module permitted stack buffer overruns and improper dependence on the
|
|
contents of uninitialized memory. The buffer overrun cases can
|
|
crash the server, and we have not ruled out the possibility of
|
|
attacks that lead to privilege escalation.
|
|
(CVE-2015-0243)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
|
|
Branch: master [2b3a8b20c] 2015-02-02 17:09:53 +0200
|
|
Branch: REL9_4_STABLE [57ec87c6b] 2015-02-02 17:09:46 +0200
|
|
Branch: REL9_3_STABLE [cd19848bd] 2015-02-02 17:09:40 +0200
|
|
Branch: REL9_2_STABLE [289592b23] 2015-02-02 17:09:35 +0200
|
|
Branch: REL9_1_STABLE [af9c5c074] 2015-02-02 17:09:31 +0200
|
|
Branch: REL9_0_STABLE [47ba0fbd7] 2015-02-02 17:09:25 +0200
|
|
-->
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix possible loss of frontend/backend protocol synchronization after
|
|
an error
|
|
(Heikki Linnakangas)
|
|
</para>
|
|
|
|
<para>
|
|
If any error occurred while the server was in the middle of reading a
|
|
protocol message from the client, it could lose synchronization and
|
|
incorrectly try to interpret part of the message's data as a new
|
|
protocol message. An attacker able to submit crafted binary data
|
|
within a command parameter might succeed in injecting his own SQL
|
|
commands this way. Statement timeout and query cancellation are the
|
|
most likely sources of errors triggering this scenario. Particularly
|
|
vulnerable are applications that use a timeout and also submit
|
|
arbitrary user-crafted data as binary query parameters. Disabling
|
|
statement timeout will reduce, but not eliminate, the risk of
|
|
exploit. Our thanks to Emil Lenngren for reporting this issue.
|
|
(CVE-2015-0244)
|
|
</para>
|
|
</listitem>
|
|
|
|
<!--
|
|
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 Jelinek)
|
|
</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 macOS'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">
|
|
<title>Release 9.4</title>
|
|
|
|
<formalpara>
|
|
<title>Release date:</title>
|
|
<para>2014-12-18</para>
|
|
</formalpara>
|
|
|
|
<sect2>
|
|
<title>Overview</title>
|
|
|
|
<para>
|
|
Major enhancements in <productname>PostgreSQL</> 9.4 include:
|
|
</para>
|
|
|
|
<!-- This list duplicates items below, but without authors or details-->
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <link linkend="datatype-json"><type>jsonb</></link>, a more
|
|
capable and efficient data type for storing <acronym>JSON</> data
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add new <acronym>SQL</> command <xref linkend="SQL-ALTERSYSTEM">
|
|
for changing <filename>postgresql.conf</> configuration file entries
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Reduce lock strength for some <xref linkend="SQL-ALTERTABLE">
|
|
commands
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <link linkend="rules-materializedviews">materialized views</>
|
|
to be refreshed without blocking concurrent reads
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add support for <link linkend="logicaldecoding">logical decoding</>
|
|
of WAL data, to allow database changes to be streamed out in a
|
|
customizable format
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <link linkend="bgworker">background worker processes</>
|
|
to be dynamically registered, started and terminated
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
<para>
|
|
The above items are explained in more detail in the sections below.
|
|
</para>
|
|
|
|
</sect2>
|
|
|
|
<sect2>
|
|
|
|
<title>Migration to Version 9.4</title>
|
|
|
|
<para>
|
|
A dump/restore using <xref linkend="app-pg-dumpall">, or use
|
|
of <xref linkend="pgupgrade">, is required for those wishing to migrate
|
|
data from any previous release.
|
|
</para>
|
|
|
|
<para>
|
|
Version 9.4 contains a number of changes that may affect compatibility
|
|
with previous releases. Observe the following incompatibilities:
|
|
</para>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<para>
|
|
Tighten checks for multidimensional <link
|
|
linkend="arrays">array</link> input (Bruce Momjian)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, an input array string that started with a single-element
|
|
sub-array could later contain multi-element sub-arrays,
|
|
e.g. <literal>'{{1}, {2,3}}'::int[]</> would be accepted.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
When converting values of type <type>date</>, <type>timestamp</>
|
|
or <type>timestamptz</>
|
|
to <link linkend="datatype-json"><type>JSON</type></link>, render the
|
|
values in a format compliant with ISO 8601 (Andrew Dunstan)
|
|
</para>
|
|
|
|
<para>
|
|
Previously such values were rendered according to the current
|
|
<xref linkend="guc-datestyle"> setting; but many JSON processors
|
|
require timestamps to be in ISO 8601 format. If necessary, the
|
|
previous behavior can be obtained by explicitly casting the datetime
|
|
value to <type>text</> before passing it to the JSON conversion
|
|
function.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
The <link linkend="functions-json-op-table"><type>json</type>
|
|
<literal>#></> <type>text[]</></link> path extraction operator now
|
|
returns its lefthand input, not NULL, if the array is empty (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This is consistent with the notion that this represents zero
|
|
applications of the simple field/element extraction
|
|
operator <literal>-></>. Similarly, <type>json</type>
|
|
<literal>#>></> <type>text[]</> with an empty array merely
|
|
coerces its lefthand input to text.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Corner cases in
|
|
the <link linkend="functions-json-op-table"><type>JSON</type>
|
|
field/element/path extraction operators</link> now return NULL rather
|
|
than raising an error (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
For example, applying field extraction to a JSON array now yields NULL
|
|
not an error. This is more consistent (since some comparable cases such
|
|
as no-such-field already returned NULL), and it makes it safe to create
|
|
expression indexes that use these operators, since they will now not
|
|
throw errors for any valid JSON input.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Cause consecutive whitespace in <link
|
|
linkend="functions-formatting-table"><function>to_timestamp()</></link>
|
|
and <function>to_date()</> format strings to consume a corresponding
|
|
number of characters in the input string (whitespace or not), then
|
|
conditionally consume adjacent whitespace, if not in <literal>FX</>
|
|
mode (Jeevan Chalke)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, consecutive whitespace characters in a non-<literal>FX</>
|
|
format string behaved like a single whitespace character and consumed
|
|
all adjacent whitespace in the input string. For example, previously
|
|
a format string of three spaces would consume only the first space in
|
|
<literal>' 12'</>, but it will now consume all three characters.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <link
|
|
linkend="textsearch-functions-table"><function>ts_rank_cd()</></link>
|
|
to ignore stripped lexemes (Alex Hill)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, stripped lexemes were treated as if they had a default
|
|
location, producing a rank of dubious usefulness.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
For functions declared to
|
|
take <link linkend="xfunc-sql-variadic-functions"><literal>VARIADIC
|
|
"any"</></link>, an actual parameter marked as <literal>VARIADIC</>
|
|
must be of a determinable array type (Pavel Stehule)
|
|
</para>
|
|
|
|
<para>
|
|
Such parameters can no longer be written as an undecorated string
|
|
literal or <literal>NULL</>; a cast to an appropriate array data type
|
|
will now be required. Note that this does not affect parameters not
|
|
marked <literal>VARIADIC</>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Ensure that whole-row variables expose the expected column names
|
|
to functions that pay attention to column names within composite
|
|
arguments (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Constructs like <literal>row_to_json(tab.*)</> now always emit column
|
|
names that match the column aliases visible for table <literal>tab</>
|
|
at the point of the call. In previous releases the emitted column
|
|
names would sometimes be the table's actual column names regardless
|
|
of any aliases assigned in the query.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
<xref linkend="sql-discard"> now also discards sequence-related state
|
|
(Fabrízio de Royes Mello, Robert Haas)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Rename <link linkend="SQL-EXPLAIN"><command>EXPLAIN
|
|
ANALYZE</></link>'s <quote>total runtime</quote> output
|
|
to <quote>execution time</quote> (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Now that planning time is also reported, the previous name was
|
|
confusing.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
<link linkend="SQL-SHOW"><command>SHOW TIME ZONE</></link> now
|
|
outputs simple numeric UTC offsets in <acronym>POSIX</> timezone
|
|
format (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, such timezone settings were displayed as <link
|
|
linkend="datatype-interval-output"><type>interval</></link> values.
|
|
The new output is properly interpreted by <command>SET TIME ZONE</>
|
|
when passed as a simple string, whereas the old output required
|
|
special treatment to be re-parsed correctly.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Foreign data wrappers that support updating foreign tables must
|
|
consider the possible presence of <literal>AFTER ROW</> triggers
|
|
(Noah Misch)
|
|
</para>
|
|
|
|
<para>
|
|
When an <literal>AFTER ROW</> trigger is present, all columns of the
|
|
table must be returned by updating actions, since the trigger might
|
|
inspect any or all of them. Previously, foreign tables never had
|
|
triggers, so the FDW might optimize away fetching columns not mentioned
|
|
in the <literal>RETURNING</> clause (if any).
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Prevent <link
|
|
linkend="ddl-constraints-check-constraints"><literal>CHECK</></link>
|
|
constraints from referencing system columns, except
|
|
<structfield>tableoid</> (Amit Kapila)
|
|
</para>
|
|
|
|
<para>
|
|
Previously such check constraints were allowed, but they would often
|
|
cause errors during restores.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Use the last specified <link linkend="recovery-target-settings">recovery
|
|
target parameter</link> if multiple target parameters are specified
|
|
(Heikki Linnakangas)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, there was an undocumented precedence order among
|
|
the <literal>recovery_target_<replaceable>xxx</></literal> parameters.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
On Windows, automatically preserve quotes in command strings supplied
|
|
by the user (Heikki Linnakangas)
|
|
</para>
|
|
|
|
<para>
|
|
User commands that did their own quote preservation might need
|
|
adjustment. This is likely to be an issue for commands used in
|
|
<xref linkend="guc-archive-command">, <xref linkend="restore-command">,
|
|
and <link linkend="sql-copy"><command>COPY TO/FROM PROGRAM</></link>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Remove catalog column <link
|
|
linkend="catalog-pg-class"><structfield>pg_class.reltoastidxid</></link>
|
|
(Michael Paquier)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Remove catalog column <link
|
|
linkend="catalog-pg-rewrite"><structfield>pg_rewrite.ev_attr</></link>
|
|
(Kevin Grittner)
|
|
</para>
|
|
|
|
<para>
|
|
Per-column rules have not been supported since
|
|
<application>PostgreSQL</> 7.3.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Remove native support for <application>Kerberos</> authentication
|
|
(<option>--with-krb5</>, etc)
|
|
(Magnus Hagander)
|
|
</para>
|
|
|
|
<para>
|
|
The supported way to use <application>Kerberos</> authentication is
|
|
with <acronym>GSSAPI</>. The native code has been deprecated since
|
|
<productname>PostgreSQL</> 8.3.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
In <application>PL/Python</>, handle domains over arrays like the
|
|
underlying array type (Rodolfo Campero)
|
|
</para>
|
|
|
|
<para>
|
|
Previously such values were treated as strings.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Make libpq's <link
|
|
linkend="libpq-pqconnectdbparams"><function>PQconnectdbParams()</></link>
|
|
and <link
|
|
linkend="libpq-pqpingparams"><function>PQpingParams()</></link>
|
|
functions process zero-length strings as defaults (Adrian
|
|
Vondendriesch)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, these functions treated zero-length string values as
|
|
selecting the default in only some cases.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Change empty arrays returned by the <xref linkend="intarray"> module
|
|
to be zero-dimensional arrays (Bruce Momjian)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, empty arrays were returned as zero-length one-dimensional
|
|
arrays, whose text representation looked the same as zero-dimensional
|
|
arrays (<literal>{}</>), but they acted differently in array
|
|
operations. <application>intarray</>'s behavior in this area now
|
|
matches the built-in array operators.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
<xref linkend="pgupgrade"> now uses <option>-U</>
|
|
or <option>--username</> to specify the user name (Bruce Momjian)
|
|
</para>
|
|
|
|
<para>
|
|
Previously this option was spelled <option>-u</> or <option>--user</>,
|
|
but that was inconsistent with other tools.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect2>
|
|
|
|
<sect2>
|
|
<title>Changes</title>
|
|
|
|
<para>
|
|
Below you will find a detailed account of the changes between
|
|
<productname>PostgreSQL</productname> 9.4 and the previous major
|
|
release.
|
|
</para>
|
|
|
|
<sect3>
|
|
<title>Server</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <link linkend="bgworker">background worker processes</link>
|
|
to be dynamically registered, started and terminated (Robert Haas)
|
|
</para>
|
|
|
|
<para>
|
|
The new <filename>worker_spi</> module shows an example of use
|
|
of this feature.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow dynamic allocation of shared memory segments (Robert Haas,
|
|
Amit Kapila)
|
|
</para>
|
|
|
|
<para>
|
|
This feature is illustrated in the <filename>test_shm_mq</filename>
|
|
module.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
During crash recovery or immediate shutdown, send uncatchable
|
|
termination signals (<systemitem>SIGKILL</>) to child processes
|
|
that do not shut down promptly (MauMau, Álvaro Herrera)
|
|
</para>
|
|
|
|
<para>
|
|
This reduces the likelihood of leaving orphaned child processes
|
|
behind after <xref linkend="app-postmaster"> shutdown, as well
|
|
as ensuring that crash recovery can proceed if some child processes
|
|
have become <quote>stuck</>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve randomness of the database system identifier (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Make <xref linkend="SQL-VACUUM"> properly report dead but
|
|
not-yet-removable rows to the statistics collector (Hari Babu)
|
|
</para>
|
|
|
|
<para>
|
|
Previously these were reported as live rows.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
<sect4>
|
|
<title>Indexes</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<para>
|
|
Reduce <link linkend="GIN"><acronym>GIN</></link> index size
|
|
(Alexander Korotkov, Heikki Linnakangas)
|
|
</para>
|
|
|
|
<para>
|
|
Indexes upgraded via <xref linkend="pgupgrade"> will work fine
|
|
but will still be in the old, larger <acronym>GIN</> format.
|
|
Use <xref linkend="SQL-REINDEX"> to recreate old GIN indexes in the
|
|
new format.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve speed of multi-key <link
|
|
linkend="GIN"><acronym>GIN</></link> lookups (Alexander Korotkov,
|
|
Heikki Linnakangas)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <link linkend="GiST"><acronym>GiST</></link> index support
|
|
for <link linkend="datatype-inet"><type>inet</></link> and
|
|
<link linkend="datatype-cidr"><type>cidr</></link> data types
|
|
(Emre Hasegeli)
|
|
</para>
|
|
|
|
<para>
|
|
Such indexes improve <link
|
|
linkend="cidr-inet-operators-table">subnet and supernet</link>
|
|
lookups and ordering comparisons.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix rare race condition in B-tree page deletion (Heikki Linnakangas)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Make the handling of interrupted B-tree page splits more robust
|
|
(Heikki Linnakangas)
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
<sect4>
|
|
<title>General Performance</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow multiple backends to insert
|
|
into <link linkend="wal"><acronym>WAL</></link> buffers
|
|
concurrently (Heikki Linnakangas)
|
|
</para>
|
|
|
|
<para>
|
|
This improves parallel write performance.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Conditionally write only the modified portion of updated rows to
|
|
<link linkend="wal"><acronym>WAL</></link> (Amit Kapila)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve performance of aggregate functions used as <link
|
|
linkend="syntax-window-functions">window functions</link>
|
|
(David Rowley, Florian Pflug, Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve speed of aggregates that
|
|
use <link linkend="datatype-numeric"><type>numeric</></link> state
|
|
values (Hadi Moshayedi)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Attempt to <link linkend="vacuum-for-wraparound">freeze</link>
|
|
tuples when tables are rewritten with <xref
|
|
linkend="SQL-CLUSTER"> or <link
|
|
linkend="SQL-VACUUM"><command>VACUUM FULL</></link> (Robert Haas,
|
|
Andres Freund)
|
|
</para>
|
|
|
|
<para>
|
|
This can avoid the need to freeze the tuples in the future.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve speed of <xref linkend="SQL-COPY"> with default <link
|
|
linkend="functions-sequence-table"><function>nextval()</></link>
|
|
columns (Simon Riggs)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve speed of accessing many different <link
|
|
linkend="SQL-CREATESEQUENCE">sequences</link> in the same session
|
|
(David Rowley)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Raise hard limit on the number of tuples held in memory during sorting
|
|
and B-tree index builds (Noah Misch)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Reduce memory allocated by <application>PL/pgSQL</>
|
|
<xref linkend="SQL-DO"> blocks (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Make the planner more aggressive about extracting restriction clauses
|
|
from mixed <literal>AND</>/<literal>OR</> clauses (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Disallow pushing volatile <literal>WHERE</> clauses down
|
|
into <literal>DISTINCT</> subqueries (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Pushing down a <literal>WHERE</> clause can produce a more
|
|
efficient plan overall, but at the cost of evaluating the clause
|
|
more often than is implied by the text of the query; so don't do it
|
|
if the clause contains any volatile functions.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Auto-resize the catalog caches (Heikki Linnakangas)
|
|
</para>
|
|
|
|
<para>
|
|
This reduces memory consumption for sessions accessing only a few
|
|
tables, and improves performance for sessions accessing many tables.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
<sect4>
|
|
<title>Monitoring</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <xref linkend="pg-stat-archiver-view"> system view to
|
|
report <link linkend="wal"><acronym>WAL</></link> archiver activity
|
|
(Gabriele Bartolini)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <structfield>n_mod_since_analyze</> columns to
|
|
<xref linkend="pg-stat-all-tables-view"> and related system views
|
|
(Mark Kirkwood)
|
|
</para>
|
|
|
|
<para>
|
|
These columns expose the system's estimate of the number of changed
|
|
tuples since the table's last <xref linkend="sql-analyze">. This
|
|
estimate drives decisions about when to auto-analyze.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <structfield>backend_xid</> and <structfield>backend_xmin</>
|
|
columns to the system view <xref linkend="pg-stat-activity-view">,
|
|
and a <structfield>backend_xmin</> column to
|
|
<xref linkend="pg-stat-replication-view"> (Christian Kruse)
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
<sect4>
|
|
<title><acronym>SSL</></title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add support for <acronym>SSL</> <acronym>ECDH</> key exchange
|
|
(Marko Kreen)
|
|
</para>
|
|
|
|
<para>
|
|
This allows use of Elliptic Curve keys for server authentication.
|
|
Such keys are faster and have better security than <acronym>RSA</>
|
|
keys. The new configuration parameter
|
|
<xref linkend="guc-ssl-ecdh-curve">
|
|
controls which curve is used for <acronym>ECDH</>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve the default <xref linkend="guc-ssl-ciphers"> setting
|
|
(Marko Kreen)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
By default, the server not the client now controls the preference
|
|
order of <acronym>SSL</> ciphers
|
|
(Marko Kreen)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, the order specified by <xref linkend="guc-ssl-ciphers">
|
|
was usually ignored in favor of client-side defaults, which are not
|
|
configurable in most <productname>PostgreSQL</> clients. If
|
|
desired, the old behavior can be restored via the new configuration
|
|
parameter <xref linkend="guc-ssl-prefer-server-ciphers">.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Make <xref linkend="guc-log-connections"> show <acronym>SSL</>
|
|
encryption information (Andreas Kunert)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve <acronym>SSL</> renegotiation handling (Álvaro
|
|
Herrera)
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
<sect4>
|
|
<title>Server Settings</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add new <acronym>SQL</> command <xref linkend="SQL-ALTERSYSTEM">
|
|
for changing <filename>postgresql.conf</> configuration file entries
|
|
(Amit Kapila)
|
|
</para>
|
|
|
|
<para>
|
|
Previously such settings could only be changed by manually
|
|
editing <filename>postgresql.conf</>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <xref linkend="guc-autovacuum-work-mem"> configuration parameter
|
|
to control the amount of memory used by autovacuum workers
|
|
(Peter Geoghegan)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <xref linkend="guc-huge-pages"> parameter to allow using huge
|
|
memory pages on Linux (Christian Kruse, Richard Poole, Abhijit
|
|
Menon-Sen)
|
|
</para>
|
|
|
|
<para>
|
|
This can improve performance on large-memory systems.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <xref linkend="guc-max-worker-processes"> parameter
|
|
to limit the number of background workers (Robert Haas)
|
|
</para>
|
|
|
|
<para>
|
|
This is helpful in configuring a standby server to have the
|
|
required number of worker processes (the same as the primary).
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add superuser-only <xref linkend="guc-session-preload-libraries">
|
|
parameter to load libraries at session start (Peter Eisentraut)
|
|
</para>
|
|
|
|
<para>
|
|
In contrast to <xref linkend="guc-local-preload-libraries">, this
|
|
parameter can load any shared library, not just those in
|
|
the <filename>$libdir/plugins</> directory.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <xref linkend="guc-wal-log-hints"> parameter to enable WAL
|
|
logging of hint-bit changes (Sawada Masahiko)
|
|
</para>
|
|
|
|
<para>
|
|
Hint bit changes are not normally logged, except when checksums are
|
|
enabled. This is useful for external tools
|
|
like <application>pg_rewind</>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Increase the default settings of <xref linkend="guc-work-mem">
|
|
and <xref linkend="guc-maintenance-work-mem"> by four times (Bruce
|
|
Momjian)
|
|
</para>
|
|
|
|
<para>
|
|
The new defaults are 4MB and 64MB respectively.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Increase the default setting of <xref
|
|
linkend="guc-effective-cache-size">
|
|
to 4GB (Bruce Momjian, Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <function>printf</function>-style space padding to be
|
|
specified in <xref linkend="guc-log-line-prefix"> (David Rowley)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow terabyte units (<literal>TB</>) to be used when specifying
|
|
configuration variable values (Simon Riggs)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Show <acronym>PID</>s of lock holders and waiters and improve
|
|
information about relations in <xref linkend="guc-log-lock-waits">
|
|
log messages (Christian Kruse)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Reduce server logging level when loading shared libraries (Peter
|
|
Geoghegan)
|
|
</para>
|
|
|
|
<para>
|
|
The previous level was <literal>LOG</>, which was too verbose
|
|
for libraries loaded per-session.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
On Windows, make <literal>SQL_ASCII</>-encoded databases and server
|
|
processes (e.g., <xref linkend="app-postmaster">) emit messages in
|
|
the character encoding of the server's Windows user locale
|
|
(Alexander Law, Noah Misch)
|
|
</para>
|
|
|
|
<para>
|
|
Previously these messages were output in the Windows
|
|
<acronym>ANSI</> code page.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
</sect3>
|
|
|
|
<sect3>
|
|
<title>Replication and Recovery</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <link linkend="streaming-replication-slots">replication
|
|
slots</link> to coordinate activity on streaming standbys with the
|
|
node they are streaming from (Andres Freund, Robert Haas)
|
|
</para>
|
|
|
|
<para>
|
|
Replication slots allow preservation of resources like
|
|
<acronym>WAL</> files on the primary until they are no longer
|
|
needed by standby servers.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add recovery parameter <xref linkend="recovery-min-apply-delay">
|
|
to delay replication (Robert Haas, Fabrízio de Royes Mello,
|
|
Simon Riggs)
|
|
</para>
|
|
|
|
<para>
|
|
Delaying replay on standby servers can be useful for recovering
|
|
from user errors.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <xref linkend="recovery-target">
|
|
option <option>immediate</> to stop <link
|
|
linkend="wal"><acronym>WAL</></link> recovery as soon as a
|
|
consistent state is reached (MauMau, Heikki Linnakangas)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve recovery target processing (Heikki Linnakangas)
|
|
</para>
|
|
|
|
<para>
|
|
The timestamp reported
|
|
by <link linkend="functions-recovery-info-table"><function>pg_last_xact_replay_timestamp()</></link>
|
|
now reflects already-committed records, not transactions about to
|
|
be committed. Recovering to a restore point now replays the restore
|
|
point, rather than stopping just before the restore point.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
<link
|
|
linkend="functions-admin-backup-table"><function>pg_switch_xlog()</></link>
|
|
now clears any unused trailing space in the old <acronym>WAL</> file
|
|
(Heikki Linnakangas)
|
|
</para>
|
|
|
|
<para>
|
|
This improves the compression ratio for <acronym>WAL</> files.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Report failure return codes from <link
|
|
linkend="archive-recovery-settings">external recovery commands</>
|
|
(Peter Eisentraut)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Reduce spinlock contention during <acronym>WAL</> replay (Heikki
|
|
Linnakangas)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Write <acronym>WAL</> records of running transactions more
|
|
frequently (Andres Freund)
|
|
</para>
|
|
|
|
<para>
|
|
This allows standby servers to start faster and clean up resources
|
|
more aggressively.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
<sect4>
|
|
<title><link linkend="logicaldecoding">Logical Decoding</></title>
|
|
|
|
<para>
|
|
Logical decoding allows database changes to be streamed in a
|
|
configurable format. The data is read from
|
|
the <link linkend="wal"><acronym>WAL</></link> and transformed into the
|
|
desired target format. To implement this feature, the following changes
|
|
were made:
|
|
</para>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add support for <link linkend="logicaldecoding">logical decoding</>
|
|
of WAL data, to allow database changes to be streamed out in a
|
|
customizable format
|
|
(Andres Freund)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add new <xref linkend="guc-wal-level"> setting <option>logical</>
|
|
to enable logical change-set encoding in <acronym>WAL</> (Andres
|
|
Freund)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add table-level parameter <link
|
|
linkend="catalog-pg-class"><literal>REPLICA IDENTITY</></link>
|
|
to control logical replication (Andres Freund)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add relation option <link
|
|
linkend="SQL-CREATETABLE-storage-parameters"><option>user_catalog_table</></link>
|
|
to identify user-created tables involved in logical change-set
|
|
encoding (Andres Freund)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <xref linkend="app-pgrecvlogical"> application to receive
|
|
logical-decoding data (Andres Freund)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <xref linkend="test-decoding"> module to illustrate logical
|
|
decoding at the <acronym>SQL</> level (Andres Freund)
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
</sect3>
|
|
|
|
<sect3>
|
|
<title>Queries</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <link linkend="queries-tablefunctions"><literal>WITH
|
|
ORDINALITY</></link> syntax to number the rows returned from a
|
|
set-returning function in the <literal>FROM</> clause
|
|
(Andrew Gierth, David Fetter)
|
|
</para>
|
|
|
|
<para>
|
|
This is particularly useful for functions like
|
|
<function>unnest()</>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <link linkend="queries-tablefunctions"><literal>ROWS
|
|
FROM()</></link> syntax to allow horizontal concatenation of
|
|
set-returning functions in the <literal>FROM</> clause (Andrew Gierth)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <xref linkend="SQL-SELECT"> to have
|
|
an empty target list (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This was added so that views that select from a table with zero
|
|
columns can be dumped and restored correctly.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Ensure that <link linkend="SQL-SELECT"><literal>SELECT ... FOR UPDATE
|
|
NOWAIT</></link> does not wait in corner cases involving
|
|
already-concurrently-updated tuples (Craig Ringer and Thomas Munro)
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect3>
|
|
|
|
<sect3>
|
|
<title>Utility Commands</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <link linkend="SQL-DISCARD"><command>DISCARD
|
|
SEQUENCES</></link> command to discard cached sequence-related state
|
|
(Fabrízio de Royes Mello, Robert Haas)
|
|
</para>
|
|
|
|
<para>
|
|
<command>DISCARD ALL</> will now also discard such information.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <literal>FORCE NULL</> option
|
|
to <link linkend="SQL-COPY"><command>COPY FROM</></link>, which
|
|
causes quoted strings matching the specified null string to be
|
|
converted to NULLs in <literal>CSV</> mode (Ian Barwick, Michael
|
|
Paquier)
|
|
</para>
|
|
|
|
<para>
|
|
Without this option, only unquoted matching strings will be imported
|
|
as null values.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Issue warnings for commands used outside of transaction blocks
|
|
when they can have no effect (Bruce Momjian)
|
|
</para>
|
|
|
|
<para>
|
|
New warnings are issued for <command>SET
|
|
LOCAL</>, <command>SET CONSTRAINTS</>, <command>SET TRANSACTION</> and
|
|
<command>ABORT</> when used outside a transaction block.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
<sect4>
|
|
<title><xref linkend="SQL-EXPLAIN"></title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<para>
|
|
Make <command>EXPLAIN ANALYZE</> show planning time (Andreas
|
|
Karlsson)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Make <command>EXPLAIN</> show the grouping columns in Agg and
|
|
Group nodes (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Make <command>EXPLAIN ANALYZE</> show exact and lossy
|
|
block counts in bitmap heap scans (Etsuro Fujita)
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
<sect4>
|
|
<title>Views</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow a <link linkend="rules-materializedviews">materialized view</>
|
|
to be refreshed without blocking other sessions from reading the view
|
|
meanwhile (Kevin Grittner)
|
|
</para>
|
|
|
|
<para>
|
|
This is done with <link
|
|
linkend="SQL-REFRESHMATERIALIZEDVIEW"><command>REFRESH MATERIALIZED
|
|
VIEW CONCURRENTLY</></link>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow views to be <link
|
|
linkend="SQL-CREATEVIEW-updatable-views">automatically
|
|
updated</link> even if they contain some non-updatable columns
|
|
(Dean Rasheed)
|
|
</para>
|
|
|
|
<para>
|
|
Previously the presence of non-updatable output columns such as
|
|
expressions, literals, and function calls prevented automatic
|
|
updates. Now <command>INSERT</>s, <command>UPDATE</>s and
|
|
<command>DELETE</>s are supported, provided that they do not
|
|
attempt to assign new values to any of the non-updatable columns.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow control over whether <command>INSERT</>s and
|
|
<command>UPDATE</>s can add rows to an auto-updatable view that
|
|
would not appear in the view (Dean Rasheed)
|
|
</para>
|
|
|
|
<para>
|
|
This is controlled with the new <xref linkend="SQL-CREATEVIEW">
|
|
clause <literal>WITH CHECK OPTION</>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <link linkend="rules-privileges">security barrier views</>
|
|
to be automatically updatable (Dean Rasheed)
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
</sect3>
|
|
|
|
<sect3>
|
|
<title>Object Manipulation</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<para>
|
|
Support triggers on <link linkend="SQL-CREATEFOREIGNTABLE">foreign
|
|
tables</> (Ronan Dunklau)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow moving groups of objects from one tablespace to another
|
|
using the <literal>ALL IN TABLESPACE ... SET TABLESPACE</> form of
|
|
<xref linkend="SQL-ALTERTABLE">, <xref linkend="SQL-ALTERINDEX">, or
|
|
<xref linkend="SQL-ALTERMATERIALIZEDVIEW"> (Stephen Frost)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow changing foreign key constraint deferrability
|
|
via <xref linkend="SQL-ALTERTABLE"> ... <literal>ALTER
|
|
CONSTRAINT</> (Simon Riggs)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Reduce lock strength for some <xref linkend="SQL-ALTERTABLE">
|
|
commands
|
|
(Simon Riggs, Noah Misch, Robert Haas)
|
|
</para>
|
|
|
|
<para>
|
|
Specifically, <literal>VALIDATE CONSTRAINT</>, <literal>CLUSTER
|
|
ON</>, <literal>SET WITHOUT CLUSTER</>, <literal>ALTER COLUMN
|
|
SET STATISTICS</>, <literal>ALTER COLUMN</> <literal>SET</>
|
|
<option>(attribute_option)</>, <literal>ALTER COLUMN RESET</>
|
|
<option>(attribute_option)</> no longer require <literal>ACCESS
|
|
EXCLUSIVE</> locks.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow tablespace options to be set
|
|
in <xref linkend="SQL-CREATETABLESPACE"> (Vik Fearing)
|
|
</para>
|
|
|
|
<para>
|
|
Formerly these options could only be set
|
|
via <xref linkend="SQL-ALTERTABLESPACE">.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <xref linkend="SQL-CREATEAGGREGATE"> to define the estimated
|
|
size of the aggregate's transition state data (Hadi Moshayedi)
|
|
</para>
|
|
|
|
<para>
|
|
Proper use of this feature allows the planner to better estimate
|
|
how much memory will be used by aggregates.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <command>DROP IF EXISTS</> to avoid errors for non-existent
|
|
objects in more cases (Pavel Stehule, Dean Rasheed)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve how system relations are identified (Andres Freund,
|
|
Robert Haas)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, relations once moved into the <literal>pg_catalog</>
|
|
schema could no longer be modified or dropped.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect3>
|
|
|
|
<sect3>
|
|
<title>Data Types</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fully implement the <link
|
|
linkend="datatype-line"><type>line</></link> data type (Peter
|
|
Eisentraut)
|
|
</para>
|
|
|
|
<para>
|
|
The line <emphasis>segment</> data type (<link
|
|
linkend="datatype-lseg"><type>lseg</></link>) has always been
|
|
fully supported. The previous <type>line</> data type (which was
|
|
enabled only via a compile-time option) is not binary or
|
|
dump-compatible with the new implementation.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <link linkend="datatype-pg-lsn"><type>pg_lsn</></link>
|
|
data type to represent a <acronym>WAL</> log sequence number
|
|
(<acronym>LSN</>) (Robert Haas, Michael Paquier)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow single-point <link
|
|
linkend="datatype-polygon"><type>polygon</></link>s to be converted
|
|
to <link linkend="datatype-circle"><type>circle</></link>s
|
|
(Bruce Momjian)
|
|
</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>
|
|
Allow 5+ digit years for non-<acronym>ISO</> <link
|
|
linkend="datatype-datetime"><type>timestamp</></link> and
|
|
<type>date</> strings, where appropriate (Bruce Momjian)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add checks for overflow/underflow of <link
|
|
linkend="datatype-datetime"><type>interval</></link> values
|
|
(Bruce Momjian)
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
<sect4>
|
|
<title><link linkend="datatype-json"><acronym>JSON</></link></title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <link linkend="datatype-json"><type>jsonb</></link>, a more
|
|
capable and efficient data type for storing <acronym>JSON</> data
|
|
(Oleg Bartunov, Teodor Sigaev, Alexander
|
|
Korotkov, Peter Geoghegan, Andrew Dunstan)
|
|
</para>
|
|
|
|
<para>
|
|
This new type allows faster access to values within a JSON
|
|
document, and faster and more useful indexing of JSON columns.
|
|
Scalar values in <type>jsonb</> documents are stored as appropriate
|
|
scalar SQL types, and the JSON document structure is pre-parsed
|
|
rather than being stored as text as in the original <type>json</>
|
|
data type.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add new JSON functions to allow for the construction
|
|
of arbitrarily complex JSON trees (Andrew Dunstan, Laurence Rowe)
|
|
</para>
|
|
|
|
<para>
|
|
New functions include <link
|
|
linkend="functions-json-processing-table"><function>json_array_elements_text()</></link>,
|
|
<function>json_build_array()</>, <function>json_object()</>,
|
|
<function>json_object_agg()</>, <function>json_to_record()</>,
|
|
and <function>json_to_recordset()</>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <link
|
|
linkend="functions-json-processing-table"><function>json_typeof()</></link>
|
|
to return the data type of a <type>json</> value (Andrew Tipton)
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
</sect3>
|
|
|
|
<sect3>
|
|
<title>Functions</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <link
|
|
linkend="functions-datetime-delay"><function>pg_sleep_for(interval)</></link>
|
|
and <function>pg_sleep_until(timestamp)</> to specify
|
|
delays more flexibly (Vik Fearing, Julien Rouhaud)
|
|
</para>
|
|
|
|
<para>
|
|
The existing <function>pg_sleep()</> function only supports delays
|
|
specified in seconds.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <link
|
|
linkend="array-functions-table"><function>cardinality()</></link>
|
|
function for arrays (Marko Tiikkaja)
|
|
</para>
|
|
|
|
<para>
|
|
This returns the total number of elements in the array, or zero
|
|
for an array with no elements.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <acronym>SQL</> functions to allow <link linkend="lo-funcs">large
|
|
object reads/writes</link> at arbitrary offsets (Pavel Stehule)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <link
|
|
linkend="array-functions-table"><function>unnest()</></link>
|
|
to take multiple arguments, which are individually unnested then
|
|
horizontally concatenated (Andrew Gierth)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add functions to construct <type>time</>s, <type>date</>s,
|
|
<type>timestamp</>s, <type>timestamptz</>s, and <type>interval</>s
|
|
from individual values, rather than strings (Pavel Stehule)
|
|
</para>
|
|
|
|
<para>
|
|
These functions' names are prefixed with <literal>make_</>,
|
|
e.g. <link linkend="functions-datetime-table"><function>make_date()</></link>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Make <link
|
|
linkend="functions-formatting-table"><function>to_char()</></link>'s
|
|
<literal>TZ</> format specifier return a useful value for simple
|
|
numeric time zone offsets (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, <literal>to_char(CURRENT_TIMESTAMP, 'TZ')</> returned
|
|
an empty string if the <literal>timezone</> was set to a constant
|
|
like <literal>-4</>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add timezone offset format specifier <literal>OF</> to <link
|
|
linkend="functions-formatting-table"><function>to_char()</></link>
|
|
(Bruce Momjian)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve the random seed used for <link
|
|
linkend="functions-math-random-table"><function>random()</></link>
|
|
(Honza Horak)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Tighten validity checking for Unicode code points in <link
|
|
linkend="functions-string-other"><function>chr(int)</></link>
|
|
(Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This function now only accepts values that are valid UTF8 characters
|
|
according to RFC 3629.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
<sect4>
|
|
<title>System Information Functions</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add functions for looking up objects in <structname>pg_class</>,
|
|
<structname>pg_proc</>, <structname>pg_type</>, and
|
|
<structname>pg_operator</> that do not generate errors for
|
|
non-existent objects (Yugo Nagata, Nozomi Anzai,
|
|
Robert Haas)
|
|
</para>
|
|
|
|
<para>
|
|
For example, <link
|
|
linkend="functions-info-catalog-table"><function>to_regclass()</></link>
|
|
does a lookup in <structname>pg_class</> similarly to
|
|
the <type>regclass</> input function, but it returns NULL for a
|
|
non-existent object instead of failing.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add function <link
|
|
linkend="functions-admin-dblocation"><function>pg_filenode_relation()</></link>
|
|
to allow for more efficient lookup of relation names from filenodes
|
|
(Andres Freund)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <structfield>parameter_default</> column to <link
|
|
linkend="infoschema-parameters"><structname>information_schema.parameters</></link>
|
|
view (Peter Eisentraut)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Make <link
|
|
linkend="infoschema-schemata"><structname>information_schema.schemata</></link>
|
|
show all accessible schemas (Peter Eisentraut)
|
|
</para>
|
|
|
|
<para>
|
|
Previously it only showed schemas owned by the current user.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
<sect4>
|
|
<title>Aggregates</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add control over which rows are passed
|
|
into aggregate functions via the <link
|
|
linkend="syntax-aggregates"><literal>FILTER</></link> clause
|
|
(David Fetter)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Support ordered-set (<link
|
|
linkend="syntax-aggregates"><literal>WITHIN GROUP</></link>)
|
|
aggregates (Atri Sharma, Andrew Gierth, Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add standard ordered-set aggregates <link
|
|
linkend="functions-orderedset-table"><function>percentile_cont()</></link>,
|
|
<function>percentile_disc()</>, <function>mode()</>, <link
|
|
linkend="functions-hypothetical-table"><function>rank()</></link>,
|
|
<function>dense_rank()</>, <function>percent_rank()</>, and
|
|
<function>cume_dist()</>
|
|
(Atri Sharma, Andrew Gierth)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Support <link
|
|
linkend="xfunc-sql-variadic-functions"><literal>VARIADIC</></link>
|
|
aggregate functions (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow polymorphic aggregates to have non-polymorphic state data
|
|
types (Tom Lane)
|
|
</para>
|
|
<para>
|
|
This allows proper declaration in SQL of aggregates like the built-in
|
|
aggregate <function>array_agg()</>.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
</sect3>
|
|
|
|
<sect3>
|
|
<title>Server-Side Languages</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add event trigger support to <link linkend="plperl">PL/Perl</>
|
|
and <link linkend="pltcl">PL/Tcl</> (Dimitri Fontaine)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Convert <link linkend="datatype-numeric"><type>numeric</></link>
|
|
values to <type>decimal</> in <link linkend="plpython">PL/Python</link>
|
|
(Szymon Guz, Ronan Dunklau)
|
|
</para>
|
|
|
|
<para>
|
|
Previously such values were converted to Python <type>float</> values,
|
|
risking loss of precision.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
<sect4>
|
|
<title><link linkend="plpgsql">PL/pgSQL</link> Server-Side Language</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add ability to retrieve the current PL/pgSQL call stack
|
|
using <link linkend="plpgsql-call-stack"><command>GET
|
|
DIAGNOSTICS</></link>
|
|
(Pavel Stehule, Stephen Frost)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add option <link
|
|
linkend="plpgsql-statements-sql-onerow"><option>print_strict_params</></link>
|
|
to display the parameters passed to a query that violated a
|
|
<literal>STRICT</> constraint (Marko Tiikkaja)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add variables <link
|
|
linkend="plpgsql-extra-checks"><varname>plpgsql.extra_warnings</></link>
|
|
and <varname>plpgsql.extra_errors</> to enable additional PL/pgSQL
|
|
warnings and errors (Marko Tiikkaja, Petr Jelinek)
|
|
</para>
|
|
|
|
<para>
|
|
Currently only warnings/errors about shadowed variables are available.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
</sect3>
|
|
|
|
<sect3>
|
|
<title><link linkend="libpq"><application>libpq</></link></title>
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<para>
|
|
Make libpq's <link
|
|
linkend="libpq-pqconndefaults"><function>PQconndefaults()</></link>
|
|
function ignore invalid service files (Steve Singer, Bruce Momjian)
|
|
</para>
|
|
|
|
<para>
|
|
Previously it returned NULL if an incorrect service file was
|
|
encountered.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Accept <acronym>TLS</> protocol versions beyond <literal>TLSv1</>
|
|
in libpq (Marko Kreen)
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect3>
|
|
|
|
<sect3>
|
|
<title>Client Applications</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <xref linkend="APP-CREATEUSER"> option <option>-g</>
|
|
to specify role membership (Christopher Browne)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <xref linkend="APP-VACUUMDB">
|
|
option <option>--analyze-in-stages</> to analyze in stages of
|
|
increasing granularity (Peter Eisentraut)
|
|
</para>
|
|
|
|
<para>
|
|
This allows minimal statistics to be created quickly.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Make <link linkend="app-pgresetwal"><application>pg_resetxlog</></>
|
|
with option <option>-n</> output current and potentially changed
|
|
values (Rajeev Rastogi)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Make <xref linkend="app-initdb"> throw error for incorrect locale
|
|
settings, rather than silently falling back to a default choice
|
|
(Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Make <xref linkend="app-pg-ctl"> return exit code <literal>4</> for
|
|
an inaccessible data directory (Amit Kapila, Bruce Momjian)
|
|
</para>
|
|
|
|
<para>
|
|
This behavior more closely matches the Linux Standard Base
|
|
(<acronym>LSB</>) Core Specification.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
On Windows, ensure that a non-absolute <option>-D</> path
|
|
specification is interpreted relative
|
|
to <xref linkend="app-pg-ctl">'s current directory
|
|
(Kumar Rajeev Rastogi)
|
|
</para>
|
|
|
|
<para>
|
|
Previously it would be interpreted relative to whichever directory
|
|
the underlying Windows service was started in.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <function>sizeof()</> in <link linkend="ecpg">ECPG</link>
|
|
C array definitions (Michael Meskes)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Make <link linkend="ecpg">ECPG</link> properly handle nesting
|
|
of C-style comments in both C and <acronym>SQL</> text
|
|
(Michael Meskes)
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
<sect4>
|
|
<title><xref linkend="APP-PSQL"></title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<para>
|
|
Suppress <quote>No rows</quote> output in <application>psql</> <link
|
|
linkend="APP-PSQL-meta-commands"><option>expanded</></link>
|
|
mode when the footer is disabled (Bruce Momjian)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow Control-C to abort <application>psql</> when it's hung at
|
|
connection startup (Peter Eisentraut)
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
<sect5>
|
|
<title><link linkend="APP-PSQL-meta-commands">Backslash Commands</link></title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<para>
|
|
Make <application>psql</>'s <command>\db+</> show tablespace options
|
|
(Magnus Hagander)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Make <command>\do+</> display the functions
|
|
that implement the operators (Marko Tiikkaja)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Make <command>\d+</> output an
|
|
<literal>OID</> line only if an <literal>oid</literal> column
|
|
exists in the table (Bruce Momjian)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, the presence or absence of an <literal>oid</literal>
|
|
column was always reported.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Make <command>\d</> show disabled system triggers (Bruce
|
|
Momjian)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, if you disabled all triggers, only user triggers
|
|
would show as disabled.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <command>\copy</> to no longer require
|
|
a space between <literal>stdin</> and a semicolon (Etsuro Fujita)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Output the row count at the end of <command>\copy</>, just
|
|
like <command>COPY</> already did (Kumar Rajeev Rastogi)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <command>\conninfo</> to display the
|
|
server's <acronym>IP</> address for connections using
|
|
<literal>hostaddr</> (Fujii Masao)
|
|
</para>
|
|
|
|
<para>
|
|
Previously <command>\conninfo</> could not display the server's
|
|
<acronym>IP</> address in such cases.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Show the <acronym>SSL</> protocol version in
|
|
<command>\conninfo</> (Marko Kreen)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add tab completion for <command>\pset</>
|
|
(Pavel Stehule)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <command>\pset</> with no arguments
|
|
to show all settings (Gilles Darold)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Make <command>\s</> display the name of the history file it wrote
|
|
without converting it to an absolute path (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
The code previously attempted to convert a relative file name to
|
|
an absolute path for display, but frequently got it wrong.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect5>
|
|
|
|
</sect4>
|
|
|
|
<sect4>
|
|
<title><xref linkend="APP-PGDUMP"></title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <xref linkend="APP-PGRESTORE"> options
|
|
<option>-I</>, <option>-P</>, <option>-T</> and <option>-n</>
|
|
to be specified multiple times (Heikki Linnakangas)
|
|
</para>
|
|
|
|
<para>
|
|
This allows multiple objects to be restored in one operation.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Optionally add <literal>IF EXISTS</> clauses to the <command>DROP</>
|
|
commands emitted when removing old objects during a restore (Pavel
|
|
Stehule)
|
|
</para>
|
|
|
|
<para>
|
|
This change prevents unnecessary errors when removing old objects.
|
|
The new <option>--if-exists</> option
|
|
for <xref linkend="APP-PGDUMP">, <xref linkend="APP-PG-DUMPALL">,
|
|
and <xref linkend="APP-PGRESTORE"> is only available
|
|
when <option>--clean</> is also specified.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
<sect4>
|
|
<title><xref linkend="app-pgbasebackup"></title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <application>pg_basebackup</> option <option>--xlogdir</>
|
|
to specify the <filename>pg_xlog</> directory location (Haribabu
|
|
Kommi)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <application>pg_basebackup</> to relocate tablespaces in
|
|
the backup copy (Steeve Lennmark)
|
|
</para>
|
|
|
|
<para>
|
|
This is particularly useful for using <application>pg_basebackup</>
|
|
on the same machine as the primary.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow network-stream base backups to be throttled (Antonin Houska)
|
|
</para>
|
|
|
|
<para>
|
|
This can be controlled with the <application>pg_basebackup</>
|
|
<option>--max-rate</> parameter.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
</sect3>
|
|
|
|
<sect3>
|
|
<title>Source Code</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve the way tuples are frozen to preserve forensic information
|
|
(Robert Haas, Andres Freund)
|
|
</para>
|
|
|
|
<para>
|
|
This change removes the main objection to freezing tuples as soon
|
|
as possible. Code that inspects tuple flag bits will need to be
|
|
modified.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
No longer require function prototypes for functions marked with the
|
|
<link linkend="xfunc-c"><function>PG_FUNCTION_INFO_V1</></link>
|
|
macro (Peter Eisentraut)
|
|
</para>
|
|
|
|
<para>
|
|
This change eliminates the need to write boilerplate prototypes.
|
|
Note that the <function>PG_FUNCTION_INFO_V1</> macro must appear
|
|
before the corresponding function definition to avoid compiler
|
|
warnings.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Remove <varname>SnapshotNow</> and
|
|
<function>HeapTupleSatisfiesNow()</> (Robert Haas)
|
|
</para>
|
|
|
|
<para>
|
|
All existing uses have been switched to more appropriate snapshot
|
|
types. Catalog scans now use <acronym>MVCC</> snapshots.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add an <acronym>API</> to allow memory allocations over one gigabyte
|
|
(Noah Misch)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <function>psprintf()</> to simplify memory allocation during
|
|
string composition (Peter Eisentraut, Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Support <function>printf()</> size modifier <literal>z</> to
|
|
print <type>size_t</> values (Andres Freund)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Change <acronym>API</> of <function>appendStringInfoVA()</>
|
|
to better use <function>vsnprintf()</> (David Rowley, Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow new types of external toast datums to be created (Andres
|
|
Freund)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add single-reader, single-writer, lightweight shared message queue
|
|
(Robert Haas)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve spinlock speed on x86_64 <acronym>CPU</>s (Heikki
|
|
Linnakangas)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Remove spinlock support for unsupported platforms
|
|
<productname>SINIX</>, <productname>Sun3</>, and
|
|
<productname>NS32K</> (Robert Haas)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Remove <acronym>IRIX</> port (Robert Haas)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Reduce the number of semaphores required by
|
|
<option>--disable-spinlocks</> builds (Robert Haas)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Rewrite <application>duplicate_oids</> Unix shell script in
|
|
<application>Perl</> (Andrew Dunstan)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add Test Anything Protocol (<acronym>TAP</>) tests for client
|
|
programs (Peter Eisentraut)
|
|
</para>
|
|
|
|
<para>
|
|
Currently, these tests are run by <literal>make check-world</>
|
|
only if the <option>--enable-tap-tests</> option was given
|
|
to <application>configure</>.
|
|
This might become the default behavior in some future release.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add make targets <option>check-tests</> and
|
|
<option>installcheck-tests</>, which allow selection of individual
|
|
tests to be run (Andrew Dunstan)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Remove <option>maintainer-check</> makefile rule (Peter Eisentraut)
|
|
</para>
|
|
|
|
<para>
|
|
The default build rules now include all the formerly-optional tests.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve support for <envar>VPATH</> builds of <acronym>PGXS</>
|
|
modules (Cédric Villemain, Andrew Dunstan, Peter Eisentraut)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Upgrade to Autoconf 2.69 (Peter Eisentraut)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add a <application>configure</> flag that appends custom text to the
|
|
<envar>PG_VERSION</> string (Oskari Saarenmaa)
|
|
</para>
|
|
|
|
<para>
|
|
This is useful for packagers building custom binaries.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve DocBook <acronym>XML</> validity (Peter Eisentraut)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix various minor security and sanity issues reported by the
|
|
<productname>Coverity</> scanner (Stephen Frost)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve detection of invalid memory usage when testing
|
|
<productname>PostgreSQL</> with <application>Valgrind</>
|
|
(Noah Misch)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve sample <application>Emacs</> configuration file
|
|
<filename>emacs.samples</> (Peter Eisentraut)
|
|
</para>
|
|
|
|
<para>
|
|
Also add <filename>.dir-locals.el</> to the top of the source tree.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <application>pgindent</> to accept a command-line list
|
|
of typedefs (Bruce Momjian)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Make <application>pgindent</> smarter about blank lines
|
|
around preprocessor conditionals (Bruce Momjian)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Avoid most uses of <command>dlltool</command>
|
|
in <productname>Cygwin</> and
|
|
<productname>Mingw</> builds (Marco Atzeri, Hiroshi Inoue)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Support client-only installs in <acronym>MSVC</> (Windows) builds
|
|
(MauMau)
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect3>
|
|
|
|
<sect3>
|
|
<title>Additional Modules</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <xref linkend="pgprewarm"> extension to preload relation data
|
|
into the shared buffer cache at server start (Robert Haas)
|
|
</para>
|
|
|
|
<para>
|
|
This allows reaching full operating performance more quickly.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <acronym>UUID</> random number generator
|
|
<function>gen_random_uuid()</> to <xref linkend="pgcrypto">
|
|
(Oskari Saarenmaa)
|
|
</para>
|
|
|
|
<para>
|
|
This allows creation of version 4 <acronym>UUID</>s without
|
|
requiring installation of <xref linkend="uuid-ossp">.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <xref linkend="uuid-ossp"> to work with
|
|
the <systemitem>BSD</> or <systemitem>e2fsprogs</> UUID libraries,
|
|
not only the <systemitem>OSSP</> UUID library (Matteo Beccati)
|
|
</para>
|
|
|
|
<para>
|
|
This improves the <application>uuid-ossp</> module's portability
|
|
since it no longer has to have the increasingly-obsolete OSSP
|
|
library. The module's name is now rather a misnomer, but we won't
|
|
change it.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add option to <xref linkend="auto-explain"> to include trigger
|
|
execution time (Horiguchi Kyotaro)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <xref linkend="pgstattuple"> to not report rows from
|
|
uncommitted transactions as dead (Robert Haas)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Make <xref linkend="pgstattuple"> functions
|
|
use <type>regclass</type>-type arguments (Satoshi Nagayasu)
|
|
</para>
|
|
|
|
<para>
|
|
While <type>text</type>-type arguments are still supported, they
|
|
may be removed in a future major release.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve consistency of <xref linkend="pgrowlocks"> output to honor
|
|
snapshot rules more consistently (Robert Haas)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve <xref linkend="pgtrgm">'s choice of trigrams for indexed
|
|
regular expression searches (Alexander Korotkov)
|
|
</para>
|
|
|
|
<para>
|
|
This change discourages use of trigrams containing whitespace, which
|
|
are usually less selective.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <link linkend="pgwaldump"><application>pg_xlogdump</></>
|
|
to report a live log stream with <option>--follow</>
|
|
(Heikki Linnakangas)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Store <xref linkend="cube"> data more compactly (Stas Kelvich)
|
|
</para>
|
|
|
|
<para>
|
|
Existing data must be dumped/restored to use the new format.
|
|
The old format can still be read.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Reduce <xref linkend="vacuumlo"> client-side memory usage by using
|
|
a cursor (Andrew Dunstan)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Dramatically reduce memory consumption
|
|
in <xref linkend="pgupgrade"> (Bruce Momjian)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Pass <xref linkend="pgupgrade">'s user name (<option>-U</>) option to
|
|
generated analyze scripts (Bruce Momjian)
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
<sect4>
|
|
<title><xref linkend="pgbench"></title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<para>
|
|
Remove line length limit for <application>pgbench</> scripts (Sawada
|
|
Masahiko)
|
|
</para>
|
|
|
|
<para>
|
|
The previous line limit was <envar>BUFSIZ</>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add long option names to <application>pgbench</> (Fabien Coelho)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <application>pgbench</> option <option>--rate</> to control
|
|
the transaction rate (Fabien Coelho)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <application>pgbench</> option <option>--progress</> to
|
|
print periodic progress reports
|
|
(Fabien Coelho)
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
<sect4>
|
|
<title><xref linkend="pgstatstatements"></title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<para>
|
|
Make <application>pg_stat_statements</> use a file, rather than
|
|
shared memory, for query text storage (Peter Geoghegan)
|
|
</para>
|
|
|
|
<para>
|
|
This removes the previous limitation on query text length, and
|
|
allows a higher number of unique statements to be tracked by default.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow reporting of <application>pg_stat_statements</>'s internal
|
|
query hash identifier (Daniel Farina, Sameer Thakur, Peter
|
|
Geoghegan)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add the ability to retrieve all <application>pg_stat_statements</>
|
|
information except the query text (Peter Geoghegan)
|
|
</para>
|
|
|
|
<para>
|
|
This allows monitoring tools to fetch query text only for
|
|
just-created entries, improving performance during repeated querying
|
|
of the statistics.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Make <application>pg_stat_statements</> ignore <command>DEALLOCATE</>
|
|
commands (Fabien Coelho)
|
|
</para>
|
|
|
|
<para>
|
|
It already ignored <command>PREPARE</>, as well as planning time in
|
|
general, so this seems more consistent.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Save the statistics file into <filename>$PGDATA/pg_stat</> at server
|
|
shutdown, rather than <filename>$PGDATA/global</> (Fujii Masao)
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
</sect3>
|
|
|
|
</sect2>
|
|
</sect1>
|