12644 lines
407 KiB
Plaintext
12644 lines
407 KiB
Plaintext
<!-- doc/src/sgml/release-9.4.sgml -->
|
|
<!-- See header comment in release.sgml about typical markup -->
|
|
|
|
<sect1 id="release-9-4-19">
|
|
<title>Release 9.4.19</title>
|
|
|
|
<formalpara>
|
|
<title>Release date:</title>
|
|
<para>2018-08-09</para>
|
|
</formalpara>
|
|
|
|
<para>
|
|
This release contains a variety of fixes from 9.4.18.
|
|
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.19</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.18,
|
|
see <xref linkend="release-9-4-18"/>.
|
|
</para>
|
|
</sect2>
|
|
|
|
<sect2>
|
|
<title>Changes</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix failure to reset <application>libpq</application>'s state fully
|
|
between connection attempts (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
An unprivileged user of <filename>dblink</filename>
|
|
or <filename>postgres_fdw</filename> could bypass the checks intended
|
|
to prevent use of server-side credentials, such as
|
|
a <filename>~/.pgpass</filename> file owned by the operating-system
|
|
user running the server. Servers allowing peer authentication on
|
|
local connections are particularly vulnerable. Other attacks such
|
|
as SQL injection into a <filename>postgres_fdw</filename> session
|
|
are also possible.
|
|
Attacking <filename>postgres_fdw</filename> in this way requires the
|
|
ability to create a foreign server object with selected connection
|
|
parameters, but any user with access to <filename>dblink</filename>
|
|
could exploit the problem.
|
|
In general, an attacker with the ability to select the connection
|
|
parameters for a <application>libpq</application>-using application
|
|
could cause mischief, though other plausible attack scenarios are
|
|
harder to think of.
|
|
Our thanks to Andrew Krasichkov for reporting this issue.
|
|
(CVE-2018-10915)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Ensure that updates to the <structfield>relfrozenxid</structfield>
|
|
and <structfield>relminmxid</structfield> values
|
|
for <quote>nailed</quote> system catalogs are processed in a timely
|
|
fashion (Andres Freund)
|
|
</para>
|
|
|
|
<para>
|
|
Overoptimistic caching rules could prevent these updates from being
|
|
seen by other sessions, leading to spurious errors and/or data
|
|
corruption. The problem was significantly worse for shared catalogs,
|
|
such as <structname>pg_authid</structname>, because the stale cache
|
|
data could persist into new sessions as well as existing ones.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix case where a freshly-promoted standby crashes before having
|
|
completed its first post-recovery checkpoint (Michael Paquier, Kyotaro
|
|
Horiguchi, Pavan Deolasee, Álvaro Herrera)
|
|
</para>
|
|
|
|
<para>
|
|
This led to a situation where the server did not think it had reached
|
|
a consistent database state during subsequent WAL replay, preventing
|
|
restart.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Avoid emitting a bogus WAL record when recycling an all-zero btree
|
|
page (Amit Kapila)
|
|
</para>
|
|
|
|
<para>
|
|
This mistake has been seen to cause assertion failures, and
|
|
potentially it could result in unnecessary query cancellations on hot
|
|
standby servers.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve performance of WAL replay for transactions that drop many
|
|
relations (Fujii Masao)
|
|
</para>
|
|
|
|
<para>
|
|
This change reduces the number of times that shared buffers are
|
|
scanned, so that it is of most benefit when that setting is large.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve performance of lock releasing in standby server WAL replay
|
|
(Thomas Munro)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Make logical WAL senders report streaming state correctly (Simon
|
|
Riggs, Sawada Masahiko)
|
|
</para>
|
|
|
|
<para>
|
|
The code previously mis-detected whether or not it had caught up with
|
|
the upstream server.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix bugs in snapshot handling during logical decoding, allowing wrong
|
|
decoding results in rare cases (Arseny Sher, Álvaro Herrera)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Ensure a table's cached index list is correctly rebuilt after an index
|
|
creation fails partway through (Peter Geoghegan)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, the failed index's OID could remain in the list, causing
|
|
problems later in the same session.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix mishandling of empty uncompressed posting list pages in GIN
|
|
indexes (Sivasubramanian Ramasubramanian, Alexander Korotkov)
|
|
</para>
|
|
|
|
<para>
|
|
This could result in an assertion failure after pg_upgrade of a
|
|
pre-9.4 GIN index (9.4 and later will not create such pages).
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Ensure that <command>VACUUM</command> will respond to signals
|
|
within btree page deletion loops (Andres Freund)
|
|
</para>
|
|
|
|
<para>
|
|
Corrupted btree indexes could result in an infinite loop here, and
|
|
that previously wasn't interruptible without forcing a crash.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix misoptimization of equivalence classes involving composite-type
|
|
columns (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This resulted in failure to recognize that an index on a composite
|
|
column could provide the sort order needed for a mergejoin on that
|
|
column.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix SQL-standard <literal>FETCH FIRST</literal> syntax to allow
|
|
parameters (<literal>$<replaceable>n</replaceable></literal>), as the
|
|
standard expects (Andrew Gierth)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix failure to schema-qualify some object names
|
|
in <function>getObjectDescription</function> output
|
|
(Kyotaro Horiguchi, Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Names of collations, conversions, and text search objects
|
|
were not schema-qualified when they should be.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Widen <command>COPY FROM</command>'s current-line-number counter
|
|
from 32 to 64 bits (David Rowley)
|
|
</para>
|
|
|
|
<para>
|
|
This avoids two problems with input exceeding 4G lines: <literal>COPY
|
|
FROM WITH HEADER</literal> would drop a line every 4G lines, not only
|
|
the first line, and error reports could show a wrong line number.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add a string freeing function
|
|
to <application>ecpg</application>'s <filename>pgtypes</filename>
|
|
library, so that cross-module memory management problems can be
|
|
avoided on Windows (Takayuki Tsunakawa)
|
|
</para>
|
|
|
|
<para>
|
|
On Windows, crashes can ensue if the <function>free</function> call
|
|
for a given chunk of memory is not made from the same DLL
|
|
that <function>malloc</function>'ed the memory.
|
|
The <filename>pgtypes</filename> library sometimes returns strings
|
|
that it expects the caller to free, making it impossible to follow
|
|
this rule. Add a <function>PGTYPESchar_free()</function> function
|
|
that just wraps <function>free</function>, allowing applications
|
|
to follow this rule.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <application>ecpg</application>'s support for <type>long
|
|
long</type> variables on Windows, as well as other platforms that
|
|
declare <function>strtoll</function>/<function>strtoull</function>
|
|
nonstandardly or not at all (Dang Minh Huong, Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix misidentification of SQL statement type in PL/pgSQL, when a rule
|
|
change causes a change in the semantics of a statement intra-session
|
|
(Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This error led to assertion failures, or in rare cases, failure to
|
|
enforce the <literal>INTO STRICT</literal> option as expected.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix password prompting in client programs so that echo is properly
|
|
disabled on Windows when <literal>stdin</literal> is not the
|
|
terminal (Matthew Stickney)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Further fix mis-quoting of values for list-valued GUC variables in
|
|
dumps (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
The previous fix for quoting of <varname>search_path</varname> and
|
|
other list-valued variables in <application>pg_dump</application>
|
|
output turned out to misbehave for empty-string list elements, and it
|
|
risked truncation of long file paths.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <application>pg_dump</application>'s failure to
|
|
dump <literal>REPLICA IDENTITY</literal> properties for constraint
|
|
indexes (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Manually created unique indexes were properly marked, but not those
|
|
created by declaring <literal>UNIQUE</literal> or <literal>PRIMARY
|
|
KEY</literal> constraints.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Make <application>pg_upgrade</application> check that the old server
|
|
was shut down cleanly (Bruce Momjian)
|
|
</para>
|
|
|
|
<para>
|
|
The previous check could be fooled by an immediate-mode shutdown.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix crash in <filename>contrib/ltree</filename>'s
|
|
<function>lca()</function> function when the input array is empty
|
|
(Pierre Ducroquet)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix various error-handling code paths in which an incorrect error code
|
|
might be reported (Michael Paquier, Tom Lane, Magnus Hagander)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Rearrange makefiles to ensure that programs link to freshly-built
|
|
libraries (such as <filename>libpq.so</filename>) rather than ones
|
|
that might exist in the system library directories (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This avoids problems when building on platforms that supply old copies
|
|
of <productname>PostgreSQL</productname> libraries.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Update time zone data files to <application>tzdata</application>
|
|
release 2018e for DST law changes in North Korea, plus historical
|
|
corrections for Czechoslovakia.
|
|
</para>
|
|
|
|
<para>
|
|
This update includes a redefinition of <quote>daylight savings</quote>
|
|
in Ireland, as well as for some past years in Namibia and
|
|
Czechoslovakia. In those jurisdictions, legally standard time is
|
|
observed in summer, and daylight savings time in winter, so that the
|
|
daylight savings offset is one hour behind standard time not one hour
|
|
ahead. This does not affect either the actual UTC offset or the
|
|
timezone abbreviations in use; the only known effect is that
|
|
the <structfield>is_dst</structfield> column in
|
|
the <structname>pg_timezone_names</structname> view will now be true
|
|
in winter and false in summer in these cases.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect2>
|
|
</sect1>
|
|
|
|
<sect1 id="release-9-4-18">
|
|
<title>Release 9.4.18</title>
|
|
|
|
<formalpara>
|
|
<title>Release date:</title>
|
|
<para>2018-05-10</para>
|
|
</formalpara>
|
|
|
|
<para>
|
|
This release contains a variety of fixes from 9.4.17.
|
|
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.18</title>
|
|
|
|
<para>
|
|
A dump/restore is not required for those running 9.4.X.
|
|
</para>
|
|
|
|
<para>
|
|
However, if the function marking mistakes mentioned in the first
|
|
changelog entry below affect you, you will want to take steps to
|
|
correct your database catalogs.
|
|
</para>
|
|
|
|
<para>
|
|
Also, if you are upgrading from a version earlier than 9.4.17,
|
|
see <xref linkend="release-9-4-17"/>.
|
|
</para>
|
|
</sect2>
|
|
|
|
<sect2>
|
|
<title>Changes</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix incorrect volatility markings on a few built-in functions
|
|
(Thomas Munro, Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
The functions
|
|
<function>query_to_xml</function>,
|
|
<function>cursor_to_xml</function>,
|
|
<function>cursor_to_xmlschema</function>,
|
|
<function>query_to_xmlschema</function>, and
|
|
<function>query_to_xml_and_xmlschema</function>
|
|
should be marked volatile because they execute user-supplied queries
|
|
that might contain volatile operations. They were not, leading to a
|
|
risk of incorrect query optimization. This has been repaired for new
|
|
installations by correcting the initial catalog data, but existing
|
|
installations will continue to contain the incorrect markings.
|
|
Practical use of these functions seems to pose little hazard, but in
|
|
case of trouble, it can be fixed by manually updating these
|
|
functions' <structname>pg_proc</structname> entries, for example
|
|
<literal>ALTER FUNCTION pg_catalog.query_to_xml(text, boolean,
|
|
boolean, text) VOLATILE</literal>. (Note that that will need to be
|
|
done in each database of the installation.) Another option is
|
|
to <application>pg_upgrade</application> the database to a version
|
|
containing the corrected initial data.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Avoid re-using TOAST value OIDs that match dead-but-not-yet-vacuumed
|
|
TOAST entries (Pavan Deolasee)
|
|
</para>
|
|
|
|
<para>
|
|
Once the OID counter has wrapped around, it's possible to assign a
|
|
TOAST value whose OID matches a previously deleted entry in the same
|
|
TOAST table. If that entry were not yet vacuumed away, this resulted
|
|
in <quote>unexpected chunk number 0 (expected 1) for toast
|
|
value <replaceable>nnnnn</replaceable></quote> errors, which would
|
|
persist until the dead entry was removed
|
|
by <command>VACUUM</command>. Fix by not selecting such OIDs when
|
|
creating a new TOAST entry.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Change <command>ANALYZE</command>'s algorithm for updating
|
|
<structname>pg_class</structname>.<structfield>reltuples</structfield>
|
|
(David Gould)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, pages not actually scanned by <command>ANALYZE</command>
|
|
were assumed to retain their old tuple density. In a large table
|
|
where <command>ANALYZE</command> samples only a small fraction of the
|
|
pages, this meant that the overall tuple density estimate could not
|
|
change very much, so that <structfield>reltuples</structfield> would
|
|
change nearly proportionally to changes in the table's physical size
|
|
(<structfield>relpages</structfield>) regardless of what was actually
|
|
happening in the table. This has been observed to result
|
|
in <structfield>reltuples</structfield> becoming so much larger than
|
|
reality as to effectively shut off autovacuuming. To fix, assume
|
|
that <command>ANALYZE</command>'s sample is a statistically unbiased
|
|
sample of the table (as it should be), and just extrapolate the
|
|
density observed within those pages to the whole table.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Avoid deadlocks in concurrent <command>CREATE INDEX
|
|
CONCURRENTLY</command> commands that are run
|
|
under <literal>SERIALIZABLE</literal> or <literal>REPEATABLE
|
|
READ</literal> transaction isolation (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix possible slow execution of <command>REFRESH MATERIALIZED VIEW
|
|
CONCURRENTLY</command> (Thomas Munro)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <literal>UPDATE/DELETE ... WHERE CURRENT OF</literal> to not fail
|
|
when the referenced cursor uses an index-only-scan plan (Yugo Nagata,
|
|
Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix incorrect planning of join clauses pushed into parameterized
|
|
paths (Andrew Gierth, Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This error could result in misclassifying a condition as
|
|
a <quote>join filter</quote> for an outer join when it should be a
|
|
plain <quote>filter</quote> condition, leading to incorrect join
|
|
output.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix misoptimization of <literal>CHECK</literal> constraints having
|
|
provably-NULL subclauses of
|
|
top-level <literal>AND</literal>/<literal>OR</literal> conditions
|
|
(Tom Lane, Dean Rasheed)
|
|
</para>
|
|
|
|
<para>
|
|
This could, for example, allow constraint exclusion to exclude a
|
|
child table that should not be excluded from a query.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Avoid failure if a query-cancel or session-termination interrupt
|
|
occurs while committing a prepared transaction (Stas Kelvich)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix query-lifespan memory leakage in repeatedly executed hash joins
|
|
(Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix overly strict sanity check
|
|
in <function>heap_prepare_freeze_tuple</function>
|
|
(Álvaro Herrera)
|
|
</para>
|
|
|
|
<para>
|
|
This could result in incorrect <quote>cannot freeze committed
|
|
xmax</quote> failures in databases that have
|
|
been <application>pg_upgrade</application>'d from 9.2 or earlier.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Prevent dangling-pointer dereference when a C-coded before-update row
|
|
trigger returns the <quote>old</quote> tuple (Rushabh Lathia)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Reduce locking during autovacuum worker scheduling (Jeff Janes)
|
|
</para>
|
|
|
|
<para>
|
|
The previous behavior caused drastic loss of potential worker
|
|
concurrency in databases with many tables.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Ensure client hostname is copied while copying
|
|
<structname>pg_stat_activity</structname> data to local memory
|
|
(Edmund Horner)
|
|
</para>
|
|
|
|
<para>
|
|
Previously the supposedly-local snapshot contained a pointer into
|
|
shared memory, allowing the client hostname column to change
|
|
unexpectedly if any existing session disconnected.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix incorrect processing of multiple compound affixes
|
|
in <literal>ispell</literal> dictionaries (Arthur Zakirov)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix collation-aware searches (that is, indexscans using inequality
|
|
operators) in SP-GiST indexes on text columns (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Such searches would return the wrong set of rows in most non-C
|
|
locales.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Count the number of index tuples correctly during initial build of an
|
|
SP-GiST index (Tomas Vondra)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, the tuple count was reported to be the same as that of
|
|
the underlying table, which is wrong if the index is partial.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Count the number of index tuples correctly during vacuuming of a
|
|
GiST index (Andrey Borodin)
|
|
</para>
|
|
|
|
<para>
|
|
Previously it reported the estimated number of heap tuples,
|
|
which might be inaccurate, and is certainly wrong if the
|
|
index is partial.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix a corner case where a streaming standby gets stuck at a WAL
|
|
continuation record (Kyotaro Horiguchi)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
In logical decoding, avoid possible double processing of WAL data
|
|
when a walsender restarts (Craig Ringer)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <function>scalarltsel</function>
|
|
and <function>scalargtsel</function> to be used on non-core datatypes
|
|
(Tomas Vondra)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Reduce <application>libpq</application>'s memory consumption when a
|
|
server error is reported after a large amount of query output has
|
|
been collected (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Discard the previous output before, not after, processing the error
|
|
message. On some platforms, notably Linux, this can make a
|
|
difference in the application's subsequent memory footprint.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix double-free crashes in <application>ecpg</application>
|
|
(Patrick Krecker, Jeevan Ladhe)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <application>ecpg</application> to handle <type>long long
|
|
int</type> variables correctly in MSVC builds (Michael Meskes,
|
|
Andrew Gierth)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix mis-quoting of values for list-valued GUC variables in dumps
|
|
(Michael Paquier, Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
The <varname>local_preload_libraries</varname>,
|
|
<varname>session_preload_libraries</varname>,
|
|
<varname>shared_preload_libraries</varname>,
|
|
and <varname>temp_tablespaces</varname> variables were not correctly
|
|
quoted in <application>pg_dump</application> output. This would
|
|
cause problems if settings for these variables appeared in
|
|
<command>CREATE FUNCTION ... SET</command> or <command>ALTER
|
|
DATABASE/ROLE ... SET</command> clauses.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <application>pg_recvlogical</application> to not fail against
|
|
pre-v10 <productname>PostgreSQL</productname> servers
|
|
(Michael Paquier)
|
|
</para>
|
|
|
|
<para>
|
|
A previous fix caused <application>pg_recvlogical</application> to
|
|
issue a command regardless of server version, but it should only be
|
|
issued to v10 and later servers.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix overflow handling in <application>PL/pgSQL</application>
|
|
integer <command>FOR</command> loops (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
The previous coding failed to detect overflow of the loop variable
|
|
on some non-gcc compilers, leading to an infinite loop.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Adjust <application>PL/Python</application> regression tests to pass
|
|
under Python 3.7 (Peter Eisentraut)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Support testing <application>PL/Python</application> and related
|
|
modules when building with Python 3 and MSVC (Andrew Dunstan)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Rename internal <function>b64_encode</function>
|
|
and <function>b64_decode</function> functions to avoid conflict with
|
|
Solaris 11.4 built-in functions (Rainer Orth)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Sync our copy of the timezone library with IANA tzcode release 2018e
|
|
(Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This fixes the <application>zic</application> timezone data compiler
|
|
to cope with negative daylight-savings offsets. While
|
|
the <productname>PostgreSQL</productname> project will not
|
|
immediately ship such timezone data, <application>zic</application>
|
|
might be used with timezone data obtained directly from IANA, so it
|
|
seems prudent to update <application>zic</application> now.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Update time zone data files to <application>tzdata</application>
|
|
release 2018d for DST law changes in Palestine and Antarctica (Casey
|
|
Station), plus historical corrections for Portugal and its colonies,
|
|
as well as Enderbury, Jamaica, Turks & Caicos Islands, and
|
|
Uruguay.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect2>
|
|
</sect1>
|
|
|
|
<sect1 id="release-9-4-17">
|
|
<title>Release 9.4.17</title>
|
|
|
|
<formalpara>
|
|
<title>Release date:</title>
|
|
<para>2018-03-01</para>
|
|
</formalpara>
|
|
|
|
<para>
|
|
This release contains a variety of fixes from 9.4.16.
|
|
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.17</title>
|
|
|
|
<para>
|
|
A dump/restore is not required for those running 9.4.X.
|
|
</para>
|
|
|
|
<para>
|
|
However, if you run an installation in which not all users are mutually
|
|
trusting, or if you maintain an application or extension that is
|
|
intended for use in arbitrary situations, it is strongly recommended
|
|
that you read the documentation changes described in the first changelog
|
|
entry below, and take suitable steps to ensure that your installation or
|
|
code is secure.
|
|
</para>
|
|
|
|
<para>
|
|
Also, the changes described in the second changelog entry below may
|
|
cause functions used in index expressions or materialized views to fail
|
|
during auto-analyze, or when reloading from a dump. After upgrading,
|
|
monitor the server logs for such problems, and fix affected functions.
|
|
</para>
|
|
|
|
<para>
|
|
Also, if you are upgrading from a version earlier than 9.4.13,
|
|
see <xref linkend="release-9-4-13"/>.
|
|
</para>
|
|
</sect2>
|
|
|
|
<sect2>
|
|
<title>Changes</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<para>
|
|
Document how to configure installations and applications to guard
|
|
against search-path-dependent trojan-horse attacks from other users
|
|
(Noah Misch)
|
|
</para>
|
|
|
|
<para>
|
|
Using a <varname>search_path</varname> setting that includes any
|
|
schemas writable by a hostile user enables that user to capture
|
|
control of queries and then run arbitrary SQL code with the
|
|
permissions of the attacked user. While it is possible to write
|
|
queries that are proof against such hijacking, it is notationally
|
|
tedious, and it's very easy to overlook holes. Therefore, we now
|
|
recommend configurations in which no untrusted schemas appear in
|
|
one's search path. Relevant documentation appears in
|
|
<xref linkend="ddl-schemas-patterns"/> (for database administrators and users),
|
|
<xref linkend="libpq-connect"/> (for application authors),
|
|
<xref linkend="extend-extensions-style"/> (for extension authors), and
|
|
<xref linkend="sql-createfunction"/> (for authors
|
|
of <literal>SECURITY DEFINER</literal> functions).
|
|
(CVE-2018-1058)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Avoid use of insecure <varname>search_path</varname> settings
|
|
in <application>pg_dump</application> and other client programs
|
|
(Noah Misch, Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
<application>pg_dump</application>,
|
|
<application>pg_upgrade</application>,
|
|
<application>vacuumdb</application> and
|
|
other <productname>PostgreSQL</productname>-provided applications were
|
|
themselves vulnerable to the type of hijacking described in the previous
|
|
changelog entry; since these applications are commonly run by
|
|
superusers, they present particularly attractive targets. To make them
|
|
secure whether or not the installation as a whole has been secured,
|
|
modify them to include only the <structname>pg_catalog</structname>
|
|
schema in their <varname>search_path</varname> settings.
|
|
Autovacuum worker processes now do the same, as well.
|
|
</para>
|
|
|
|
<para>
|
|
In cases where user-provided functions are indirectly executed by
|
|
these programs — for example, user-provided functions in index
|
|
expressions — the tighter <varname>search_path</varname> may
|
|
result in errors, which will need to be corrected by adjusting those
|
|
user-provided functions to not assume anything about what search path
|
|
they are invoked under. That has always been good practice, but now
|
|
it will be necessary for correct behavior.
|
|
(CVE-2018-1058)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix misbehavior of concurrent-update rechecks with CTE references
|
|
appearing in subplans (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
If a CTE (<literal>WITH</literal> clause reference) is used in an
|
|
InitPlan or SubPlan, and the query requires a recheck due to trying
|
|
to update or lock a concurrently-updated row, incorrect results could
|
|
be obtained.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix planner failures with overlapping mergejoin clauses in an outer
|
|
join (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
These mistakes led to <quote>left and right pathkeys do not match in
|
|
mergejoin</quote> or <quote>outer pathkeys do not match
|
|
mergeclauses</quote> planner errors in corner cases.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Repair <application>pg_upgrade</application>'s failure to
|
|
preserve <structfield>relfrozenxid</structfield> for materialized
|
|
views (Tom Lane, Andres Freund)
|
|
</para>
|
|
|
|
<para>
|
|
This oversight could lead to data corruption in materialized views
|
|
after an upgrade, manifesting as <quote>could not access status of
|
|
transaction</quote> or <quote>found xmin from before
|
|
relfrozenxid</quote> errors. The problem would be more likely to
|
|
occur in seldom-refreshed materialized views, or ones that were
|
|
maintained only with <command>REFRESH MATERIALIZED VIEW
|
|
CONCURRENTLY</command>.
|
|
</para>
|
|
|
|
<para>
|
|
If such corruption is observed, it can be repaired by refreshing the
|
|
materialized view (without <literal>CONCURRENTLY</literal>).
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix incorrect reporting of PL/Python function names in
|
|
error <literal>CONTEXT</literal> stacks (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
An error occurring within a nested PL/Python function call (that is,
|
|
one reached via a SPI query from another PL/Python function) would
|
|
result in a stack trace showing the inner function's name twice,
|
|
rather than the expected results. Also, an error in a nested
|
|
PL/Python <literal>DO</literal> block could result in a null pointer
|
|
dereference crash on some platforms.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <filename>contrib/auto_explain</filename>'s
|
|
<varname>log_min_duration</varname> setting to range up
|
|
to <literal>INT_MAX</literal>, or about 24 days instead of 35 minutes
|
|
(Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect2>
|
|
</sect1>
|
|
|
|
<sect1 id="release-9-4-16">
|
|
<title>Release 9.4.16</title>
|
|
|
|
<formalpara>
|
|
<title>Release date:</title>
|
|
<para>2018-02-08</para>
|
|
</formalpara>
|
|
|
|
<para>
|
|
This release contains a variety of fixes from 9.4.15.
|
|
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.16</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.13,
|
|
see <xref linkend="release-9-4-13"/>.
|
|
</para>
|
|
</sect2>
|
|
|
|
<sect2>
|
|
<title>Changes</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<para>
|
|
Ensure that all temporary files made
|
|
by <application>pg_upgrade</application> are non-world-readable
|
|
(Tom Lane, Noah Misch)
|
|
</para>
|
|
|
|
<para>
|
|
<application>pg_upgrade</application> normally restricts its
|
|
temporary files to be readable and writable only by the calling user.
|
|
But the temporary file containing <literal>pg_dumpall -g</literal>
|
|
output would be group- or world-readable, or even writable, if the
|
|
user's <literal>umask</literal> setting allows. In typical usage on
|
|
multi-user machines, the <literal>umask</literal> and/or the working
|
|
directory's permissions would be tight enough to prevent problems;
|
|
but there may be people using <application>pg_upgrade</application>
|
|
in scenarios where this oversight would permit disclosure of database
|
|
passwords to unfriendly eyes.
|
|
(CVE-2018-1053)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix vacuuming of tuples that were updated while key-share locked
|
|
(Andres Freund, Álvaro Herrera)
|
|
</para>
|
|
|
|
<para>
|
|
In some cases <command>VACUUM</command> would fail to remove such
|
|
tuples even though they are now dead, leading to assorted data
|
|
corruption scenarios.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix inadequate buffer locking in some LSN fetches (Jacob Champion,
|
|
Asim Praveen, Ashwin Agrawal)
|
|
</para>
|
|
|
|
<para>
|
|
These errors could result in misbehavior under concurrent load.
|
|
The potential consequences have not been characterized fully.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Avoid unnecessary failure in a query on an inheritance tree that
|
|
occurs concurrently with some child table being removed from the tree
|
|
by <command>ALTER TABLE NO INHERIT</command> (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix spurious deadlock failures when multiple sessions are
|
|
running <command>CREATE INDEX CONCURRENTLY</command> (Jeff Janes)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Repair failure with correlated sub-<literal>SELECT</literal>
|
|
inside <literal>VALUES</literal> inside a <literal>LATERAL</literal>
|
|
subquery (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <quote>could not devise a query plan for the given query</quote>
|
|
planner failure for some cases involving nested <literal>UNION
|
|
ALL</literal> inside a lateral subquery (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix logical decoding to correctly clean up disk files for crashed
|
|
transactions (Atsushi Torikoshi)
|
|
</para>
|
|
|
|
<para>
|
|
Logical decoding may spill WAL records to disk for transactions
|
|
generating many WAL records. Normally these files are cleaned up
|
|
after the transaction's commit or abort record arrives; but if
|
|
no such record is ever seen, the removal code misbehaved.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix walsender timeout failure and failure to respond to interrupts
|
|
when processing a large transaction (Petr Jelinek)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <function>has_sequence_privilege()</function> to
|
|
support <literal>WITH GRANT OPTION</literal> tests,
|
|
as other privilege-testing functions do (Joe Conway)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
In databases using UTF8 encoding, ignore any XML declaration that
|
|
asserts a different encoding (Pavel Stehule, Noah Misch)
|
|
</para>
|
|
|
|
<para>
|
|
We always store XML strings in the database encoding, so allowing
|
|
libxml to act on a declaration of another encoding gave wrong results.
|
|
In encodings other than UTF8, we don't promise to support non-ASCII
|
|
XML data anyway, so retain the previous behavior for bug compatibility.
|
|
This change affects only <function>xpath()</function> and related
|
|
functions; other XML code paths already acted this way.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Provide for forward compatibility with future minor protocol versions
|
|
(Robert Haas, Badrul Chowdhury)
|
|
</para>
|
|
|
|
<para>
|
|
Up to now, <productname>PostgreSQL</productname> servers simply
|
|
rejected requests to use protocol versions newer than 3.0, so that
|
|
there was no functional difference between the major and minor parts
|
|
of the protocol version number. Allow clients to request versions 3.x
|
|
without failing, sending back a message showing that the server only
|
|
understands 3.0. This makes no difference at the moment, but
|
|
back-patching this change should allow speedier introduction of future
|
|
minor protocol upgrades.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Cope with failure to start a parallel worker process
|
|
(Amit Kapila, Robert Haas)
|
|
</para>
|
|
|
|
<para>
|
|
Parallel query previously tended to hang indefinitely if a worker
|
|
could not be started, as the result of <literal>fork()</literal>
|
|
failure or other low-probability problems.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Prevent stack-overflow crashes when planning extremely deeply
|
|
nested set operations
|
|
(<literal>UNION</literal>/<literal>INTERSECT</literal>/<literal>EXCEPT</literal>)
|
|
(Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix null-pointer crashes for some types of LDAP URLs appearing
|
|
in <filename>pg_hba.conf</filename> (Thomas Munro)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix sample <function>INSTR()</function> functions in the PL/pgSQL
|
|
documentation (Yugo Nagata, Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
These functions are stated to
|
|
be <trademark class="registered">Oracle</trademark> compatible, but
|
|
they weren't exactly. In particular, there was a discrepancy in the
|
|
interpretation of a negative third parameter: Oracle thinks that a
|
|
negative value indicates the last place where the target substring can
|
|
begin, whereas our functions took it as the last place where the
|
|
target can end. Also, Oracle throws an error for a zero or negative
|
|
fourth parameter, whereas our functions returned zero.
|
|
</para>
|
|
|
|
<para>
|
|
The sample code has been adjusted to match Oracle's behavior more
|
|
precisely. Users who have copied this code into their applications
|
|
may wish to update their copies.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <application>pg_dump</application> to make ACL (permissions),
|
|
comment, and security label entries reliably identifiable in archive
|
|
output formats (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
The <quote>tag</quote> portion of an ACL archive entry was usually
|
|
just the name of the associated object. Make it start with the object
|
|
type instead, bringing ACLs into line with the convention already used
|
|
for comment and security label archive entries. Also, fix the
|
|
comment and security label entries for the whole database, if present,
|
|
to make their tags start with <literal>DATABASE</literal> so that they
|
|
also follow this convention. This prevents false matches in code that
|
|
tries to identify large-object-related entries by seeing if the tag
|
|
starts with <literal>LARGE OBJECT</literal>. That could have resulted
|
|
in misclassifying entries as data rather than schema, with undesirable
|
|
results in a schema-only or data-only dump.
|
|
</para>
|
|
|
|
<para>
|
|
Note that this change has user-visible results in the output
|
|
of <command>pg_restore --list</command>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
In <application>ecpg</application>, detect indicator arrays that do
|
|
not have the correct length and report an error (David Rader)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Avoid triggering a libc assertion
|
|
in <filename>contrib/hstore</filename>, due to use
|
|
of <function>memcpy()</function> with equal source and destination
|
|
pointers (Tomas Vondra)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Provide modern examples of how to auto-start Postgres on macOS
|
|
(Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
The scripts in <filename>contrib/start-scripts/osx</filename> use
|
|
infrastructure that's been deprecated for over a decade, and which no
|
|
longer works at all in macOS releases of the last couple of years.
|
|
Add a new subdirectory <filename>contrib/start-scripts/macos</filename>
|
|
containing scripts that use the newer <application>launchd</application>
|
|
infrastructure.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix incorrect selection of configuration-specific libraries for
|
|
OpenSSL on Windows (Andrew Dunstan)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Support linking to MinGW-built versions of libperl (Noah Misch)
|
|
</para>
|
|
|
|
<para>
|
|
This allows building PL/Perl with some common Perl distributions for
|
|
Windows.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix MSVC build to test whether 32-bit libperl
|
|
needs <literal>-D_USE_32BIT_TIME_T</literal> (Noah Misch)
|
|
</para>
|
|
|
|
<para>
|
|
Available Perl distributions are inconsistent about what they expect,
|
|
and lack any reliable means of reporting it, so resort to a build-time
|
|
test on what the library being used actually does.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
On Windows, install the crash dump handler earlier in postmaster
|
|
startup (Takayuki Tsunakawa)
|
|
</para>
|
|
|
|
<para>
|
|
This may allow collection of a core dump for some early-startup
|
|
failures that did not produce a dump before.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
On Windows, avoid encoding-conversion-related crashes when emitting
|
|
messages very early in postmaster startup (Takayuki Tsunakawa)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Use our existing Motorola 68K spinlock code on OpenBSD as
|
|
well as NetBSD (David Carlier)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add support for spinlocks on Motorola 88K (David Carlier)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Update time zone data files to <application>tzdata</application>
|
|
release 2018c for DST law changes in Brazil, Sao Tome and Principe,
|
|
plus historical corrections for Bolivia, Japan, and South Sudan.
|
|
The <literal>US/Pacific-New</literal> zone has been removed (it was
|
|
only an alias for <literal>America/Los_Angeles</literal> anyway).
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect2>
|
|
</sect1>
|
|
|
|
<sect1 id="release-9-4-15">
|
|
<title>Release 9.4.15</title>
|
|
|
|
<formalpara>
|
|
<title>Release date:</title>
|
|
<para>2017-11-09</para>
|
|
</formalpara>
|
|
|
|
<para>
|
|
This release contains a variety of fixes from 9.4.14.
|
|
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.15</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.13,
|
|
see <xref linkend="release-9-4-13"/>.
|
|
</para>
|
|
</sect2>
|
|
|
|
<sect2>
|
|
<title>Changes</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix crash due to rowtype mismatch
|
|
in <function>json{b}_populate_recordset()</function>
|
|
(Michael Paquier, Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
These functions used the result rowtype specified in the <literal>FROM
|
|
... AS</literal> clause without checking that it matched the actual
|
|
rowtype of the supplied tuple value. If it didn't, that would usually
|
|
result in a crash, though disclosure of server memory contents seems
|
|
possible as well.
|
|
(CVE-2017-15098)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix sample server-start scripts to become <literal>$PGUSER</literal>
|
|
before opening <literal>$PGLOG</literal> (Noah Misch)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, the postmaster log file was opened while still running as
|
|
root. The database owner could therefore mount an attack against
|
|
another system user by making <literal>$PGLOG</literal> be a symbolic
|
|
link to some other file, which would then become corrupted by appending
|
|
log messages.
|
|
</para>
|
|
|
|
<para>
|
|
By default, these scripts are not installed anywhere. Users who have
|
|
made use of them will need to manually recopy them, or apply the same
|
|
changes to their modified versions. If the
|
|
existing <literal>$PGLOG</literal> file is root-owned, it will need to
|
|
be removed or renamed out of the way before restarting the server with
|
|
the corrected script.
|
|
(CVE-2017-12172)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix crash when logical decoding is invoked from a SPI-using function,
|
|
in particular any function written in a PL language
|
|
(Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <function>json_build_array()</function>,
|
|
<function>json_build_object()</function>, and their <type>jsonb</type>
|
|
equivalents to handle explicit <literal>VARIADIC</literal> arguments
|
|
correctly (Michael Paquier)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Properly reject attempts to convert infinite float values to
|
|
type <type>numeric</type> (Tom Lane, KaiGai Kohei)
|
|
</para>
|
|
|
|
<para>
|
|
Previously the behavior was platform-dependent.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix corner-case crashes when columns have been added to the end of a
|
|
view (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Record proper dependencies when a view or rule
|
|
contains <structname>FieldSelect</structname>
|
|
or <structname>FieldStore</structname> expression nodes (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Lack of these dependencies could allow a column or data
|
|
type <command>DROP</command> to go through when it ought to fail,
|
|
thereby causing later uses of the view or rule to get errors.
|
|
This patch does not do anything to protect existing views/rules,
|
|
only ones created in the future.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Correctly detect hashability of range data types (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
The planner mistakenly assumed that any range type could be hashed
|
|
for use in hash joins or hash aggregation, but actually it must check
|
|
whether the range's subtype has hash support. This does not affect any
|
|
of the built-in range types, since they're all hashable anyway.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix low-probability loss of <command>NOTIFY</command> messages due to
|
|
XID wraparound (Marko Tiikkaja, Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
If a session executed no queries, but merely listened for
|
|
notifications, for more than 2 billion transactions, it started to miss
|
|
some notifications from concurrently-committing transactions.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Avoid <systemitem>SIGBUS</systemitem> crash on Linux when a DSM memory
|
|
request exceeds the space available in <systemitem>tmpfs</systemitem>
|
|
(Thomas Munro)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Prevent low-probability crash in processing of nested trigger firings
|
|
(Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <command>COPY</command>'s <literal>FREEZE</literal> option to
|
|
work when the transaction isolation level is <literal>REPEATABLE
|
|
READ</literal> or higher (Noah Misch)
|
|
</para>
|
|
|
|
<para>
|
|
This case was unintentionally broken by a previous bug fix.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Correctly restore the umask setting when file creation fails
|
|
in <command>COPY</command> or <function>lo_export()</function>
|
|
(Peter Eisentraut)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Give a better error message for duplicate column names
|
|
in <command>ANALYZE</command> (Nathan Bossart)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix mis-parsing of the last line in a
|
|
non-newline-terminated <filename>pg_hba.conf</filename> file
|
|
(Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <application>libpq</application> to not require user's home
|
|
directory to exist (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
In v10, failure to find the home directory while trying to
|
|
read <filename>~/.pgpass</filename> was treated as a hard error,
|
|
but it should just cause that file to not be found. Both v10 and
|
|
previous release branches made the same mistake when
|
|
reading <filename>~/.pg_service.conf</filename>, though this was less
|
|
obvious since that file is not sought unless a service name is
|
|
specified.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <application>libpq</application> to guard against integer
|
|
overflow in the row count of a <structname>PGresult</structname>
|
|
(Michael Paquier)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <application>ecpg</application>'s handling of out-of-scope cursor
|
|
declarations with pointer or array variables (Michael Meskes)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
In ecpglib, correctly handle backslashes in string literals depending
|
|
on whether <varname>standard_conforming_strings</varname> is set
|
|
(Tsunakawa Takayuki)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Make ecpglib's Informix-compatibility mode ignore fractional digits in
|
|
integer input strings, as expected (Gao Zengqi, Michael Meskes)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Sync our copy of the timezone library with IANA release tzcode2017c
|
|
(Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This fixes various issues; the only one likely to be user-visible
|
|
is that the default DST rules for a POSIX-style zone name, if
|
|
no <filename>posixrules</filename> file exists in the timezone data
|
|
directory, now match current US law rather than what it was a dozen
|
|
years ago.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Update time zone data files to <application>tzdata</application>
|
|
release 2017c for DST law changes in Fiji, Namibia, Northern Cyprus,
|
|
Sudan, Tonga, and Turks & Caicos Islands, plus historical
|
|
corrections for Alaska, Apia, Burma, Calcutta, Detroit, Ireland,
|
|
Namibia, and Pago Pago.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect2>
|
|
</sect1>
|
|
|
|
<sect1 id="release-9-4-14">
|
|
<title>Release 9.4.14</title>
|
|
|
|
<formalpara>
|
|
<title>Release date:</title>
|
|
<para>2017-08-31</para>
|
|
</formalpara>
|
|
|
|
<para>
|
|
This release contains a small number of fixes from 9.4.13.
|
|
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.14</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.13,
|
|
see <xref linkend="release-9-4-13"/>.
|
|
</para>
|
|
</sect2>
|
|
|
|
<sect2>
|
|
<title>Changes</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Andres Freund <andres@anarazel.de>
|
|
Branch: REL9_4_STABLE [b51c8efc6] 2017-08-24 15:21:32 -0700
|
|
-->
|
|
<para>
|
|
Fix failure of walsender processes to respond to shutdown signals
|
|
(Marco Nenciarini)
|
|
</para>
|
|
|
|
<para>
|
|
A missed flag update resulted in walsenders continuing to run as long
|
|
as they had a standby server connected, preventing primary-server
|
|
shutdown unless immediate shutdown mode is used.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Show foreign tables
|
|
in <structname>information_schema</structname>.<structname>table_privileges</structname>
|
|
view (Peter Eisentraut)
|
|
</para>
|
|
|
|
<para>
|
|
All other relevant <structname>information_schema</structname> views include
|
|
foreign tables, but this one ignored them.
|
|
</para>
|
|
|
|
<para>
|
|
Since this view definition is installed by <application>initdb</application>,
|
|
merely upgrading will not fix the problem. If you need to fix this
|
|
in an existing installation, you can, as a superuser, do this
|
|
in <application>psql</application>:
|
|
<programlisting>
|
|
SET search_path TO information_schema;
|
|
CREATE OR REPLACE VIEW table_privileges AS
|
|
SELECT CAST(u_grantor.rolname AS sql_identifier) AS grantor,
|
|
CAST(grantee.rolname AS sql_identifier) AS grantee,
|
|
CAST(current_database() AS sql_identifier) AS table_catalog,
|
|
CAST(nc.nspname AS sql_identifier) AS table_schema,
|
|
CAST(c.relname AS sql_identifier) AS table_name,
|
|
CAST(c.prtype AS character_data) AS privilege_type,
|
|
CAST(
|
|
CASE WHEN
|
|
-- object owner always has grant options
|
|
pg_has_role(grantee.oid, c.relowner, 'USAGE')
|
|
OR c.grantable
|
|
THEN 'YES' ELSE 'NO' END AS yes_or_no) AS is_grantable,
|
|
CAST(CASE WHEN c.prtype = 'SELECT' THEN 'YES' ELSE 'NO' END AS yes_or_no) AS with_hierarchy
|
|
|
|
FROM (
|
|
SELECT oid, relname, relnamespace, relkind, relowner, (aclexplode(coalesce(relacl, acldefault('r', relowner)))).* FROM pg_class
|
|
) AS c (oid, relname, relnamespace, relkind, relowner, grantor, grantee, prtype, grantable),
|
|
pg_namespace nc,
|
|
pg_authid u_grantor,
|
|
(
|
|
SELECT oid, rolname FROM pg_authid
|
|
UNION ALL
|
|
SELECT 0::oid, 'PUBLIC'
|
|
) AS grantee (oid, rolname)
|
|
|
|
WHERE c.relnamespace = nc.oid
|
|
AND c.relkind IN ('r', 'v', 'f')
|
|
AND c.grantee = grantee.oid
|
|
AND c.grantor = u_grantor.oid
|
|
AND c.prtype IN ('INSERT', 'SELECT', 'UPDATE', 'DELETE', 'TRUNCATE', 'REFERENCES', 'TRIGGER')
|
|
AND (pg_has_role(u_grantor.oid, 'USAGE')
|
|
OR pg_has_role(grantee.oid, 'USAGE')
|
|
OR grantee.rolname = 'PUBLIC');
|
|
</programlisting>
|
|
This must be repeated in each database to be fixed,
|
|
including <literal>template0</literal>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Clean up handling of a fatal exit (e.g., due to receipt
|
|
of <systemitem>SIGTERM</systemitem>) that occurs while trying to execute
|
|
a <command>ROLLBACK</command> of a failed transaction (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This situation could result in an assertion failure. In production
|
|
builds, the exit would still occur, but it would log an unexpected
|
|
message about <quote>cannot drop active portal</quote>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Remove assertion that could trigger during a fatal exit (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Correctly identify columns that are of a range type or domain type over
|
|
a composite type or domain type being searched for (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Certain <command>ALTER</command> commands that change the definition of a
|
|
composite type or domain type are supposed to fail if there are any
|
|
stored values of that type in the database, because they lack the
|
|
infrastructure needed to update or check such values. Previously,
|
|
these checks could miss relevant values that are wrapped inside range
|
|
types or sub-domains, possibly allowing the database to become
|
|
inconsistent.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix crash in <application>pg_restore</application> when using parallel mode and
|
|
using a list file to select a subset of items to restore
|
|
(Fabrízio de Royes Mello)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Change <application>ecpg</application>'s parser to allow <literal>RETURNING</literal>
|
|
clauses without attached C variables (Michael Meskes)
|
|
</para>
|
|
|
|
<para>
|
|
This allows <application>ecpg</application> programs to contain SQL constructs
|
|
that use <literal>RETURNING</literal> internally (for example, inside a CTE)
|
|
rather than using it to define values to be returned to the client.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve selection of compiler flags for PL/Perl on Windows (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This fix avoids possible crashes of PL/Perl due to inconsistent
|
|
assumptions about the width of <type>time_t</type> values.
|
|
A side-effect that may be visible to extension developers is
|
|
that <literal>_USE_32BIT_TIME_T</literal> is no longer defined globally
|
|
in <productname>PostgreSQL</productname> Windows builds. This is not expected
|
|
to cause problems, because type <type>time_t</type> is not used
|
|
in any <productname>PostgreSQL</productname> API definitions.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect2>
|
|
</sect1>
|
|
|
|
<sect1 id="release-9-4-13">
|
|
<title>Release 9.4.13</title>
|
|
|
|
<formalpara>
|
|
<title>Release date:</title>
|
|
<para>2017-08-10</para>
|
|
</formalpara>
|
|
|
|
<para>
|
|
This release contains a variety of fixes from 9.4.12.
|
|
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.13</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 upgrading from a version earlier than 9.4.12,
|
|
see <xref linkend="release-9-4-12"/>.
|
|
</para>
|
|
</sect2>
|
|
|
|
<sect2>
|
|
<title>Changes</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<para>
|
|
Further restrict visibility
|
|
of <structname>pg_user_mappings</structname>.<structfield>umoptions</structfield>, to
|
|
protect passwords stored as user mapping options
|
|
(Noah Misch)
|
|
</para>
|
|
|
|
<para>
|
|
The fix for CVE-2017-7486 was incorrect: it allowed a user
|
|
to see the options in her own user mapping, even if she did not
|
|
have <literal>USAGE</literal> permission on the associated foreign server.
|
|
Such options might include a password that had been provided by the
|
|
server owner rather than the user herself.
|
|
Since <structname>information_schema.user_mapping_options</structname> does not
|
|
show the options in such cases, <structname>pg_user_mappings</structname>
|
|
should not either.
|
|
(CVE-2017-7547)
|
|
</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</literal> to <filename>postgresql.conf</filename>. (In versions
|
|
supporting <command>ALTER SYSTEM</command>, you can use that to make the
|
|
configuration change, but you'll still need a restart.)
|
|
</para>
|
|
</step>
|
|
|
|
<step>
|
|
<para>
|
|
In <emphasis>each</emphasis> 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
|
|
AND (pg_has_role(S.srvowner, 'USAGE')
|
|
OR has_server_privilege(S.oid, 'USAGE')))
|
|
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</literal>
|
|
and <literal>template1</literal> databases, or the vulnerability will still
|
|
exist in databases you create later. To fix <literal>template0</literal>,
|
|
you'll need to temporarily make it accept connections.
|
|
In <productname>PostgreSQL</productname> 9.5 and later, you can use
|
|
<programlisting>
|
|
ALTER DATABASE template0 WITH ALLOW_CONNECTIONS true;
|
|
</programlisting>
|
|
and then after fixing <literal>template0</literal>, 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</literal> configuration
|
|
setting, and again restart the postmaster.
|
|
</para>
|
|
</step>
|
|
</procedure>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Disallow empty passwords in all password-based authentication methods
|
|
(Heikki Linnakangas)
|
|
</para>
|
|
|
|
<para>
|
|
<application>libpq</application> ignores empty password specifications, and does
|
|
not transmit them to the server. So, if a user's password has been
|
|
set to the empty string, it's impossible to log in with that password
|
|
via <application>psql</application> or other <application>libpq</application>-based
|
|
clients. An administrator might therefore believe that setting the
|
|
password to empty is equivalent to disabling password login.
|
|
However, with a modified or non-<application>libpq</application>-based client,
|
|
logging in could be possible, depending on which authentication
|
|
method is configured. In particular the most common
|
|
method, <literal>md5</literal>, accepted empty passwords.
|
|
Change the server to reject empty passwords in all cases.
|
|
(CVE-2017-7546)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Make <function>lo_put()</function> check for <literal>UPDATE</literal> privilege on
|
|
the target large object (Tom Lane, Michael Paquier)
|
|
</para>
|
|
|
|
<para>
|
|
<function>lo_put()</function> should surely require the same permissions
|
|
as <function>lowrite()</function>, but the check was missing, allowing any
|
|
user to change the data in a large object.
|
|
(CVE-2017-7548)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix concurrent locking of tuple update chains (Álvaro Herrera)
|
|
</para>
|
|
|
|
<para>
|
|
If several sessions concurrently lock a tuple update chain with
|
|
nonconflicting lock modes using an old snapshot, and they all
|
|
succeed, it was possible for some of them to nonetheless fail (and
|
|
conclude there is no live tuple version) due to a race condition.
|
|
This had consequences such as foreign-key checks failing to see a
|
|
tuple that definitely exists but is being updated concurrently.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix potential data corruption when freezing a tuple whose XMAX is a
|
|
multixact with exactly one still-interesting member (Teodor Sigaev)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Avoid integer overflow and ensuing crash when sorting more than one
|
|
billion tuples in-memory (Sergey Koposov)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
On Windows, retry process creation if we fail to reserve the address
|
|
range for our shared memory in the new process (Tom Lane, Amit
|
|
Kapila)
|
|
</para>
|
|
|
|
<para>
|
|
This is expected to fix infrequent child-process-launch failures that
|
|
are probably due to interference from antivirus products.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix low-probability corruption of shared predicate-lock hash table
|
|
in Windows builds (Thomas Munro, Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Avoid logging clean closure of an SSL connection as though
|
|
it were a connection reset (Michael Paquier)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Prevent sending SSL session tickets to clients (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This fix prevents reconnection failures with ticket-aware client-side
|
|
SSL code.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix code for setting <xref linkend="guc-tcp-keepalives-idle"/> on
|
|
Solaris (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix statistics collector to honor inquiry messages issued just after
|
|
a postmaster shutdown and immediate restart (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Statistics inquiries issued within half a second of the previous
|
|
postmaster shutdown were effectively ignored.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Ensure that the statistics collector's receive buffer size is at
|
|
least 100KB (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This reduces the risk of dropped statistics data on older platforms
|
|
whose default receive buffer size is less than that.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix possible creation of an invalid WAL segment when a standby is
|
|
promoted just after it processes an <literal>XLOG_SWITCH</literal> WAL
|
|
record (Andres Freund)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <application>walsender</application> to exit promptly when client requests
|
|
shutdown (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <systemitem>SIGHUP</systemitem> and <systemitem>SIGUSR1</systemitem> handling in
|
|
walsender processes (Petr Jelinek, Andres Freund)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Prevent walsender-triggered panics during shutdown checkpoints
|
|
(Andres Freund, Michael Paquier)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix unnecessarily slow restarts of <application>walreceiver</application>
|
|
processes due to race condition in postmaster (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<!--
|
|
Author: Andres Freund <andres@anarazel.de>
|
|
Branch: REL9_4_STABLE [23a2b818f] 2017-08-05 14:56:40 -0700
|
|
-->
|
|
<para>
|
|
Fix logical decoding failure with very wide tuples (Andres Freund)
|
|
</para>
|
|
|
|
<para>
|
|
Logical decoding crashed on tuples that are wider than 64KB (after
|
|
compression, but with all data in-line). The case arises only
|
|
when <literal>REPLICA IDENTITY FULL</literal> is enabled for a table
|
|
containing such tuples.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix leakage of small subtransactions spilled to disk during logical
|
|
decoding (Andres Freund)
|
|
</para>
|
|
|
|
<para>
|
|
This resulted in temporary files consuming excessive disk space.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Reduce the work needed to build snapshots during creation of
|
|
logical-decoding slots (Andres Freund, Petr Jelinek)
|
|
</para>
|
|
|
|
<para>
|
|
The previous algorithm was infeasibly expensive on a server with a
|
|
lot of open transactions.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix race condition that could indefinitely delay creation of
|
|
logical-decoding slots (Andres Freund, Petr Jelinek)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Reduce overhead in processing syscache invalidation events (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This is particularly helpful for logical decoding, which triggers
|
|
frequent cache invalidation.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix cases where an <command>INSERT</command> or <command>UPDATE</command> assigns
|
|
to more than one element of a column that is of domain-over-array
|
|
type (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow window functions to be used in sub-<literal>SELECT</literal>s that
|
|
are within the arguments of an aggregate function (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Move autogenerated array types out of the way during
|
|
<command>ALTER ... RENAME</command> (Vik Fearing)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, we would rename a conflicting autogenerated array type
|
|
out of the way during <command>CREATE</command>; this fix extends that
|
|
behavior to renaming operations.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Ensure that <command>ALTER USER ... SET</command> accepts all the syntax
|
|
variants that <command>ALTER ROLE ... SET</command> does (Peter Eisentraut)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Properly update dependency info when changing a datatype I/O
|
|
function's argument or return type from <type>opaque</type> to the
|
|
correct type (Heikki Linnakangas)
|
|
</para>
|
|
|
|
<para>
|
|
<command>CREATE TYPE</command> updates I/O functions declared in this
|
|
long-obsolete style, but it forgot to record a dependency on the
|
|
type, allowing a subsequent <command>DROP TYPE</command> to leave broken
|
|
function definitions behind.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Reduce memory usage when <command>ANALYZE</command> processes
|
|
a <type>tsvector</type> column (Heikki Linnakangas)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix unnecessary precision loss and sloppy rounding when multiplying
|
|
or dividing <type>money</type> values by integers or floats (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Tighten checks for whitespace in functions that parse identifiers,
|
|
such as <function>regprocedurein()</function> (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Depending on the prevailing locale, these functions could
|
|
misinterpret fragments of multibyte characters as whitespace.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Use relevant <literal>#define</literal> symbols from Perl while
|
|
compiling <application>PL/Perl</application> (Ashutosh Sharma, Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This avoids portability problems, typically manifesting as
|
|
a <quote>handshake</quote> mismatch during library load, when working with
|
|
recent Perl versions.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
In <application>libpq</application>, reset GSS/SASL and SSPI authentication
|
|
state properly after a failed connection attempt (Michael Paquier)
|
|
</para>
|
|
|
|
<para>
|
|
Failure to do this meant that when falling back from SSL to non-SSL
|
|
connections, a GSS/SASL failure in the SSL attempt would always cause
|
|
the non-SSL attempt to fail. SSPI did not fail, but it leaked memory.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
In <application>psql</application>, fix failure when <command>COPY FROM STDIN</command>
|
|
is ended with a keyboard EOF signal and then another <command>COPY
|
|
FROM STDIN</command> is attempted (Thomas Munro)
|
|
</para>
|
|
|
|
<para>
|
|
This misbehavior was observed on BSD-derived platforms (including
|
|
macOS), but not on most others.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <application>pg_dump</application> and <application>pg_restore</application> to
|
|
emit <command>REFRESH MATERIALIZED VIEW</command> commands last (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This prevents errors during dump/restore when a materialized view
|
|
refers to tables owned by a different user.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve <application>pg_dump</application>/<application>pg_restore</application>'s
|
|
reporting of error conditions originating in <application>zlib</application>
|
|
(Vladimir Kunschikov, Álvaro Herrera)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <application>pg_dump</application> with the <option>--clean</option> option to
|
|
drop event triggers as expected (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
It also now correctly assigns ownership of event triggers; before,
|
|
they were restored as being owned by the superuser running the
|
|
restore script.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <application>pg_dump</application> to not emit invalid SQL for an empty
|
|
operator class (Daniel Gustafsson)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <application>pg_dump</application> output to stdout on Windows (Kuntal Ghosh)
|
|
</para>
|
|
|
|
<para>
|
|
A compressed plain-text dump written to stdout would contain corrupt
|
|
data due to failure to put the file descriptor into binary mode.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <function>pg_get_ruledef()</function> to print correct output for
|
|
the <literal>ON SELECT</literal> rule of a view whose columns have been
|
|
renamed (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
In some corner cases, <application>pg_dump</application> relies
|
|
on <function>pg_get_ruledef()</function> to dump views, so that this error
|
|
could result in dump/reload failures.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix dumping of outer joins with empty constraints, such as the result
|
|
of a <literal>NATURAL LEFT JOIN</literal> with no common columns (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix dumping of function expressions in the <literal>FROM</literal> clause in
|
|
cases where the expression does not deparse into something that looks
|
|
like a function call (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <application>pg_basebackup</application> output to stdout on Windows
|
|
(Haribabu Kommi)
|
|
</para>
|
|
|
|
<para>
|
|
A backup written to stdout would contain corrupt data due to failure
|
|
to put the file descriptor into binary mode.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <application>pg_upgrade</application> to ensure that the ending WAL record
|
|
does not have <xref linkend="guc-wal-level"/> = <literal>minimum</literal>
|
|
(Bruce Momjian)
|
|
</para>
|
|
|
|
<para>
|
|
This condition could prevent upgraded standby servers from
|
|
reconnecting.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
In <filename>postgres_fdw</filename>, re-establish connections to remote
|
|
servers after <command>ALTER SERVER</command> or <command>ALTER USER
|
|
MAPPING</command> commands (Kyotaro Horiguchi)
|
|
</para>
|
|
|
|
<para>
|
|
This ensures that option changes affecting connection parameters will
|
|
be applied promptly.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
In <filename>postgres_fdw</filename>, allow cancellation of remote
|
|
transaction control commands (Robert Haas, Rafia Sabih)
|
|
</para>
|
|
|
|
<para>
|
|
This change allows us to quickly escape a wait for an unresponsive
|
|
remote server in many more cases than previously.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Increase <literal>MAX_SYSCACHE_CALLBACKS</literal> to provide more room for
|
|
extensions (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Always use <option>-fPIC</option>, not <option>-fpic</option>, when building
|
|
shared libraries with gcc (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This supports larger extension libraries on platforms where it makes
|
|
a difference.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix unescaped-braces issue in our build scripts for Microsoft MSVC,
|
|
to avoid a warning or error from recent Perl versions (Andrew
|
|
Dunstan)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
In MSVC builds, handle the case where the <application>OpenSSL</application>
|
|
library is not within a <filename>VC</filename> subdirectory (Andrew Dunstan)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
In MSVC builds, add proper include path for <application>libxml2</application>
|
|
header files (Andrew Dunstan)
|
|
</para>
|
|
|
|
<para>
|
|
This fixes a former need to move things around in standard Windows
|
|
installations of <application>libxml2</application>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
In MSVC builds, recognize a Tcl library that is
|
|
named <filename>tcl86.lib</filename> (Noah Misch)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
In MSVC builds, honor <literal>PROVE_FLAGS</literal> settings
|
|
on <filename>vcregress.pl</filename>'s command line (Andrew Dunstan)
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect2>
|
|
</sect1>
|
|
|
|
<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</quote>, 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</structname>.<structfield>umoptions</structfield>, 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</literal> 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</structname>, 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,
|
|
follow the corrected procedure shown in the changelog entry for
|
|
CVE-2017-7547, in <xref linkend="release-9-4-13"/>.
|
|
</para>
|
|
</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</structname>, 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</application>'s recognition of
|
|
the <envar>PGREQUIRESSL</envar> environment variable (Daniel Gustafsson)
|
|
</para>
|
|
|
|
<para>
|
|
Processing of this environment variable was unintentionally dropped
|
|
in <productname>PostgreSQL</productname> 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</envar>, 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</quote> 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</structname> 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</structname>, 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</application> due to failure
|
|
to initialize a string buffer (Stas Kelvich, Fujii Masao)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix postmaster's handling of <function>fork()</function> 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</command>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Skip tablespace privilege checks when <command>ALTER TABLE ... ALTER
|
|
COLUMN TYPE</command> rebuilds an existing index (Noah Misch)
|
|
</para>
|
|
|
|
<para>
|
|
The command failed if the calling user did not currently have
|
|
<literal>CREATE</literal> 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</command> to not recurse
|
|
to child tables when the constraint is marked <literal>NO INHERIT</literal>
|
|
(Amit Langote)
|
|
</para>
|
|
|
|
<para>
|
|
This fix prevents unwanted <quote>constraint does not exist</quote> failures
|
|
when no matching constraint is present in the child tables.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <command>VACUUM</command> 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</command> 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</type> comparison (Kyotaro
|
|
Horiguchi, Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
The comparison operators for type <type>interval</type> 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()</function> to produce valid output
|
|
with <replaceable>tableforest</replaceable> = false
|
|
(Thomas Munro, Peter Eisentraut)
|
|
</para>
|
|
|
|
<para>
|
|
Previously it failed to produce a wrapping <literal><table></literal>
|
|
element.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix roundoff problems in <function>float8_timestamptz()</function>
|
|
and <function>make_interval()</function> (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</structname> 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()</function>
|
|
and <function>close()</function> (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Neither of these system calls are likely to fail in typical situations,
|
|
but if they did, <filename>fd.c</filename> 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</application> to support <command>COMMIT PREPARED</command>
|
|
and <command>ROLLBACK PREPARED</command> (Masahiko Sawada)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix a double-free error when processing dollar-quoted string literals
|
|
in <application>ecpg</application> (Michael Meskes)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
In <application>pg_dump</application>, 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</literal>
|
|
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</literal>'s purposes.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <application>pg_upgrade</application> to transfer comments and security labels
|
|
attached to <quote>large objects</quote> (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</filename>'s <function>pg_file_write()</function>
|
|
function (Noah Misch)
|
|
</para>
|
|
|
|
<para>
|
|
Notably, it failed to detect errors reported
|
|
by <function>fclose()</function>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
In <filename>contrib/dblink</filename>, avoid leaking the previous unnamed
|
|
connection when establishing a new unnamed connection (Joe Conway)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <filename>contrib/pg_trgm</filename>'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</filename>,
|
|
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</application> 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</productname>
|
|
will continue to accept such removed abbreviations for timestamp input.
|
|
But they will not be shown in the <structname>pg_timezone_names</structname>
|
|
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</filename> 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</literal> zone. If you don't want that, remove
|
|
the <filename>posixrules</filename> 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</command> to be corrupt
|
|
(Pavan Deolasee, Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
If <command>CREATE INDEX CONCURRENTLY</command> 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> 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</quote>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Unconditionally WAL-log creation of the <quote>init fork</quote> for an
|
|
unlogged table (Michael Paquier)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, this was skipped when <xref linkend="guc-wal-level"/>
|
|
= <literal>minimal</literal>, 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</command> 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</command> (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</replaceable></quote>
|
|
or <quote>relation <replaceable>NNN</replaceable> 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</command> (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</command> 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</command> (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</replaceable><literal>.*</literal> in
|
|
an <command>UPDATE</command> source expression (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This led to <quote>UPDATE target count mismatch --- internal
|
|
error</quote>. 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</literal> 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</type> 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&'...'</literal>) or Unicode identifier
|
|
(<literal>U&"..."</literal>).
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Ensure that a purely negative text search query, such
|
|
as <literal>!foo</literal>, matches empty <type>tsvector</type>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()</function> replaces a non-top-level
|
|
subtree with an empty query (Artur Zakirov)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix performance problems in <function>ts_rewrite()</function> (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <function>ts_rewrite()</function>'s handling of nested NOT operators
|
|
(Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <function>array_fill()</function> to handle empty arrays properly (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix one-byte buffer overrun in <function>quote_literal_cstr()</function>
|
|
(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()</function>
|
|
and <function>pg_stop_backup()</function> 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</type>-to-<type>interval</type> 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</type> fields was mistakenly deemed to be a
|
|
no-op and discarded. An example is that casting from <type>INTERVAL
|
|
MONTH</type> to <type>INTERVAL YEAR</type> 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</application> to dump user-defined casts and transforms
|
|
that use built-in functions (Stephen Frost)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <application>pg_restore</application> with <option>--create --if-exists</option>
|
|
to behave more sanely if an archive contains
|
|
unrecognized <command>DROP</command> commands (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This doesn't fix any live bug, but it may improve the behavior in
|
|
future if <application>pg_restore</application> is used with an archive
|
|
generated by a later <application>pg_dump</application> version.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <application>pg_basebackup</application>'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</application>'s handling of
|
|
symlinked <filename>pg_stat_tmp</filename> and <filename>pg_replslot</filename>
|
|
subdirectories (Magnus Hagander, Michael Paquier)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix possible <application>pg_basebackup</application> 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</literal>
|
|
as a column name (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This matches the (previously undocumented) behavior of
|
|
PL/Tcl's <command>spi_exec</command> and <command>spi_execp</command> commands,
|
|
namely that a magic <literal>.tupno</literal> 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</filename> 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</application> is given a file
|
|
name that ends with a dot (Takayuki Tsunakawa)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <application>psql</application>'s tab completion for <command>ALTER DEFAULT
|
|
PRIVILEGES</command> (Gilles Darold, Stephen Frost)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
In <application>psql</application>, treat an empty or all-blank setting of
|
|
the <envar>PAGER</envar> environment variable as meaning <quote>no
|
|
pager</quote> (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</filename>'s reporting of
|
|
low-level <application>libpq</application> errors, such as out-of-memory
|
|
(Joe Conway)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Teach <filename>contrib/dblink</filename> to ignore irrelevant server options
|
|
when it uses a <filename>contrib/postgres_fdw</filename> 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</application> 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</application> 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</replaceable>:
|
|
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"></ulink>.
|
|
</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</quote> errors
|
|
during WAL replay.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <command>SELECT FOR UPDATE/SHARE</command> 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</command> 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</command> on a table
|
|
with a <literal>PRIMARY KEY</literal> or <literal>REPLICA IDENTITY</literal> index
|
|
(Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <command>EXPLAIN</command> 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></literal>. That is now
|
|
rendered as <literal><I-O-Read-Time></literal>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Suppress printing of zeroes for unmeasured times
|
|
in <command>EXPLAIN</command> (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</command> 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</command> 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</command> 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</literal> constraints while
|
|
creating or altering a table (Tom Lane, Amit Langote)
|
|
</para>
|
|
|
|
<para>
|
|
Allow identical <literal>CHECK</literal> 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</literal>
|
|
constraint on the child. Likewise, prevent merging of a <literal>NO
|
|
INHERIT</literal> child constraint with an inherited constraint.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Remove artificial restrictions on the values accepted
|
|
by <function>numeric_in()</function> and <function>numeric_recv()</function>
|
|
(Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
We allow numeric values up to the limit of the storage format (more
|
|
than <literal>1e100000</literal>), so it seems fairly pointless
|
|
that <function>numeric_in()</function> rejected scientific-notation exponents
|
|
above 1000. Likewise, it was silly for <function>numeric_recv()</function> 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</literal>
|
|
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</command> 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()</function> 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()</function> but <function>srandom()</function> 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</literal> rather
|
|
than <literal>ERROR_ALREADY_EXISTS</literal> 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</application> (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</application> (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
The reported problem involved leaking an error report
|
|
during <function>PQreset()</function>, but there might be related cases.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Make <application>ecpg</application>'s <option>--help</option> and <option>--version</option>
|
|
options work consistently with our other executables (Haribabu Kommi)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <application>pgbench</application>'s calculation of average latency
|
|
(Fabien Coelho)
|
|
</para>
|
|
|
|
<para>
|
|
The calculation was incorrect when there were <literal>\sleep</literal>
|
|
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</application>, never dump range constructor functions
|
|
(Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This oversight led to <application>pg_upgrade</application> failures with
|
|
extensions containing range types, due to duplicate creation of the
|
|
constructor functions.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
In <application>pg_xlogdump</application>, retry opening new WAL segments when
|
|
using <option>--follow</option> 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</application> 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</filename> to work
|
|
when <varname>shared_buffers</varname> exceeds 256GB (KaiGai Kohei)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <filename>contrib/intarray/bench/bench.pl</filename> to print the results
|
|
of the <command>EXPLAIN</command> it does when given the <option>-e</option> 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</productname> has been configured
|
|
with <option>--enable-tap-tests</option>, <quote>make install</quote> 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)</literal> without extra tests.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
In MSVC builds, include <application>pg_recvlogical</application> 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</application>
|
|
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</structname> view to fail altogether.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Update time zone data files to <application>tzdata</application> 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</productname>
|
|
will continue to accept such removed abbreviations for timestamp input.
|
|
But they will not be shown in the <structname>pg_timezone_names</structname>
|
|
view nor used for output.
|
|
</para>
|
|
|
|
<para>
|
|
In this update, <literal>AMT</literal> is no longer shown as being in use to
|
|
mean Armenia Time. Therefore, we have changed the <literal>Default</literal>
|
|
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>-<literal>WHEN</literal> expressions (Heikki
|
|
Linnakangas, Michael Paquier, Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
A <literal>CASE</literal> expression appearing within the test value
|
|
subexpression of another <literal>CASE</literal> 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</literal> expression could result in passing the wrong test
|
|
value to functions called within a <literal>CASE</literal> 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</application> 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</application>'s <command>\connect</command>
|
|
and <command>\password</command> commands to match the documentation.
|
|
</para>
|
|
|
|
<para>
|
|
Introduce a new <option>-reuse-previous</option> option
|
|
in <application>psql</application>'s <command>\connect</command> 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</application> scripts.
|
|
</para>
|
|
|
|
<para>
|
|
<application>pg_dumpall</application> 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</application> or other routine maintenance
|
|
operations. (CVE-2016-5424)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix corner-case misbehaviors for <literal>IS NULL</literal>/<literal>IS NOT
|
|
NULL</literal> applied to nested composite values (Andrew Gierth, Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
The SQL standard specifies that <literal>IS NULL</literal> should return
|
|
TRUE for a row of all null values (thus <literal>ROW(NULL,NULL) IS
|
|
NULL</literal> yields TRUE), but this is not meant to apply recursively
|
|
(thus <literal>ROW(NULL, ROW(NULL,NULL)) IS NULL</literal> 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</filename> could produce remote queries
|
|
that misbehaved similarly.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Make the <type>inet</type> and <type>cidr</type> data types properly reject
|
|
IPv6 addresses with too many colon-separated fields (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Prevent crash in <function>close_ps()</function>
|
|
(the <type>point</type> <literal>##</literal> <type>lseg</type> 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()</function> 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()</function>
|
|
(Peter Eisentraut)
|
|
</para>
|
|
|
|
<para>
|
|
In several cases the <function>to_number()</function> 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</literal> or <literal>CREATE TABLE AS</literal>
|
|
when <literal>WITH NO DATA</literal> 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()</function> (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</quote> errors when
|
|
acquiring <literal>FOR KEY SHARE</literal> row locks in serializable mode
|
|
(Álvaro Herrera)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Avoid crash in <literal>postgres -C</literal> 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</command>
|
|
(Alexander Korotkov)
|
|
</para>
|
|
|
|
<para>
|
|
Some cases in <command>VACUUM</command> 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</command>
|
|
(Simon Riggs, Álvaro Herrera)
|
|
</para>
|
|
|
|
<para>
|
|
<command>VACUUM FREEZE</command> 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</replaceable> has not been created
|
|
yet -- apparent wraparound</quote>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
When a manual <command>ANALYZE</command> specifies a column list, don't
|
|
reset the table's <literal>changes_since_analyze</literal> 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</command>'s overestimation of <literal>n_distinct</literal>
|
|
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</command> 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</filename> to handle the smallest
|
|
possible <type>bigint</type> 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()</function> returns the correct value for
|
|
such cases.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <application>ecpg</application>'s code for <literal>unsigned long long</literal>
|
|
array elements (Michael Meskes)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
In <application>pg_dump</application> with both <option>-c</option> and <option>-C</option>
|
|
options, avoid emitting an unwanted <literal>CREATE SCHEMA public</literal>
|
|
command (David Johnston, Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve handling of <systemitem>SIGTERM</systemitem>/control-C in
|
|
parallel <application>pg_dump</application> and <application>pg_restore</application> (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</command>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix error reporting in parallel <application>pg_dump</application>
|
|
and <application>pg_restore</application> (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, errors reported by <application>pg_dump</application>
|
|
or <application>pg_restore</application> 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</literal>. 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</application>
|
|
or <application>pg_restore</application> 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</application> 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</application> accept <literal>-Z 0</literal> 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</quote>
|
|
versus <quote>lock timeout</quote> (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
On heavily loaded machines, the regression tests sometimes failed due
|
|
to reporting <quote>lock timeout</quote> 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</application> 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</application> 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</application> 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</replaceable>-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</literal>, 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</literal> 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</varname>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix possible misbehavior of <literal>TH</literal>, <literal>th</literal>,
|
|
and <literal>Y,YYY</literal> format codes in <function>to_timestamp()</function>
|
|
(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</replaceable>
|
|
argument of a <literal><replaceable>value</replaceable> <replaceable>operator</replaceable>
|
|
ANY (<replaceable>array</replaceable>)</literal> construct is a sub-SELECT
|
|
(Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Disallow newlines in <command>ALTER SYSTEM</command> 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</command>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <command>ALTER TABLE ... REPLICA IDENTITY USING INDEX</command> 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</application> use a startup timeout from the
|
|
<envar>PGCTLTIMEOUT</envar> environment variable, if that's set (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This is for consistency with a behavior recently added
|
|
to <application>pg_ctl</application>; it eases automated testing on slow machines.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <application>pg_upgrade</application> 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</application>
|
|
runs to emit output that would cause (harmless) errors on restore.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <application>pg_upgrade</application> to not fail when new-cluster TOAST rules
|
|
differ from old (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
<application>pg_upgrade</application> had special-case code to handle the
|
|
situation where the new <productname>PostgreSQL</productname> 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</option> (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Rename internal function <function>strtoi()</function>
|
|
to <function>strtoint()</function> to avoid conflict with a NetBSD library
|
|
function (Thomas Munro)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix reporting of errors from <function>bind()</function>
|
|
and <function>listen()</function> 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()</function> to work properly with Visual Studio 2013
|
|
(Michael Paquier)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Avoid possibly-unsafe use of Windows' <function>FormatMessage()</function>
|
|
function (Christian Ullrich)
|
|
</para>
|
|
|
|
<para>
|
|
Use the <literal>FORMAT_MESSAGE_IGNORE_INSERTS</literal> 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</application> release 2016d
|
|
for DST law changes in Russia and Venezuela. There are new zone
|
|
names <literal>Europe/Kirov</literal> and <literal>Asia/Tomsk</literal> 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()</literal> comparisons (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
An index search using a row comparison such as <literal>ROW(a, b) >
|
|
ROW('x', 'y')</literal> would stop upon reaching a NULL entry in
|
|
the <structfield>b</structfield> column, ignoring the fact that there might be
|
|
non-NULL <structfield>b</structfield> values associated with later values
|
|
of <structfield>a</structfield>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Avoid unlikely data-loss scenarios due to renaming files without
|
|
adequate <function>fsync()</function> calls before and after (Michael Paquier,
|
|
Tomas Vondra, Andres Freund)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix bug in <function>json_to_record()</function> 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()</function>'s <literal>OF</literal> 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</varname> 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</literal> 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</literal>, <command>UPDATE</command>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</quote>, 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</literal> clause containing a correlated subquery
|
|
(Dean Rasheed)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix corner-case crash due to trying to free <function>localeconv()</function>
|
|
output strings more than once (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix parsing of affix files for <literal>ispell</literal> 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</literal> in Turkish UTF8 locales.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Avoid use of <function>sscanf()</function> to parse <literal>ispell</literal>
|
|
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</application>'s tab completion logic to handle multibyte
|
|
characters properly (Kyotaro Horiguchi, Robert Haas)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <application>psql</application>'s tab completion for
|
|
<literal>SECURITY LABEL</literal> (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Pressing TAB after <literal>SECURITY LABEL</literal> might cause a crash
|
|
or offering of inappropriate keywords.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Make <application>pg_ctl</application> accept a wait timeout from the
|
|
<envar>PGCTLTIMEOUT</envar> 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</application> (Manuel Mathar)
|
|
</para>
|
|
|
|
<para>
|
|
The previous set of minor releases attempted to
|
|
fix <application>pg_ctl</application> 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</application> to correctly handle the combination
|
|
of <literal>-C</literal> and <literal>-M prepared</literal> options (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
In <application>pg_upgrade</application>, 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</filename>'s <function>pgstatindex()</function>
|
|
function (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Remove dependency on <literal>psed</literal> 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</application> 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</literal> 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</literal> GIN
|
|
indexes (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
When processing <type>jsonb</type> 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</command> <literal>jsonb_path_ops</literal> 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</filename> file
|
|
is removed (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
The postmaster now checks every minute or so
|
|
that <filename>postmaster.pid</filename> is still there and still contains its
|
|
own PID. If not, it performs an immediate shutdown, as though it had
|
|
received <systemitem>SIGQUIT</systemitem>. 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</filename> 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</literal> 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</literal> 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</command> 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</command> 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</command> and <command>ALTER OWNER</command> 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</command> 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</literal> references (Tom
|
|
Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This fixes some corner cases that led to <quote>failed to build any
|
|
N-way joins</quote> or <quote>could not devise a query plan</quote> 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</command> and
|
|
rule dumping, and ensure that generated aliases do not
|
|
exceed <literal>NAMEDATALEN</literal> (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()</literal>
|
|
and <literal>VALUES()</literal> 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</type>
|
|
or <type>jsonb</type> 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</type> 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</quote> 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</literal> and <literal>%r</literal> escapes
|
|
in <varname>log_line_prefix</varname> work for messages emitted due
|
|
to <varname>log_connections</varname> (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, <literal>%h</literal>/<literal>%r</literal> started to work just after a
|
|
new session had emitted the <quote>connection received</quote> 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</varname> 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</application>, ensure that <application>libreadline</application>'s idea
|
|
of the screen size is updated when the terminal window size changes
|
|
(Merlin Moncure)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, <application>libreadline</application> 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</application>'s <literal>\det</literal> command to interpret its
|
|
pattern argument the same way as other <literal>\d</literal> 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</application>'s <literal>\c</literal> 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</literal>, test child process status directly
|
|
rather than relying on heuristics (Tom Lane, Michael Paquier)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, <application>pg_ctl</application> relied on an assumption that the new
|
|
postmaster would always create <filename>postmaster.pid</filename> within five
|
|
seconds. But that can fail on heavily-loaded systems,
|
|
causing <application>pg_ctl</application> 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</literal> 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</literal>, don't attempt to use a wildcard listen
|
|
address to connect to the postmaster (Kondo Yuta)
|
|
</para>
|
|
|
|
<para>
|
|
On Windows, <application>pg_ctl</application> would fail to detect postmaster
|
|
startup if <varname>listen_addresses</varname> is set to <literal>0.0.0.0</literal>
|
|
or <literal>::</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</literal> or <literal>::1</literal>, respectively, is the
|
|
right thing to use.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
In <application>pg_ctl</application> 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</application> and <application>pg_basebackup</application>, adopt
|
|
the GNU convention for handling tar-archive members exceeding 8GB
|
|
(Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
The POSIX standard for <literal>tar</literal> file format does not allow
|
|
archive member files to exceed 8GB, but most modern implementations
|
|
of <application>tar</application> support an extension that fixes that. Adopt
|
|
this extension so that <application>pg_dump</application> with <option>-Ft</option> no
|
|
longer fails on tables with more than 8GB of data, and so
|
|
that <application>pg_basebackup</application> 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</application>'s processing
|
|
of extension member objects (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Make <application>pg_dump</application> mark a view's triggers as needing to be
|
|
processed after its rule, to prevent possible failure during
|
|
parallel <application>pg_restore</application> (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</application> (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</application>. This is not an issue with any
|
|
reloption currently supported by core <productname>PostgreSQL</productname>, 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</application>
|
|
(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</application>'s file-copying code to handle errors
|
|
properly on Windows (Bruce Momjian)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Install guards in <application>pgbench</application> 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</application> and <application>pg_recvlogical</application>
|
|
(Ioseph Kim)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Avoid dump/reload problems when using both <application>plpython2</application>
|
|
and <application>plpython3</application> (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
In principle, both versions of <application>PL/Python</application> can be used in
|
|
the same database, though not in the same session (because the two
|
|
versions of <application>libpython</application> cannot safely be used concurrently).
|
|
However, <application>pg_restore</application> and <application>pg_upgrade</application> 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</application> 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</application>'s input buffer when
|
|
socket EOF is seen (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
This mistake caused <application>libpq</application> to sometimes not report the
|
|
backend's final error message before reporting <quote>server closed the
|
|
connection unexpectedly</quote>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Prevent certain <application>PL/Java</application> parameters from being set by
|
|
non-superusers (Noah Misch)
|
|
</para>
|
|
|
|
<para>
|
|
This change mitigates a <application>PL/Java</application> security bug
|
|
(CVE-2016-0766), which was fixed in <application>PL/Java</application> by marking
|
|
these parameters as superuser-only. To fix the security hazard for
|
|
sites that update <productname>PostgreSQL</productname> more frequently
|
|
than <application>PL/Java</application>, 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</application>'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</application>-generated <literal>typedef</literal> 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</literal> not <literal>%f</literal> format
|
|
in <application>ecpg</application>'s <function>PGTYPESnumeric_from_double()</function>
|
|
(Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <application>ecpg</application>-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</application>. It's not yet clear
|
|
whether <application>ecpg</application> itself should be changed.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <function>hstore_to_json_loose()</function>'s test for whether
|
|
an <type>hstore</type> 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</filename>'s <function>crypt()</function>
|
|
function can be interrupted by query cancel (Andreas Karlsson)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
In <filename>contrib/postgres_fdw</filename>, fix bugs triggered by use
|
|
of <literal>tableoid</literal> 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</application> 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</filename> 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</application> are missing.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Ensure that <filename>dynloader.h</filename> 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</application> (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
The fix for <application>libxml2</application>'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</application> 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</type> parsing
|
|
(Oskari Saarenmaa)
|
|
</para>
|
|
|
|
<para>
|
|
If an application constructs PostgreSQL <type>json</type>
|
|
or <type>jsonb</type> 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</filename> to detect and report
|
|
too-short <function>crypt()</function> 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</varname> 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</quote>
|
|
(Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
An oversight in a patch in the most recent minor releases
|
|
caused <structname>pg_trigger_tgrelid_tgname_index</structname> 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</command> 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</application> 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</varname> 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</literal> 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</varname> 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</filename>,
|
|
and fix counting of line numbers after an <literal>include_dir</literal>
|
|
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</type> 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>, <type>jsonb</type>, <type>tsquery</type>,
|
|
<type>ltxtquery</type> and <type>query_int</type> (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</literal> and <literal>DOY</literal> 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</quote>.
|
|
</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</literal>, and <literal>LIKE</literal> 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</quote> errors
|
|
when using tuplestores with small <varname>work_mem</varname> 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</function> (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</quote> failure in hash joins
|
|
with large <varname>work_mem</varname> 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>, <quote>could not find pathkey item to
|
|
sort</quote>, <quote>plan should not reference subplan's variable</quote>,
|
|
or <quote>failed to assign all NestLoopParams to plan nodes</quote>.
|
|
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>/<command>DELETE</command>
|
|
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</filename> 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</literal> 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</literal> 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</command> 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</quote> 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</command> and <command>MOVE</command> statement
|
|
types in <application>PL/pgSQL</application>'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</application> to handle non-<acronym>ASCII</acronym> 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</application> crash when returning the string
|
|
representation of a <type>record</type> 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</application> that neglected to check for
|
|
failure of <function>malloc()</function> 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</filename>, 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</filename>' 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</filename>'s handling of
|
|
collation-related decisions (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
The main user-visible effect is expected to be that comparisons
|
|
involving <type>varchar</type> 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</application>'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</application> (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</application>'s code for locale-aware formatting of numeric
|
|
output (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
The formatting code invoked by <literal>\pset numericlocale on</literal>
|
|
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</type> 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</application>'s <command>\c</command> 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</application> handle inherited <literal>NOT VALID</literal>
|
|
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</application> compression level
|
|
in <application>pg_dump</application>'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</application>
|
|
run with <acronym>tar</acronym>-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</application> and <application>pg_upgrade</application> to support
|
|
cases where the <literal>postgres</literal> or <literal>template1</literal> 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</application> 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</application> would
|
|
produce <command>GRANT</command>/<command>REVOKE</command> commands that revoked the
|
|
owner's grantable privileges and instead granted all privileges
|
|
to <literal>PUBLIC</literal>. Since the privileges involved are
|
|
just <literal>USAGE</literal> and <literal>EXECUTE</literal>, 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</application> 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</application> 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</application> 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</application>'s progress-report behavior when a query,
|
|
or <application>pgbench</application> 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</acronym>'s native assembler (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Building with <application>gcc</application> didn't work if <application>gcc</application>
|
|
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</acronym>, test the <literal>-qlonglong</literal> 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</acronym>, use <literal>-Wl,-brtllib</literal> 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</application>, 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</filename> for <function>sched_yield()</function> 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</literal> 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()</function>'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)</quote>), 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</filename> 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</productname> version number
|
|
(e.g., <literal>90405</literal>) readily available to extension Makefiles,
|
|
as a variable named <varname>VERSION_NUM</varname> (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</application> 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</literal> 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</application> 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</productname> 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</application> could also cause such a failure, in
|
|
installations that had used <application>pg_upgrade</application> versions
|
|
between 9.3.0 and 9.3.4.
|
|
</para>
|
|
|
|
<para>
|
|
The <application>pg_upgrade</application> bug in question was that it would
|
|
set <literal>oldestMultiXid</literal> to 1 in <filename>pg_control</filename> 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</literal> value can
|
|
be determined. If that would pose a hardship, users can avoid it by
|
|
doing manual vacuuming <emphasis>before</emphasis> upgrading to this release.
|
|
In detail:
|
|
|
|
<orderedlist>
|
|
<listitem>
|
|
<para>
|
|
Check whether <application>pg_controldata</application> reports <quote>Latest
|
|
checkpoint's oldestMultiXid</quote> to be 1. If not, there's nothing
|
|
to do.
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
Look in <filename>PGDATA/pg_multixact/offsets</filename> to see if there's a
|
|
file named <filename>0000</filename>. If there is, there's nothing to do.
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
Otherwise, for each table that has
|
|
<structname>pg_class</structname>.<structfield>relminmxid</structfield> equal to 1,
|
|
<command>VACUUM</command> 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</command> on a system catalog might fail to update the <quote>init file</quote>
|
|
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</literal> (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
A new session starting in a database that is the target of
|
|
a <command>DROP DATABASE</command> command, or is the template for
|
|
a <command>CREATE DATABASE</command> 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</function>'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</function>
|
|
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</literal>.
|
|
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()</function> to show
|
|
functions' <literal>LEAKPROOF</literal> 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()</function> to unpack <type>jbvBinary</type>
|
|
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</application>'s check prohibiting linking to a
|
|
threaded <application>libpython</application>
|
|
on <systemitem class="osname">OpenBSD</systemitem> (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</systemitem>
|
|
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</filename>'s
|
|
<function>regexp_matches()</function> 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()</function> 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()</function>
|
|
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</filename>, uniformly report decryption failures
|
|
as <quote>Wrong key or corrupt data</quote> (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</filename>'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</filename> 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</filename>'s
|
|
<function>regexp_matches()</function> functions (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
These functions should return <type>setof text[]</type>, like the core
|
|
functions they are wrappers for; but they were incorrectly declared as
|
|
returning just <type>text[]</type>. 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</literal> 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</productname> 9.5.
|
|
In pre-9.5 branches, the old behavior exists in version 1.0 of
|
|
the <literal>citext</literal> extension, while we have provided corrected
|
|
declarations in version 1.1 (which is <emphasis>not</emphasis> installed by
|
|
default). To adopt the fix in pre-9.5 branches, execute
|
|
<literal>ALTER EXTENSION citext UPDATE TO '1.1'</literal> in each database in
|
|
which <literal>citext</literal> is installed. (You can also <quote>update</quote>
|
|
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</filename>'s <function>regexp_matches()</function> 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</literal> when
|
|
converting to <type>json</type>, 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>/<type>jsonb</type>'s <function>populate_record()</function>
|
|
and <function>to_record()</function> 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</literal> (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</quote> 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</quote> errors in queries involving <literal>LATERAL</literal>,
|
|
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</command> or <command>DELETE</command> 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</quote>.
|
|
</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</literal> 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()</function> 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</command> 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()</function> 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()</function>
|
|
(Andres Freund)
|
|
</para>
|
|
|
|
<para>
|
|
This oversight could result in spurious errors about <quote>multiple
|
|
backends attempting to wait for pincount 1</quote>.
|
|
</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</literal> 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</literal>
|
|
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</command> 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</command> 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</structfield> of a foreign table is reported
|
|
correctly when a <literal>READ COMMITTED</literal> recheck occurs after
|
|
locking rows in <command>SELECT FOR UPDATE</command>, <command>UPDATE</command>,
|
|
or <command>DELETE</command> (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</literal> 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</productname> 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</filename> 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</filename> 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</literal> (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</literal>
|
|
replication command (Heikki Linnakangas)
|
|
</para>
|
|
|
|
<para>
|
|
This avoids a possible startup failure
|
|
in <application>pg_receivexlog</application>.
|
|
</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</application> 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</application>'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</literal>.) This worked properly in the normal blocking mode, but not
|
|
so much in non-blocking mode. We've modified <application>libpq</application>
|
|
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()</function> 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</application>, 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</application> (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</application> to sanely handle URIs and conninfo strings as
|
|
the first parameter to <command>\connect</command>
|
|
(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</application> on some
|
|
platforms that it failed to write <filename>~/.psql_history</filename> 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</application>. We fixed it by
|
|
removing the workaround, which will cause a similar failure to appear
|
|
for anyone still using such versions of <application>libedit</application>.
|
|
Recommendation: upgrade that library, or use <application>libreadline</application>.
|
|
</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</application>'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</application>, fix failure to honor <literal>-Z</literal>
|
|
compression level option together with <literal>-Fd</literal>
|
|
(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</application> 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</application> 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(...)</literal> 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</literal> 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</application>, 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</application>, 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</application>, quote directory paths
|
|
properly in the generated <literal>delete_old_cluster</literal> 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</application>, preserve database-level freezing info
|
|
properly
|
|
(Bruce Momjian)
|
|
</para>
|
|
|
|
<para>
|
|
This oversight could cause missing-clog-file errors for tables within
|
|
the <literal>postgres</literal> and <literal>template1</literal> 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</application> and <application>pg_resetxlog</application> 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()</function> failures when scanning
|
|
directories in <application>initdb</application> and <application>pg_basebackup</application>
|
|
(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</filename> (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</application> 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)</quote> locale, manual action is needed after the upgrade to
|
|
replace any <quote>Norwegian (Bokmål)_Norway</quote>
|
|
or <quote>norwegian-bokmal</quote> locale names stored
|
|
in <productname>PostgreSQL</productname> system catalogs with the plain-ASCII
|
|
alias <quote>Norwegian_Norway</quote>. For details see
|
|
<ulink url="http://wiki.postgresql.org/wiki/Changes_To_Norwegian_Locale"></ulink>
|
|
</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()</function>
|
|
(Bruce Momjian)
|
|
</para>
|
|
|
|
<para>
|
|
When <function>to_char()</function> processes a numeric formatting template
|
|
calling for a large number of digits, <productname>PostgreSQL</productname>
|
|
would read past the end of a buffer. When processing a crafted
|
|
timestamp formatting template, <productname>PostgreSQL</productname> 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()</function> functions
|
|
(Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
<productname>PostgreSQL</productname> includes a replacement implementation
|
|
of <function>printf</function> and related functions. This code will overrun
|
|
a stack buffer when formatting a floating point number (conversion
|
|
specifiers <literal>e</literal>, <literal>E</literal>, <literal>f</literal>, <literal>F</literal>,
|
|
<literal>g</literal> or <literal>G</literal>) 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()</function> SQL function. While that is the only
|
|
affected core <productname>PostgreSQL</productname> functionality, extension
|
|
modules that use printf-family functions may be at risk as well.
|
|
</para>
|
|
|
|
<para>
|
|
This issue primarily affects <productname>PostgreSQL</productname> on Windows.
|
|
<productname>PostgreSQL</productname> 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</filename>
|
|
(Marko Tiikkaja, Noah Misch)
|
|
</para>
|
|
|
|
<para>
|
|
Errors in memory size tracking within the <filename>pgcrypto</filename>
|
|
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</literal> 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)</quote>
|
|
(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</quote>.
|
|
</para>
|
|
|
|
<para>
|
|
9.4.0 mapped the troublesome name to <quote>norwegian-bokmal</quote>,
|
|
but that turns out not to work on all Windows configurations.
|
|
<quote>Norwegian_Norway</quote> 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</literal> 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</literal> tuple lock, while multiple other transactions
|
|
currently hold <literal>FOR SHARE</literal> 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</command> 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</type> Unicode escape processing, and in consequence
|
|
disallow <literal>\u0000</literal> (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, the JSON Unicode escape <literal>\u0000</literal> was accepted
|
|
and was stored as those six characters; but that is indistinguishable
|
|
from what is stored for the input <literal>\\u0000</literal>, resulting in
|
|
ambiguity. Moreover, in cases where de-escaped textual output is
|
|
expected, such as the <literal>->></literal> operator, the sequence was
|
|
printed as <literal>\u0000</literal>, which does not meet the expectation
|
|
that JSON escaping would be removed. (Consistent behavior would
|
|
require emitting a zero byte, but <productname>PostgreSQL</productname> 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</literal> in <type>jsonb</type> input.
|
|
</para>
|
|
|
|
<para>
|
|
If a <type>jsonb</type> column contains a <literal>\u0000</literal> value stored
|
|
with 9.4.0, it will henceforth read out as though it
|
|
were <literal>\\u0000</literal>, which is the other valid interpretation of
|
|
the data stored by 9.4.0 for this case.
|
|
</para>
|
|
|
|
<para>
|
|
The <type>json</type> type did not have the storage-ambiguity problem, but
|
|
it did have the problem of inconsistent de-escaped textual output.
|
|
Therefore <literal>\u0000</literal> will now also be rejected
|
|
in <type>json</type> values when conversion to de-escaped form is
|
|
required. This change does not break the ability to
|
|
store <literal>\u0000</literal> in <type>json</type> 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()</function> (Ali Akbar)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, the <type>xml</type> value resulting from
|
|
an <function>xpath()</function> call would not have namespace declarations if
|
|
the namespace declarations were attached to an ancestor element in the
|
|
input <type>xml</type> 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</quote> 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</quote> 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</varname> (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</varname> 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</quote> 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</quote>.
|
|
</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()</function> 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</application>'s behavior when <filename>/etc/passwd</filename>
|
|
isn't readable (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
While doing <function>PQsetdbLogin()</function>, <application>libpq</application>
|
|
attempts to ascertain the user's operating system name, which on most
|
|
Unix platforms involves reading <filename>/etc/passwd</filename>. 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</filename> 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</application>'s special
|
|
variables (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Allow variant spellings of <literal>on</literal> and <literal>off</literal> (such
|
|
as <literal>1</literal>/<literal>0</literal>) for <literal>ECHO_HIDDEN</literal>
|
|
and <literal>ON_ERROR_ROLLBACK</literal>. Report a warning for unrecognized
|
|
values for <literal>COMP_KEYWORD_CASE</literal>, <literal>ECHO</literal>,
|
|
<literal>ECHO_HIDDEN</literal>, <literal>HISTCONTROL</literal>,
|
|
<literal>ON_ERROR_ROLLBACK</literal>, and <literal>VERBOSITY</literal>. 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</application> 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</application> to
|
|
use <option>--serializable-deferrable</option> (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</literal> 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</filename>'s <function>connectby()</function>
|
|
(Michael Paquier)
|
|
</para>
|
|
|
|
<para>
|
|
<function>connectby()</function> 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</varname> from <application>configure</application>'s environment
|
|
to override automatically-supplied <varname>CFLAGS</varname> (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, <application>configure</application> would add any switches that it
|
|
chose of its own accord to the end of the
|
|
user-specified <varname>CFLAGS</varname> 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</application> 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</literal>, 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</application> 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</productname> 9.4 include:
|
|
</para>
|
|
|
|
<!-- This list duplicates items below, but without authors or details-->
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <link linkend="datatype-json"><type>jsonb</type></link>, a more
|
|
capable and efficient data type for storing <acronym>JSON</acronym> data
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add new <acronym>SQL</acronym> command <xref linkend="sql-altersystem"/>
|
|
for changing <filename>postgresql.conf</filename> 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</link>
|
|
to be refreshed without blocking concurrent reads
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add support for <link linkend="logicaldecoding">logical decoding</link>
|
|
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</link>
|
|
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[]</literal> would be accepted.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
When converting values of type <type>date</type>, <type>timestamp</type>
|
|
or <type>timestamptz</type>
|
|
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</type> before passing it to the JSON conversion
|
|
function.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
The <link linkend="functions-json-op-table"><type>json</type>
|
|
<literal>#></literal> <type>text[]</type></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>-></literal>. Similarly, <type>json</type>
|
|
<literal>#>></literal> <type>text[]</type> 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()</function></link>
|
|
and <function>to_date()</function> 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</literal>
|
|
mode (Jeevan Chalke)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, consecutive whitespace characters in a non-<literal>FX</literal>
|
|
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'</literal>, but it will now consume all three characters.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <link
|
|
linkend="textsearch-functions-table"><function>ts_rank_cd()</function></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"</literal></link>, an actual parameter marked as <literal>VARIADIC</literal>
|
|
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</literal>; a cast to an appropriate array data type
|
|
will now be required. Note that this does not affect parameters not
|
|
marked <literal>VARIADIC</literal>.
|
|
</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.*)</literal> now always emit column
|
|
names that match the column aliases visible for table <literal>tab</literal>
|
|
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</command></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</command></link> now
|
|
outputs simple numeric UTC offsets in <acronym>POSIX</acronym> timezone
|
|
format (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, such timezone settings were displayed as <link
|
|
linkend="datatype-interval-output"><type>interval</type></link> values.
|
|
The new output is properly interpreted by <command>SET TIME ZONE</command>
|
|
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</literal> triggers
|
|
(Noah Misch)
|
|
</para>
|
|
|
|
<para>
|
|
When an <literal>AFTER ROW</literal> 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</literal> clause (if any).
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Prevent <link
|
|
linkend="ddl-constraints-check-constraints"><literal>CHECK</literal></link>
|
|
constraints from referencing system columns, except
|
|
<structfield>tableoid</structfield> (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</replaceable></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</command></link>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Remove catalog column <link
|
|
linkend="catalog-pg-class"><structfield>pg_class.reltoastidxid</structfield></link>
|
|
(Michael Paquier)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Remove catalog column <link
|
|
linkend="catalog-pg-rewrite"><structfield>pg_rewrite.ev_attr</structfield></link>
|
|
(Kevin Grittner)
|
|
</para>
|
|
|
|
<para>
|
|
Per-column rules have not been supported since
|
|
<application>PostgreSQL</application> 7.3.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Remove native support for <application>Kerberos</application> authentication
|
|
(<option>--with-krb5</option>, etc)
|
|
(Magnus Hagander)
|
|
</para>
|
|
|
|
<para>
|
|
The supported way to use <application>Kerberos</application> authentication is
|
|
with <acronym>GSSAPI</acronym>. The native code has been deprecated since
|
|
<productname>PostgreSQL</productname> 8.3.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
In <application>PL/Python</application>, 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()</function></link>
|
|
and <link
|
|
linkend="libpq-pqpingparams"><function>PQpingParams()</function></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>{}</literal>), but they acted differently in array
|
|
operations. <application>intarray</application>'s behavior in this area now
|
|
matches the built-in array operators.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
<xref linkend="pgupgrade"/> now uses <option>-U</option>
|
|
or <option>--username</option> to specify the user name (Bruce Momjian)
|
|
</para>
|
|
|
|
<para>
|
|
Previously this option was spelled <option>-u</option> or <option>--user</option>,
|
|
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</filename> 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</systemitem>) 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</quote>.
|
|
</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</acronym></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</acronym> 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</acronym></link> lookups (Alexander Korotkov,
|
|
Heikki Linnakangas)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <link linkend="gist"><acronym>GiST</acronym></link> index support
|
|
for <link linkend="datatype-inet"><type>inet</type></link> and
|
|
<link linkend="datatype-cidr"><type>cidr</type></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</acronym></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</acronym></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</type></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</command></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()</function></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</application>
|
|
<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>/<literal>OR</literal> clauses (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Disallow pushing volatile <literal>WHERE</literal> clauses down
|
|
into <literal>DISTINCT</literal> subqueries (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Pushing down a <literal>WHERE</literal> 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</acronym></link> archiver activity
|
|
(Gabriele Bartolini)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <structfield>n_mod_since_analyze</structfield> 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</structfield> and <structfield>backend_xmin</structfield>
|
|
columns to the system view <xref linkend="pg-stat-activity-view"/>,
|
|
and a <structfield>backend_xmin</structfield> column to
|
|
<xref linkend="pg-stat-replication-view"/> (Christian Kruse)
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
<sect4>
|
|
<title><acronym>SSL</acronym></title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add support for <acronym>SSL</acronym> <acronym>ECDH</acronym> 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</acronym>
|
|
keys. The new configuration parameter
|
|
<xref linkend="guc-ssl-ecdh-curve"/>
|
|
controls which curve is used for <acronym>ECDH</acronym>.
|
|
</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</acronym> 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</productname> 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</acronym>
|
|
encryption information (Andreas Kunert)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve <acronym>SSL</acronym> renegotiation handling (Álvaro
|
|
Herrera)
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
<sect4>
|
|
<title>Server Settings</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add new <acronym>SQL</acronym> command <xref linkend="sql-altersystem"/>
|
|
for changing <filename>postgresql.conf</filename> configuration file entries
|
|
(Amit Kapila)
|
|
</para>
|
|
|
|
<para>
|
|
Previously such settings could only be changed by manually
|
|
editing <filename>postgresql.conf</filename>.
|
|
</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</filename> 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</application>.
|
|
</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</literal>) to be used when specifying
|
|
configuration variable values (Simon Riggs)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Show <acronym>PID</acronym>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</literal>, which was too verbose
|
|
for libraries loaded per-session.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
On Windows, make <literal>SQL_ASCII</literal>-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</acronym> 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</acronym> 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</option> to stop <link
|
|
linkend="wal"><acronym>WAL</acronym></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()</function></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()</function></link>
|
|
now clears any unused trailing space in the old <acronym>WAL</acronym> file
|
|
(Heikki Linnakangas)
|
|
</para>
|
|
|
|
<para>
|
|
This improves the compression ratio for <acronym>WAL</acronym> files.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Report failure return codes from <link
|
|
linkend="archive-recovery-settings">external recovery commands</link>
|
|
(Peter Eisentraut)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Reduce spinlock contention during <acronym>WAL</acronym> replay (Heikki
|
|
Linnakangas)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Write <acronym>WAL</acronym> 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</link></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</acronym></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</link>
|
|
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</option>
|
|
to enable logical change-set encoding in <acronym>WAL</acronym> (Andres
|
|
Freund)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add table-level parameter <link
|
|
linkend="catalog-pg-class"><literal>REPLICA IDENTITY</literal></link>
|
|
to control logical replication (Andres Freund)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add relation option <link
|
|
linkend="sql-createtable-storage-parameters"><option>user_catalog_table</option></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</acronym> level (Andres Freund)
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
</sect3>
|
|
|
|
<sect3>
|
|
<title>Queries</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <link linkend="queries-tablefunctions"><literal>WITH
|
|
ORDINALITY</literal></link> syntax to number the rows returned from a
|
|
set-returning function in the <literal>FROM</literal> clause
|
|
(Andrew Gierth, David Fetter)
|
|
</para>
|
|
|
|
<para>
|
|
This is particularly useful for functions like
|
|
<function>unnest()</function>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <link linkend="queries-tablefunctions"><literal>ROWS
|
|
FROM()</literal></link> syntax to allow horizontal concatenation of
|
|
set-returning functions in the <literal>FROM</literal> 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</literal></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</command></link> command to discard cached sequence-related state
|
|
(Fabrízio de Royes Mello, Robert Haas)
|
|
</para>
|
|
|
|
<para>
|
|
<command>DISCARD ALL</command> will now also discard such information.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <literal>FORCE NULL</literal> option
|
|
to <link linkend="sql-copy"><command>COPY FROM</command></link>, which
|
|
causes quoted strings matching the specified null string to be
|
|
converted to NULLs in <literal>CSV</literal> 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>, <command>SET CONSTRAINTS</command>, <command>SET TRANSACTION</command> and
|
|
<command>ABORT</command> when used outside a transaction block.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
<sect4>
|
|
<title><xref linkend="sql-explain"/></title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<para>
|
|
Make <command>EXPLAIN ANALYZE</command> show planning time (Andreas
|
|
Karlsson)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Make <command>EXPLAIN</command> show the grouping columns in Agg and
|
|
Group nodes (Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Make <command>EXPLAIN ANALYZE</command> 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</link>
|
|
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</command></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</command>s, <command>UPDATE</command>s and
|
|
<command>DELETE</command>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</command>s and
|
|
<command>UPDATE</command>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</literal>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <link linkend="rules-privileges">security barrier views</link>
|
|
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</link> (Ronan Dunklau)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow moving groups of objects from one tablespace to another
|
|
using the <literal>ALL IN TABLESPACE ... SET TABLESPACE</literal> 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</literal> (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>, <literal>CLUSTER
|
|
ON</literal>, <literal>SET WITHOUT CLUSTER</literal>, <literal>ALTER COLUMN
|
|
SET STATISTICS</literal>, <literal>ALTER COLUMN</literal> <literal>SET</literal>
|
|
<option>(attribute_option)</option>, <literal>ALTER COLUMN RESET</literal>
|
|
<option>(attribute_option)</option> no longer require <literal>ACCESS
|
|
EXCLUSIVE</literal> 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</command> 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</literal>
|
|
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</type></link> data type (Peter
|
|
Eisentraut)
|
|
</para>
|
|
|
|
<para>
|
|
The line <emphasis>segment</emphasis> data type (<link
|
|
linkend="datatype-lseg"><type>lseg</type></link>) has always been
|
|
fully supported. The previous <type>line</type> 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</type></link>
|
|
data type to represent a <acronym>WAL</acronym> log sequence number
|
|
(<acronym>LSN</acronym>) (Robert Haas, Michael Paquier)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow single-point <link
|
|
linkend="datatype-polygon"><type>polygon</type></link>s to be converted
|
|
to <link linkend="datatype-circle"><type>circle</type></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</productname> assumed that the UTC offset
|
|
associated with a time zone abbreviation (such as <literal>EST</literal>)
|
|
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</productname> 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</acronym> <link
|
|
linkend="datatype-datetime"><type>timestamp</type></link> and
|
|
<type>date</type> strings, where appropriate (Bruce Momjian)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add checks for overflow/underflow of <link
|
|
linkend="datatype-datetime"><type>interval</type></link> values
|
|
(Bruce Momjian)
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
<sect4>
|
|
<title><link linkend="datatype-json"><acronym>JSON</acronym></link></title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <link linkend="datatype-json"><type>jsonb</type></link>, a more
|
|
capable and efficient data type for storing <acronym>JSON</acronym> 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</type> 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</type>
|
|
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()</function></link>,
|
|
<function>json_build_array()</function>, <function>json_object()</function>,
|
|
<function>json_object_agg()</function>, <function>json_to_record()</function>,
|
|
and <function>json_to_recordset()</function>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <link
|
|
linkend="functions-json-processing-table"><function>json_typeof()</function></link>
|
|
to return the data type of a <type>json</type> 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)</function></link>
|
|
and <function>pg_sleep_until(timestamp)</function> to specify
|
|
delays more flexibly (Vik Fearing, Julien Rouhaud)
|
|
</para>
|
|
|
|
<para>
|
|
The existing <function>pg_sleep()</function> function only supports delays
|
|
specified in seconds.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <link
|
|
linkend="array-functions-table"><function>cardinality()</function></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</acronym> 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()</function></link>
|
|
to take multiple arguments, which are individually unnested then
|
|
horizontally concatenated (Andrew Gierth)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add functions to construct <type>time</type>s, <type>date</type>s,
|
|
<type>timestamp</type>s, <type>timestamptz</type>s, and <type>interval</type>s
|
|
from individual values, rather than strings (Pavel Stehule)
|
|
</para>
|
|
|
|
<para>
|
|
These functions' names are prefixed with <literal>make_</literal>,
|
|
e.g. <link linkend="functions-datetime-table"><function>make_date()</function></link>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Make <link
|
|
linkend="functions-formatting-table"><function>to_char()</function></link>'s
|
|
<literal>TZ</literal> format specifier return a useful value for simple
|
|
numeric time zone offsets (Tom Lane)
|
|
</para>
|
|
|
|
<para>
|
|
Previously, <literal>to_char(CURRENT_TIMESTAMP, 'TZ')</literal> returned
|
|
an empty string if the <literal>timezone</literal> was set to a constant
|
|
like <literal>-4</literal>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add timezone offset format specifier <literal>OF</literal> to <link
|
|
linkend="functions-formatting-table"><function>to_char()</function></link>
|
|
(Bruce Momjian)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve the random seed used for <link
|
|
linkend="functions-math-random-table"><function>random()</function></link>
|
|
(Honza Horak)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Tighten validity checking for Unicode code points in <link
|
|
linkend="functions-string-other"><function>chr(int)</function></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>,
|
|
<structname>pg_proc</structname>, <structname>pg_type</structname>, and
|
|
<structname>pg_operator</structname> 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()</function></link>
|
|
does a lookup in <structname>pg_class</structname> similarly to
|
|
the <type>regclass</type> 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()</function></link>
|
|
to allow for more efficient lookup of relation names from filenodes
|
|
(Andres Freund)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <structfield>parameter_default</structfield> column to <link
|
|
linkend="infoschema-parameters"><structname>information_schema.parameters</structname></link>
|
|
view (Peter Eisentraut)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Make <link
|
|
linkend="infoschema-schemata"><structname>information_schema.schemata</structname></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</literal></link> clause
|
|
(David Fetter)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Support ordered-set (<link
|
|
linkend="syntax-aggregates"><literal>WITHIN GROUP</literal></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()</function></link>,
|
|
<function>percentile_disc()</function>, <function>mode()</function>, <link
|
|
linkend="functions-hypothetical-table"><function>rank()</function></link>,
|
|
<function>dense_rank()</function>, <function>percent_rank()</function>, and
|
|
<function>cume_dist()</function>
|
|
(Atri Sharma, Andrew Gierth)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Support <link
|
|
linkend="xfunc-sql-variadic-functions"><literal>VARIADIC</literal></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()</function>.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
</sect3>
|
|
|
|
<sect3>
|
|
<title>Server-Side Languages</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add event trigger support to <link linkend="plperl">PL/Perl</link>
|
|
and <link linkend="pltcl">PL/Tcl</link> (Dimitri Fontaine)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Convert <link linkend="datatype-numeric"><type>numeric</type></link>
|
|
values to <type>decimal</type> in <link linkend="plpython">PL/Python</link>
|
|
(Szymon Guz, Ronan Dunklau)
|
|
</para>
|
|
|
|
<para>
|
|
Previously such values were converted to Python <type>float</type> 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</command></link>
|
|
(Pavel Stehule, Stephen Frost)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add option <link
|
|
linkend="plpgsql-statements-sql-onerow"><option>print_strict_params</option></link>
|
|
to display the parameters passed to a query that violated a
|
|
<literal>STRICT</literal> constraint (Marko Tiikkaja)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add variables <link
|
|
linkend="plpgsql-extra-checks"><varname>plpgsql.extra_warnings</varname></link>
|
|
and <varname>plpgsql.extra_errors</varname> 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</application></link></title>
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<para>
|
|
Make libpq's <link
|
|
linkend="libpq-pqconndefaults"><function>PQconndefaults()</function></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</acronym> protocol versions beyond <literal>TLSv1</literal>
|
|
in libpq (Marko Kreen)
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect3>
|
|
|
|
<sect3>
|
|
<title>Client Applications</title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <xref linkend="app-createuser"/> option <option>-g</option>
|
|
to specify role membership (Christopher Browne)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <xref linkend="app-vacuumdb"/>
|
|
option <option>--analyze-in-stages</option> 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</application></link>
|
|
with option <option>-n</option> 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</literal> for
|
|
an inaccessible data directory (Amit Kapila, Bruce Momjian)
|
|
</para>
|
|
|
|
<para>
|
|
This behavior more closely matches the Linux Standard Base
|
|
(<acronym>LSB</acronym>) Core Specification.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
On Windows, ensure that a non-absolute <option>-D</option> 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()</function> 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</acronym> 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</application> <link
|
|
linkend="app-psql-meta-commands"><option>expanded</option></link>
|
|
mode when the footer is disabled (Bruce Momjian)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow Control-C to abort <application>psql</application> 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</application>'s <command>\db+</command> show tablespace options
|
|
(Magnus Hagander)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Make <command>\do+</command> display the functions
|
|
that implement the operators (Marko Tiikkaja)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Make <command>\d+</command> output an
|
|
<literal>OID</literal> 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</command> 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</command> to no longer require
|
|
a space between <literal>stdin</literal> and a semicolon (Etsuro Fujita)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Output the row count at the end of <command>\copy</command>, just
|
|
like <command>COPY</command> already did (Kumar Rajeev Rastogi)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix <command>\conninfo</command> to display the
|
|
server's <acronym>IP</acronym> address for connections using
|
|
<literal>hostaddr</literal> (Fujii Masao)
|
|
</para>
|
|
|
|
<para>
|
|
Previously <command>\conninfo</command> could not display the server's
|
|
<acronym>IP</acronym> address in such cases.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Show the <acronym>SSL</acronym> protocol version in
|
|
<command>\conninfo</command> (Marko Kreen)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add tab completion for <command>\pset</command>
|
|
(Pavel Stehule)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <command>\pset</command> with no arguments
|
|
to show all settings (Gilles Darold)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Make <command>\s</command> 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>, <option>-P</option>, <option>-T</option> and <option>-n</option>
|
|
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</literal> clauses to the <command>DROP</command>
|
|
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> option
|
|
for <xref linkend="app-pgdump"/>, <xref linkend="app-pg-dumpall"/>,
|
|
and <xref linkend="app-pgrestore"/> is only available
|
|
when <option>--clean</option> is also specified.
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
<sect4>
|
|
<title><xref linkend="app-pgbasebackup"/></title>
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <application>pg_basebackup</application> option <option>--xlogdir</option>
|
|
to specify the <filename>pg_xlog</filename> directory location (Haribabu
|
|
Kommi)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <application>pg_basebackup</application> to relocate tablespaces in
|
|
the backup copy (Steeve Lennmark)
|
|
</para>
|
|
|
|
<para>
|
|
This is particularly useful for using <application>pg_basebackup</application>
|
|
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</application>
|
|
<option>--max-rate</option> 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</function></link>
|
|
macro (Peter Eisentraut)
|
|
</para>
|
|
|
|
<para>
|
|
This change eliminates the need to write boilerplate prototypes.
|
|
Note that the <function>PG_FUNCTION_INFO_V1</function> macro must appear
|
|
before the corresponding function definition to avoid compiler
|
|
warnings.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Remove <varname>SnapshotNow</varname> and
|
|
<function>HeapTupleSatisfiesNow()</function> (Robert Haas)
|
|
</para>
|
|
|
|
<para>
|
|
All existing uses have been switched to more appropriate snapshot
|
|
types. Catalog scans now use <acronym>MVCC</acronym> snapshots.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add an <acronym>API</acronym> to allow memory allocations over one gigabyte
|
|
(Noah Misch)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <function>psprintf()</function> to simplify memory allocation during
|
|
string composition (Peter Eisentraut, Tom Lane)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Support <function>printf()</function> size modifier <literal>z</literal> to
|
|
print <type>size_t</type> values (Andres Freund)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Change <acronym>API</acronym> of <function>appendStringInfoVA()</function>
|
|
to better use <function>vsnprintf()</function> (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</acronym>s (Heikki
|
|
Linnakangas)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Remove spinlock support for unsupported platforms
|
|
<productname>SINIX</productname>, <productname>Sun3</productname>, and
|
|
<productname>NS32K</productname> (Robert Haas)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Remove <acronym>IRIX</acronym> port (Robert Haas)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Reduce the number of semaphores required by
|
|
<option>--disable-spinlocks</option> builds (Robert Haas)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Rewrite <application>duplicate_oids</application> Unix shell script in
|
|
<application>Perl</application> (Andrew Dunstan)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add Test Anything Protocol (<acronym>TAP</acronym>) tests for client
|
|
programs (Peter Eisentraut)
|
|
</para>
|
|
|
|
<para>
|
|
Currently, these tests are run by <literal>make check-world</literal>
|
|
only if the <option>--enable-tap-tests</option> option was given
|
|
to <application>configure</application>.
|
|
This might become the default behavior in some future release.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add make targets <option>check-tests</option> and
|
|
<option>installcheck-tests</option>, which allow selection of individual
|
|
tests to be run (Andrew Dunstan)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Remove <option>maintainer-check</option> 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</envar> builds of <acronym>PGXS</acronym>
|
|
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</application> flag that appends custom text to the
|
|
<envar>PG_VERSION</envar> string (Oskari Saarenmaa)
|
|
</para>
|
|
|
|
<para>
|
|
This is useful for packagers building custom binaries.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve DocBook <acronym>XML</acronym> validity (Peter Eisentraut)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Fix various minor security and sanity issues reported by the
|
|
<productname>Coverity</productname> scanner (Stephen Frost)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve detection of invalid memory usage when testing
|
|
<productname>PostgreSQL</productname> with <application>Valgrind</application>
|
|
(Noah Misch)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Improve sample <application>Emacs</application> configuration file
|
|
<filename>emacs.samples</filename> (Peter Eisentraut)
|
|
</para>
|
|
|
|
<para>
|
|
Also add <filename>.dir-locals.el</filename> to the top of the source tree.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <application>pgindent</application> to accept a command-line list
|
|
of typedefs (Bruce Momjian)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Make <application>pgindent</application> smarter about blank lines
|
|
around preprocessor conditionals (Bruce Momjian)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Avoid most uses of <command>dlltool</command>
|
|
in <productname>Cygwin</productname> and
|
|
<productname>Mingw</productname> builds (Marco Atzeri, Hiroshi Inoue)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Support client-only installs in <acronym>MSVC</acronym> (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</acronym> random number generator
|
|
<function>gen_random_uuid()</function> to <xref linkend="pgcrypto"/>
|
|
(Oskari Saarenmaa)
|
|
</para>
|
|
|
|
<para>
|
|
This allows creation of version 4 <acronym>UUID</acronym>s without
|
|
requiring installation of <xref linkend="uuid-ossp"/>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Allow <xref linkend="uuid-ossp"/> to work with
|
|
the <systemitem>BSD</systemitem> or <systemitem>e2fsprogs</systemitem> UUID libraries,
|
|
not only the <systemitem>OSSP</systemitem> UUID library (Matteo Beccati)
|
|
</para>
|
|
|
|
<para>
|
|
This improves the <application>uuid-ossp</application> 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</application></link>
|
|
to report a live log stream with <option>--follow</option>
|
|
(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>) 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</application> scripts (Sawada
|
|
Masahiko)
|
|
</para>
|
|
|
|
<para>
|
|
The previous line limit was <envar>BUFSIZ</envar>.
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add long option names to <application>pgbench</application> (Fabien Coelho)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <application>pgbench</application> option <option>--rate</option> to control
|
|
the transaction rate (Fabien Coelho)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Add <application>pgbench</application> option <option>--progress</option> 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</application> 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</application>'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</application>
|
|
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</application> ignore <command>DEALLOCATE</command>
|
|
commands (Fabien Coelho)
|
|
</para>
|
|
|
|
<para>
|
|
It already ignored <command>PREPARE</command>, 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</filename> at server
|
|
shutdown, rather than <filename>$PGDATA/global</filename> (Fujii Masao)
|
|
</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</sect4>
|
|
|
|
</sect3>
|
|
|
|
</sect2>
|
|
</sect1>
|